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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/CHANGELOG.md +32 -5
  2. package/cjs/components/Button/Button.d.ts +2 -6
  3. package/cjs/components/Button/Button.js +14 -5
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Button/Button.styles.js +2 -1
  6. package/cjs/components/Button/Button.styles.js.map +1 -1
  7. package/cjs/components/Button/getInnerLinkTheme.js +0 -3
  8. package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
  9. package/cjs/components/Calendar/Calendar.d.ts +104 -0
  10. package/cjs/components/Calendar/Calendar.js +475 -0
  11. package/cjs/components/Calendar/Calendar.js.map +1 -0
  12. package/cjs/components/Calendar/Calendar.md +147 -0
  13. package/cjs/{internal → components}/Calendar/Calendar.styles.d.ts +1 -0
  14. package/cjs/components/Calendar/Calendar.styles.js +33 -0
  15. package/cjs/components/Calendar/Calendar.styles.js.map +1 -0
  16. package/{internal → cjs/components}/Calendar/CalendarUtils.d.ts +19 -2
  17. package/cjs/components/Calendar/CalendarUtils.js +117 -0
  18. package/cjs/components/Calendar/CalendarUtils.js.map +1 -0
  19. package/cjs/components/Calendar/Month.js.map +1 -0
  20. package/cjs/{internal → components}/Calendar/MonthView.d.ts +1 -1
  21. package/cjs/{internal → components}/Calendar/MonthView.js +1 -1
  22. package/cjs/{internal → components}/Calendar/MonthView.js.map +1 -1
  23. package/cjs/components/Calendar/locale/index.d.ts +4 -0
  24. package/cjs/components/Calendar/locale/index.js +11 -0
  25. package/cjs/components/Calendar/locale/index.js.map +1 -0
  26. package/cjs/components/Calendar/locale/locales/en.d.ts +2 -0
  27. package/cjs/components/Calendar/locale/locales/en.js +16 -0
  28. package/cjs/components/Calendar/locale/locales/en.js.map +1 -0
  29. package/cjs/components/Calendar/locale/locales/ru.d.ts +2 -0
  30. package/cjs/components/Calendar/locale/locales/ru.js +16 -0
  31. package/cjs/components/Calendar/locale/locales/ru.js.map +1 -0
  32. package/cjs/components/Calendar/locale/types.d.ts +3 -0
  33. package/cjs/components/Calendar/locale/types.js +1 -0
  34. package/cjs/components/Calendar/locale/types.js.map +1 -0
  35. package/cjs/components/DatePicker/DatePicker.d.ts +16 -17
  36. package/cjs/components/DatePicker/DatePicker.js +107 -57
  37. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  38. package/cjs/components/DatePicker/DatePicker.styles.d.ts +3 -0
  39. package/cjs/components/DatePicker/DatePicker.styles.js +36 -1
  40. package/cjs/components/DatePicker/DatePicker.styles.js.map +1 -1
  41. package/cjs/components/DatePicker/DatePickerHelpers.d.ts +1 -1
  42. package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
  43. package/cjs/components/DatePicker/Picker.d.ts +8 -9
  44. package/cjs/components/DatePicker/Picker.js +32 -41
  45. package/cjs/components/DatePicker/Picker.js.map +1 -1
  46. package/cjs/components/DatePicker/locale/locales/en.js +3 -15
  47. package/cjs/components/DatePicker/locale/locales/en.js.map +1 -1
  48. package/cjs/components/DatePicker/locale/locales/ru.js +3 -15
  49. package/cjs/components/DatePicker/locale/locales/ru.js.map +1 -1
  50. package/cjs/components/DatePicker/locale/types.d.ts +2 -2
  51. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  52. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  53. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  54. package/cjs/components/FileUploader/FileUploader.d.ts +1 -0
  55. package/cjs/components/FileUploader/FileUploader.js +3 -1
  56. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  57. package/cjs/components/Kebab/Kebab.d.ts +4 -1
  58. package/cjs/components/Kebab/Kebab.js +9 -3
  59. package/cjs/components/Kebab/Kebab.js.map +1 -1
  60. package/cjs/components/Link/Link.js +4 -2
  61. package/cjs/components/Link/Link.js.map +1 -1
  62. package/cjs/components/Link/Link.mixins.d.ts +1 -2
  63. package/cjs/components/Link/Link.mixins.js +4 -16
  64. package/cjs/components/Link/Link.mixins.js.map +1 -1
  65. package/cjs/components/Link/Link.styles.d.ts +2 -0
  66. package/cjs/components/Link/Link.styles.js +56 -38
  67. package/cjs/components/Link/Link.styles.js.map +1 -1
  68. package/cjs/components/Loader/Loader.js +1 -3
  69. package/cjs/components/Loader/Loader.js.map +1 -1
  70. package/cjs/components/Modal/Modal.d.ts +3 -3
  71. package/cjs/components/Modal/Modal.js +19 -2
  72. package/cjs/components/Modal/Modal.js.map +1 -1
  73. package/cjs/components/Modal/Modal.styles.d.ts +0 -2
  74. package/cjs/components/Modal/Modal.styles.js +25 -36
  75. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  76. package/cjs/components/Modal/ModalBody.js +0 -2
  77. package/cjs/components/Modal/ModalBody.js.map +1 -1
  78. package/cjs/components/Modal/ModalFooter.js +3 -6
  79. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  80. package/cjs/components/Modal/ModalHeader.js +2 -7
  81. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  82. package/cjs/components/PasswordInput/PasswordInput.js +4 -6
  83. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  84. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  85. package/cjs/components/ScrollContainer/ScrollContainer.js +9 -1
  86. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  87. package/cjs/components/SidePage/SidePage.d.ts +3 -3
  88. package/cjs/components/SidePage/SidePage.js +8 -1
  89. package/cjs/components/SidePage/SidePage.js.map +1 -1
  90. package/cjs/components/Spinner/Spinner.md +1 -1
  91. package/cjs/components/Switcher/Switcher.d.ts +4 -2
  92. package/cjs/components/Switcher/Switcher.js +13 -3
  93. package/cjs/components/Switcher/Switcher.js.map +1 -1
  94. package/cjs/components/Toast/Toast.md +16 -12
  95. package/cjs/components/TokenInput/TokenInput.d.ts +44 -1
  96. package/cjs/components/TokenInput/TokenInput.js +42 -0
  97. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  98. package/cjs/components/TokenInput/TokenInput.md +100 -0
  99. package/cjs/index.d.ts +1 -0
  100. package/cjs/index.js +1 -0
  101. package/cjs/index.js.map +1 -1
  102. package/cjs/internal/CustomComboBox/CustomComboBox.js +25 -13
  103. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  104. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  105. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  106. package/cjs/internal/InputLikeText/InputLikeText.js +4 -1
  107. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  108. package/cjs/internal/NativeDateInput/utils.d.ts +1 -1
  109. package/cjs/internal/NativeDateInput/utils.js.map +1 -1
  110. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -0
  111. package/cjs/internal/PopupMenu/PopupMenu.js +23 -3
  112. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  113. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  114. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +0 -5
  115. package/cjs/internal/ZIndex/ZIndexStorage.js +1 -6
  116. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  117. package/cjs/internal/icons/SpinnerIcon.styles.js +2 -1
  118. package/cjs/internal/icons/SpinnerIcon.styles.js.map +1 -1
  119. package/cjs/internal/themes/DefaultTheme.d.ts +4 -15
  120. package/cjs/internal/themes/DefaultTheme.js +15 -48
  121. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  122. package/cjs/internal/themes/Theme2022.d.ts +0 -3
  123. package/cjs/internal/themes/Theme2022.js +2 -11
  124. package/cjs/internal/themes/Theme2022.js.map +1 -1
  125. package/cjs/lib/date/InternalDate.d.ts +1 -1
  126. package/cjs/lib/date/InternalDate.js +1 -1
  127. package/cjs/lib/date/InternalDate.js.map +1 -1
  128. package/cjs/lib/locale/decorators.js +0 -3
  129. package/cjs/lib/locale/decorators.js.map +1 -1
  130. package/cjs/lib/locale/types.d.ts +2 -0
  131. package/cjs/lib/locale/types.js +2 -0
  132. package/cjs/lib/locale/types.js.map +1 -1
  133. package/cjs/typings/html.d.ts +1 -1
  134. package/cjs/typings/utility-types.d.ts +6 -0
  135. package/components/Button/Button/Button.js +13 -4
  136. package/components/Button/Button/Button.js.map +1 -1
  137. package/components/Button/Button.d.ts +2 -6
  138. package/components/Button/Button.styles/Button.styles.js +1 -1
  139. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  140. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +0 -3
  141. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
  142. package/{internal → components}/Calendar/Calendar/Calendar.js +136 -71
  143. package/components/Calendar/Calendar/Calendar.js.map +1 -0
  144. package/{internal → components}/Calendar/Calendar/package.json +1 -1
  145. package/components/Calendar/Calendar.d.ts +104 -0
  146. package/components/Calendar/Calendar.md +147 -0
  147. package/components/Calendar/Calendar.styles/Calendar.styles.js +17 -0
  148. package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -0
  149. package/{internal → components}/Calendar/Calendar.styles/package.json +1 -1
  150. package/{internal → components}/Calendar/Calendar.styles.d.ts +1 -0
  151. package/{internal → components}/Calendar/CalendarDateShape/package.json +1 -1
  152. package/{internal → components}/Calendar/CalendarScrollEvents/package.json +1 -1
  153. package/{internal → components}/Calendar/CalendarUtils/CalendarUtils.js +34 -0
  154. package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -0
  155. package/{internal → components}/Calendar/CalendarUtils/package.json +1 -1
  156. package/{cjs/internal → components}/Calendar/CalendarUtils.d.ts +19 -2
  157. package/{internal → components}/Calendar/DayCellView/package.json +1 -1
  158. package/{internal → components}/Calendar/DayCellView.styles/package.json +1 -1
  159. package/{internal → components}/Calendar/DayCellViewModel/package.json +1 -1
  160. package/components/Calendar/Month/Month.js.map +1 -0
  161. package/{internal → components}/Calendar/Month/package.json +1 -1
  162. package/{internal → components}/Calendar/MonthView/MonthView.js +1 -1
  163. package/components/Calendar/MonthView/MonthView.js.map +1 -0
  164. package/{internal → components}/Calendar/MonthView/package.json +1 -1
  165. package/{internal → components}/Calendar/MonthView.d.ts +1 -1
  166. package/{internal → components}/Calendar/MonthView.styles/package.json +1 -1
  167. package/{internal → components}/Calendar/MonthViewModel/package.json +1 -1
  168. package/{internal → components}/Calendar/config/package.json +1 -1
  169. package/{internal → components}/Calendar/index/package.json +1 -1
  170. package/components/Calendar/locale/index/index.js +8 -0
  171. package/components/Calendar/locale/index/index.js.map +1 -0
  172. package/components/Calendar/locale/index/package.json +6 -0
  173. package/components/Calendar/locale/index.d.ts +4 -0
  174. package/components/Calendar/locale/locales/en/en.js +3 -0
  175. package/components/Calendar/locale/locales/en/en.js.map +1 -0
  176. package/components/Calendar/locale/locales/en/package.json +6 -0
  177. package/components/Calendar/locale/locales/en.d.ts +2 -0
  178. package/components/Calendar/locale/locales/ru/package.json +6 -0
  179. package/components/Calendar/locale/locales/ru/ru.js +3 -0
  180. package/components/Calendar/locale/locales/ru/ru.js.map +1 -0
  181. package/components/Calendar/locale/locales/ru.d.ts +2 -0
  182. package/components/Calendar/locale/package.json +6 -0
  183. package/components/Calendar/locale/types/package.json +6 -0
  184. package/components/Calendar/locale/types/types.js +1 -0
  185. package/components/Calendar/locale/types/types.js.map +1 -0
  186. package/components/Calendar/locale/types.d.ts +3 -0
  187. package/{internal → components}/Calendar/package.json +1 -1
  188. package/components/DatePicker/DatePicker/DatePicker.js +112 -62
  189. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  190. package/components/DatePicker/DatePicker.d.ts +16 -17
  191. package/components/DatePicker/DatePicker.styles/DatePicker.styles.js +7 -1
  192. package/components/DatePicker/DatePicker.styles/DatePicker.styles.js.map +1 -1
  193. package/components/DatePicker/DatePicker.styles.d.ts +3 -0
  194. package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
  195. package/components/DatePicker/DatePickerHelpers.d.ts +1 -1
  196. package/components/DatePicker/Picker/Picker.js +50 -66
  197. package/components/DatePicker/Picker/Picker.js.map +1 -1
  198. package/components/DatePicker/Picker.d.ts +8 -9
  199. package/components/DatePicker/locale/locales/en/en.js +3 -3
  200. package/components/DatePicker/locale/locales/en/en.js.map +1 -1
  201. package/components/DatePicker/locale/locales/ru/ru.js +3 -3
  202. package/components/DatePicker/locale/locales/ru/ru.js.map +1 -1
  203. package/components/DatePicker/locale/types.d.ts +2 -2
  204. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +2 -1
  205. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  206. package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  207. package/components/FileUploader/FileUploader/FileUploader.js +3 -1
  208. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  209. package/components/FileUploader/FileUploader.d.ts +1 -0
  210. package/components/Kebab/Kebab/Kebab.js +6 -1
  211. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  212. package/components/Kebab/Kebab.d.ts +4 -1
  213. package/components/Link/Link/Link.js +4 -4
  214. package/components/Link/Link/Link.js.map +1 -1
  215. package/components/Link/Link.mixins/Link.mixins.js +2 -5
  216. package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
  217. package/components/Link/Link.mixins.d.ts +1 -2
  218. package/components/Link/Link.styles/Link.styles.js +28 -21
  219. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  220. package/components/Link/Link.styles.d.ts +2 -0
  221. package/components/Loader/Loader/Loader.js +0 -2
  222. package/components/Loader/Loader/Loader.js.map +1 -1
  223. package/components/Modal/Modal/Modal.js +28 -11
  224. package/components/Modal/Modal/Modal.js.map +1 -1
  225. package/components/Modal/Modal.d.ts +3 -3
  226. package/components/Modal/Modal.styles/Modal.styles.js +24 -30
  227. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  228. package/components/Modal/Modal.styles.d.ts +0 -2
  229. package/components/Modal/ModalBody/ModalBody.js +0 -2
  230. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  231. package/components/Modal/ModalFooter/ModalFooter.js +3 -7
  232. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  233. package/components/Modal/ModalHeader/ModalHeader.js +3 -7
  234. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  235. package/components/PasswordInput/PasswordInput/PasswordInput.js +6 -5
  236. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  237. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +12 -4
  238. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  239. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  240. package/components/SidePage/SidePage/SidePage.js +9 -3
  241. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  242. package/components/SidePage/SidePage.d.ts +3 -3
  243. package/components/Spinner/Spinner.md +1 -1
  244. package/components/Switcher/Switcher/Switcher.js +8 -2
  245. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  246. package/components/Switcher/Switcher.d.ts +4 -2
  247. package/components/Toast/Toast.md +16 -12
  248. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  249. package/components/TokenInput/TokenInput.d.ts +44 -1
  250. package/components/TokenInput/TokenInput.md +100 -0
  251. package/index.d.ts +1 -0
  252. package/index.js +1 -0
  253. package/index.js.map +1 -1
  254. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +33 -14
  255. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  256. package/internal/DateSelect/DateSelect/DateSelect.js +4 -2
  257. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  258. package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
  259. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  260. package/internal/NativeDateInput/utils/utils.js.map +1 -1
  261. package/internal/NativeDateInput/utils.d.ts +1 -1
  262. package/internal/PopupMenu/PopupMenu/PopupMenu.js +13 -2
  263. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  264. package/internal/PopupMenu/PopupMenu.d.ts +8 -0
  265. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  266. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +1 -6
  267. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  268. package/internal/ZIndex/ZIndexStorage.d.ts +0 -5
  269. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js +1 -1
  270. package/internal/icons/SpinnerIcon.styles/SpinnerIcon.styles.js.map +1 -1
  271. package/internal/themes/DefaultTheme/DefaultTheme.js +25 -80
  272. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  273. package/internal/themes/DefaultTheme.d.ts +4 -15
  274. package/internal/themes/Theme2022/Theme2022.js +6 -21
  275. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  276. package/internal/themes/Theme2022.d.ts +0 -3
  277. package/lib/date/InternalDate/InternalDate.js +1 -1
  278. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  279. package/lib/date/InternalDate.d.ts +1 -1
  280. package/lib/locale/decorators/decorators.js.map +1 -1
  281. package/lib/locale/types/types.js.map +1 -1
  282. package/lib/locale/types.d.ts +2 -0
  283. package/package.json +2 -5
  284. package/typings/html.d.ts +1 -1
  285. package/typings/utility-types.d.ts +6 -0
  286. package/cjs/components/DatePicker/Picker.styles.d.ts +0 -5
  287. package/cjs/components/DatePicker/Picker.styles.js +0 -39
  288. package/cjs/components/DatePicker/Picker.styles.js.map +0 -1
  289. package/cjs/internal/Calendar/Calendar.d.ts +0 -63
  290. package/cjs/internal/Calendar/Calendar.js +0 -387
  291. package/cjs/internal/Calendar/Calendar.js.map +0 -1
  292. package/cjs/internal/Calendar/Calendar.styles.js +0 -23
  293. package/cjs/internal/Calendar/Calendar.styles.js.map +0 -1
  294. package/cjs/internal/Calendar/CalendarUtils.js +0 -71
  295. package/cjs/internal/Calendar/CalendarUtils.js.map +0 -1
  296. package/cjs/internal/Calendar/Month.js.map +0 -1
  297. package/components/DatePicker/Picker.styles/Picker.styles.js +0 -13
  298. package/components/DatePicker/Picker.styles/Picker.styles.js.map +0 -1
  299. package/components/DatePicker/Picker.styles/package.json +0 -6
  300. package/components/DatePicker/Picker.styles.d.ts +0 -5
  301. package/internal/Calendar/Calendar/Calendar.js.map +0 -1
  302. package/internal/Calendar/Calendar.d.ts +0 -63
  303. package/internal/Calendar/Calendar.styles/Calendar.styles.js +0 -14
  304. package/internal/Calendar/Calendar.styles/Calendar.styles.js.map +0 -1
  305. package/internal/Calendar/CalendarUtils/CalendarUtils.js.map +0 -1
  306. package/internal/Calendar/Month/Month.js.map +0 -1
  307. package/internal/Calendar/MonthView/MonthView.js.map +0 -1
  308. /package/cjs/{internal → components}/Calendar/CalendarDateShape.d.ts +0 -0
  309. /package/cjs/{internal → components}/Calendar/CalendarDateShape.js +0 -0
  310. /package/cjs/{internal → components}/Calendar/CalendarDateShape.js.map +0 -0
  311. /package/cjs/{internal → components}/Calendar/CalendarScrollEvents.d.ts +0 -0
  312. /package/cjs/{internal → components}/Calendar/CalendarScrollEvents.js +0 -0
  313. /package/cjs/{internal → components}/Calendar/CalendarScrollEvents.js.map +0 -0
  314. /package/cjs/{internal → components}/Calendar/DayCellView.d.ts +0 -0
  315. /package/cjs/{internal → components}/Calendar/DayCellView.js +0 -0
  316. /package/cjs/{internal → components}/Calendar/DayCellView.js.map +0 -0
  317. /package/cjs/{internal → components}/Calendar/DayCellView.styles.d.ts +0 -0
  318. /package/cjs/{internal → components}/Calendar/DayCellView.styles.js +0 -0
  319. /package/cjs/{internal → components}/Calendar/DayCellView.styles.js.map +0 -0
  320. /package/cjs/{internal → components}/Calendar/DayCellViewModel.d.ts +0 -0
  321. /package/cjs/{internal → components}/Calendar/DayCellViewModel.js +0 -0
  322. /package/cjs/{internal → components}/Calendar/DayCellViewModel.js.map +0 -0
  323. /package/cjs/{internal → components}/Calendar/Month.d.ts +0 -0
  324. /package/cjs/{internal → components}/Calendar/Month.js +0 -0
  325. /package/cjs/{internal → components}/Calendar/MonthView.styles.d.ts +0 -0
  326. /package/cjs/{internal → components}/Calendar/MonthView.styles.js +0 -0
  327. /package/cjs/{internal → components}/Calendar/MonthView.styles.js.map +0 -0
  328. /package/cjs/{internal → components}/Calendar/MonthViewModel.d.ts +0 -0
  329. /package/cjs/{internal → components}/Calendar/MonthViewModel.js +0 -0
  330. /package/cjs/{internal → components}/Calendar/MonthViewModel.js.map +0 -0
  331. /package/cjs/{internal → components}/Calendar/config.d.ts +0 -0
  332. /package/cjs/{internal → components}/Calendar/config.js +0 -0
  333. /package/cjs/{internal → components}/Calendar/config.js.map +0 -0
  334. /package/cjs/{internal → components}/Calendar/index.d.ts +0 -0
  335. /package/cjs/{internal → components}/Calendar/index.js +0 -0
  336. /package/cjs/{internal → components}/Calendar/index.js.map +0 -0
  337. /package/{internal → components}/Calendar/CalendarDateShape/CalendarDateShape.js +0 -0
  338. /package/{internal → components}/Calendar/CalendarDateShape/CalendarDateShape.js.map +0 -0
  339. /package/{internal → components}/Calendar/CalendarDateShape.d.ts +0 -0
  340. /package/{internal → components}/Calendar/CalendarScrollEvents/CalendarScrollEvents.js +0 -0
  341. /package/{internal → components}/Calendar/CalendarScrollEvents/CalendarScrollEvents.js.map +0 -0
  342. /package/{internal → components}/Calendar/CalendarScrollEvents.d.ts +0 -0
  343. /package/{internal → components}/Calendar/DayCellView/DayCellView.js +0 -0
  344. /package/{internal → components}/Calendar/DayCellView/DayCellView.js.map +0 -0
  345. /package/{internal → components}/Calendar/DayCellView.d.ts +0 -0
  346. /package/{internal → components}/Calendar/DayCellView.styles/DayCellView.styles.js +0 -0
  347. /package/{internal → components}/Calendar/DayCellView.styles/DayCellView.styles.js.map +0 -0
  348. /package/{internal → components}/Calendar/DayCellView.styles.d.ts +0 -0
  349. /package/{internal → components}/Calendar/DayCellViewModel/DayCellViewModel.js +0 -0
  350. /package/{internal → components}/Calendar/DayCellViewModel/DayCellViewModel.js.map +0 -0
  351. /package/{internal → components}/Calendar/DayCellViewModel.d.ts +0 -0
  352. /package/{internal → components}/Calendar/Month/Month.js +0 -0
  353. /package/{internal → components}/Calendar/Month.d.ts +0 -0
  354. /package/{internal → components}/Calendar/MonthView.styles/MonthView.styles.js +0 -0
  355. /package/{internal → components}/Calendar/MonthView.styles/MonthView.styles.js.map +0 -0
  356. /package/{internal → components}/Calendar/MonthView.styles.d.ts +0 -0
  357. /package/{internal → components}/Calendar/MonthViewModel/MonthViewModel.js +0 -0
  358. /package/{internal → components}/Calendar/MonthViewModel/MonthViewModel.js.map +0 -0
  359. /package/{internal → components}/Calendar/MonthViewModel.d.ts +0 -0
  360. /package/{internal → components}/Calendar/config/config.js +0 -0
  361. /package/{internal → components}/Calendar/config/config.js.map +0 -0
  362. /package/{internal → components}/Calendar/config.d.ts +0 -0
  363. /package/{internal → components}/Calendar/index/index.js +0 -0
  364. /package/{internal → components}/Calendar/index/index.js.map +0 -0
  365. /package/{internal → components}/Calendar/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["Loader.tsx"],"names":["React","PropTypes","debounce","LayoutEvents","Spinner","ThemeContext","ZIndex","CommonWrapper","cx","isTestEnv","TaskWithDelayAndMinimalDuration","getTabbableElements","rootNode","getDOMRect","createPropsGetter","styles","types","LoaderDataTids","veil","spinner","Loader","props","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","caption","type","setRootNode","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","Component","__KONTUR_REACT_UI__","propTypes","bool","node","className","string","oneOf","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = typeof types[number];\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n /**\n * Подпись под спиннером\n */\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n /**\n * Размер спиннера и текста\n *\n * @default normal\n */\n type?: LoaderType;\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер\n *\n * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n */\n type: PropTypes.oneOf(types),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n priority={'Loader'}\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n priority={'Loader'}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
1
+ {"version":3,"sources":["Loader.tsx"],"names":["React","PropTypes","debounce","LayoutEvents","Spinner","ThemeContext","ZIndex","CommonWrapper","cx","isTestEnv","TaskWithDelayAndMinimalDuration","getTabbableElements","rootNode","getDOMRect","createPropsGetter","styles","types","LoaderDataTids","veil","spinner","Loader","props","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","caption","type","setRootNode","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","Component","__KONTUR_REACT_UI__","propTypes","bool","node","className","string","oneOf","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = typeof types[number];\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n /**\n * Подпись под спиннером\n */\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n /**\n * Размер спиннера и текста\n *\n * @default normal\n */\n type?: LoaderType;\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер\n *\n * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n */\n type: PropTypes.oneOf(types),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
@@ -233,10 +233,23 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
233
233
  _proto.renderMain = function renderMain() {
234
234
  var _this3 = this;
235
235
 
236
+ var _this$props = this.props,
237
+ noClose = _this$props.noClose,
238
+ disableClose = _this$props.disableClose,
239
+ width = _this$props.width,
240
+ alignTop = _this$props.alignTop,
241
+ children = _this$props.children,
242
+ ariaLabel = _this$props['aria-label'],
243
+ ariaLabelledby = _this$props['aria-labelledby'];
236
244
  var _this$state = this.state,
237
245
  hasHeader = _this$state.hasHeader,
238
246
  hasFooter = _this$state.hasFooter,
239
247
  hasPanel = _this$state.hasPanel;
248
+
249
+ var _this$getProps = this.getProps(),
250
+ role = _this$getProps.role,
251
+ disableFocusLock = _this$getProps.disableFocusLock;
252
+
240
253
  var modalContextProps = {
241
254
  hasHeader: hasHeader,
242
255
  horizontalScroll: this.state.horizontalScroll,
@@ -245,9 +258,9 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
245
258
  setHasPanel: this.setHasPanel
246
259
  };
247
260
 
248
- if (!this.props.noClose) {
261
+ if (!noClose) {
249
262
  modalContextProps.close = {
250
- disableClose: this.props.disableClose,
263
+ disableClose: disableClose,
251
264
  requestClose: this.requestClose
252
265
  };
253
266
  }
@@ -263,8 +276,8 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
263
276
  var style = {};
264
277
  var containerStyle = {};
265
278
 
266
- if (this.props.width) {
267
- style.width = this.props.width;
279
+ if (width) {
280
+ style.width = width;
268
281
  } else {
269
282
  containerStyle.width = 'auto';
270
283
  }
@@ -275,6 +288,7 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
275
288
  }, /*#__PURE__*/React.createElement(HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/React.createElement("div", {
276
289
  className: styles.bg(this.theme)
277
290
  }), /*#__PURE__*/React.createElement("div", {
291
+ "aria-labelledby": ariaLabelledby,
278
292
  ref: this.refContainer,
279
293
  className: styles.container(),
280
294
  onMouseDown: this.handleContainerMouseDown,
@@ -286,7 +300,10 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
286
300
 
287
301
  var isMobile = _ref.isMobile;
288
302
  return /*#__PURE__*/React.createElement("div", {
289
- className: cx((_cx = {}, _cx[styles.centerContainer()] = true, _cx[styles.mobileCenterContainer()] = isMobile, _cx[styles.alignTop()] = Boolean(_this3.props.alignTop), _cx)),
303
+ "aria-modal": true,
304
+ "aria-label": ariaLabel,
305
+ role: role,
306
+ className: cx((_cx = {}, _cx[styles.centerContainer()] = true, _cx[styles.mobileCenterContainer()] = isMobile, _cx[styles.alignTop()] = Boolean(alignTop), _cx)),
290
307
  style: isMobile ? undefined : containerStyle,
291
308
  "data-tid": ModalDataTids.content
292
309
  }, /*#__PURE__*/React.createElement("div", {
@@ -296,19 +313,18 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
296
313
  onResize: _this3.handleResize,
297
314
  fullHeight: isMobile
298
315
  }, /*#__PURE__*/React.createElement(FocusLock, {
299
- disabled: _this3.getProps().disableFocusLock,
316
+ disabled: disableFocusLock,
300
317
  autoFocus: false,
301
318
  className: cx((_cx3 = {}, _cx3[styles.columnFlexContainer()] = isMobile, _cx3), 'focus-lock-container')
302
- }, !hasHeader && !_this3.props.noClose && /*#__PURE__*/React.createElement(ZIndex, {
303
- priority: 'ModalCross',
319
+ }, !hasHeader && !noClose && /*#__PURE__*/React.createElement(ZIndex, {
304
320
  className: cx((_cx4 = {}, _cx4[styles.closeWrapper(_this3.theme)] = true, _cx4[styles.mobileCloseWrapper(_this3.theme)] = isMobile, _cx4))
305
321
  }, /*#__PURE__*/React.createElement(ModalClose, {
306
322
  className: cx((_cx5 = {}, _cx5[styles.mobileCloseWithoutHeader()] = isMobile && !_this3.state.hasHeader, _cx5)),
307
323
  requestClose: _this3.requestClose,
308
- disableClose: _this3.props.disableClose
324
+ disableClose: disableClose
309
325
  })), /*#__PURE__*/React.createElement(ModalContext.Provider, {
310
326
  value: modalContextProps
311
- }, _this3.props.children)))));
327
+ }, children)))));
312
328
  })))));
313
329
  };
314
330
 
@@ -320,5 +336,6 @@ Modal.Body = ModalBody;
320
336
  Modal.Footer = ModalFooter;
321
337
  Modal.defaultProps = {
322
338
  // NOTE: в ie нормально не работает
323
- disableFocusLock: isIE11
339
+ disableFocusLock: isIE11,
340
+ role: 'dialog'
324
341
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.tsx"],"names":["React","FocusLock","throttle","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","ThemeContext","isIE11","CommonWrapper","cx","createPropsGetter","ResponsiveLayout","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","styles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","window","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","modalContextProps","noClose","additionalPadding","style","containerStyle","width","root","bg","isMobile","centerContainer","mobileCenterContainer","alignTop","Boolean","undefined","mobileWindow","disableFocusLock","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","children","Component","__KONTUR_REACT_UI__","Header","Body","Footer"],"mappings":"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","sourcesContent":["import React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps extends CommonProps {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n window.addEventListener('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n window.addEventListener('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n window.removeEventListener('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n window.removeEventListener('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { hasHeader, hasFooter, hasPanel } = this.state;\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!this.props.noClose) {\n modalContextProps.close = {\n disableClose: this.props.disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (this.props.width) {\n style.width = this.props.width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && <div className={styles.bg(this.theme)} />}\n <div\n ref={this.refContainer}\n className={styles.container()}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n className={cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(this.props.alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={this.getProps().disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !this.props.noClose && (\n <ZIndex\n priority={'ModalCross'}\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={this.props.disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{this.props.children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </div>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
1
+ {"version":3,"sources":["Modal.tsx"],"names":["React","FocusLock","throttle","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","ThemeContext","isIE11","CommonWrapper","cx","createPropsGetter","ResponsiveLayout","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","styles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","window","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","root","bg","isMobile","centerContainer","mobileCenterContainer","Boolean","undefined","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","Header","Body","Footer"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n window.addEventListener('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n window.addEventListener('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n window.removeEventListener('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n window.removeEventListener('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && <div className={styles.bg(this.theme)} />}\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={styles.container()}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </div>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import React, { AriaAttributes, HTMLAttributes } from 'react';
2
2
  import { CommonProps } from '../../internal/CommonWrapper';
3
3
  import { ModalFooter } from './ModalFooter';
4
4
  import { ModalHeader } from './ModalHeader';
5
5
  import { ModalBody } from './ModalBody';
6
- export interface ModalProps extends CommonProps {
6
+ export interface ModalProps extends CommonProps, Pick<HTMLAttributes<unknown>, 'role'>, Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {
7
7
  /**
8
8
  * Отключает событие onClose, также дизейблит кнопку закрытия модалки
9
9
  */
@@ -45,7 +45,7 @@ export declare const ModalDataTids: {
45
45
  readonly content: "modal-content";
46
46
  readonly close: "modal-close";
47
47
  };
48
- declare type DefaultProps = Required<Pick<ModalProps, 'disableFocusLock'>>;
48
+ declare type DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;
49
49
  /**
50
50
  * Модальное окно
51
51
  *
@@ -1,6 +1,6 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38;
4
4
 
5
5
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
6
6
  import { resetButton } from "../../../lib/styles/Mixins";
@@ -58,80 +58,74 @@ export var styles = memoizeStyle({
58
58
  focus: function focus(t) {
59
59
  return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n color: ", ";\n outline: 2px solid ", ";\n "])), t.modalCloseButtonHoverColor, t.borderColorFocus);
60
60
  },
61
- headerWrapper: function headerWrapper() {
62
- return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n position: relative;\n "])));
63
- },
64
61
  header: function header(t) {
65
- return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n padding: ", " ", " ", " ", ";\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ", ";\n font-weight: ", ";\n "])), t.modalHeaderFontSize, t.modalHeaderLineHeight, t.modalHeaderPaddingTop, t.modalPaddingRight, t.modalHeaderPaddingBottom, t.modalPaddingLeft, t.modalHeaderTextColor, t.modalHeaderFontWeight);
62
+ return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n padding: ", " ", " ", " ", ";\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ", ";\n font-weight: ", ";\n "])), t.modalHeaderFontSize, t.modalHeaderLineHeight, t.modalHeaderPaddingTop, t.modalPaddingRight, t.modalHeaderPaddingBottom, t.modalPaddingLeft, t.modalHeaderTextColor, t.modalHeaderFontWeight);
66
63
  },
67
64
  mobileHeader: function mobileHeader(t) {
68
- return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n padding: ", ";\n "])), t.mobileModalHeaderFontSize, t.mobileModalHeaderLineHeight, t.mobileModalHeaderPadding);
65
+ return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n position: relative;\n font-size: ", ";\n line-height: ", ";\n padding: ", ";\n "])), t.mobileModalHeaderFontSize, t.mobileModalHeaderLineHeight, t.mobileModalHeaderPadding);
69
66
  },
70
67
  body: function body(t) {
71
- return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n border-radius: ", ";\n padding: 0 ", " ", " ", ";\n color: ", ";\n "])), t.modalBodyBorderRadius, t.modalPaddingRight, t.modalBodyPaddingBottom, t.modalPaddingLeft, t.modalBodyTextColor);
68
+ return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n border-radius: ", ";\n padding: 0 ", " ", " ", ";\n color: ", ";\n "])), t.modalBodyBorderRadius, t.modalPaddingRight, t.modalBodyPaddingBottom, t.modalPaddingLeft, t.modalBodyTextColor);
72
69
  },
73
70
  mobileBody: function mobileBody(t) {
74
- return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n padding: ", ";\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ", ";\n "])), t.mobileModalBodyPadding, t.mobileModalBodyFontSize);
71
+ return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n padding: ", ";\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ", ";\n "])), t.mobileModalBodyPadding, t.mobileModalBodyFontSize);
75
72
  },
76
73
  headerWithClose: function headerWithClose(t) {
77
74
  var rightPadding = 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);
78
- return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n padding-right: ", "px;\n "])), rightPadding);
75
+ return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n padding-right: ", "px;\n "])), rightPadding);
79
76
  },
80
77
  mobileHeaderWithClose: function mobileHeaderWithClose(t) {
81
- return css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteralLoose(["\n padding-right: ", "px;\n "])), 2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize));
78
+ return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n padding-right: ", "px;\n "])), 2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize));
82
79
  },
83
80
  footer: function footer(t) {
84
- return css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteralLoose(["\n padding: ", " ", " ", " ", ";\n color: ", ";\n border-radius: 0 0 ", " ", ";\n "])), t.modalFooterPaddingTop, t.modalPaddingRight, t.modalFooterPaddingBottom, t.modalPaddingLeft, t.modalFooterTextColor, t.modalBorderRadius, t.modalBorderRadius);
81
+ return css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteralLoose(["\n padding: ", " ", " ", " ", ";\n color: ", ";\n border-radius: 0 0 ", " ", ";\n "])), t.modalFooterPaddingTop, t.modalPaddingRight, t.modalFooterPaddingBottom, t.modalPaddingLeft, t.modalFooterTextColor, t.modalBorderRadius, t.modalBorderRadius);
85
82
  },
86
83
  mobileFooter: function mobileFooter(t) {
87
- return css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteralLoose(["\n padding: ", ";\n "])), t.mobileModalFooterPadding);
88
- },
89
- footerWrapper: function footerWrapper() {
90
- return css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteralLoose(["\n position: relative;\n "])));
84
+ return css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteralLoose(["\n padding: ", ";\n "])), t.mobileModalFooterPadding);
91
85
  },
92
86
  panel: function panel(t) {
93
- return css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n padding-bottom: ", ";\n background: ", ";\n "])), t.modalFooterPanelPaddingTop, t.modalFooterPanelPaddingBottom, t.modalFooterBg);
87
+ return css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n padding-bottom: ", ";\n background: ", ";\n "])), t.modalFooterPanelPaddingTop, t.modalFooterPanelPaddingBottom, t.modalFooterBg);
94
88
  },
95
89
  fixedHeader: function fixedHeader(t) {
96
- return css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteralLoose(["\n margin-bottom: ", ";\n padding-bottom: ", ";\n background: ", ";\n border-bottom: ", ";\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedHeaderMarginBottom, t.modalFixedHeaderPaddingBottom, t.modalFixedHeaderBg, t.modalFixedHeaderBorder, t.modalFixedHeaderShadow);
90
+ return css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteralLoose(["\n margin-bottom: ", ";\n padding-bottom: ", ";\n background: ", ";\n border-bottom: ", ";\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedHeaderMarginBottom, t.modalFixedHeaderPaddingBottom, t.modalFixedHeaderBg, t.modalFixedHeaderBorder, t.modalFixedHeaderShadow);
97
91
  },
98
92
  mobileFixedHeader: function mobileFixedHeader(t) {
99
- return css(_templateObject28 || (_templateObject28 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.mobileModalHeaderPadding);
93
+ return css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.mobileModalHeaderPadding);
100
94
  },
101
95
  fixedFooter: function fixedFooter(t) {
102
- return css(_templateObject29 || (_templateObject29 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n margin-top: ", ";\n background: ", ";\n border-top: ", ";\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedFooterPaddingTop, t.modalFixedFooterMarginTop, t.modalFixedHeaderBg, t.modalFixedFooterBorder, t.modalFixedFooterShadow);
96
+ return css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n margin-top: ", ";\n background: ", ";\n border-top: ", ";\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedFooterPaddingTop, t.modalFixedFooterMarginTop, t.modalFixedHeaderBg, t.modalFixedFooterBorder, t.modalFixedFooterShadow);
103
97
  },
104
98
  fixedPanel: function fixedPanel(t) {
105
- return css(_templateObject30 || (_templateObject30 = _taggedTemplateLiteralLoose(["\n &:before {\n box-shadow: ", ";\n }\n "])), t.modalFixedPanelShadow);
99
+ return css(_templateObject28 || (_templateObject28 = _taggedTemplateLiteralLoose(["\n &:before {\n box-shadow: ", ";\n }\n "])), t.modalFixedPanelShadow);
106
100
  },
107
101
  headerAddPadding: function headerAddPadding(t) {
108
- return css(_templateObject31 || (_templateObject31 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.modalHeaderAdditionalPaddingBottom);
102
+ return css(_templateObject29 || (_templateObject29 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.modalHeaderAdditionalPaddingBottom);
109
103
  },
110
104
  bodyWithoutHeader: function bodyWithoutHeader(t) {
111
- return css(_templateObject32 || (_templateObject32 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n "])), t.modalPaddingTop);
105
+ return css(_templateObject30 || (_templateObject30 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n "])), t.modalPaddingTop);
112
106
  },
113
107
  mobileBodyWithoutHeader: function mobileBodyWithoutHeader() {
114
- return css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteralLoose(["\n padding-top: 0px;\n "])));
108
+ return css(_templateObject31 || (_templateObject31 = _taggedTemplateLiteralLoose(["\n padding-top: 0px;\n "])));
115
109
  },
116
110
  bodyWithoutPadding: function bodyWithoutPadding() {
117
- return css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteralLoose(["\n padding: 0;\n "])));
111
+ return css(_templateObject32 || (_templateObject32 = _taggedTemplateLiteralLoose(["\n padding: 0;\n "])));
118
112
  },
119
113
  bodyAddPaddingForPanel: function bodyAddPaddingForPanel(t) {
120
- return css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.modalPaddingBottom);
114
+ return css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.modalPaddingBottom);
121
115
  },
122
116
  mobileBodyAddPaddingForPanel: function mobileBodyAddPaddingForPanel(t) {
123
- return css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.mobileModalBodyPadding);
117
+ return css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.mobileModalBodyPadding);
124
118
  },
125
119
  columnFlexContainer: function columnFlexContainer() {
126
- return css(_templateObject37 || (_templateObject37 = _taggedTemplateLiteralLoose(["\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: auto;\n "])));
120
+ return css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteralLoose(["\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: auto;\n "])));
127
121
  },
128
122
  modalSeparatorWrapper: function modalSeparatorWrapper() {
129
- return css(_templateObject38 || (_templateObject38 = _taggedTemplateLiteralLoose(["\n position: absolute;\n width: 100%;\n "])));
123
+ return css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteralLoose(["\n position: absolute;\n width: 100%;\n "])));
130
124
  },
131
125
  modalSeparator: function modalSeparator(t) {
132
- return css(_templateObject39 || (_templateObject39 = _taggedTemplateLiteralLoose(["\n border-bottom: ", ";\n margin: 0 32px;\n transition: margin 0.3s;\n "])), t.modalSeparatorBorderBottom);
126
+ return css(_templateObject37 || (_templateObject37 = _taggedTemplateLiteralLoose(["\n border-bottom: ", ";\n margin: 0 32px;\n transition: margin 0.3s;\n "])), t.modalSeparatorBorderBottom);
133
127
  },
134
128
  modalSeparatorFixed: function modalSeparatorFixed() {
135
- return css(_templateObject40 || (_templateObject40 = _taggedTemplateLiteralLoose(["\n margin: 0 16px;\n "])));
129
+ return css(_templateObject38 || (_templateObject38 = _taggedTemplateLiteralLoose(["\n margin: 0 16px;\n "])));
136
130
  }
137
131
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","modalWindowShadow","modalBg","modalBorderRadius","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","modalHeaderFontWeight","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyBorderRadius","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderMarginBottom","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderBorder","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterPaddingTop","modalFixedFooterMarginTop","modalFixedFooterBorder","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","modalHeaderAdditionalPaddingBottom","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer","modalSeparatorWrapper","modalSeparator","modalSeparatorBorderBottom","modalSeparatorFixed"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: ${t.modalWindowShadow};\n background: ${t.modalBg};\n border-radius: ${t.modalBorderRadius};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer() {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n font-weight: ${t.modalHeaderFontWeight};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n border-radius: ${t.modalBodyBorderRadius};\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n border-radius: 0 0 ${t.modalBorderRadius} ${t.modalBorderRadius};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: ${t.modalFixedHeaderMarginBottom};\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n border-bottom: ${t.modalFixedHeaderBorder};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: ${t.modalFixedFooterPaddingTop};\n margin-top: ${t.modalFixedFooterMarginTop};\n background: ${t.modalFixedHeaderBg};\n border-top: ${t.modalFixedFooterBorder};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding(t: Theme) {\n return css`\n padding-bottom: ${t.modalHeaderAdditionalPaddingBottom};\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader() {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: auto;\n `;\n },\n\n modalSeparatorWrapper() {\n return css`\n position: absolute;\n width: 100%;\n `;\n },\n\n modalSeparator(t: Theme) {\n return css`\n border-bottom: ${t.modalSeparatorBorderBottom};\n margin: 0 32px;\n transition: margin 0.3s;\n `;\n },\n\n modalSeparatorFixed() {\n return css`\n margin: 0 16px;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","modalWindowShadow","modalBg","modalBorderRadius","mobileWindow","centerContainer","mobileCenterContainer","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","mobileClose","mobileModalCloseButtonRightPadding","mobileModalCloseButtonTopPadding","mobileModalHeaderPadding","mobileModalCloseButtonClickArea","mobileModalCloseIconSize","mobileCloseWithoutHeader","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","mobileCloseWrapper","size","bgDefault","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","modalHeaderFontWeight","mobileHeader","mobileModalHeaderFontSize","mobileModalHeaderLineHeight","body","modalBodyBorderRadius","modalBodyPaddingBottom","modalBodyTextColor","mobileBody","mobileModalBodyPadding","mobileModalBodyFontSize","headerWithClose","rightPadding","modalCloseLegacyGap","mobileHeaderWithClose","footer","modalFooterPaddingTop","modalFooterPaddingBottom","modalFooterTextColor","mobileFooter","mobileModalFooterPadding","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderMarginBottom","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderBorder","modalFixedHeaderShadow","mobileFixedHeader","fixedFooter","modalFixedFooterPaddingTop","modalFixedFooterMarginTop","modalFixedFooterBorder","modalFixedFooterShadow","fixedPanel","modalFixedPanelShadow","headerAddPadding","modalHeaderAdditionalPaddingBottom","bodyWithoutHeader","modalPaddingTop","mobileBodyWithoutHeader","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom","mobileBodyAddPaddingForPanel","columnFlexContainer","modalSeparatorWrapper","modalSeparator","modalSeparatorBorderBottom","modalSeparatorFixed"],"mappings":"2yBAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;AAEA,SAASC,WAAT,QAA4B,yBAA5B;;AAEA,OAAO,IAAMC,MAAM,GAAGF,YAAY,CAAC;AACjCG,EAAAA,IADiC,kBAC1B;AACL,WAAOJ,GAAP;;;;;;;AAOD,GATgC;;AAWjCK,EAAAA,EAXiC,cAW9BC,CAX8B,EAWpB;AACX,WAAON,GAAP;;;;;;AAMgBM,IAAAA,CAAC,CAACC,WANlB;AAOaD,IAAAA,CAAC,CAACE,gBAPf;;AASD,GArBgC;;AAuBjCC,EAAAA,SAvBiC,uBAuBrB;AACV,WAAOT,GAAP;;;;;;;;;;;;;;;AAeD,GAvCgC;;AAyCjCU,EAAAA,MAzCiC,kBAyC1BJ,CAzC0B,EAyChB;AACf,WAAON,GAAP;;;;AAIgBM,IAAAA,CAAC,CAACK,iBAJlB;AAKgBL,IAAAA,CAAC,CAACM,OALlB;AAMmBN,IAAAA,CAAC,CAACO,iBANrB;;AAQD,GAlDgC;;AAoDjCC,EAAAA,YApDiC,0BAoDlB;AACb,WAAOd,GAAP;;;;;AAKD,GA1DgC;;AA4DjCe,EAAAA,eA5DiC,6BA4Df;AAChB,WAAOf,GAAP;;;;;;;;;AASD,GAtEgC;;AAwEjCgB,EAAAA,qBAxEiC,mCAwET;AACtB,WAAOhB,GAAP;;;;;AAKD,GA9EgC;;AAgFjCiB,EAAAA,QAhFiC,sBAgFtB;AACT,WAAOjB,GAAP;;;AAGD,GApFgC;;AAsFjCkB,EAAAA,KAtFiC,iBAsF3BZ,CAtF2B,EAsFjB;AACd,QAAMa,OAAO,GAAGC,QAAQ,CAACd,CAAC,CAACe,uBAAH,CAAxB;AACA,WAAOrB,GAAP;AACIE,IAAAA,WAAW,EADf;;;AAIWiB,IAAAA,OAJX;AAKSA,IAAAA,OALT;;;;AASWb,IAAAA,CAAC,CAACgB,qBATb;;;AAYahB,IAAAA,CAAC,CAACiB,yBAZf;AAaajB,IAAAA,CAAC,CAACiB,yBAbf;;;AAgBajB,IAAAA,CAAC,CAACkB,0BAhBf;;;;AAoBalB,IAAAA,CAAC,CAACmB,kBApBf;AAqBcnB,IAAAA,CAAC,CAACmB,kBArBhB;;;;AAyBD,GAjHgC;;AAmHjCC,EAAAA,WAnHiC,uBAmHrBpB,CAnHqB,EAmHX;AACpB,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACqB,kCADb;AAESP,IAAAA,QAAQ,CAACd,CAAC,CAACsB,gCAAH,CAAR,GAA+CR,QAAQ,CAACd,CAAC,CAACuB,wBAAH,CAFhE;AAGavB,IAAAA,CAAC,CAACwB,+BAHf;AAIaxB,IAAAA,CAAC,CAACwB,+BAJf;;;AAOaxB,IAAAA,CAAC,CAACyB,wBAPf;AAQczB,IAAAA,CAAC,CAACyB,wBARhB;;;AAWD,GA/HgC;;AAiIjCC,EAAAA,wBAjIiC,sCAiIN;AACzB,WAAOhC,GAAP;;;AAGD,GArIgC;;AAuIjCiC,EAAAA,YAvIiC,wBAuIpB3B,CAvIoB,EAuIV;AACrB,QAAMa,OAAO,GAAGC,QAAQ,CAACd,CAAC,CAACe,uBAAH,CAAxB;AACA,QAAMa,aAAa,GAAGd,QAAQ,CAACd,CAAC,CAAC6B,6BAAH,CAA9B;AACA,QAAMC,SAAS,GAAGhB,QAAQ,CAACd,CAAC,CAAC+B,0BAAH,CAA1B;AACA,QAAMC,WAAW,GAAGlB,QAAQ,CAACd,CAAC,CAACiC,2BAAH,CAA5B;AACA,QAAMC,UAAU,GAAGpB,QAAQ,CAACd,CAAC,CAACmB,kBAAH,CAAR,GAAiC,IAAIN,OAArC,GAA+CmB,WAAlE;AACA,QAAMG,UAAU,GAAGrB,QAAQ,CAACd,CAAC,CAACmB,kBAAH,CAAR,GAAiCN,OAAjC,GAA2Ce,aAA3C,GAA2DE,SAA9E;AACA,WAAOpC,GAAP;;;AAGWwC,IAAAA,UAAU,GAAGJ,SAHxB;AAIYK,IAAAA,UAJZ;;AAMD,GApJgC;;AAsJjCC,EAAAA,kBAtJiC,8BAsJdpC,CAtJc,EAsJJ;AAC3B,QAAMqC,IAAI,GAAGvB,QAAQ,CAACd,CAAC,CAACyB,wBAAH,CAAR,GAAuCX,QAAQ,CAACd,CAAC,CAACwB,+BAAH,CAAR,GAA8C,CAAlG;;AAEA,WAAO9B,GAAP;;AAEWM,IAAAA,CAAC,CAACqB,kCAFb;AAGSrB,IAAAA,CAAC,CAACsB,gCAHX;;;;;;AASWe,IAAAA,IATX;AAUYA,IAAAA,IAVZ;AAWoDrC,IAAAA,CAAC,CAACsC,SAXtD;AAYmBD,IAAAA,IAZnB;;AAcD,GAvKgC;;AAyKjCE,EAAAA,QAzKiC,oBAyKxBvC,CAzKwB,EAyKd;AACjB,WAAON,GAAP;;;AAGWM,IAAAA,CAAC,CAACwC,6BAHb;;AAKD,GA/KgC;;AAiLjCC,EAAAA,KAjLiC,iBAiL3BzC,CAjL2B,EAiLjB;AACd,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACkB,0BADb;AAEuBlB,IAAAA,CAAC,CAAC0C,gBAFzB;;AAID,GAtLgC;;AAwLjCC,EAAAA,MAxLiC,kBAwL1B3C,CAxL0B,EAwLhB;AACf,WAAON,GAAP;AACeM,IAAAA,CAAC,CAAC4C,mBADjB;AAEiB5C,IAAAA,CAAC,CAAC6C,qBAFnB;AAGa7C,IAAAA,CAAC,CAAC8C,qBAHf,EAGwC9C,CAAC,CAAC+C,iBAH1C,EAG+D/C,CAAC,CAACgD,wBAHjE,EAG6FhD,CAAC,CAACiD,gBAH/F;;;AAMWjD,IAAAA,CAAC,CAACkD,oBANb;AAOiBlD,IAAAA,CAAC,CAACmD,qBAPnB;;AASD,GAlMgC;;AAoMjCC,EAAAA,YApMiC,wBAoMpBpD,CApMoB,EAoMV;AACrB,WAAON,GAAP;;AAEeM,IAAAA,CAAC,CAACqD,yBAFjB;AAGiBrD,IAAAA,CAAC,CAACsD,2BAHnB;AAIatD,IAAAA,CAAC,CAACuB,wBAJf;;AAMD,GA3MgC;;AA6MjCgC,EAAAA,IA7MiC,gBA6M5BvD,CA7M4B,EA6MlB;AACb,WAAON,GAAP;AACmBM,IAAAA,CAAC,CAACwD,qBADrB;AAEexD,IAAAA,CAAC,CAAC+C,iBAFjB,EAEsC/C,CAAC,CAACyD,sBAFxC,EAEkEzD,CAAC,CAACiD,gBAFpE;AAGWjD,IAAAA,CAAC,CAAC0D,kBAHb;;AAKD,GAnNgC;;AAqNjCC,EAAAA,UArNiC,sBAqNtB3D,CArNsB,EAqNZ;AACnB,WAAON,GAAP;AACaM,IAAAA,CAAC,CAAC4D,sBADf;;;;;AAMe5D,IAAAA,CAAC,CAAC6D,uBANjB;;AAQD,GA9NgC;;AAgOjCC,EAAAA,eAhOiC,2BAgOjB9D,CAhOiB,EAgOP;AACxB,QAAM+D,YAAY;AAChB,QAAIjD,QAAQ,CAACd,CAAC,CAACe,uBAAH,CAAZ,GAA0CD,QAAQ,CAACd,CAAC,CAACmB,kBAAH,CAAlD,GAA2EL,QAAQ,CAACd,CAAC,CAACgE,mBAAH,CADrF;;AAGA,WAAOtE,GAAP;AACmBqE,IAAAA,YADnB;;AAGD,GAvOgC;;AAyOjCE,EAAAA,qBAzOiC,iCAyOXjE,CAzOW,EAyOD;AAC9B,WAAON,GAAP;AACmB,QAAIoB,QAAQ,CAACd,CAAC,CAACqB,kCAAH,CAAZ,GAAqDP,QAAQ,CAACd,CAAC,CAACyB,wBAAH,CADhF;;AAGD,GA7OgC;;AA+OjCyC,EAAAA,MA/OiC,kBA+O1BlE,CA/O0B,EA+OhB;AACf,WAAON,GAAP;AACaM,IAAAA,CAAC,CAACmE,qBADf,EACwCnE,CAAC,CAAC+C,iBAD1C,EAC+D/C,CAAC,CAACoE,wBADjE,EAC6FpE,CAAC,CAACiD,gBAD/F;AAEWjD,IAAAA,CAAC,CAACqE,oBAFb;AAGuBrE,IAAAA,CAAC,CAACO,iBAHzB,EAG8CP,CAAC,CAACO,iBAHhD;;AAKD,GArPgC;;AAuPjC+D,EAAAA,YAvPiC,wBAuPpBtE,CAvPoB,EAuPV;AACrB,WAAON,GAAP;AACaM,IAAAA,CAAC,CAACuE,wBADf;;AAGD,GA3PgC;;AA6PjCC,EAAAA,KA7PiC,iBA6P3BxE,CA7P2B,EA6PjB;AACd,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAACyE,0BADnB;AAEoBzE,IAAAA,CAAC,CAAC0E,6BAFtB;AAGgB1E,IAAAA,CAAC,CAAC2E,aAHlB;;AAKD,GAnQgC;;AAqQjCC,EAAAA,WArQiC,uBAqQrB5E,CArQqB,EAqQX;AACpB,WAAON,GAAP;AACmBM,IAAAA,CAAC,CAAC6E,4BADrB;AAEoB7E,IAAAA,CAAC,CAAC8E,6BAFtB;AAGgB9E,IAAAA,CAAC,CAAC+E,kBAHlB;AAImB/E,IAAAA,CAAC,CAACgF,sBAJrB;;;;;;;;;;AAckBhF,IAAAA,CAAC,CAACiF,sBAdpB;;;AAiBD,GAvRgC;;AAyRjCC,EAAAA,iBAzRiC,6BAyRflF,CAzRe,EAyRL;AAC1B,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAACuB,wBADtB;;AAGD,GA7RgC;;AA+RjC4D,EAAAA,WA/RiC,uBA+RrBnF,CA/RqB,EA+RX;AACpB,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAACoF,0BADnB;AAEgBpF,IAAAA,CAAC,CAACqF,yBAFlB;AAGgBrF,IAAAA,CAAC,CAAC+E,kBAHlB;AAIgB/E,IAAAA,CAAC,CAACsF,sBAJlB;;;;;;;;;;AAckBtF,IAAAA,CAAC,CAACuF,sBAdpB;;;AAiBD,GAjTgC;;AAmTjCC,EAAAA,UAnTiC,sBAmTtBxF,CAnTsB,EAmTZ;AACnB,WAAON,GAAP;;AAEkBM,IAAAA,CAAC,CAACyF,qBAFpB;;;AAKD,GAzTgC;;AA2TjCC,EAAAA,gBA3TiC,4BA2ThB1F,CA3TgB,EA2TN;AACzB,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAAC2F,kCADtB;;AAGD,GA/TgC;;AAiUjCC,EAAAA,iBAjUiC,6BAiUf5F,CAjUe,EAiUL;AAC1B,WAAON,GAAP;AACiBM,IAAAA,CAAC,CAAC6F,eADnB;;AAGD,GArUgC;;AAuUjCC,EAAAA,uBAvUiC,qCAuUP;AACxB,WAAOpG,GAAP;;;AAGD,GA3UgC;;AA6UjCqG,EAAAA,kBA7UiC,gCA6UZ;AACnB,WAAOrG,GAAP;;;AAGD,GAjVgC;;AAmVjCsG,EAAAA,sBAnViC,kCAmVVhG,CAnVU,EAmVA;AAC/B,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAACiG,kBADtB;;AAGD,GAvVgC;;AAyVjCC,EAAAA,4BAzViC,wCAyVJlG,CAzVI,EAyVM;AACrC,WAAON,GAAP;AACoBM,IAAAA,CAAC,CAAC4D,sBADtB;;AAGD,GA7VgC;;AA+VjCuC,EAAAA,mBA/ViC,iCA+VX;AACpB,WAAOzG,GAAP;;;;;;AAMD,GAtWgC;;AAwWjC0G,EAAAA,qBAxWiC,mCAwWT;AACtB,WAAO1G,GAAP;;;;AAID,GA7WgC;;AA+WjC2G,EAAAA,cA/WiC,0BA+WlBrG,CA/WkB,EA+WR;AACvB,WAAON,GAAP;AACmBM,IAAAA,CAAC,CAACsG,0BADrB;;;;AAKD,GArXgC;;AAuXjCC,EAAAA,mBAvXiC,iCAuXX;AACpB,WAAO7G,GAAP;;;AAGD,GA3XgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: ${t.modalWindowShadow};\n background: ${t.modalBg};\n border-radius: ${t.modalBorderRadius};\n `;\n },\n\n mobileWindow() {\n return css`\n width: 100%;\n height: 100%;\n overflow: auto;\n `;\n },\n\n centerContainer() {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n `;\n },\n\n mobileCenterContainer() {\n return css`\n margin: 0;\n width: 100%;\n height: 100%;\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n mobileClose(t: Theme) {\n return css`\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${parseInt(t.mobileModalCloseButtonTopPadding) + parseInt(t.mobileModalHeaderPadding)}px;\n padding: ${t.mobileModalCloseButtonClickArea};\n margin: -${t.mobileModalCloseButtonClickArea};\n\n & > svg {\n width: ${t.mobileModalCloseIconSize};\n height: ${t.mobileModalCloseIconSize};\n }\n `;\n },\n\n mobileCloseWithoutHeader() {\n return css`\n position: static;\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n mobileCloseWrapper(t: Theme) {\n const size = parseInt(t.mobileModalCloseIconSize) + parseInt(t.mobileModalCloseButtonClickArea) * 2;\n\n return css`\n position: absolute;\n right: ${t.mobileModalCloseButtonRightPadding};\n top: ${t.mobileModalCloseButtonTopPadding};\n padding: 0px;\n margin: 0px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ${size}px;\n height: ${size}px;\n background: radial-gradient(50% 50% at 50% 50%, ${t.bgDefault} 60%, rgba(255, 255, 255, 0) 100%);\n border-radius: ${size}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n font-weight: ${t.modalHeaderFontWeight};\n `;\n },\n\n mobileHeader(t: Theme) {\n return css`\n position: relative;\n font-size: ${t.mobileModalHeaderFontSize};\n line-height: ${t.mobileModalHeaderLineHeight};\n padding: ${t.mobileModalHeaderPadding};\n `;\n },\n\n body(t: Theme) {\n return css`\n border-radius: ${t.modalBodyBorderRadius};\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalBodyTextColor};\n `;\n },\n\n mobileBody(t: Theme) {\n return css`\n padding: ${t.mobileModalBodyPadding};\n padding-top: 0px;\n display: flex;\n flex-flow: column;\n flex: 1;\n font-size: ${t.mobileModalBodyFontSize};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n mobileHeaderWithClose(t: Theme) {\n return css`\n padding-right: ${2 * parseInt(t.mobileModalCloseButtonRightPadding) + parseInt(t.mobileModalCloseIconSize)}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n color: ${t.modalFooterTextColor};\n border-radius: 0 0 ${t.modalBorderRadius} ${t.modalBorderRadius};\n `;\n },\n\n mobileFooter(t: Theme) {\n return css`\n padding: ${t.mobileModalFooterPadding};\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: ${t.modalFixedHeaderMarginBottom};\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n border-bottom: ${t.modalFixedHeaderBorder};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n mobileFixedHeader(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalHeaderPadding};\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: ${t.modalFixedFooterPaddingTop};\n margin-top: ${t.modalFixedFooterMarginTop};\n background: ${t.modalFixedHeaderBg};\n border-top: ${t.modalFixedFooterBorder};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n fixedPanel(t: Theme) {\n return css`\n &:before {\n box-shadow: ${t.modalFixedPanelShadow};\n }\n `;\n },\n\n headerAddPadding(t: Theme) {\n return css`\n padding-bottom: ${t.modalHeaderAdditionalPaddingBottom};\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n mobileBodyWithoutHeader() {\n return css`\n padding-top: 0px;\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n\n mobileBodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.mobileModalBodyPadding};\n `;\n },\n\n columnFlexContainer() {\n return css`\n height: 100%;\n display: flex;\n flex-flow: column;\n overflow-y: auto;\n `;\n },\n\n modalSeparatorWrapper() {\n return css`\n position: absolute;\n width: 100%;\n `;\n },\n\n modalSeparator(t: Theme) {\n return css`\n border-bottom: ${t.modalSeparatorBorderBottom};\n margin: 0 32px;\n transition: margin 0.3s;\n `;\n },\n\n modalSeparatorFixed() {\n return css`\n margin: 0 16px;\n `;\n },\n});\n"]}
@@ -15,7 +15,6 @@ export declare const styles: {
15
15
  mobileCloseWrapper(t: Theme): string;
16
16
  disabled(t: Theme): string;
17
17
  focus(t: Theme): string;
18
- headerWrapper(): string;
19
18
  header(t: Theme): string;
20
19
  mobileHeader(t: Theme): string;
21
20
  body(t: Theme): string;
@@ -24,7 +23,6 @@ export declare const styles: {
24
23
  mobileHeaderWithClose(t: Theme): string;
25
24
  footer(t: Theme): string;
26
25
  mobileFooter(t: Theme): string;
27
- footerWrapper(): string;
28
26
  panel(t: Theme): string;
29
27
  fixedHeader(t: Theme): string;
30
28
  mobileFixedHeader(t: Theme): string;
@@ -65,8 +65,6 @@ var ModalBody = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /
65
65
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
66
66
  rootNodeRef: _this3.setRootNode
67
67
  }, _this3.props), /*#__PURE__*/React.createElement(ZIndex, {
68
- priority: 'ModalBody',
69
- createStackingContext: true,
70
68
  className: cx((_cx = {}, _cx[styles.body(_this3.theme)] = true, _cx[styles.mobileBody(_this3.theme)] = _this3.isMobileLayout, _cx[styles.bodyWithoutHeader(_this3.theme)] = !hasHeader, _cx[styles.mobileBodyWithoutHeader()] = !hasHeader && _this3.isMobileLayout, _cx[styles.bodyAddPaddingForPanel(_this3.theme)] = additionalPadding, _cx[styles.mobileBodyAddPaddingForPanel(_this3.theme)] = additionalPadding && _this3.isMobileLayout, _cx[styles.bodyWithoutPadding()] = noPadding, _cx))
71
69
  }, _this3.isMobileLayout ? /*#__PURE__*/React.createElement(ResizeDetector, {
72
70
  onResize: _this3.handleResize