@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
@@ -0,0 +1,23 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2;
2
+
3
+
4
+ var styles = (0, _Emotion.memoizeStyle)({
5
+ root: function root(t) {
6
+ var width = parseInt(t.calendarCellSize) * 7;
7
+ return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n box-sizing: content-box;\n color: ", ";\n display: block;\n padding: 0 ", ";\n width: ", "px;\n overflow: hidden;\n touch-action: none;\n "])),
8
+
9
+ t.textColorDefault,
10
+
11
+ t.calendarPaddingX,
12
+ width);
13
+
14
+
15
+
16
+ },
17
+
18
+ wrapper: function wrapper() {
19
+ return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n font-size: 14px;\n position: relative;\n "])));
20
+
21
+
22
+
23
+ } });exports.styles = styles;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Calendar.styles.ts"],"names":["styles","root","t","width","parseInt","calendarCellSize","css","textColorDefault","calendarPaddingX","wrapper"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,QAAMC,KAAK,GAAGC,QAAQ,CAACF,CAAC,CAACG,gBAAH,CAAR,GAA+B,CAA7C;AACA,eAAOC,YAAP;;AAEWJ,IAAAA,CAAC,CAACK,gBAFb;;AAIeL,IAAAA,CAAC,CAACM,gBAJjB;AAKWL,IAAAA,KALX;;;;AASD,GAZgC;;AAcjCM,EAAAA,OAdiC,qBAcvB;AACR,eAAOH,YAAP;;;;AAID,GAnBgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n const width = parseInt(t.calendarCellSize) * 7;\n return css`\n box-sizing: content-box;\n color: ${t.textColorDefault};\n display: block;\n padding: 0 ${t.calendarPaddingX};\n width: ${width}px;\n overflow: hidden;\n touch-action: none;\n `;\n },\n\n wrapper() {\n return css`\n font-size: 14px;\n position: relative;\n `;\n },\n});\n"]}
@@ -1,17 +1,12 @@
1
- import { Nullable } from '../../typings/utility-types';
2
1
  import { Theme } from '../../lib/theming/Theme';
3
2
  import { MonthViewModel } from './MonthViewModel';
4
- import { CalendarState } from './Calendar';
5
- import { CalendarDateShape } from './CalendarDateShape';
3
+ import { CalendarProps, CalendarState } from './Calendar';
6
4
  export declare const calculateScrollPosition: (months: MonthViewModel[], scrollPosition: number, deltaY: number, theme: Theme) => {
7
5
  scrollPosition: number;
8
6
  months: MonthViewModel[];
9
7
  scrollDirection: number;
10
8
  };
11
- export declare const applyDelta: (deltaY: number, theme: Theme) => ({ scrollPosition, months }: Readonly<CalendarState>, { minDate, maxDate }: {
12
- minDate: CalendarDateShape;
13
- maxDate: CalendarDateShape;
14
- }) => {
9
+ export declare const applyDelta: (deltaY: number, theme: Theme) => ({ scrollPosition, months }: Readonly<CalendarState>, { minDate, maxDate }: CalendarProps) => {
15
10
  scrollPosition: number;
16
11
  months: MonthViewModel[];
17
12
  scrollDirection: number;
@@ -22,15 +17,3 @@ export declare const applyDelta: (deltaY: number, theme: Theme) => ({ scrollPosi
22
17
  export declare const isMonthVisible: (top: number, month: MonthViewModel, theme: Theme) => boolean;
23
18
  export declare const getMonthsHeight: (months: MonthViewModel[], theme: Theme) => number;
24
19
  export declare const getMonths: (month: number, year: number) => MonthViewModel[];
25
- export declare const getMonthInNativeFormat: (initialMonth: number | undefined) => number | undefined;
26
- export declare const getInitialDate: ({ today, date, minDate, maxDate, }: {
27
- today: CalendarDateShape;
28
- date?: Nullable<CalendarDateShape>;
29
- minDate?: Nullable<CalendarDateShape>;
30
- maxDate?: Nullable<CalendarDateShape>;
31
- }) => CalendarDateShape;
32
- export declare const getTodayDate: () => {
33
- date: number;
34
- month: number;
35
- year: number;
36
- };
@@ -0,0 +1,71 @@
1
+ "use strict";exports.__esModule = true;exports.isMonthVisible = exports.getMonthsHeight = exports.getMonths = exports.calculateScrollPosition = exports.applyDelta = void 0;
2
+
3
+ var _config = require("./config");
4
+ var _MonthViewModel = require("./MonthViewModel");
5
+
6
+
7
+ var calculateScrollPosition = function calculateScrollPosition(
8
+ months,
9
+ scrollPosition,
10
+ deltaY,
11
+ theme)
12
+ {
13
+ var scrollDirection = deltaY > 0 ? 1 : -1;
14
+
15
+ var nextScrollPosition = scrollPosition - deltaY;
16
+ var nextMonths = months;
17
+
18
+ var firstMonth = months[0];
19
+ if (scrollDirection < 0 && nextScrollPosition >= firstMonth.getHeight(theme)) {
20
+ do {
21
+ nextScrollPosition -= nextMonths[0].getHeight(theme);
22
+ nextMonths = getMonths(firstMonth.month, firstMonth.year);
23
+ } while (nextScrollPosition >= nextMonths[0].getHeight(theme));
24
+ }
25
+
26
+ var lastMonth = months[months.length - 1];
27
+ if (scrollDirection > 0 && nextScrollPosition < 0) {
28
+ do {
29
+ nextScrollPosition += nextMonths[1].getHeight(theme);
30
+ nextMonths = getMonths(lastMonth.month, lastMonth.year);
31
+ } while (nextScrollPosition < 0);
32
+ }
33
+
34
+ return {
35
+ scrollPosition: nextScrollPosition,
36
+ months: nextMonths,
37
+ scrollDirection: scrollDirection };
38
+
39
+ };exports.calculateScrollPosition = calculateScrollPosition;
40
+
41
+ var applyDelta =
42
+ function applyDelta(deltaY, theme) {return (
43
+ function (_ref, _ref2) {var scrollPosition = _ref.scrollPosition,months = _ref.months;var minDate = _ref2.minDate,maxDate = _ref2.maxDate;
44
+ var scrollDirection = deltaY > 0 ? 1 : -1;
45
+ var isMinDateExceeded =
46
+ minDate && scrollDirection < 0 && minDate.year * 12 + minDate.month > months[0].year * 12 + months[0].month;
47
+
48
+ var isMaxDateExceeded =
49
+ maxDate && scrollDirection > 0 && maxDate.year * 12 + maxDate.month < months[1].year * 12 + months[1].month;
50
+
51
+ if (isMinDateExceeded) {
52
+ return { scrollPosition: 0, scrollDirection: scrollDirection };
53
+ }
54
+
55
+ if (isMaxDateExceeded) {
56
+ return { scrollPosition: months[2].getHeight(theme), scrollDirection: scrollDirection };
57
+ }
58
+
59
+ return calculateScrollPosition(months, scrollPosition, deltaY, theme);
60
+ });};exports.applyDelta = applyDelta;
61
+
62
+ var isMonthVisible = function isMonthVisible(top, month, theme) {
63
+ return top < (0, _config.themeConfig)(theme).WRAPPER_HEIGHT && top > -month.getHeight(theme);
64
+ };exports.isMonthVisible = isMonthVisible;
65
+
66
+ var getMonthsHeight = function getMonthsHeight(months, theme) {return (
67
+ months.reduce(function (a, b) {return a + b.getHeight(theme);}, 0));};exports.getMonthsHeight = getMonthsHeight;
68
+
69
+ var getMonths = function getMonths(month, year) {
70
+ return [-1, 0, 1].map(function (x) {return _MonthViewModel.MonthViewModel.create(month + x, year);});
71
+ };exports.getMonths = getMonths;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CalendarUtils.ts"],"names":["calculateScrollPosition","months","scrollPosition","deltaY","theme","scrollDirection","nextScrollPosition","nextMonths","firstMonth","getHeight","getMonths","month","year","lastMonth","length","applyDelta","minDate","maxDate","isMinDateExceeded","isMaxDateExceeded","isMonthVisible","top","WRAPPER_HEIGHT","getMonthsHeight","reduce","a","b","map","x","MonthViewModel","create"],"mappings":"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","sourcesContent":["import { Theme } from '../../lib/theming/Theme';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport { CalendarProps, CalendarState } from './Calendar';\n\nexport const calculateScrollPosition = (\n months: MonthViewModel[],\n scrollPosition: number,\n deltaY: number,\n theme: Theme,\n) => {\n const scrollDirection = deltaY > 0 ? 1 : -1;\n\n let nextScrollPosition = scrollPosition - deltaY;\n let nextMonths = months;\n\n const firstMonth = months[0];\n if (scrollDirection < 0 && nextScrollPosition >= firstMonth.getHeight(theme)) {\n do {\n nextScrollPosition -= nextMonths[0].getHeight(theme);\n nextMonths = getMonths(firstMonth.month, firstMonth.year);\n } while (nextScrollPosition >= nextMonths[0].getHeight(theme));\n }\n\n const lastMonth = months[months.length - 1];\n if (scrollDirection > 0 && nextScrollPosition < 0) {\n do {\n nextScrollPosition += nextMonths[1].getHeight(theme);\n nextMonths = getMonths(lastMonth.month, lastMonth.year);\n } while (nextScrollPosition < 0);\n }\n\n return {\n scrollPosition: nextScrollPosition,\n months: nextMonths,\n scrollDirection,\n };\n};\n\nexport const applyDelta =\n (deltaY: number, theme: Theme) =>\n ({ scrollPosition, months }: Readonly<CalendarState>, { minDate, maxDate }: CalendarProps) => {\n const scrollDirection = deltaY > 0 ? 1 : -1;\n const isMinDateExceeded =\n minDate && scrollDirection < 0 && minDate.year * 12 + minDate.month > months[0].year * 12 + months[0].month;\n\n const isMaxDateExceeded =\n maxDate && scrollDirection > 0 && maxDate.year * 12 + maxDate.month < months[1].year * 12 + months[1].month;\n\n if (isMinDateExceeded) {\n return { scrollPosition: 0, scrollDirection };\n }\n\n if (isMaxDateExceeded) {\n return { scrollPosition: months[2].getHeight(theme), scrollDirection };\n }\n\n return calculateScrollPosition(months, scrollPosition, deltaY, theme);\n };\n\nexport const isMonthVisible = (top: number, month: MonthViewModel, theme: Theme) => {\n return top < themeConfig(theme).WRAPPER_HEIGHT && top > -month.getHeight(theme);\n};\n\nexport const getMonthsHeight = (months: MonthViewModel[], theme: Theme) =>\n months.reduce((a, b) => a + b.getHeight(theme), 0);\n\nexport const getMonths = (month: number, year: number): MonthViewModel[] => {\n return [-1, 0, 1].map((x) => MonthViewModel.create(month + x, year));\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Month.tsx"],"names":["Month","monthSelect","yearSelect","closeSelects","close","monthRef","yearRef","handleMonthSelect","month","props","onMonthYearChange","year","handleYearSelect","shouldComponentUpdate","nextProps","top","CDS","isEqual","value","today","minDate","maxDate","componentDidMount","CalendarScrollEvents","addListener","render","theme","renderMain","offset","getHeight","isFirstInYear","isLastInYear","renderCells","days","onDateClick","isHoliday","React","Component","MonthDayGrid","getProps","defaultProps","styles","monthDayGrid","width","DAY_SIZE","display","map","day","isWeekend","date"],"mappings":"iPAAA;;AAEA;;;;AAIA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA,gD;;;;;;;;;;;;;;;;AAgBaA,K;;;AAGHC,IAAAA,W,GAAiC,I;AACjCC,IAAAA,U,GAAgC,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EhCC,IAAAA,Y,GAAe,YAAM;AAC3B,UAAI,MAAKF,WAAT,EAAsB;AACpB,cAAKA,WAAL,CAAiBG,KAAjB;AACD;AACD,UAAI,MAAKF,UAAT,EAAqB;AACnB,cAAKA,UAAL,CAAgBE,KAAhB;AACD;AACF,K;;AAEOC,IAAAA,Q,GAAW,UAACJ,WAAD,EAAoC;AACrD,YAAKA,WAAL,GAAmBA,WAAnB;AACD,K;;AAEOK,IAAAA,O,GAAU,UAACJ,UAAD,EAAmC;AACnD,YAAKA,UAAL,GAAkBA,UAAlB;AACD,K;;AAEOK,IAAAA,iB,GAAoB,UAACC,KAAD,EAAmB;AAC7C,YAAKC,KAAL,CAAWC,iBAAX,CAA6BF,KAA7B,EAAoC,MAAKC,KAAL,CAAWD,KAAX,CAAiBG,IAArD;AACD,K;;AAEOC,IAAAA,gB,GAAmB,UAACD,IAAD,EAAkB;AAC3C,YAAKF,KAAL,CAAWC,iBAAX,CAA6B,MAAKD,KAAL,CAAWD,KAAX,CAAiBA,KAA9C,EAAqDG,IAArD;AACD,K,mDA/FME,qB,GAAP,+BAA6BC,SAA7B,EAAoD,CAClD,IAAI,KAAKL,KAAL,CAAWM,GAAX,KAAmBD,SAAS,CAACC,GAAjC,EAAsC,CACpC,OAAO,IAAP,CACD,CACD,IAAI,CAACC,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACI,KAAtB,EAA6B,KAAKT,KAAL,CAAWS,KAAxC,CAAL,EAAqD,CACnD,OAAO,IAAP,CACD,CACD,IAAI,CAACF,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACK,KAAtB,EAA6B,KAAKV,KAAL,CAAWU,KAAxC,CAAL,EAAqD,CACnD,OAAO,IAAP,CACD,CACD,IAAI,CAACH,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACM,OAAtB,EAA+B,KAAKX,KAAL,CAAWW,OAA1C,CAAL,EAAyD,CACvD,OAAO,IAAP,CACD,CACD,IAAI,CAACJ,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACO,OAAtB,EAA+B,KAAKZ,KAAL,CAAWY,OAA1C,CAAL,EAAyD,CACvD,OAAO,IAAP,CACD,CACD,OAAO,KAAKZ,KAAL,CAAWD,KAAX,KAAqBM,SAAS,CAACN,KAAtC,CACD,C,QAEMc,iB,GAAP,6BAA2B,CACzBC,oBAAoB,CAACC,WAArB,CAAiC,KAAKrB,YAAtC,EACD,C,QAEMsB,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEMA,U,GAAP,sBAAoB,CAClB,kBAAyC,KAAKlB,KAA9C,CAAQD,KAAR,eAAQA,KAAR,CAAea,OAAf,eAAeA,OAAf,CAAwBD,OAAxB,eAAwBA,OAAxB,CAAiCL,GAAjC,eAAiCA,GAAjC,CACA,oBACE,6BAAC,oBAAD,IACE,cAAc,EAAEP,KAAK,CAACoB,MADxB,EAEE,MAAM,EAAEpB,KAAK,CAACqB,SAAN,CAAgB,KAAKH,KAArB,CAFV,EAGE,aAAa,EAAElB,KAAK,CAACsB,aAHvB,EAIE,YAAY,EAAEtB,KAAK,CAACuB,YAJtB,EAKE,OAAO,EAAEV,OALX,EAME,OAAO,EAAED,OANX,EAOE,KAAK,EAAEZ,KAAK,CAACA,KAPf,EAQE,GAAG,EAAEO,GARP,EASE,IAAI,EAAEP,KAAK,CAACG,IATd,EAUE,aAAa,EAAE,KAAKJ,iBAVtB,EAWE,YAAY,EAAE,KAAKK,gBAXrB,EAYE,cAAc,EAAE,KAAKP,QAZvB,EAaE,aAAa,EAAE,KAAKC,OAbtB,IAeG,KAAK0B,WAAL,EAfH,CADF,CAmBD,C,QAEOA,W,GAAR,uBAAsB,CACpB,oBACE,6BAAC,YAAD,IACE,IAAI,EAAE,KAAKvB,KAAL,CAAWD,KAAX,CAAiByB,IADzB,EAEE,MAAM,EAAE,KAAKxB,KAAL,CAAWD,KAAX,CAAiBoB,MAF3B,EAGE,OAAO,EAAE,KAAKnB,KAAL,CAAWW,OAHtB,EAIE,OAAO,EAAE,KAAKX,KAAL,CAAWY,OAJtB,EAKE,KAAK,EAAE,KAAKZ,KAAL,CAAWU,KALpB,EAME,KAAK,EAAE,KAAKV,KAAL,CAAWS,KANpB,EAOE,WAAW,EAAE,KAAKT,KAAL,CAAWyB,WAP1B,EAQE,SAAS,EAAE,KAAKzB,KAAL,CAAW0B,SARxB,GADF,CAYD,C,gBA5EwBC,eAAMC,S;;;;;;;;;;;;;;AAmH3BC,Y;;;;;;;AAOIC,IAAAA,Q,GAAW,0CAAkBD,YAAY,CAACE,YAA/B,C;;AAEZ3B,EAAAA,qB,GAAP,+BAA6BC,SAA7B,EAA2D;AACzD,QAAI,CAACE,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACI,KAAtB,EAA6B,KAAKT,KAAL,CAAWS,KAAxC,CAAL,EAAqD;AACnD,aAAO,IAAP;AACD;AACD,QAAI,CAACF,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACK,KAAtB,EAA6B,KAAKV,KAAL,CAAWU,KAAxC,CAAL,EAAqD;AACnD,aAAO,IAAP;AACD;AACD,QAAI,CAACH,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACM,OAAtB,EAA+B,KAAKX,KAAL,CAAWW,OAA1C,CAAL,EAAyD;AACvD,aAAO,IAAP;AACD;AACD,QAAI,CAACJ,GAAG,CAACC,OAAJ,CAAYH,SAAS,CAACO,OAAtB,EAA+B,KAAKZ,KAAL,CAAWY,OAA1C,CAAL,EAAyD;AACvD,aAAO,IAAP;AACD;AACD,WAAO,KAAKZ,KAAL,CAAWwB,IAAX,KAAoBnB,SAAS,CAACmB,IAArC;AACD,G;;AAEMR,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV,QAAA,MAAI,CAACA,KAAL,GAAaA,KAAb;AACA,eAAO,MAAI,CAACC,UAAL,EAAP;AACD,OAJH,CADF;;;AAQD,G;;AAEMA,EAAAA,U,GAAP,sBAAoB;AAClB;AACE,4CAAK,SAAS,EAAEc,mBAAOC,YAAP,CAAoB,KAAKhB,KAAzB,CAAhB;AACE;AACE,QAAA,KAAK,EAAE;AACLiB,UAAAA,KAAK,EAAE,KAAKlC,KAAL,CAAWmB,MAAX,GAAoB,yBAAY,KAAKF,KAAjB,EAAwBkB,QAD9C;AAELC,UAAAA,OAAO,EAAE,cAFJ,EADT,GADF;;;AAOG,WAAKpC,KAAL,CAAWwB,IAAX,CAAgBa,GAAhB,CAAoB,UAACC,GAAD,EAAS;AAC5B,YAAMC,SAAS,GAAG,MAAI,CAACT,QAAL,GAAgBJ,SAAhB,CAA0BY,GAA1B,CAAlB;;AAEA;AACE,uCAAC,wBAAD;AACE,YAAA,IAAI,EAAEA,GADR;AAEE,YAAA,GAAG,EAAKA,GAAG,CAACE,IAAT,SAAiBF,GAAG,CAACvC,KAArB,SAA8BuC,GAAG,CAACpC,IAFvC;AAGE,YAAA,OAAO,EAAE,MAAI,CAACF,KAAL,CAAWW,OAHtB;AAIE,YAAA,OAAO,EAAE,MAAI,CAACX,KAAL,CAAWY,OAJtB;AAKE,YAAA,KAAK,EAAE,MAAI,CAACZ,KAAL,CAAWU,KALpB;AAME,YAAA,KAAK,EAAE,MAAI,CAACV,KAAL,CAAWS,KANpB;AAOE,YAAA,SAAS,EAAE8B,SAPb;AAQE,YAAA,WAAW,EAAE,MAAI,CAACvC,KAAL,CAAWyB,WAR1B,GADF;;;AAYD,OAfA,CAPH,CADF;;;AA0BD,G,uBA/DwBE,eAAMC,S,EAA3BC,Y,CAGUE,Y,GAA6B,EACzCL,SAAS,EAAE,mBAACY,GAAD,UAAyDA,GAAG,CAACC,SAA7D,EAD8B,E","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DateSelect } from '../DateSelect';\nimport { Nullable } from '../../typings/utility-types';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { themeConfig } from './config';\nimport * as CDS from './CalendarDateShape';\nimport { MonthViewModel } from './MonthViewModel';\nimport { DayCellViewModel } from './DayCellViewModel';\nimport { MonthView } from './MonthView';\nimport { DayCellView } from './DayCellView';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { styles } from './MonthView.styles';\n\ninterface MonthProps {\n top: number;\n month: MonthViewModel;\n maxDate?: CDS.CalendarDateShape;\n minDate?: CDS.CalendarDateShape;\n today?: CDS.CalendarDateShape;\n value?: Nullable<CDS.CalendarDateShape>;\n onDateClick?: (date: CDS.CalendarDateShape) => void;\n onMonthYearChange: (month: number, year: number) => void;\n isHoliday?: (day: CDS.CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\ntype DefaultProps = Required<Pick<MonthDayGridProps, 'isHoliday'>>;\n\nexport class Month extends React.Component<MonthProps> {\n private theme!: Theme;\n\n private monthSelect: DateSelect | null = null;\n private yearSelect: DateSelect | null = null;\n\n public shouldComponentUpdate(nextProps: MonthProps) {\n if (this.props.top !== nextProps.top) {\n return true;\n }\n if (!CDS.isEqual(nextProps.value, this.props.value)) {\n return true;\n }\n if (!CDS.isEqual(nextProps.today, this.props.today)) {\n return true;\n }\n if (!CDS.isEqual(nextProps.minDate, this.props.minDate)) {\n return true;\n }\n if (!CDS.isEqual(nextProps.maxDate, this.props.maxDate)) {\n return true;\n }\n return this.props.month !== nextProps.month;\n }\n\n public componentDidMount() {\n CalendarScrollEvents.addListener(this.closeSelects);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { month, maxDate, minDate, top } = this.props;\n return (\n <MonthView\n firstDayOffset={month.offset}\n height={month.getHeight(this.theme)}\n isFirstInYear={month.isFirstInYear}\n isLastInYear={month.isLastInYear}\n maxDate={maxDate}\n minDate={minDate}\n month={month.month}\n top={top}\n year={month.year}\n onMonthSelect={this.handleMonthSelect}\n onYearSelect={this.handleYearSelect}\n monthSelectRef={this.monthRef}\n yearSelectRef={this.yearRef}\n >\n {this.renderCells()}\n </MonthView>\n );\n }\n\n private renderCells() {\n return (\n <MonthDayGrid\n days={this.props.month.days}\n offset={this.props.month.offset}\n minDate={this.props.minDate}\n maxDate={this.props.maxDate}\n today={this.props.today}\n value={this.props.value}\n onDateClick={this.props.onDateClick}\n isHoliday={this.props.isHoliday}\n />\n );\n }\n\n private closeSelects = () => {\n if (this.monthSelect) {\n this.monthSelect.close();\n }\n if (this.yearSelect) {\n this.yearSelect.close();\n }\n };\n\n private monthRef = (monthSelect: DateSelect | null) => {\n this.monthSelect = monthSelect;\n };\n\n private yearRef = (yearSelect: DateSelect | null) => {\n this.yearSelect = yearSelect;\n };\n\n private handleMonthSelect = (month: number) => {\n this.props.onMonthYearChange(month, this.props.month.year);\n };\n\n private handleYearSelect = (year: number) => {\n this.props.onMonthYearChange(this.props.month.month, year);\n };\n}\n\ninterface MonthDayGridProps {\n days: DayCellViewModel[];\n offset: number;\n minDate?: CDS.CalendarDateShape;\n maxDate?: CDS.CalendarDateShape;\n today?: CDS.CalendarDateShape;\n value?: Nullable<CDS.CalendarDateShape>;\n onDateClick?: (x0: CDS.CalendarDateShape) => void;\n isHoliday?: (day: CDS.CalendarDateShape & { isWeekend: boolean }) => boolean;\n}\n\nclass MonthDayGrid extends React.Component<MonthDayGridProps> {\n private theme!: Theme;\n\n public static defaultProps: DefaultProps = {\n isHoliday: (day: CDS.CalendarDateShape & { isWeekend: boolean }) => day.isWeekend,\n };\n\n private getProps = createPropsGetter(MonthDayGrid.defaultProps);\n\n public shouldComponentUpdate(nextProps: MonthDayGridProps) {\n if (!CDS.isEqual(nextProps.value, this.props.value)) {\n return true;\n }\n if (!CDS.isEqual(nextProps.today, this.props.today)) {\n return true;\n }\n if (!CDS.isEqual(nextProps.minDate, this.props.minDate)) {\n return true;\n }\n if (!CDS.isEqual(nextProps.maxDate, this.props.maxDate)) {\n return true;\n }\n return this.props.days !== nextProps.days;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n return (\n <div className={styles.monthDayGrid(this.theme)}>\n <div\n style={{\n width: this.props.offset * themeConfig(this.theme).DAY_SIZE,\n display: 'inline-block',\n }}\n />\n {this.props.days.map((day) => {\n const isWeekend = this.getProps().isHoliday(day);\n\n return (\n <DayCellView\n date={day}\n key={`${day.date}.${day.month}.${day.year}`}\n minDate={this.props.minDate}\n maxDate={this.props.maxDate}\n today={this.props.today}\n value={this.props.value}\n isWeekend={isWeekend}\n onDateClick={this.props.onDateClick}\n />\n );\n })}\n </div>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { DateSelect } from '../../internal/DateSelect';
2
+ import { DateSelect } from '../DateSelect';
3
3
  import * as CDS from './CalendarDateShape';
4
4
  interface MonthViewProps {
5
5
  children: React.ReactNode;
@@ -1,6 +1,6 @@
1
1
  "use strict";exports.__esModule = true;exports.MonthView = MonthView;var _react = _interopRequireWildcard(require("react"));
2
2
 
3
- var _DateSelect = require("../../internal/DateSelect");
3
+ var _DateSelect = require("../DateSelect");
4
4
  var _ThemeContext = require("../../lib/theming/ThemeContext");
5
5
  var ColorFunctions = _interopRequireWildcard(require("../../lib/styles/ColorFunctions"));
6
6
  var _Emotion = require("../../lib/theming/Emotion");
@@ -1 +1 @@
1
- {"version":3,"sources":["MonthView.tsx"],"names":["MonthView","props","theme","ThemeContext","children","height","isFirstInYear","isLastInYear","maxDate","minDate","month","top","year","onMonthSelect","onYearSelect","monthSelectRef","yearSelectRef","isTopNegative","isHeaderSticky","headerTop","Math","min","MONTH_TITLE_HEIGHT","alpha","borderBottomColor","ColorFunctions","fade","calendarMonthTitleBorderBottomColor","isYearVisible","yearTop","monthSelectDisabled","yearSelectDisabled","getMinMonth","value","i","CDS","isGreaterOrEqual","date","getMaxMonth","max","isLessOrEqual","CalendarDataTids","styles","header","headerSticky","monthTitle","headerMonth","undefined","headerYear"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\n\nimport { DateSelect } from '../../internal/DateSelect';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MonthView.styles';\nimport { themeConfig } from './config';\nimport * as CDS from './CalendarDateShape';\nimport { CalendarDataTids } from './Calendar';\n\ninterface MonthViewProps {\n children: React.ReactNode;\n firstDayOffset: number;\n height: number;\n isFirstInYear?: boolean;\n isLastInYear?: boolean;\n maxDate?: CDS.CalendarDateShape;\n minDate?: CDS.CalendarDateShape;\n month: number;\n top: number;\n year: number;\n onMonthSelect: (month: number) => void;\n onYearSelect: (month: number) => void;\n monthSelectRef: (select: DateSelect | null) => void;\n yearSelectRef: (select: DateSelect | null) => void;\n}\n\nexport function MonthView(props: MonthViewProps) {\n const theme = useContext(ThemeContext);\n\n const {\n children,\n height,\n isFirstInYear,\n isLastInYear,\n maxDate,\n minDate,\n month,\n top,\n year,\n onMonthSelect,\n onYearSelect,\n monthSelectRef,\n yearSelectRef,\n } = props;\n\n const isTopNegative = top <= 0;\n const isHeaderSticky = isTopNegative && height >= -top;\n const headerTop = isHeaderSticky ? Math.min(-top, height - themeConfig(theme).MONTH_TITLE_HEIGHT) : 0;\n const alpha = isHeaderSticky ? (height + top - themeConfig(theme).MONTH_TITLE_HEIGHT) / 10 : 1;\n const borderBottomColor = ColorFunctions.fade(theme.calendarMonthTitleBorderBottomColor, alpha);\n const isYearVisible = isFirstInYear || isHeaderSticky;\n const yearTop = isHeaderSticky && !isLastInYear ? -headerTop - top : 0;\n const monthSelectDisabled = top > 40 || headerTop < 0 || headerTop >= height - themeConfig(theme).MONTH_TITLE_HEIGHT;\n const yearSelectDisabled = top > 40 || (isLastInYear && top < -height + themeConfig(theme).MONTH_TITLE_HEIGHT);\n\n const getMinMonth = (value: number) => {\n let min = 0;\n for (let i = 0; i < 12; ++i) {\n if (minDate && CDS.isGreaterOrEqual({ date: 31, month: i, year: value }, minDate)) {\n min = i;\n break;\n }\n }\n return min;\n };\n\n const getMaxMonth = (value: number) => {\n let max = 11;\n for (let i = 11; i >= 0; --i) {\n if (maxDate && CDS.isLessOrEqual({ date: 1, month: i, year: value }, maxDate)) {\n max = i;\n break;\n }\n }\n return max;\n };\n\n return (\n <div data-tid={CalendarDataTids.month} className={styles.month(theme)} style={{ top }} key={month + '-' + year}>\n <div\n style={{ top: headerTop }}\n className={cx({\n [styles.header()]: true,\n [styles.headerSticky(theme)]: isHeaderSticky,\n })}\n >\n <div style={{ borderBottomColor }} className={styles.monthTitle(theme)}>\n <div data-tid={CalendarDataTids.headerMonth} className={styles.headerMonth(theme)}>\n <DateSelect\n disabled={monthSelectDisabled}\n width={85}\n type=\"month\"\n value={month}\n onValueChange={onMonthSelect}\n ref={!monthSelectDisabled ? monthSelectRef : undefined}\n minValue={getMinMonth(year)}\n maxValue={getMaxMonth(year)}\n />\n </div>\n {isYearVisible && (\n <div data-tid={CalendarDataTids.headerYear} className={styles.headerYear(theme)} style={{ top: yearTop }}>\n <DateSelect\n disabled={yearSelectDisabled}\n width={50}\n type=\"year\"\n value={year}\n minValue={minDate ? minDate.year : undefined}\n maxValue={maxDate ? maxDate.year : undefined}\n onValueChange={onYearSelect}\n ref={!yearSelectDisabled ? yearSelectRef : undefined}\n />\n </div>\n )}\n </div>\n </div>\n {children}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["MonthView.tsx"],"names":["MonthView","props","theme","ThemeContext","children","height","isFirstInYear","isLastInYear","maxDate","minDate","month","top","year","onMonthSelect","onYearSelect","monthSelectRef","yearSelectRef","isTopNegative","isHeaderSticky","headerTop","Math","min","MONTH_TITLE_HEIGHT","alpha","borderBottomColor","ColorFunctions","fade","calendarMonthTitleBorderBottomColor","isYearVisible","yearTop","monthSelectDisabled","yearSelectDisabled","getMinMonth","value","i","CDS","isGreaterOrEqual","date","getMaxMonth","max","isLessOrEqual","CalendarDataTids","styles","header","headerSticky","monthTitle","headerMonth","undefined","headerYear"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\n\nimport { DateSelect } from '../DateSelect';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MonthView.styles';\nimport { themeConfig } from './config';\nimport * as CDS from './CalendarDateShape';\nimport { CalendarDataTids } from './Calendar';\n\ninterface MonthViewProps {\n children: React.ReactNode;\n firstDayOffset: number;\n height: number;\n isFirstInYear?: boolean;\n isLastInYear?: boolean;\n maxDate?: CDS.CalendarDateShape;\n minDate?: CDS.CalendarDateShape;\n month: number;\n top: number;\n year: number;\n onMonthSelect: (month: number) => void;\n onYearSelect: (month: number) => void;\n monthSelectRef: (select: DateSelect | null) => void;\n yearSelectRef: (select: DateSelect | null) => void;\n}\n\nexport function MonthView(props: MonthViewProps) {\n const theme = useContext(ThemeContext);\n\n const {\n children,\n height,\n isFirstInYear,\n isLastInYear,\n maxDate,\n minDate,\n month,\n top,\n year,\n onMonthSelect,\n onYearSelect,\n monthSelectRef,\n yearSelectRef,\n } = props;\n\n const isTopNegative = top <= 0;\n const isHeaderSticky = isTopNegative && height >= -top;\n const headerTop = isHeaderSticky ? Math.min(-top, height - themeConfig(theme).MONTH_TITLE_HEIGHT) : 0;\n const alpha = isHeaderSticky ? (height + top - themeConfig(theme).MONTH_TITLE_HEIGHT) / 10 : 1;\n const borderBottomColor = ColorFunctions.fade(theme.calendarMonthTitleBorderBottomColor, alpha);\n const isYearVisible = isFirstInYear || isHeaderSticky;\n const yearTop = isHeaderSticky && !isLastInYear ? -headerTop - top : 0;\n const monthSelectDisabled = top > 40 || headerTop < 0 || headerTop >= height - themeConfig(theme).MONTH_TITLE_HEIGHT;\n const yearSelectDisabled = top > 40 || (isLastInYear && top < -height + themeConfig(theme).MONTH_TITLE_HEIGHT);\n\n const getMinMonth = (value: number) => {\n let min = 0;\n for (let i = 0; i < 12; ++i) {\n if (minDate && CDS.isGreaterOrEqual({ date: 31, month: i, year: value }, minDate)) {\n min = i;\n break;\n }\n }\n return min;\n };\n\n const getMaxMonth = (value: number) => {\n let max = 11;\n for (let i = 11; i >= 0; --i) {\n if (maxDate && CDS.isLessOrEqual({ date: 1, month: i, year: value }, maxDate)) {\n max = i;\n break;\n }\n }\n return max;\n };\n\n return (\n <div data-tid={CalendarDataTids.month} className={styles.month(theme)} style={{ top }} key={month + '-' + year}>\n <div\n style={{ top: headerTop }}\n className={cx({\n [styles.header()]: true,\n [styles.headerSticky(theme)]: isHeaderSticky,\n })}\n >\n <div style={{ borderBottomColor }} className={styles.monthTitle(theme)}>\n <div data-tid={CalendarDataTids.headerMonth} className={styles.headerMonth(theme)}>\n <DateSelect\n disabled={monthSelectDisabled}\n width={85}\n type=\"month\"\n value={month}\n onValueChange={onMonthSelect}\n ref={!monthSelectDisabled ? monthSelectRef : undefined}\n minValue={getMinMonth(year)}\n maxValue={getMaxMonth(year)}\n />\n </div>\n {isYearVisible && (\n <div data-tid={CalendarDataTids.headerYear} className={styles.headerYear(theme)} style={{ top: yearTop }}>\n <DateSelect\n disabled={yearSelectDisabled}\n width={50}\n type=\"year\"\n value={year}\n minValue={minDate ? minDate.year : undefined}\n maxValue={maxDate ? maxDate.year : undefined}\n onValueChange={onYearSelect}\n ref={!yearSelectDisabled ? yearSelectRef : undefined}\n />\n </div>\n )}\n </div>\n </div>\n {children}\n </div>\n );\n}\n"]}
@@ -1,3 +1,3 @@
1
- export declare const CrossIcon: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<SVGSVGElement, Omit<import("../icons2022/BaseIcon").IconProps, "size"> & {
1
+ export declare const CrossIcon: 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 ArrowDownIcon: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<SVGSVGElement, Omit<import("../icons2022/BaseIcon").IconProps, "size"> & {
1
+ export declare const ArrowDownIcon: import("../../lib/forwardRefAndName").ReactUIIconWithRef<SVGSVGElement, Omit<import("../icons2022/BaseIcon").IconProps, "size"> & {
2
2
  size?: number | "small" | "medium" | "large" | undefined;
3
3
  }>;
@@ -1,5 +1,4 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.LOADER_SHOW_TIME = exports.DefaultState = exports.DELAY_BEFORE_SHOW_LOADER = exports.CustomComboBoxDataTids = exports.CustomComboBox = void 0;var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = _interopRequireDefault(require("react-dom"));
3
2
 
4
3
 
5
4
 
@@ -333,20 +332,18 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
333
332
  var effects;
334
333
  var nextState;
335
334
 
336
- _reactDom.default.flushSync(function () {
337
- _this.setState(
338
- function (state) {
339
- var stateAndEffect = _this.reducer(state, _this.props, action);var _ref =
335
+ _this.setState(
336
+ function (state) {
337
+ var stateAndEffect = _this.reducer(state, _this.props, action);var _ref =
340
338
 
341
- stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];nextState = _ref[0];effects = _ref[1];
342
-
343
- return nextState;
344
- },
345
- function () {
346
- effects.forEach(_this.handleEffect);
347
- });
339
+ stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];nextState = _ref[0];effects = _ref[1];
348
340
 
341
+ return nextState;
342
+ },
343
+ function () {
344
+ effects.forEach(_this.handleEffect);
349
345
  });
346
+
350
347
  };_this.
351
348
 
352
349
  handleEffect = function (effect) {
@@ -1 +1 @@
1
- {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","CustomComboBoxDataTids","comboBoxView","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","effects","nextState","ReactDOM","flushSync","setState","stateAndEffect","Array","forEach","handleEffect","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","search","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","React","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends Pick<DropdownContainerProps, 'menuPos'>, CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item?: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' });\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState });\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n ReactDOM.flushSync(() => {\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n });\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","CustomComboBoxDataTids","comboBoxView","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","search","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","React","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends Pick<DropdownContainerProps, 'menuPos'>, CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item?: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' });\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState });\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
@@ -71,7 +71,7 @@ var DateSelectDataTids = {
71
71
 
72
72
 
73
73
 
74
- DateSelect = (_dec = (0, _decorators.locale)('Calendar', _locale.DatePickerLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(DateSelect, _React$PureComponent);function DateSelect() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
74
+ DateSelect = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(DateSelect, _React$PureComponent);function DateSelect() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
75
75
 
76
76
 
77
77
 
@@ -500,8 +500,8 @@ DateSelect = (_dec = (0, _decorators.locale)('Calendar', _locale.DatePickerLocal
500
500
  * @public
501
501
  */;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx, _cx2;if ((0, _ThemeHelpers.isTheme2022)(this.theme)) {return this.renderMain2022();}var disabled = this.props.disabled;var width = this.getProps().width;var rootProps = { className: (0, _Emotion.cx)((_cx = {}, _cx[_DateSelect.styles.root(this.theme)] = true, _cx[_DateSelect.styles.disabled()] = Boolean(disabled), _cx)), style: { width: width }, ref: this.refRoot };return /*#__PURE__*/_react.default.createElement("span", rootProps, /*#__PURE__*/_react.default.createElement("div", { "data-tid": DateSelectDataTids.caption, className: _DateSelect.styles.caption(), onClick: this.open }, this.getItem(0), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_DateSelect.styles.arrow(this.theme)] = true, _cx2[_DateSelect.styles.arrowDisabled()] = Boolean(disabled), _cx2)) }, /*#__PURE__*/_react.default.createElement(_px.ArrowTriangleUpDownIcon, { size: 12 }))), this.state.opened && this.renderMenu());};_proto.renderMain2022 = function renderMain2022() {var disabled = this.props.disabled;var width = this.getProps().width;var rootProps = { className: (0, _Emotion.cx)(_DateSelect.styles.root(this.theme), _DateSelect.styles.root2022(), disabled && _DateSelect.styles.disabled()), style: { width: width }, ref: this.refRoot, onClick: this.open };return /*#__PURE__*/_react.default.createElement("span", rootProps, /*#__PURE__*/_react.default.createElement("div", { "data-tid": DateSelectDataTids.caption, className: _DateSelect.styles.caption() }, this.getItem(0)), !disabled && /*#__PURE__*/_react.default.createElement(_ArrowCollapseCVOpenIcon16Regular.ArrowCollapseCVOpenIcon16Regular, { color: "#ADADAD" }), this.state.opened && this.renderMenu());};_proto.disableItems = function disableItems(index) {var value = this.props.value + index;if ((0, _utils.isNonNullable)(this.props.maxValue) && (0, _utils.isNonNullable)(this.props.minValue)) {return value > this.props.maxValue || value < this.props.minValue;}if ((0, _utils.isNonNullable)(this.props.minValue)) {return value < this.props.minValue;}if ((0, _utils.isNonNullable)(this.props.maxValue)) {return value > this.props.maxValue;}};_proto.renderMenu = function renderMenu() {var _this3 = this,_cx3;var _this$state = this.state,top = _this$state.top,height = _this$state.height,nodeTop = _this$state.nodeTop;var shift = this.state.pos % itemHeight;if (shift < 0) {shift += itemHeight;}var from = (this.state.pos - shift + top) / itemHeight;var to = from + Math.ceil((height + shift) / itemHeight);var items = [];var _loop = function _loop(i) {var _cx4;var disableItems = _this3.disableItems(i) || false;var className = (0, _Emotion.cx)((_cx4 = {}, _cx4[_DateSelect.styles.menuItem(_this3.theme)] = true, _cx4[_DateSelect.styles.menuItemSelected(_this3.theme)] = i === 0, _cx4[_DateSelect.styles.menuItemActive(_this3.theme)] = i === _this3.state.current, _cx4[_DateSelect.styles.menuItemDisabled(_this3.theme)] = disableItems, _cx4));var clickHandler = { onMouseDown: preventDefault, onClick: _this3.handleItemClick(i) };items.push( /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({ "data-tid": DateSelectDataTids.menuItem, "data-prop-disabled": disableItems, key: i, className: className, onMouseEnter: function onMouseEnter() {return _this3.setState({ current: i });}, onMouseLeave: function onMouseLeave() {return _this3.setState({ current: null });} }, clickHandler), _this3.getItem(i)));};for (var i = from; i < to; ++i) {_loop(i);}var style = { top: top - 5, left: 0, right: 0 };var shiftStyle = { position: 'relative', top: -shift };var holderClass = (0, _Emotion.cx)((_cx3 = {}, _cx3[_DateSelect.styles.menuHolder(this.theme)] = true, _cx3[_DateSelect.styles.isTopCapped()] = this.state.topCapped, _cx3[_DateSelect.styles.isBotCapped()] = this.state.botCapped, _cx3));var dropdownOffset = -itemHeight;if (nodeTop < -top) {var overflowOffsetDelta = this.state.topCapped ? 6 : 17;dropdownOffset -= nodeTop + top - overflowOffsetDelta;}var iconUp = (0, _ThemeHelpers.isTheme2022)(this.theme) ? /*#__PURE__*/_react.default.createElement(_ArrowCUpIcon16Regular.ArrowCUpIcon16Regular, { color: "#ADADAD" }) : /*#__PURE__*/_react.default.createElement(_px.ArrowChevronUpIcon, null);var iconDown = (0, _ThemeHelpers.isTheme2022)(this.theme) ? /*#__PURE__*/_react.default.createElement(_ArrowCDownIcon16Regular.ArrowCDownIcon16Regular, { color: "#ADADAD" }) : /*#__PURE__*/_react.default.createElement(_px.ArrowChevronDownIcon, null);return /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.close, onFocusOutside: this.close, active: true }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_DropdownContainer.DropdownContainer, { getParent: this.getAnchor, offsetY: dropdownOffset, offsetX: -10 }, /*#__PURE__*/_react.default.createElement("div", { className: holderClass, style: style }, !this.state.topCapped && /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_DateSelect.styles.menu(this.theme), _DateSelect.styles.menuUp()), onClick: this.handleUp, onMouseDown: this.handleLongClickUp, onMouseUp: this.handleLongClickStop, onMouseLeave: this.handleLongClickStop, onTouchStart: this.handleLongClickUp, onTouchEnd: this.handleLongClickStop }, /*#__PURE__*/_react.default.createElement("span", null, iconUp)), /*#__PURE__*/_react.default.createElement("div", { className: _DateSelect.styles.itemsHolder(), style: { height: height } }, /*#__PURE__*/_react.default.createElement("div", { ref: this.refItemsContainer, style: shiftStyle }, items)), !this.state.botCapped && /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_DateSelect.styles.menu(this.theme), _DateSelect.styles.menuDown()), onClick: this.handleDown, onMouseDown: this.handleLongClickDown, onMouseUp: this.handleLongClickStop, onMouseLeave: this.handleLongClickStop, onTouchStart: this.handleLongClickDown, onTouchEnd: this.handleLongClickStop }, /*#__PURE__*/_react.default.createElement("span", null, iconDown))))));};_proto.getItem = function getItem(index) {
502
502
  var value = this.props.value + index;
503
- if (this.getProps().type === 'month') {var _this$locale$months;
504
- return (_this$locale$months = this.locale.months) == null ? void 0 : _this$locale$months[value];
503
+ if (this.getProps().type === 'month') {
504
+ return this.locale.months[value];
505
505
  }
506
506
  return value;
507
507
  };_proto.