@skbkontur/react-ui 4.14.2-next.1 → 4.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/CHANGELOG.md +7 -17
  2. package/cjs/components/Button/ArrowLeftIcon.d.ts +1 -1
  3. package/cjs/components/Button/ArrowRightIcon.d.ts +1 -1
  4. package/cjs/components/Button/Button.d.ts +7 -2
  5. package/cjs/components/Button/Button.js +5 -5
  6. package/cjs/components/Button/Button.js.map +1 -1
  7. package/cjs/components/Button/Button.styles.js +1 -2
  8. package/cjs/components/Button/Button.styles.js.map +1 -1
  9. package/cjs/components/Button/ButtonIcon.d.ts +3 -1
  10. package/cjs/components/Button/ButtonIcon.js +18 -2
  11. package/cjs/components/Button/ButtonIcon.js.map +1 -1
  12. package/cjs/components/Checkbox/CheckedIcon.d.ts +1 -1
  13. package/cjs/components/Checkbox/IndeterminateIcon.d.ts +1 -1
  14. package/cjs/components/DateInput/CalendarIcon.d.ts +1 -1
  15. package/cjs/components/DatePicker/DatePicker.d.ts +17 -16
  16. package/cjs/components/DatePicker/DatePicker.js +57 -107
  17. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  18. package/cjs/components/DatePicker/DatePicker.styles.d.ts +0 -3
  19. package/cjs/components/DatePicker/DatePicker.styles.js +1 -36
  20. package/cjs/components/DatePicker/DatePicker.styles.js.map +1 -1
  21. package/cjs/components/DatePicker/DatePickerHelpers.d.ts +1 -1
  22. package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
  23. package/cjs/components/DatePicker/Picker.d.ts +9 -8
  24. package/cjs/components/DatePicker/Picker.js +41 -32
  25. package/cjs/components/DatePicker/Picker.js.map +1 -1
  26. package/cjs/components/DatePicker/Picker.styles.d.ts +5 -0
  27. package/cjs/components/DatePicker/Picker.styles.js +39 -0
  28. package/cjs/components/DatePicker/Picker.styles.js.map +1 -0
  29. package/cjs/components/DatePicker/locale/locales/en.js +15 -3
  30. package/cjs/components/DatePicker/locale/locales/en.js.map +1 -1
  31. package/cjs/components/DatePicker/locale/locales/ru.js +15 -3
  32. package/cjs/components/DatePicker/locale/locales/ru.js.map +1 -1
  33. package/cjs/components/DatePicker/locale/types.d.ts +2 -2
  34. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  35. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -2
  36. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  37. package/cjs/components/FileUploader/FileUploader.d.ts +0 -1
  38. package/cjs/components/FileUploader/FileUploader.js +1 -3
  39. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  40. package/cjs/components/FileUploader/UploadIcon.d.ts +1 -1
  41. package/cjs/components/FxInput/MathFunctionIcon.d.ts +1 -1
  42. package/cjs/components/FxInput/UndoIcon.d.ts +1 -1
  43. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +15 -4
  44. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  45. package/cjs/components/Kebab/Kebab.d.ts +1 -4
  46. package/cjs/components/Kebab/Kebab.js +21 -11
  47. package/cjs/components/Kebab/Kebab.js.map +1 -1
  48. package/cjs/components/Kebab/KebabIcon.d.ts +1 -1
  49. package/cjs/components/Loader/Loader.js +3 -1
  50. package/cjs/components/Loader/Loader.js.map +1 -1
  51. package/cjs/components/Modal/Modal.d.ts +3 -3
  52. package/cjs/components/Modal/Modal.js +2 -19
  53. package/cjs/components/Modal/Modal.js.map +1 -1
  54. package/cjs/components/Modal/Modal.styles.d.ts +2 -0
  55. package/cjs/components/Modal/Modal.styles.js +36 -25
  56. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  57. package/cjs/components/Modal/ModalBody.js +2 -0
  58. package/cjs/components/Modal/ModalBody.js.map +1 -1
  59. package/cjs/components/Modal/ModalFooter.js +5 -2
  60. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  61. package/cjs/components/Modal/ModalHeader.js +6 -1
  62. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  63. package/cjs/components/Paging/ForwardIcon.d.ts +1 -1
  64. package/cjs/components/PasswordInput/ClosedIcon.d.ts +1 -1
  65. package/cjs/components/PasswordInput/OpenedIcon.d.ts +1 -1
  66. package/cjs/components/PasswordInput/PasswordInput.js +6 -4
  67. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  68. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +0 -1
  69. package/cjs/components/ScrollContainer/ScrollContainer.js +1 -9
  70. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  71. package/cjs/components/Select/ArrowDownIcon.d.ts +1 -1
  72. package/cjs/components/SidePage/SidePage.d.ts +3 -3
  73. package/cjs/components/SidePage/SidePage.js +1 -8
  74. package/cjs/components/SidePage/SidePage.js.map +1 -1
  75. package/cjs/components/Spinner/Spinner.md +1 -1
  76. package/cjs/components/Switcher/Switcher.d.ts +2 -4
  77. package/cjs/components/Switcher/Switcher.js +3 -13
  78. package/cjs/components/Switcher/Switcher.js.map +1 -1
  79. package/cjs/components/TokenInput/TokenInput.d.ts +1 -44
  80. package/cjs/components/TokenInput/TokenInput.js +0 -42
  81. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  82. package/cjs/components/TokenInput/TokenInput.md +0 -100
  83. package/cjs/index.d.ts +0 -1
  84. package/cjs/index.js +0 -1
  85. package/cjs/index.js.map +1 -1
  86. package/cjs/internal/Calendar/Calendar.d.ts +63 -0
  87. package/cjs/internal/Calendar/Calendar.js +387 -0
  88. package/cjs/internal/Calendar/Calendar.js.map +1 -0
  89. package/cjs/{components → internal}/Calendar/Calendar.styles.d.ts +0 -1
  90. package/cjs/internal/Calendar/Calendar.styles.js +23 -0
  91. package/cjs/internal/Calendar/Calendar.styles.js.map +1 -0
  92. package/cjs/{components → internal}/Calendar/CalendarUtils.d.ts +2 -19
  93. package/cjs/internal/Calendar/CalendarUtils.js +71 -0
  94. package/cjs/internal/Calendar/CalendarUtils.js.map +1 -0
  95. package/cjs/internal/Calendar/Month.js.map +1 -0
  96. package/cjs/{components → internal}/Calendar/MonthView.d.ts +1 -1
  97. package/cjs/{components → internal}/Calendar/MonthView.js +1 -1
  98. package/cjs/{components → internal}/Calendar/MonthView.js.map +1 -1
  99. package/cjs/internal/CloseButtonIcon/CrossIcon.d.ts +1 -1
  100. package/cjs/internal/CustomComboBox/ArrowDownIcon.d.ts +1 -1
  101. package/cjs/internal/CustomComboBox/CustomComboBox.js +9 -12
  102. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  103. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  104. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  105. package/cjs/internal/FileUploaderControl/FileUploaderFile/DeleteIcon.d.ts +1 -1
  106. package/cjs/internal/FileUploaderControl/FileUploaderFile/ErrorIcon.d.ts +1 -1
  107. package/cjs/internal/FileUploaderControl/FileUploaderFile/OkIcon.d.ts +1 -1
  108. package/cjs/internal/InputLikeText/InputLikeText.js +1 -4
  109. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  110. package/cjs/internal/NativeDateInput/utils.d.ts +1 -1
  111. package/cjs/internal/NativeDateInput/utils.js.map +1 -1
  112. package/cjs/internal/PopupMenu/PopupMenu.d.ts +0 -8
  113. package/cjs/internal/PopupMenu/PopupMenu.js +3 -23
  114. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  115. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  116. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +5 -0
  117. package/cjs/internal/ZIndex/ZIndexStorage.js +6 -1
  118. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  119. package/cjs/internal/icons/SpinnerIcon.styles.js +1 -2
  120. package/cjs/internal/icons/SpinnerIcon.styles.js.map +1 -1
  121. package/cjs/internal/icons2022/LoadingIcon.d.ts +1 -1
  122. package/cjs/internal/icons2022/iconSizer.d.ts +1 -1
  123. package/cjs/internal/icons2022/iconSizer.js +3 -1
  124. package/cjs/internal/icons2022/iconSizer.js.map +1 -1
  125. package/cjs/internal/themes/DefaultTheme.d.ts +0 -4
  126. package/cjs/internal/themes/DefaultTheme.js +1 -13
  127. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  128. package/cjs/lib/date/InternalDate.d.ts +1 -1
  129. package/cjs/lib/date/InternalDate.js +1 -1
  130. package/cjs/lib/date/InternalDate.js.map +1 -1
  131. package/cjs/lib/forwardRefAndName.d.ts +4 -0
  132. package/cjs/lib/forwardRefAndName.js +22 -1
  133. package/cjs/lib/forwardRefAndName.js.map +1 -1
  134. package/cjs/lib/locale/decorators.js +3 -0
  135. package/cjs/lib/locale/decorators.js.map +1 -1
  136. package/cjs/lib/locale/types.d.ts +0 -2
  137. package/cjs/lib/locale/types.js +0 -2
  138. package/cjs/lib/locale/types.js.map +1 -1
  139. package/cjs/lib/utils.d.ts +1 -0
  140. package/cjs/lib/utils.js +6 -2
  141. package/cjs/lib/utils.js.map +1 -1
  142. package/cjs/typings/html.d.ts +0 -1
  143. package/cjs/typings/utility-types.d.ts +0 -6
  144. package/components/Button/ArrowLeftIcon.d.ts +1 -1
  145. package/components/Button/ArrowRightIcon.d.ts +1 -1
  146. package/components/Button/Button/Button.js +20 -16
  147. package/components/Button/Button/Button.js.map +1 -1
  148. package/components/Button/Button.d.ts +7 -2
  149. package/components/Button/Button.styles/Button.styles.js +1 -1
  150. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  151. package/components/Button/ButtonIcon/ButtonIcon.js +20 -1
  152. package/components/Button/ButtonIcon/ButtonIcon.js.map +1 -1
  153. package/components/Button/ButtonIcon.d.ts +3 -1
  154. package/components/Checkbox/CheckedIcon.d.ts +1 -1
  155. package/components/Checkbox/IndeterminateIcon.d.ts +1 -1
  156. package/components/DateInput/CalendarIcon.d.ts +1 -1
  157. package/components/DatePicker/DatePicker/DatePicker.js +62 -112
  158. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  159. package/components/DatePicker/DatePicker.d.ts +17 -16
  160. package/components/DatePicker/DatePicker.styles/DatePicker.styles.js +1 -7
  161. package/components/DatePicker/DatePicker.styles/DatePicker.styles.js.map +1 -1
  162. package/components/DatePicker/DatePicker.styles.d.ts +0 -3
  163. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
  164. package/components/DatePicker/DatePickerHelpers.d.ts +1 -1
  165. package/components/DatePicker/Picker/Picker.js +66 -50
  166. package/components/DatePicker/Picker/Picker.js.map +1 -1
  167. package/components/DatePicker/Picker.d.ts +9 -8
  168. package/components/DatePicker/Picker.styles/Picker.styles.js +13 -0
  169. package/components/DatePicker/Picker.styles/Picker.styles.js.map +1 -0
  170. package/components/DatePicker/Picker.styles/package.json +6 -0
  171. package/components/DatePicker/Picker.styles.d.ts +5 -0
  172. package/components/DatePicker/locale/locales/en/en.js +3 -3
  173. package/components/DatePicker/locale/locales/en/en.js.map +1 -1
  174. package/components/DatePicker/locale/locales/ru/ru.js +3 -3
  175. package/components/DatePicker/locale/locales/ru/ru.js.map +1 -1
  176. package/components/DatePicker/locale/types.d.ts +2 -2
  177. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -2
  178. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  179. package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  180. package/components/FileUploader/FileUploader/FileUploader.js +1 -3
  181. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  182. package/components/FileUploader/FileUploader.d.ts +0 -1
  183. package/components/FileUploader/UploadIcon.d.ts +1 -1
  184. package/components/FxInput/MathFunctionIcon.d.ts +1 -1
  185. package/components/FxInput/UndoIcon.d.ts +1 -1
  186. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +20 -4
  187. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  188. package/components/Kebab/Kebab/Kebab.js +20 -11
  189. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  190. package/components/Kebab/Kebab.d.ts +1 -4
  191. package/components/Kebab/KebabIcon.d.ts +1 -1
  192. package/components/Loader/Loader/Loader.js +2 -0
  193. package/components/Loader/Loader/Loader.js.map +1 -1
  194. package/components/Modal/Modal/Modal.js +11 -28
  195. package/components/Modal/Modal/Modal.js.map +1 -1
  196. package/components/Modal/Modal.d.ts +3 -3
  197. package/components/Modal/Modal.styles/Modal.styles.js +30 -24
  198. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  199. package/components/Modal/Modal.styles.d.ts +2 -0
  200. package/components/Modal/ModalBody/ModalBody.js +2 -0
  201. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  202. package/components/Modal/ModalFooter/ModalFooter.js +6 -2
  203. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  204. package/components/Modal/ModalHeader/ModalHeader.js +6 -2
  205. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  206. package/components/Paging/ForwardIcon.d.ts +1 -1
  207. package/components/PasswordInput/ClosedIcon.d.ts +1 -1
  208. package/components/PasswordInput/OpenedIcon.d.ts +1 -1
  209. package/components/PasswordInput/PasswordInput/PasswordInput.js +5 -6
  210. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  211. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +4 -12
  212. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  213. package/components/ScrollContainer/ScrollContainer.d.ts +0 -1
  214. package/components/Select/ArrowDownIcon.d.ts +1 -1
  215. package/components/SidePage/SidePage/SidePage.js +3 -9
  216. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  217. package/components/SidePage/SidePage.d.ts +3 -3
  218. package/components/Spinner/Spinner.md +1 -1
  219. package/components/Switcher/Switcher/Switcher.js +2 -8
  220. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  221. package/components/Switcher/Switcher.d.ts +2 -4
  222. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  223. package/components/TokenInput/TokenInput.d.ts +1 -44
  224. package/components/TokenInput/TokenInput.md +0 -100
  225. package/index.d.ts +0 -1
  226. package/index.js +0 -1
  227. package/index.js.map +1 -1
  228. package/{components → internal}/Calendar/Calendar/Calendar.js +71 -136
  229. package/internal/Calendar/Calendar/Calendar.js.map +1 -0
  230. package/{components → internal}/Calendar/Calendar/package.json +1 -1
  231. package/internal/Calendar/Calendar.d.ts +63 -0
  232. package/internal/Calendar/Calendar.styles/Calendar.styles.js +14 -0
  233. package/internal/Calendar/Calendar.styles/Calendar.styles.js.map +1 -0
  234. package/{components → internal}/Calendar/Calendar.styles/package.json +1 -1
  235. package/{components → internal}/Calendar/Calendar.styles.d.ts +0 -1
  236. package/{components → internal}/Calendar/CalendarDateShape/package.json +1 -1
  237. package/{components → internal}/Calendar/CalendarScrollEvents/package.json +1 -1
  238. package/{components → internal}/Calendar/CalendarUtils/CalendarUtils.js +0 -34
  239. package/internal/Calendar/CalendarUtils/CalendarUtils.js.map +1 -0
  240. package/{components → internal}/Calendar/CalendarUtils/package.json +1 -1
  241. package/{components → internal}/Calendar/CalendarUtils.d.ts +2 -19
  242. package/{components → internal}/Calendar/DayCellView/package.json +1 -1
  243. package/{components → internal}/Calendar/DayCellView.styles/package.json +1 -1
  244. package/{components → internal}/Calendar/DayCellViewModel/package.json +1 -1
  245. package/internal/Calendar/Month/Month.js.map +1 -0
  246. package/{components → internal}/Calendar/Month/package.json +1 -1
  247. package/{components → internal}/Calendar/MonthView/MonthView.js +1 -1
  248. package/internal/Calendar/MonthView/MonthView.js.map +1 -0
  249. package/{components → internal}/Calendar/MonthView/package.json +1 -1
  250. package/{components → internal}/Calendar/MonthView.d.ts +1 -1
  251. package/{components → internal}/Calendar/MonthView.styles/package.json +1 -1
  252. package/{components → internal}/Calendar/MonthViewModel/package.json +1 -1
  253. package/{components → internal}/Calendar/config/package.json +1 -1
  254. package/{components → internal}/Calendar/index/package.json +1 -1
  255. package/{components → internal}/Calendar/package.json +1 -1
  256. package/internal/CloseButtonIcon/CrossIcon.d.ts +1 -1
  257. package/internal/CustomComboBox/ArrowDownIcon.d.ts +1 -1
  258. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +9 -11
  259. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  260. package/internal/DateSelect/DateSelect/DateSelect.js +2 -4
  261. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  262. package/internal/FileUploaderControl/FileUploaderFile/DeleteIcon.d.ts +1 -1
  263. package/internal/FileUploaderControl/FileUploaderFile/ErrorIcon.d.ts +1 -1
  264. package/internal/FileUploaderControl/FileUploaderFile/OkIcon.d.ts +1 -1
  265. package/internal/InputLikeText/InputLikeText/InputLikeText.js +2 -5
  266. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  267. package/internal/NativeDateInput/utils/utils.js.map +1 -1
  268. package/internal/NativeDateInput/utils.d.ts +1 -1
  269. package/internal/PopupMenu/PopupMenu/PopupMenu.js +2 -13
  270. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  271. package/internal/PopupMenu/PopupMenu.d.ts +0 -8
  272. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  273. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +6 -1
  274. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  275. package/internal/ZIndex/ZIndexStorage.d.ts +5 -0
  276. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js +1 -1
  277. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js.map +1 -1
  278. package/internal/icons2022/LoadingIcon.d.ts +1 -1
  279. package/internal/icons2022/iconSizer/iconSizer.js +2 -2
  280. package/internal/icons2022/iconSizer/iconSizer.js.map +1 -1
  281. package/internal/icons2022/iconSizer.d.ts +1 -1
  282. package/internal/themes/DefaultTheme/DefaultTheme.js +1 -21
  283. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  284. package/internal/themes/DefaultTheme.d.ts +0 -4
  285. package/lib/date/InternalDate/InternalDate.js +1 -1
  286. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  287. package/lib/date/InternalDate.d.ts +1 -1
  288. package/lib/forwardRefAndName/forwardRefAndName.js +11 -0
  289. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  290. package/lib/forwardRefAndName.d.ts +4 -0
  291. package/lib/locale/decorators/decorators.js.map +1 -1
  292. package/lib/locale/types/types.js.map +1 -1
  293. package/lib/locale/types.d.ts +0 -2
  294. package/lib/utils/utils.js +4 -1
  295. package/lib/utils/utils.js.map +1 -1
  296. package/lib/utils.d.ts +1 -0
  297. package/package.json +3 -3
  298. package/typings/html.d.ts +0 -1
  299. package/typings/utility-types.d.ts +0 -6
  300. package/cjs/components/Calendar/Calendar.d.ts +0 -104
  301. package/cjs/components/Calendar/Calendar.js +0 -475
  302. package/cjs/components/Calendar/Calendar.js.map +0 -1
  303. package/cjs/components/Calendar/Calendar.md +0 -147
  304. package/cjs/components/Calendar/Calendar.styles.js +0 -33
  305. package/cjs/components/Calendar/Calendar.styles.js.map +0 -1
  306. package/cjs/components/Calendar/CalendarUtils.js +0 -117
  307. package/cjs/components/Calendar/CalendarUtils.js.map +0 -1
  308. package/cjs/components/Calendar/Month.js.map +0 -1
  309. package/cjs/components/Calendar/locale/index.d.ts +0 -4
  310. package/cjs/components/Calendar/locale/index.js +0 -11
  311. package/cjs/components/Calendar/locale/index.js.map +0 -1
  312. package/cjs/components/Calendar/locale/locales/en.d.ts +0 -2
  313. package/cjs/components/Calendar/locale/locales/en.js +0 -16
  314. package/cjs/components/Calendar/locale/locales/en.js.map +0 -1
  315. package/cjs/components/Calendar/locale/locales/ru.d.ts +0 -2
  316. package/cjs/components/Calendar/locale/locales/ru.js +0 -16
  317. package/cjs/components/Calendar/locale/locales/ru.js.map +0 -1
  318. package/cjs/components/Calendar/locale/types.d.ts +0 -3
  319. package/cjs/components/Calendar/locale/types.js +0 -1
  320. package/cjs/components/Calendar/locale/types.js.map +0 -1
  321. package/components/Calendar/Calendar/Calendar.js.map +0 -1
  322. package/components/Calendar/Calendar.d.ts +0 -104
  323. package/components/Calendar/Calendar.md +0 -147
  324. package/components/Calendar/Calendar.styles/Calendar.styles.js +0 -17
  325. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +0 -1
  326. package/components/Calendar/CalendarUtils/CalendarUtils.js.map +0 -1
  327. package/components/Calendar/Month/Month.js.map +0 -1
  328. package/components/Calendar/MonthView/MonthView.js.map +0 -1
  329. package/components/Calendar/locale/index/index.js +0 -8
  330. package/components/Calendar/locale/index/index.js.map +0 -1
  331. package/components/Calendar/locale/index/package.json +0 -6
  332. package/components/Calendar/locale/index.d.ts +0 -4
  333. package/components/Calendar/locale/locales/en/en.js +0 -3
  334. package/components/Calendar/locale/locales/en/en.js.map +0 -1
  335. package/components/Calendar/locale/locales/en/package.json +0 -6
  336. package/components/Calendar/locale/locales/en.d.ts +0 -2
  337. package/components/Calendar/locale/locales/ru/package.json +0 -6
  338. package/components/Calendar/locale/locales/ru/ru.js +0 -3
  339. package/components/Calendar/locale/locales/ru/ru.js.map +0 -1
  340. package/components/Calendar/locale/locales/ru.d.ts +0 -2
  341. package/components/Calendar/locale/package.json +0 -6
  342. package/components/Calendar/locale/types/package.json +0 -6
  343. package/components/Calendar/locale/types/types.js +0 -1
  344. package/components/Calendar/locale/types/types.js.map +0 -1
  345. package/components/Calendar/locale/types.d.ts +0 -3
  346. /package/cjs/{components → internal}/Calendar/CalendarDateShape.d.ts +0 -0
  347. /package/cjs/{components → internal}/Calendar/CalendarDateShape.js +0 -0
  348. /package/cjs/{components → internal}/Calendar/CalendarDateShape.js.map +0 -0
  349. /package/cjs/{components → internal}/Calendar/CalendarScrollEvents.d.ts +0 -0
  350. /package/cjs/{components → internal}/Calendar/CalendarScrollEvents.js +0 -0
  351. /package/cjs/{components → internal}/Calendar/CalendarScrollEvents.js.map +0 -0
  352. /package/cjs/{components → internal}/Calendar/DayCellView.d.ts +0 -0
  353. /package/cjs/{components → internal}/Calendar/DayCellView.js +0 -0
  354. /package/cjs/{components → internal}/Calendar/DayCellView.js.map +0 -0
  355. /package/cjs/{components → internal}/Calendar/DayCellView.styles.d.ts +0 -0
  356. /package/cjs/{components → internal}/Calendar/DayCellView.styles.js +0 -0
  357. /package/cjs/{components → internal}/Calendar/DayCellView.styles.js.map +0 -0
  358. /package/cjs/{components → internal}/Calendar/DayCellViewModel.d.ts +0 -0
  359. /package/cjs/{components → internal}/Calendar/DayCellViewModel.js +0 -0
  360. /package/cjs/{components → internal}/Calendar/DayCellViewModel.js.map +0 -0
  361. /package/cjs/{components → internal}/Calendar/Month.d.ts +0 -0
  362. /package/cjs/{components → internal}/Calendar/Month.js +0 -0
  363. /package/cjs/{components → internal}/Calendar/MonthView.styles.d.ts +0 -0
  364. /package/cjs/{components → internal}/Calendar/MonthView.styles.js +0 -0
  365. /package/cjs/{components → internal}/Calendar/MonthView.styles.js.map +0 -0
  366. /package/cjs/{components → internal}/Calendar/MonthViewModel.d.ts +0 -0
  367. /package/cjs/{components → internal}/Calendar/MonthViewModel.js +0 -0
  368. /package/cjs/{components → internal}/Calendar/MonthViewModel.js.map +0 -0
  369. /package/cjs/{components → internal}/Calendar/config.d.ts +0 -0
  370. /package/cjs/{components → internal}/Calendar/config.js +0 -0
  371. /package/cjs/{components → internal}/Calendar/config.js.map +0 -0
  372. /package/cjs/{components → internal}/Calendar/index.d.ts +0 -0
  373. /package/cjs/{components → internal}/Calendar/index.js +0 -0
  374. /package/cjs/{components → internal}/Calendar/index.js.map +0 -0
  375. /package/{components → internal}/Calendar/CalendarDateShape/CalendarDateShape.js +0 -0
  376. /package/{components → internal}/Calendar/CalendarDateShape/CalendarDateShape.js.map +0 -0
  377. /package/{components → internal}/Calendar/CalendarDateShape.d.ts +0 -0
  378. /package/{components → internal}/Calendar/CalendarScrollEvents/CalendarScrollEvents.js +0 -0
  379. /package/{components → internal}/Calendar/CalendarScrollEvents/CalendarScrollEvents.js.map +0 -0
  380. /package/{components → internal}/Calendar/CalendarScrollEvents.d.ts +0 -0
  381. /package/{components → internal}/Calendar/DayCellView/DayCellView.js +0 -0
  382. /package/{components → internal}/Calendar/DayCellView/DayCellView.js.map +0 -0
  383. /package/{components → internal}/Calendar/DayCellView.d.ts +0 -0
  384. /package/{components → internal}/Calendar/DayCellView.styles/DayCellView.styles.js +0 -0
  385. /package/{components → internal}/Calendar/DayCellView.styles/DayCellView.styles.js.map +0 -0
  386. /package/{components → internal}/Calendar/DayCellView.styles.d.ts +0 -0
  387. /package/{components → internal}/Calendar/DayCellViewModel/DayCellViewModel.js +0 -0
  388. /package/{components → internal}/Calendar/DayCellViewModel/DayCellViewModel.js.map +0 -0
  389. /package/{components → internal}/Calendar/DayCellViewModel.d.ts +0 -0
  390. /package/{components → internal}/Calendar/Month/Month.js +0 -0
  391. /package/{components → internal}/Calendar/Month.d.ts +0 -0
  392. /package/{components → internal}/Calendar/MonthView.styles/MonthView.styles.js +0 -0
  393. /package/{components → internal}/Calendar/MonthView.styles/MonthView.styles.js.map +0 -0
  394. /package/{components → internal}/Calendar/MonthView.styles.d.ts +0 -0
  395. /package/{components → internal}/Calendar/MonthViewModel/MonthViewModel.js +0 -0
  396. /package/{components → internal}/Calendar/MonthViewModel/MonthViewModel.js.map +0 -0
  397. /package/{components → internal}/Calendar/MonthViewModel.d.ts +0 -0
  398. /package/{components → internal}/Calendar/config/config.js +0 -0
  399. /package/{components → internal}/Calendar/config/config.js.map +0 -0
  400. /package/{components → internal}/Calendar/config.d.ts +0 -0
  401. /package/{components → internal}/Calendar/index/index.js +0 -0
  402. /package/{components → internal}/Calendar/index/index.js.map +0 -0
  403. /package/{components → internal}/Calendar/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["DateSelect.tsx"],"names":["itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","DateSelect","DatePickerLocaleHelper","getProps","defaultProps","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","isMobile","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","value","onValueChange","handleKey","e","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","LayoutEvents","addListener","componentWillUnmount","remove","render","theme","renderMain","renderMain2022","width","rootProps","className","styles","Boolean","style","ref","getItem","arrow","arrowDisabled","renderMenu","root2022","onClick","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","iconUp","iconDown","menu","menuUp","itemsHolder","menuDown","type","locale","months","getMinPos","getMaxPos","calculatedPos","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","number","isRequired","oneOfType","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ArrowCollapseCVOpenIcon16Regular } from '../icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular';\nimport { ArrowCUpIcon16Regular } from '../icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular';\nimport { ArrowCDownIcon16Regular } from '../icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n} as const;\n\ntype DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;\n\n@locale('Calendar', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps: DefaultProps = {\n type: 'year',\n width: 'auto',\n };\n\n private getProps = createPropsGetter(DateSelect.defaultProps);\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\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 if (isTheme2022(this.theme)) {\n return this.renderMain2022();\n }\n\n const { disabled } = this.props;\n const width = this.getProps().width;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private renderMain2022() {\n const { disabled } = this.props;\n const width = this.getProps().width;\n const rootProps = {\n className: cx(styles.root(this.theme), styles.root2022(), disabled && styles.disabled()),\n style: { width },\n ref: this.refRoot,\n onClick: this.open,\n };\n\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()}>\n {this.getItem(0)}\n </div>\n {!disabled && <ArrowCollapseCVOpenIcon16Regular color=\"#ADADAD\" />}\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n const iconUp = isTheme2022(this.theme) ? <ArrowCUpIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronUpIcon />;\n const iconDown = isTheme2022(this.theme) ? <ArrowCDownIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronDownIcon />;\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconUp}</span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconDown}</span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return () => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.getProps().type === 'month') {\n return this.locale.months?.[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.getProps().type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return -this.props.value * itemHeight;\n } else if (type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
1
+ {"version":3,"sources":["DateSelect.tsx"],"names":["itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","DateSelect","DatePickerLocaleHelper","getProps","defaultProps","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","isMobile","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","value","onValueChange","handleKey","e","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","LayoutEvents","addListener","componentWillUnmount","remove","render","theme","renderMain","renderMain2022","width","rootProps","className","styles","Boolean","style","ref","getItem","arrow","arrowDisabled","renderMenu","root2022","onClick","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","iconUp","iconDown","menu","menuUp","itemsHolder","menuDown","type","locale","months","getMinPos","getMaxPos","calculatedPos","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","number","isRequired","oneOfType","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ArrowCollapseCVOpenIcon16Regular } from '../icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular';\nimport { ArrowCUpIcon16Regular } from '../icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular';\nimport { ArrowCDownIcon16Regular } from '../icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n} as const;\n\ntype DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps: DefaultProps = {\n type: 'year',\n width: 'auto',\n };\n\n private getProps = createPropsGetter(DateSelect.defaultProps);\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\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 if (isTheme2022(this.theme)) {\n return this.renderMain2022();\n }\n\n const { disabled } = this.props;\n const width = this.getProps().width;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private renderMain2022() {\n const { disabled } = this.props;\n const width = this.getProps().width;\n const rootProps = {\n className: cx(styles.root(this.theme), styles.root2022(), disabled && styles.disabled()),\n style: { width },\n ref: this.refRoot,\n onClick: this.open,\n };\n\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()}>\n {this.getItem(0)}\n </div>\n {!disabled && <ArrowCollapseCVOpenIcon16Regular color=\"#ADADAD\" />}\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n const iconUp = isTheme2022(this.theme) ? <ArrowCUpIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronUpIcon />;\n const iconDown = isTheme2022(this.theme) ? <ArrowCDownIcon16Regular color=\"#ADADAD\" /> : <ArrowChevronDownIcon />;\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconUp}</span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>{iconDown}</span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return () => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.getProps().type === 'month') {\n return this.locale.months[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.getProps().type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return -this.props.value * itemHeight;\n } else if (type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
@@ -1,3 +1,3 @@
1
- export declare const DeleteIcon: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<SVGSVGElement, Omit<import("../../icons2022/BaseIcon").IconProps, "size"> & {
1
+ export declare const DeleteIcon: import("../../../lib/forwardRefAndName").ReactUIIconWithRef<SVGSVGElement, Omit<import("../../icons2022/BaseIcon").IconProps, "size"> & {
2
2
  size?: number | "small" | "medium" | "large" | undefined;
3
3
  }>;
@@ -1,3 +1,3 @@
1
- export declare const ErrorIcon: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<SVGSVGElement, Omit<import("../../icons2022/BaseIcon").IconProps, "size"> & {
1
+ export declare const ErrorIcon: import("../../../lib/forwardRefAndName").ReactUIIconWithRef<SVGSVGElement, Omit<import("../../icons2022/BaseIcon").IconProps, "size"> & {
2
2
  size?: number | "small" | "medium" | "large" | undefined;
3
3
  }>;
@@ -1,3 +1,3 @@
1
- export declare const OkIcon: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<SVGSVGElement, Omit<import("../../icons2022/BaseIcon").IconProps, "size"> & {
1
+ export declare const OkIcon: import("../../../lib/forwardRefAndName").ReactUIIconWithRef<SVGSVGElement, Omit<import("../../icons2022/BaseIcon").IconProps, "size"> & {
2
2
  size?: number | "small" | "medium" | "large" | undefined;
3
3
  }>;
@@ -1,7 +1,6 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.InputLikeTextDataTids = exports.InputLikeText = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
- var _reactDom = _interopRequireDefault(require("react-dom"));
5
4
 
6
5
  var _utils = require("../../lib/utils");
7
6
  var _identifiers = require("../../lib/events/keyboard/identifiers");
@@ -451,9 +450,7 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
451
450
  }
452
451
  }
453
452
 
454
- _reactDom.default.flushSync(function () {
455
- _this.setState({ focused: true });
456
- });
453
+ _this.setState({ focused: true });
457
454
 
458
455
  if (_this.props.onFocus) {
459
456
  _this.props.onFocus(e);
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeTextDataTids","root","input","nativeInput","InputLikeText","rootNode","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","isIE11","document","body","setTimeout","focusTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","className","styles","jsInputStyles","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","context","InputLayoutContextDefault","Object","assign","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","ReactDOM","flushSync","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","React","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n ReactDOM.flushSync(() => {\n this.setState({ focused: true });\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeTextDataTids","root","input","nativeInput","InputLikeText","rootNode","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","isIE11","document","body","setTimeout","focusTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","className","styles","jsInputStyles","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","context","InputLayoutContextDefault","Object","assign","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","React","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Nullable } from '../../typings/utility-types';
2
- import { CalendarDateShape } from '../../components/Calendar/CalendarDateShape';
2
+ import { CalendarDateShape } from '../Calendar';
3
3
  export declare const getDateForNative: (componentDate: Nullable<string>) => string | undefined;
4
4
  export declare const getDateForComponent: (nativeDate: Nullable<string>) => string;
5
5
  export declare const getNativeDateFromShape: (componentDate: CalendarDateShape | undefined | null) => string | undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["getDateForNative","componentDate","undefined","splittedDate","split","getDateForComponent","nativeDate","getNativeDateFromShape","date","month","year","map","x","toString","padStart","upMonthOfShape","DateShape","getShapeFromNativeDate","Number"],"mappings":";;;AAGO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,aAAD,EAAqC;AACnE,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGF,aAAa,CAACG,KAAd,CAAoB,GAApB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM,C;;AAUA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAkC;AACnE,MAAI,CAACA,UAAL,EAAiB;AACf,WAAO,EAAP;AACD;;AAED,MAAMH,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM,C;;AAUA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACN,aAAD,EAAyD;AAC7F,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;AACD,aAA4B,CAACD,aAAa,CAACO,IAAf,EAAqBP,aAAa,CAACQ,KAAnC,EAA0CR,aAAa,CAACS,IAAxD,EAA8DC,GAA9D,CAAkE,UAACC,CAAD,UAAOA,CAAC,CAACC,QAAF,EAAP,EAAlE,CAA5B,CAAOL,IAAP,WAAaC,KAAb,WAAoBC,IAApB;;AAEA,SAAUA,IAAI,CAACI,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAAV,SAAmCL,KAAK,CAACK,QAAN,CAAe,CAAf,EAAkB,GAAlB,CAAnC,SAA6DN,IAAI,CAACM,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAA7D;AACD,CAPM,C;;AASA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,SAAD,EAA6E;AACzG,MAAI,CAACA,SAAL,EAAgB;AACd,WAAOd,SAAP;AACD;;AAED,oCAAYc,SAAZ,IAAuBP,KAAK,EAAEO,SAAS,CAACP,KAAV,GAAkB,CAAhD;AACD,CANM,C;;AAQA,IAAMQ,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACX,UAAD,EAAiE;AACrG,MAAI,CAACA,UAAL,EAAiB;AACf,WAAOJ,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,EAAsBO,GAAtB,CAA0B,UAACH,IAAD,UAAUU,MAAM,CAACV,IAAD,CAAhB,EAA1B,CAArB;;AAEA,SAAO,EAAEE,IAAI,EAAEP,YAAY,CAAC,CAAD,CAApB,EAAyBM,KAAK,EAAEN,YAAY,CAAC,CAAD,CAA5C,EAAiDK,IAAI,EAAEL,YAAY,CAAC,CAAD,CAAnE,EAAP;AACD,CARM,C","sourcesContent":["import { Nullable } from '../../typings/utility-types';\nimport { CalendarDateShape } from '../../components/Calendar/CalendarDateShape';\n\nexport const getDateForNative = (componentDate: Nullable<string>) => {\n if (!componentDate) {\n return undefined;\n }\n\n const splittedDate = componentDate.split('.');\n\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`;\n};\n\nexport const getDateForComponent = (nativeDate: Nullable<string>) => {\n if (!nativeDate) {\n return '';\n }\n\n const splittedDate = nativeDate.split('-');\n\n return `${splittedDate[2]}.${splittedDate[1]}.${splittedDate[0]}`;\n};\n\nexport const getNativeDateFromShape = (componentDate: CalendarDateShape | undefined | null) => {\n if (!componentDate) {\n return undefined;\n }\n const [date, month, year] = [componentDate.date, componentDate.month, componentDate.year].map((x) => x.toString());\n\n return `${year.padStart(4, '0')}-${month.padStart(2, '0')}-${date.padStart(2, '0')}`;\n};\n\nexport const upMonthOfShape = (DateShape: CalendarDateShape | undefined): CalendarDateShape | undefined => {\n if (!DateShape) {\n return undefined;\n }\n\n return { ...DateShape, month: DateShape.month + 1 };\n};\n\nexport const getShapeFromNativeDate = (nativeDate: Nullable<string>): CalendarDateShape | undefined => {\n if (!nativeDate) {\n return undefined;\n }\n\n const splittedDate = nativeDate.split('-').map((date) => Number(date));\n\n return { year: splittedDate[0], month: splittedDate[1], date: splittedDate[2] };\n};\n"]}
1
+ {"version":3,"sources":["utils.ts"],"names":["getDateForNative","componentDate","undefined","splittedDate","split","getDateForComponent","nativeDate","getNativeDateFromShape","date","month","year","map","x","toString","padStart","upMonthOfShape","DateShape","getShapeFromNativeDate","Number"],"mappings":";;;AAGO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,aAAD,EAAqC;AACnE,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGF,aAAa,CAACG,KAAd,CAAoB,GAApB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM,C;;AAUA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAkC;AACnE,MAAI,CAACA,UAAL,EAAiB;AACf,WAAO,EAAP;AACD;;AAED,MAAMH,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,CAArB;;AAEA,SAAUD,YAAY,CAAC,CAAD,CAAtB,SAA6BA,YAAY,CAAC,CAAD,CAAzC,SAAgDA,YAAY,CAAC,CAAD,CAA5D;AACD,CARM,C;;AAUA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACN,aAAD,EAAyD;AAC7F,MAAI,CAACA,aAAL,EAAoB;AAClB,WAAOC,SAAP;AACD;AACD,aAA4B,CAACD,aAAa,CAACO,IAAf,EAAqBP,aAAa,CAACQ,KAAnC,EAA0CR,aAAa,CAACS,IAAxD,EAA8DC,GAA9D,CAAkE,UAACC,CAAD,UAAOA,CAAC,CAACC,QAAF,EAAP,EAAlE,CAA5B,CAAOL,IAAP,WAAaC,KAAb,WAAoBC,IAApB;;AAEA,SAAUA,IAAI,CAACI,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAAV,SAAmCL,KAAK,CAACK,QAAN,CAAe,CAAf,EAAkB,GAAlB,CAAnC,SAA6DN,IAAI,CAACM,QAAL,CAAc,CAAd,EAAiB,GAAjB,CAA7D;AACD,CAPM,C;;AASA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,SAAD,EAA6E;AACzG,MAAI,CAACA,SAAL,EAAgB;AACd,WAAOd,SAAP;AACD;;AAED,oCAAYc,SAAZ,IAAuBP,KAAK,EAAEO,SAAS,CAACP,KAAV,GAAkB,CAAhD;AACD,CANM,C;;AAQA,IAAMQ,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACX,UAAD,EAAiE;AACrG,MAAI,CAACA,UAAL,EAAiB;AACf,WAAOJ,SAAP;AACD;;AAED,MAAMC,YAAY,GAAGG,UAAU,CAACF,KAAX,CAAiB,GAAjB,EAAsBO,GAAtB,CAA0B,UAACH,IAAD,UAAUU,MAAM,CAACV,IAAD,CAAhB,EAA1B,CAArB;;AAEA,SAAO,EAAEE,IAAI,EAAEP,YAAY,CAAC,CAAD,CAApB,EAAyBM,KAAK,EAAEN,YAAY,CAAC,CAAD,CAA5C,EAAiDK,IAAI,EAAEL,YAAY,CAAC,CAAD,CAAnE,EAAP;AACD,CARM,C","sourcesContent":["import { Nullable } from '../../typings/utility-types';\nimport { CalendarDateShape } from '../Calendar';\n\nexport const getDateForNative = (componentDate: Nullable<string>) => {\n if (!componentDate) {\n return undefined;\n }\n\n const splittedDate = componentDate.split('.');\n\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`;\n};\n\nexport const getDateForComponent = (nativeDate: Nullable<string>) => {\n if (!nativeDate) {\n return '';\n }\n\n const splittedDate = nativeDate.split('-');\n\n return `${splittedDate[2]}.${splittedDate[1]}.${splittedDate[0]}`;\n};\n\nexport const getNativeDateFromShape = (componentDate: CalendarDateShape | undefined | null) => {\n if (!componentDate) {\n return undefined;\n }\n const [date, month, year] = [componentDate.date, componentDate.month, componentDate.year].map((x) => x.toString());\n\n return `${year.padStart(4, '0')}-${month.padStart(2, '0')}-${date.padStart(2, '0')}`;\n};\n\nexport const upMonthOfShape = (DateShape: CalendarDateShape | undefined): CalendarDateShape | undefined => {\n if (!DateShape) {\n return undefined;\n }\n\n return { ...DateShape, month: DateShape.month + 1 };\n};\n\nexport const getShapeFromNativeDate = (nativeDate: Nullable<string>): CalendarDateShape | undefined => {\n if (!nativeDate) {\n return undefined;\n }\n\n const splittedDate = nativeDate.split('-').map((date) => Number(date));\n\n return { year: splittedDate[0], month: splittedDate[1], date: splittedDate[2] };\n};\n"]}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import { HTMLProps } from '../../typings/html';
3
2
  import { PopupPositionsType } from '../Popup';
4
3
  import { CommonProps } from '../../internal/CommonWrapper';
5
4
  export interface PopupMenuCaptionProps {
@@ -39,12 +38,6 @@ export interface PopupMenuProps extends CommonProps {
39
38
  onOpen?: () => void;
40
39
  /** Действие при закрытии меню */
41
40
  onClose?: () => void;
42
- /**
43
- * Позволяет задать `id` выпадающему меню.
44
- *
45
- * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.
46
- */
47
- popupMenuId?: HTMLProps['id'];
48
41
  }
49
42
  interface PopupMenuState {
50
43
  menuVisible: boolean;
@@ -81,7 +74,6 @@ export declare class PopupMenu extends React.Component<PopupMenuProps, PopupMenu
81
74
  close: () => void;
82
75
  private refInternalMenu;
83
76
  private handleOpen;
84
- private passPropsToCaption;
85
77
  private renderCaption;
86
78
  private hideMenuWithoutFocusing;
87
79
  private getPositions;
@@ -1,6 +1,5 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.PopupMenuType = exports.PopupMenuDataTids = exports.PopupMenu = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
 
3
-
4
3
  var _identifiers = require("../../lib/events/keyboard/identifiers");
5
4
 
6
5
 
@@ -61,12 +60,6 @@ var _PopupMenu = require("./PopupMenu.styles");var _class, _class2, _temp;
61
60
 
62
61
 
63
62
 
64
-
65
-
66
-
67
-
68
-
69
-
70
63
 
71
64
 
72
65
 
@@ -169,11 +162,6 @@ PopupMenu = (0, _rootNode.rootNode)(_class = (0, _decorator.responsiveLayout)(_c
169
162
 
170
163
 
171
164
 
172
-
173
-
174
-
175
-
176
-
177
165
 
178
166
 
179
167
 
@@ -191,14 +179,6 @@ PopupMenu = (0, _rootNode.rootNode)(_class = (0, _decorator.responsiveLayout)(_c
191
179
  }
192
180
  };_this.
193
181
 
194
- passPropsToCaption = function (caption) {
195
- if (typeof caption === 'string' || typeof caption === 'number') {
196
- return caption;
197
- }
198
-
199
- return /*#__PURE__*/_react.default.cloneElement(caption, { 'aria-haspopup': true });
200
- };_this.
201
-
202
182
  renderCaption = function () {
203
183
  if (typeof _this.props.caption === 'function') {
204
184
  var caption = _this.props.caption({
@@ -214,7 +194,7 @@ PopupMenu = (0, _rootNode.rootNode)(_class = (0, _decorator.responsiveLayout)(_c
214
194
  className: _PopupMenu.styles.caption(),
215
195
  ref: function ref(element) {return _this.captionWrapper = element;} },
216
196
 
217
- _this.passPropsToCaption(caption)));
197
+ caption));
218
198
 
219
199
 
220
200
  }
@@ -227,7 +207,7 @@ PopupMenu = (0, _rootNode.rootNode)(_class = (0, _decorator.responsiveLayout)(_c
227
207
  ref: function ref(element) {return _this.captionWrapper = element;},
228
208
  className: _PopupMenu.styles.caption() },
229
209
 
230
- _this.passPropsToCaption(_this.props.caption)));
210
+ _this.props.caption));
231
211
 
232
212
 
233
213
  };_this.
@@ -332,4 +312,4 @@ PopupMenu = (0, _rootNode.rootNode)(_class = (0, _decorator.responsiveLayout)(_c
332
312
 
333
313
  var restoreFocus = event.type === 'keydown';
334
314
  _this.hideMenu(restoreFocus);
335
- };return _this;}var _proto = PopupMenu.prototype;_proto.render = function render() {var _this$getProps = this.getProps(),popupHasPin = _this$getProps.popupHasPin,disableAnimations = _this$getProps.disableAnimations;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.hideMenuWithoutFocusing, onFocusOutside: this.hideMenuWithoutFocusing, active: this.state.menuVisible }, /*#__PURE__*/_react.default.createElement("div", { id: this.props.popupMenuId, "data-tid": PopupMenuDataTids.root, className: _PopupMenu.styles.container(), style: { width: this.props.width } }, this.renderCaption(), this.captionWrapper && this.props.children && /*#__PURE__*/_react.default.createElement(_Popup.Popup, { anchorElement: this.captionWrapper, opened: this.state.menuVisible, hasShadow: true, margin: this.props.popupMargin, hasPin: popupHasPin, pinOffset: this.props.popupPinOffset, positions: this.getPositions(), disableAnimations: disableAnimations, onOpen: this.handleOpen, mobileOnCloseRequest: this.hideMenu, width: this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto' }, /*#__PURE__*/_react.default.createElement(_InternalMenu.InternalMenu, { hasShadow: false, maxHeight: this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none', onKeyDown: this.handleKeyDown, onItemClick: this.handleItemSelection, cyclicSelection: false, ref: this.refInternalMenu, initialSelectedItemIndex: this.state.firstItemShouldBeSelected ? 0 : -1, header: this.props.header, footer: this.props.footer }, this.props.children)))));};_proto.getPositions = function getPositions() {var positions = this.getProps().positions;if (positions && (0, _validatePositions.isValidPositions)(positions)) {return positions;}return Positions;};return PopupMenu;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'PopupMenu', _class2.defaultProps = { positions: Positions, type: PopupMenuType.Tooltip, popupHasPin: true, disableAnimations: false }, _class2.Type = PopupMenuType, _temp)) || _class) || _class;exports.PopupMenu = PopupMenu;
315
+ };return _this;}var _proto = PopupMenu.prototype;_proto.render = function render() {var _this$getProps = this.getProps(),popupHasPin = _this$getProps.popupHasPin,disableAnimations = _this$getProps.disableAnimations;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.hideMenuWithoutFocusing, onFocusOutside: this.hideMenuWithoutFocusing, active: this.state.menuVisible }, /*#__PURE__*/_react.default.createElement("div", { "data-tid": PopupMenuDataTids.root, className: _PopupMenu.styles.container(), style: { width: this.props.width } }, this.renderCaption(), this.captionWrapper && this.props.children && /*#__PURE__*/_react.default.createElement(_Popup.Popup, { anchorElement: this.captionWrapper, opened: this.state.menuVisible, hasShadow: true, margin: this.props.popupMargin, hasPin: popupHasPin, pinOffset: this.props.popupPinOffset, positions: this.getPositions(), disableAnimations: disableAnimations, onOpen: this.handleOpen, mobileOnCloseRequest: this.hideMenu, width: this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto' }, /*#__PURE__*/_react.default.createElement(_InternalMenu.InternalMenu, { hasShadow: false, maxHeight: this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none', onKeyDown: this.handleKeyDown, onItemClick: this.handleItemSelection, cyclicSelection: false, ref: this.refInternalMenu, initialSelectedItemIndex: this.state.firstItemShouldBeSelected ? 0 : -1, header: this.props.header, footer: this.props.footer }, this.props.children)))));};_proto.getPositions = function getPositions() {var positions = this.getProps().positions;if (positions && (0, _validatePositions.isValidPositions)(positions)) {return positions;}return Positions;};return PopupMenu;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'PopupMenu', _class2.defaultProps = { positions: Positions, type: PopupMenuType.Tooltip, popupHasPin: true, disableAnimations: false }, _class2.Type = PopupMenuType, _temp)) || _class) || _class;exports.PopupMenu = PopupMenu;
@@ -1 +1 @@
1
- {"version":3,"sources":["PopupMenu.tsx"],"names":["PopupMenuType","Dropdown","Tooltip","PopupMenuDataTids","root","caption","Positions","PopupMenu","rootNode","responsiveLayout","getProps","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","refInternalMenu","element","handleOpen","focus","passPropsToCaption","React","cloneElement","renderCaption","props","opened","openMenu","closeMenu","toggleMenu","styles","handleCaptionClick","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","render","popupHasPin","disableAnimations","setRootNode","popupMenuId","container","width","children","popupMargin","popupPinOffset","getPositions","isMobileLayout","menuWidth","menuMaxHeight","header","footer","positions","Component","__KONTUR_REACT_UI__","Type"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { HTMLProps } from '../../typings/html';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { InternalMenu } from '../InternalMenu';\nimport { Popup, PopupPositionsType } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n}\n\nexport interface PopupMenuProps extends CommonProps {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню */\n onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n /**\n * Позволяет задать `id` выпадающему меню.\n *\n * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.\n */\n popupMenuId?: HTMLProps['id'];\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nexport const PopupMenuDataTids = {\n root: 'PopupMenu__root',\n caption: 'PopupMenu__caption',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<InternalMenu> = null;\n private setRootNode!: TSetRootNode;\n\n public render() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div\n id={this.props.popupMenuId}\n data-tid={PopupMenuDataTids.root}\n className={styles.container()}\n style={{ width: this.props.width }}\n >\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <InternalMenu\n hasShadow={false}\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n cyclicSelection={false}\n ref={this.refInternalMenu}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </InternalMenu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private refInternalMenu = (element: Nullable<InternalMenu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement, { 'aria-haspopup': true });\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (document) {\n this.savedFocusableElement = document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\n\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}
1
+ {"version":3,"sources":["PopupMenu.tsx"],"names":["PopupMenuType","Dropdown","Tooltip","PopupMenuDataTids","root","caption","Positions","PopupMenu","rootNode","responsiveLayout","getProps","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","refInternalMenu","element","handleOpen","focus","renderCaption","props","opened","openMenu","closeMenu","toggleMenu","styles","handleCaptionClick","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","render","popupHasPin","disableAnimations","setRootNode","container","width","children","popupMargin","popupPinOffset","getPositions","isMobileLayout","menuWidth","menuMaxHeight","header","footer","positions","React","Component","__KONTUR_REACT_UI__","Type"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { InternalMenu } from '../InternalMenu';\nimport { Popup, PopupPositionsType } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n}\n\nexport interface PopupMenuProps extends CommonProps {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню */\n onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nexport const PopupMenuDataTids = {\n root: 'PopupMenu__root',\n caption: 'PopupMenu__caption',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<InternalMenu> = null;\n private setRootNode!: TSetRootNode;\n\n public render() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div data-tid={PopupMenuDataTids.root} className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <InternalMenu\n hasShadow={false}\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n cyclicSelection={false}\n ref={this.refInternalMenu}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </InternalMenu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private refInternalMenu = (element: Nullable<InternalMenu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {caption}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.props.caption}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (document) {\n this.savedFocusableElement = document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\n\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}