kui-complex 0.0.79 → 0.0.80

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 (433) hide show
  1. package/AutocompleteOption/cjs/index.js +50 -0
  2. package/AutocompleteOption/cjs/index.js.map +1 -0
  3. package/AutocompleteOption/cjs/package.json +9 -0
  4. package/AutocompleteOption/index.d.ts +7 -0
  5. package/AutocompleteOption/index.js +44 -0
  6. package/AutocompleteOption/index.js.map +1 -0
  7. package/AutocompleteOption/package.json +9 -0
  8. package/Avatar/cjs/index.js +92 -0
  9. package/Avatar/cjs/index.js.map +1 -0
  10. package/Avatar/cjs/package.json +9 -0
  11. package/Avatar/index.d.ts +12 -0
  12. package/Avatar/index.js +86 -0
  13. package/Avatar/index.js.map +1 -0
  14. package/Avatar/package.json +9 -0
  15. package/ButtonSelect/cjs/index.js +252 -0
  16. package/ButtonSelect/cjs/index.js.map +1 -0
  17. package/ButtonSelect/cjs/package.json +9 -0
  18. package/ButtonSelect/index.d.ts +24 -0
  19. package/ButtonSelect/index.js +228 -0
  20. package/ButtonSelect/index.js.map +1 -0
  21. package/ButtonSelect/package.json +9 -0
  22. package/ButtonTab/cjs/index.js +58 -0
  23. package/ButtonTab/cjs/index.js.map +1 -0
  24. package/ButtonTab/cjs/package.json +9 -0
  25. package/ButtonTab/index.d.ts +14 -0
  26. package/ButtonTab/index.js +51 -0
  27. package/ButtonTab/index.js.map +1 -0
  28. package/ButtonTab/package.json +9 -0
  29. package/ButtonsPanel/cjs/index.js +133 -0
  30. package/ButtonsPanel/cjs/index.js.map +1 -0
  31. package/ButtonsPanel/cjs/package.json +9 -0
  32. package/ButtonsPanel/index.d.ts +19 -0
  33. package/ButtonsPanel/index.js +108 -0
  34. package/ButtonsPanel/index.js.map +1 -0
  35. package/ButtonsPanel/package.json +9 -0
  36. package/CalendarHeaderWithSelect/cjs/index.js +287 -0
  37. package/CalendarHeaderWithSelect/cjs/index.js.map +1 -0
  38. package/CalendarHeaderWithSelect/cjs/package.json +10 -0
  39. package/CalendarHeaderWithSelect/index.d.ts +21 -0
  40. package/CalendarHeaderWithSelect/index.js +263 -0
  41. package/CalendarHeaderWithSelect/index.js.map +1 -0
  42. package/CalendarHeaderWithSelect/package.json +10 -0
  43. package/CalendarStandardContainer/cjs/index.js +63 -0
  44. package/CalendarStandardContainer/cjs/index.js.map +1 -0
  45. package/CalendarStandardContainer/cjs/package.json +9 -0
  46. package/CalendarStandardContainer/index.d.ts +13 -0
  47. package/CalendarStandardContainer/index.js +57 -0
  48. package/CalendarStandardContainer/index.js.map +1 -0
  49. package/CalendarStandardContainer/package.json +9 -0
  50. package/CalendarStandardHeader/cjs/index.js +57 -0
  51. package/CalendarStandardHeader/cjs/index.js.map +1 -0
  52. package/CalendarStandardHeader/cjs/package.json +10 -0
  53. package/CalendarStandardHeader/index.d.ts +13 -0
  54. package/CalendarStandardHeader/index.js +50 -0
  55. package/CalendarStandardHeader/index.js.map +1 -0
  56. package/CalendarStandardHeader/package.json +10 -0
  57. package/CheckboxGroupWithTitle/cjs/index.js +81 -0
  58. package/CheckboxGroupWithTitle/cjs/index.js.map +1 -0
  59. package/CheckboxGroupWithTitle/cjs/package.json +10 -0
  60. package/CheckboxGroupWithTitle/index.d.ts +15 -0
  61. package/CheckboxGroupWithTitle/index.js +75 -0
  62. package/CheckboxGroupWithTitle/index.js.map +1 -0
  63. package/CheckboxGroupWithTitle/package.json +10 -0
  64. package/CheckboxWithController/cjs/index.js +63 -0
  65. package/CheckboxWithController/cjs/index.js.map +1 -0
  66. package/CheckboxWithController/cjs/package.json +10 -0
  67. package/CheckboxWithController/index.d.ts +5 -0
  68. package/CheckboxWithController/index.js +61 -0
  69. package/CheckboxWithController/index.js.map +1 -0
  70. package/CheckboxWithController/package.json +10 -0
  71. package/DependentInput/cjs/index.js +81 -0
  72. package/DependentInput/cjs/index.js.map +1 -0
  73. package/DependentInput/cjs/package.json +10 -0
  74. package/DependentInput/index.d.ts +3 -0
  75. package/DependentInput/index.js +79 -0
  76. package/DependentInput/index.js.map +1 -0
  77. package/DependentInput/package.json +10 -0
  78. package/DesktopInputWithMonthPicker/cjs/index.js +102 -0
  79. package/DesktopInputWithMonthPicker/cjs/index.js.map +1 -0
  80. package/DesktopInputWithMonthPicker/cjs/package.json +11 -0
  81. package/DesktopInputWithMonthPicker/index.d.ts +5 -0
  82. package/DesktopInputWithMonthPicker/index.js +95 -0
  83. package/DesktopInputWithMonthPicker/index.js.map +1 -0
  84. package/DesktopInputWithMonthPicker/package.json +11 -0
  85. package/DesktopMenuPanel/cjs/index.js +102 -0
  86. package/DesktopMenuPanel/cjs/index.js.map +1 -0
  87. package/DesktopMenuPanel/cjs/package.json +10 -0
  88. package/DesktopMenuPanel/index.d.ts +18 -0
  89. package/DesktopMenuPanel/index.js +96 -0
  90. package/DesktopMenuPanel/index.js.map +1 -0
  91. package/DesktopMenuPanel/package.json +10 -0
  92. package/FileItem/cjs/index.js +164 -0
  93. package/FileItem/cjs/index.js.map +1 -0
  94. package/FileItem/cjs/package.json +10 -0
  95. package/FileItem/index.d.ts +46 -0
  96. package/FileItem/index.js +158 -0
  97. package/FileItem/index.js.map +1 -0
  98. package/FileItem/package.json +10 -0
  99. package/InputDropdown/cjs/index.js +116 -0
  100. package/InputDropdown/cjs/index.js.map +1 -0
  101. package/InputDropdown/cjs/package.json +9 -0
  102. package/InputDropdown/index.d.ts +13 -0
  103. package/InputDropdown/index.js +110 -0
  104. package/InputDropdown/index.js.map +1 -0
  105. package/InputDropdown/package.json +9 -0
  106. package/InputFile/cjs/index.js +279 -0
  107. package/InputFile/cjs/index.js.map +1 -0
  108. package/InputFile/cjs/package.json +11 -0
  109. package/InputFile/index.d.ts +22 -0
  110. package/InputFile/index.js +273 -0
  111. package/InputFile/index.js.map +1 -0
  112. package/InputFile/package.json +11 -0
  113. package/InputForDatepicker/cjs/index.js +73 -0
  114. package/InputForDatepicker/cjs/index.js.map +1 -0
  115. package/InputForDatepicker/cjs/package.json +9 -0
  116. package/InputForDatepicker/index.d.ts +5 -0
  117. package/InputForDatepicker/index.js +67 -0
  118. package/InputForDatepicker/index.js.map +1 -0
  119. package/InputForDatepicker/package.json +9 -0
  120. package/InputMultiSelect/cjs/index.js +282 -0
  121. package/InputMultiSelect/cjs/index.js.map +1 -0
  122. package/InputMultiSelect/cjs/package.json +10 -0
  123. package/InputMultiSelect/index.d.ts +24 -0
  124. package/InputMultiSelect/index.js +258 -0
  125. package/InputMultiSelect/index.js.map +1 -0
  126. package/InputMultiSelect/package.json +10 -0
  127. package/InputMultiSelectOption/cjs/index.js +60 -0
  128. package/InputMultiSelectOption/cjs/index.js.map +1 -0
  129. package/InputMultiSelectOption/cjs/package.json +9 -0
  130. package/InputMultiSelectOption/index.d.ts +14 -0
  131. package/InputMultiSelectOption/index.js +54 -0
  132. package/InputMultiSelectOption/index.js.map +1 -0
  133. package/InputMultiSelectOption/package.json +9 -0
  134. package/InputPassword/cjs/index.js +176 -0
  135. package/InputPassword/cjs/index.js.map +1 -0
  136. package/InputPassword/cjs/package.json +10 -0
  137. package/InputPassword/index.d.ts +13 -0
  138. package/InputPassword/index.js +170 -0
  139. package/InputPassword/index.js.map +1 -0
  140. package/InputPassword/package.json +10 -0
  141. package/InputPhoneWithForm/cjs/index.js +134 -0
  142. package/InputPhoneWithForm/cjs/index.js.map +1 -0
  143. package/InputPhoneWithForm/cjs/package.json +10 -0
  144. package/InputPhoneWithForm/index.d.ts +14 -0
  145. package/InputPhoneWithForm/index.js +113 -0
  146. package/InputPhoneWithForm/index.js.map +1 -0
  147. package/InputPhoneWithForm/package.json +10 -0
  148. package/InputSelect/cjs/index.js +244 -0
  149. package/InputSelect/cjs/index.js.map +1 -0
  150. package/InputSelect/cjs/package.json +9 -0
  151. package/InputSelect/index.d.ts +5 -0
  152. package/InputSelect/index.js +220 -0
  153. package/InputSelect/index.js.map +1 -0
  154. package/InputSelect/package.json +9 -0
  155. package/InputSelectBase/cjs/index.js +216 -0
  156. package/InputSelectBase/cjs/index.js.map +1 -0
  157. package/InputSelectBase/cjs/package.json +9 -0
  158. package/InputSelectBase/index.d.ts +25 -0
  159. package/InputSelectBase/index.js +192 -0
  160. package/InputSelectBase/index.js.map +1 -0
  161. package/InputSelectBase/package.json +9 -0
  162. package/InputSelectDropdown/cjs/index.js +135 -0
  163. package/InputSelectDropdown/cjs/index.js.map +1 -0
  164. package/InputSelectDropdown/cjs/package.json +9 -0
  165. package/InputSelectDropdown/index.d.ts +23 -0
  166. package/InputSelectDropdown/index.js +129 -0
  167. package/InputSelectDropdown/index.js.map +1 -0
  168. package/InputSelectDropdown/package.json +9 -0
  169. package/InputSelectOption/cjs/index.js +53 -0
  170. package/InputSelectOption/cjs/index.js.map +1 -0
  171. package/InputSelectOption/cjs/package.json +9 -0
  172. package/InputSelectOption/index.d.ts +14 -0
  173. package/InputSelectOption/index.js +47 -0
  174. package/InputSelectOption/index.js.map +1 -0
  175. package/InputSelectOption/package.json +9 -0
  176. package/InputSelectWithController/cjs/index.js +268 -0
  177. package/InputSelectWithController/cjs/index.js.map +1 -0
  178. package/InputSelectWithController/cjs/package.json +10 -0
  179. package/InputSelectWithController/index.d.ts +5 -0
  180. package/InputSelectWithController/index.js +244 -0
  181. package/InputSelectWithController/index.js.map +1 -0
  182. package/InputSelectWithController/package.json +10 -0
  183. package/InputTextAreaMobile/cjs/index.js +86 -0
  184. package/InputTextAreaMobile/cjs/index.js.map +1 -0
  185. package/InputTextAreaMobile/cjs/package.json +10 -0
  186. package/InputTextAreaMobile/index.d.ts +5 -0
  187. package/InputTextAreaMobile/index.js +80 -0
  188. package/InputTextAreaMobile/index.js.map +1 -0
  189. package/InputTextAreaMobile/package.json +10 -0
  190. package/InputWithAddressAutocomplete/cjs/index.js +280 -0
  191. package/InputWithAddressAutocomplete/cjs/index.js.map +1 -0
  192. package/InputWithAddressAutocomplete/cjs/package.json +11 -0
  193. package/InputWithAddressAutocomplete/index.d.ts +36 -0
  194. package/InputWithAddressAutocomplete/index.js +274 -0
  195. package/InputWithAddressAutocomplete/index.js.map +1 -0
  196. package/InputWithAddressAutocomplete/package.json +11 -0
  197. package/InputWithAutocomplete/cjs/index.js +310 -0
  198. package/InputWithAutocomplete/cjs/index.js.map +1 -0
  199. package/InputWithAutocomplete/cjs/package.json +10 -0
  200. package/InputWithAutocomplete/index.d.ts +27 -0
  201. package/InputWithAutocomplete/index.js +286 -0
  202. package/InputWithAutocomplete/index.js.map +1 -0
  203. package/InputWithAutocomplete/package.json +10 -0
  204. package/InputWithController/cjs/index.js +71 -0
  205. package/InputWithController/cjs/index.js.map +1 -0
  206. package/InputWithController/cjs/package.json +10 -0
  207. package/InputWithController/index.d.ts +13 -0
  208. package/InputWithController/index.js +69 -0
  209. package/InputWithController/index.js.map +1 -0
  210. package/InputWithController/package.json +10 -0
  211. package/InputWithDatePicker/cjs/index.js +424 -0
  212. package/InputWithDatePicker/cjs/index.js.map +1 -0
  213. package/InputWithDatePicker/cjs/package.json +13 -0
  214. package/InputWithDatePicker/index.d.ts +24 -0
  215. package/InputWithDatePicker/index.js +398 -0
  216. package/InputWithDatePicker/index.js.map +1 -0
  217. package/InputWithDatePicker/package.json +13 -0
  218. package/InputWithMask/cjs/index.js +69 -0
  219. package/InputWithMask/cjs/index.js.map +1 -0
  220. package/InputWithMask/cjs/package.json +10 -0
  221. package/InputWithMask/index.d.ts +13 -0
  222. package/InputWithMask/index.js +67 -0
  223. package/InputWithMask/index.js.map +1 -0
  224. package/InputWithMask/package.json +10 -0
  225. package/InputWithMonthPicker/cjs/index.js +195 -0
  226. package/InputWithMonthPicker/cjs/index.js.map +1 -0
  227. package/InputWithMonthPicker/cjs/package.json +12 -0
  228. package/InputWithMonthPicker/index.d.ts +5 -0
  229. package/InputWithMonthPicker/index.js +187 -0
  230. package/InputWithMonthPicker/index.js.map +1 -0
  231. package/InputWithMonthPicker/package.json +12 -0
  232. package/Link/cjs/index.js +97 -0
  233. package/Link/cjs/index.js.map +1 -0
  234. package/Link/cjs/package.json +10 -0
  235. package/Link/index.d.ts +13 -0
  236. package/Link/index.js +91 -0
  237. package/Link/index.js.map +1 -0
  238. package/Link/package.json +10 -0
  239. package/Loading/cjs/index.js +72 -0
  240. package/Loading/cjs/index.js.map +1 -0
  241. package/Loading/cjs/package.json +9 -0
  242. package/Loading/index.d.ts +7 -0
  243. package/Loading/index.js +66 -0
  244. package/Loading/index.js.map +1 -0
  245. package/Loading/package.json +9 -0
  246. package/MapWrapper/cjs/index.js +117 -0
  247. package/MapWrapper/cjs/index.js.map +1 -0
  248. package/MapWrapper/cjs/package.json +10 -0
  249. package/MapWrapper/index.d.ts +9 -0
  250. package/MapWrapper/index.js +111 -0
  251. package/MapWrapper/index.js.map +1 -0
  252. package/MapWrapper/package.json +10 -0
  253. package/MenuItem/cjs/index.js +83 -0
  254. package/MenuItem/cjs/index.js.map +1 -0
  255. package/MenuItem/cjs/package.json +10 -0
  256. package/MenuItem/index.d.ts +17 -0
  257. package/MenuItem/index.js +77 -0
  258. package/MenuItem/index.js.map +1 -0
  259. package/MenuItem/package.json +10 -0
  260. package/MenuPanel/cjs/index.js +194 -0
  261. package/MenuPanel/cjs/index.js.map +1 -0
  262. package/MenuPanel/cjs/package.json +13 -0
  263. package/MenuPanel/index.d.ts +18 -0
  264. package/MenuPanel/index.js +168 -0
  265. package/MenuPanel/index.js.map +1 -0
  266. package/MenuPanel/package.json +13 -0
  267. package/MobileInputWithMonthPicker/cjs/index.js +182 -0
  268. package/MobileInputWithMonthPicker/cjs/index.js.map +1 -0
  269. package/MobileInputWithMonthPicker/cjs/package.json +12 -0
  270. package/MobileInputWithMonthPicker/index.d.ts +5 -0
  271. package/MobileInputWithMonthPicker/index.js +174 -0
  272. package/MobileInputWithMonthPicker/index.js.map +1 -0
  273. package/MobileInputWithMonthPicker/package.json +12 -0
  274. package/MobileMenuPanel/cjs/index.js +113 -0
  275. package/MobileMenuPanel/cjs/index.js.map +1 -0
  276. package/MobileMenuPanel/cjs/package.json +11 -0
  277. package/MobileMenuPanel/index.d.ts +18 -0
  278. package/MobileMenuPanel/index.js +106 -0
  279. package/MobileMenuPanel/index.js.map +1 -0
  280. package/MobileMenuPanel/package.json +11 -0
  281. package/ModalFooter/cjs/index.js +66 -0
  282. package/ModalFooter/cjs/index.js.map +1 -0
  283. package/ModalFooter/cjs/package.json +9 -0
  284. package/ModalFooter/index.d.ts +9 -0
  285. package/ModalFooter/index.js +60 -0
  286. package/ModalFooter/index.js.map +1 -0
  287. package/ModalFooter/package.json +9 -0
  288. package/MonthPickerContainer/cjs/index.js +63 -0
  289. package/MonthPickerContainer/cjs/index.js.map +1 -0
  290. package/MonthPickerContainer/cjs/package.json +9 -0
  291. package/MonthPickerContainer/index.d.ts +12 -0
  292. package/MonthPickerContainer/index.js +57 -0
  293. package/MonthPickerContainer/index.js.map +1 -0
  294. package/MonthPickerContainer/package.json +9 -0
  295. package/MonthPickerHeader/cjs/index.js +53 -0
  296. package/MonthPickerHeader/cjs/index.js.map +1 -0
  297. package/MonthPickerHeader/cjs/package.json +9 -0
  298. package/MonthPickerHeader/index.d.ts +13 -0
  299. package/MonthPickerHeader/index.js +47 -0
  300. package/MonthPickerHeader/index.js.map +1 -0
  301. package/MonthPickerHeader/package.json +9 -0
  302. package/PassportStrengthBar/cjs/index.js +82 -0
  303. package/PassportStrengthBar/cjs/index.js.map +1 -0
  304. package/PassportStrengthBar/cjs/package.json +9 -0
  305. package/PassportStrengthBar/index.d.ts +13 -0
  306. package/PassportStrengthBar/index.js +76 -0
  307. package/PassportStrengthBar/index.js.map +1 -0
  308. package/PassportStrengthBar/package.json +9 -0
  309. package/Popper/cjs/index.js +227 -0
  310. package/Popper/cjs/index.js.map +1 -0
  311. package/Popper/cjs/package.json +10 -0
  312. package/Popper/index.d.ts +23 -0
  313. package/Popper/index.js +201 -0
  314. package/Popper/index.js.map +1 -0
  315. package/Popper/package.json +10 -0
  316. package/PopperBase/cjs/index.js +72 -0
  317. package/PopperBase/cjs/index.js.map +1 -0
  318. package/PopperBase/cjs/package.json +9 -0
  319. package/PopperBase/index.d.ts +21 -0
  320. package/PopperBase/index.js +65 -0
  321. package/PopperBase/index.js.map +1 -0
  322. package/PopperBase/package.json +9 -0
  323. package/PopperWithPortal/cjs/index.js +166 -0
  324. package/PopperWithPortal/cjs/index.js.map +1 -0
  325. package/PopperWithPortal/cjs/package.json +10 -0
  326. package/PopperWithPortal/index.d.ts +23 -0
  327. package/PopperWithPortal/index.js +140 -0
  328. package/PopperWithPortal/index.js.map +1 -0
  329. package/PopperWithPortal/package.json +10 -0
  330. package/RadioButtons/cjs/index.js +80 -0
  331. package/RadioButtons/cjs/index.js.map +1 -0
  332. package/RadioButtons/cjs/package.json +9 -0
  333. package/RadioButtons/index.d.ts +27 -0
  334. package/RadioButtons/index.js +78 -0
  335. package/RadioButtons/index.js.map +1 -0
  336. package/RadioButtons/package.json +9 -0
  337. package/RadioButtonsWithController/cjs/index.js +102 -0
  338. package/RadioButtonsWithController/cjs/index.js.map +1 -0
  339. package/RadioButtonsWithController/cjs/package.json +10 -0
  340. package/RadioButtonsWithController/index.d.ts +31 -0
  341. package/RadioButtonsWithController/index.js +100 -0
  342. package/RadioButtonsWithController/index.js.map +1 -0
  343. package/RadioButtonsWithController/package.json +10 -0
  344. package/RadioGroupWithLabel/cjs/index.js +149 -0
  345. package/RadioGroupWithLabel/cjs/index.js.map +1 -0
  346. package/RadioGroupWithLabel/cjs/package.json +10 -0
  347. package/RadioGroupWithLabel/index.d.ts +34 -0
  348. package/RadioGroupWithLabel/index.js +143 -0
  349. package/RadioGroupWithLabel/index.js.map +1 -0
  350. package/RadioGroupWithLabel/package.json +10 -0
  351. package/SelectMonth/cjs/index.js +265 -0
  352. package/SelectMonth/cjs/index.js.map +1 -0
  353. package/SelectMonth/cjs/package.json +9 -0
  354. package/SelectMonth/index.d.ts +26 -0
  355. package/SelectMonth/index.js +241 -0
  356. package/SelectMonth/index.js.map +1 -0
  357. package/SelectMonth/package.json +9 -0
  358. package/SelectYear/cjs/index.js +253 -0
  359. package/SelectYear/cjs/index.js.map +1 -0
  360. package/SelectYear/cjs/package.json +9 -0
  361. package/SelectYear/index.d.ts +27 -0
  362. package/SelectYear/index.js +229 -0
  363. package/SelectYear/index.js.map +1 -0
  364. package/SelectYear/package.json +9 -0
  365. package/StaticPopper/cjs/index.js +140 -0
  366. package/StaticPopper/cjs/index.js.map +1 -0
  367. package/StaticPopper/cjs/package.json +9 -0
  368. package/StaticPopper/index.d.ts +23 -0
  369. package/StaticPopper/index.js +133 -0
  370. package/StaticPopper/index.js.map +1 -0
  371. package/StaticPopper/package.json +9 -0
  372. package/Switch/cjs/index.js +55 -0
  373. package/Switch/cjs/index.js.map +1 -0
  374. package/Switch/cjs/package.json +10 -0
  375. package/Switch/index.d.ts +14 -0
  376. package/Switch/index.js +53 -0
  377. package/Switch/index.js.map +1 -0
  378. package/Switch/package.json +10 -0
  379. package/Table/cjs/index.js +47 -0
  380. package/Table/cjs/index.js.map +1 -0
  381. package/Table/cjs/package.json +9 -0
  382. package/Table/index.d.ts +5 -0
  383. package/Table/index.js +41 -0
  384. package/Table/index.js.map +1 -0
  385. package/Table/package.json +9 -0
  386. package/TableCell/cjs/index.js +33 -0
  387. package/TableCell/cjs/index.js.map +1 -0
  388. package/TableCell/cjs/package.json +6 -0
  389. package/TableCell/index.d.ts +10 -0
  390. package/TableCell/index.js +27 -0
  391. package/TableCell/index.js.map +1 -0
  392. package/TableCell/package.json +6 -0
  393. package/TableHeadCell/cjs/index.js +33 -0
  394. package/TableHeadCell/cjs/index.js.map +1 -0
  395. package/TableHeadCell/cjs/package.json +6 -0
  396. package/TableHeadCell/index.d.ts +10 -0
  397. package/TableHeadCell/index.js +27 -0
  398. package/TableHeadCell/index.js.map +1 -0
  399. package/TableHeadCell/package.json +6 -0
  400. package/TableRow/cjs/index.js +71 -0
  401. package/TableRow/cjs/index.js.map +1 -0
  402. package/TableRow/cjs/package.json +9 -0
  403. package/TableRow/index.d.ts +5 -0
  404. package/TableRow/index.js +50 -0
  405. package/TableRow/index.js.map +1 -0
  406. package/TableRow/package.json +9 -0
  407. package/TestForm/cjs/index.js +755 -0
  408. package/TestForm/cjs/index.js.map +1 -0
  409. package/TestForm/cjs/package.json +15 -0
  410. package/TestForm/index.d.ts +3 -0
  411. package/TestForm/index.js +727 -0
  412. package/TestForm/index.js.map +1 -0
  413. package/TestForm/package.json +15 -0
  414. package/Tooltip/cjs/index.js +257 -0
  415. package/Tooltip/cjs/index.js.map +1 -0
  416. package/Tooltip/cjs/package.json +10 -0
  417. package/Tooltip/index.d.ts +28 -0
  418. package/Tooltip/index.js +231 -0
  419. package/Tooltip/index.js.map +1 -0
  420. package/Tooltip/package.json +10 -0
  421. package/UndefinedAvatar/cjs/index.js +71 -0
  422. package/UndefinedAvatar/cjs/index.js.map +1 -0
  423. package/UndefinedAvatar/cjs/package.json +9 -0
  424. package/UndefinedAvatar/index.d.ts +8 -0
  425. package/UndefinedAvatar/index.js +65 -0
  426. package/UndefinedAvatar/index.js.map +1 -0
  427. package/UndefinedAvatar/package.json +9 -0
  428. package/cjs/index.js +1981 -0
  429. package/cjs/index.js.map +1 -0
  430. package/index.d.ts +492 -0
  431. package/index.js +1880 -0
  432. package/index.js.map +1 -0
  433. package/package.json +1 -4
package/index.js ADDED
@@ -0,0 +1,1880 @@
1
+ import 'react-datepicker/dist/react-datepicker.css';
2
+ import 'swiper/swiper-bundle.css';
3
+ import { jsx as jsx$1, jsxs, Fragment } from '@emotion/react/jsx-runtime';
4
+ import styled from '@emotion/styled';
5
+ import { css, Global } from '@emotion/react';
6
+ import * as React from 'react';
7
+ import { forwardRef, useEffect, useState, useRef } from 'react';
8
+ import { jsx, jsxs as jsxs$1, Fragment as Fragment$1 } from 'react/jsx-runtime';
9
+ import { Caption, theme, Button, Container, Grid, InputWithAdornments, Heading, InputWithMask as InputWithMask$1, IconButton, LinearProgress, Divider, Modal, Switch as Switch$1, InputWithCountryDropdown, Checkbox, Radio, InputMessage, CircularProgress, Box } from 'kui-basic';
10
+ import classNames from 'classnames';
11
+ import { DateTime } from 'luxon';
12
+ import { HalfArrowIcon, PrevArrowIcon, NextArrowIcon, CalendarIcon, ArrowBackIcon, ArrowNextIcon, ClosedEyeIcon, OpenEyeIcon, CheckIcon, PlusIcon, FileIcon, EditIcon, TrashIcon } from 'kui-icon';
13
+ import _ from 'lodash';
14
+ import DatePicker from 'react-datepicker';
15
+ import { Controller, useController, useWatch } from 'react-hook-form';
16
+ import { scroller, Events, Link as Link$1, animateScroll, Element } from 'react-scroll';
17
+ import ru from 'date-fns/locale/ru';
18
+ import { useNavigate } from 'react-router-dom';
19
+ import { useLocation } from 'react-router';
20
+ import Swiper from 'react-id-swiper';
21
+ import * as ReactDOM from 'react-dom';
22
+ import { Loader } from '@googlemaps/js-api-loader';
23
+
24
+ /******************************************************************************
25
+ Copyright (c) Microsoft Corporation.
26
+
27
+ Permission to use, copy, modify, and/or distribute this software for any
28
+ purpose with or without fee is hereby granted.
29
+
30
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
31
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
32
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
33
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
34
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
35
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
36
+ PERFORMANCE OF THIS SOFTWARE.
37
+ ***************************************************************************** */
38
+
39
+ var __assign = function() {
40
+ __assign = Object.assign || function __assign(t) {
41
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
42
+ s = arguments[i];
43
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
44
+ }
45
+ return t;
46
+ };
47
+ return __assign.apply(this, arguments);
48
+ };
49
+
50
+ function __rest(s, e) {
51
+ var t = {};
52
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
53
+ t[p] = s[p];
54
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
55
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
56
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
57
+ t[p[i]] = s[p[i]];
58
+ }
59
+ return t;
60
+ }
61
+
62
+ function __awaiter(thisArg, _arguments, P, generator) {
63
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
64
+ return new (P || (P = Promise))(function (resolve, reject) {
65
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
66
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
67
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
68
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
69
+ });
70
+ }
71
+
72
+ function __generator(thisArg, body) {
73
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
74
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
75
+ function verb(n) { return function (v) { return step([n, v]); }; }
76
+ function step(op) {
77
+ if (f) throw new TypeError("Generator is already executing.");
78
+ while (_) try {
79
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
80
+ if (y = 0, t) op = [op[0] & 2, t.value];
81
+ switch (op[0]) {
82
+ case 0: case 1: t = op; break;
83
+ case 4: _.label++; return { value: op[1], done: false };
84
+ case 5: _.label++; y = op[1]; op = [0]; continue;
85
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
86
+ default:
87
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
88
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
89
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
90
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
91
+ if (t[2]) _.ops.pop();
92
+ _.trys.pop(); continue;
93
+ }
94
+ op = body.call(thisArg, _);
95
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
96
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
97
+ }
98
+ }
99
+
100
+ function __spreadArray(to, from, pack) {
101
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
102
+ if (ar || !(i in from)) {
103
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
104
+ ar[i] = from[i];
105
+ }
106
+ }
107
+ return to.concat(ar || Array.prototype.slice.call(from));
108
+ }
109
+
110
+ function __makeTemplateObject(cooked, raw) {
111
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
112
+ return cooked;
113
+ }
114
+
115
+ var UndefinedAvatar = forwardRef(function (_a, ref) {
116
+ var label = _a.label, otherProps = __rest(_a, ["label"]);
117
+ if (!label) {
118
+ return jsx("div", {});
119
+ }
120
+ var formattedLabel = label
121
+ .split(" ")
122
+ .map(function (el) { return el[0]; })
123
+ .slice(0, 3)
124
+ .join("");
125
+ return (jsx(Wrapper$8, __assign({ "data-testid": "undefined_avatar", ref: ref }, { children: jsx(Caption, __assign({ size: "xs", weight: 600, colorGroup: "brand", color: "main" }, otherProps, { children: formattedLabel })) })));
126
+ });
127
+ var Wrapper$8 = styled.div(templateObject_1$H || (templateObject_1$H = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n &,\n p {\n transition: all ease-out 0.3s;\n }\n @media (min-width: 900px) {\n &:hover {\n background-color: ", ";\n p {\n color: white;\n }\n }\n }\n"], ["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n &,\n p {\n transition: all ease-out 0.3s;\n }\n @media (min-width: 900px) {\n &:hover {\n background-color: ", ";\n p {\n color: white;\n }\n }\n }\n"])), theme.palette.brand.light, theme.palette.brand.main);
128
+ var templateObject_1$H;
129
+
130
+ var Avatar = forwardRef(function (props, ref) {
131
+ var size = props.size, fullName = props.fullName, imageUrl = props.imageUrl, otherProps = __rest(props, ["size", "fullName", "imageUrl"]);
132
+ return (jsx$1(Wrapper$7, __assign({ css: sizeStyles[size], ref: ref }, otherProps, { children: imageUrl ? (jsx$1(StyledImage, { "data-testid": "avatar_image", src: imageUrl, alt: "avatar" })) : (jsx$1(StyledUndefinedAvatar, { label: fullName, avatarSize: size })) })));
133
+ });
134
+ var Wrapper$7 = styled.div(templateObject_1$G || (templateObject_1$G = __makeTemplateObject(["\n border-radius: 50%;\n overflow: hidden;\n cursor: pointer;\n"], ["\n border-radius: 50%;\n overflow: hidden;\n cursor: pointer;\n"])));
135
+ var StyledImage = styled.img(templateObject_2$p || (templateObject_2$p = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n object-fit: cover;\n"], ["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n object-fit: cover;\n"])));
136
+ var largeAvatarCSS = function (_a) {
137
+ var avatarSize = _a.avatarSize;
138
+ return avatarSize === "lg" && css(templateObject_3$c || (templateObject_3$c = __makeTemplateObject(["\n font-size: 32px;\n "], ["\n font-size: 32px;\n "])));
139
+ };
140
+ var StyledUndefinedAvatar = styled(UndefinedAvatar, {
141
+ shouldForwardProp: function (prop) { return prop !== "size"; },
142
+ })(templateObject_4$6 || (templateObject_4$6 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), largeAvatarCSS);
143
+ var sizeStyles = {
144
+ s: css(templateObject_5$4 || (templateObject_5$4 = __makeTemplateObject(["\n width: 40px;\n height: 40px;\n @media (max-width: 600px) {\n width: 32px;\n height: 32px;\n }\n "], ["\n width: 40px;\n height: 40px;\n @media (max-width: 600px) {\n width: 32px;\n height: 32px;\n }\n "]))),
145
+ lg: css(templateObject_6$1 || (templateObject_6$1 = __makeTemplateObject(["\n width: 80px;\n height: 80px;\n "], ["\n width: 80px;\n height: 80px;\n "]))),
146
+ };
147
+ var templateObject_1$G, templateObject_2$p, templateObject_3$c, templateObject_4$6, templateObject_5$4, templateObject_6$1;
148
+
149
+ var ButtonTab = forwardRef(function (_a, ref) {
150
+ var index = _a.index, onClick = _a.onClick, isActive = _a.isActive, label = _a.label;
151
+ var handleClick = function () {
152
+ onClick(index);
153
+ };
154
+ return (jsx$1(StyledButton$1, __assign({ variant: isActive ? "orange" : "white", captionWeight: isActive ? 600 : 400, onClick: handleClick, css: !isActive && inactiveStyles, size: "s", ref: ref, className: classNames("KUI-ButtonTab", isActive && "KUI-ButtonTab_active") }, { children: label })));
155
+ });
156
+ var StyledButton$1 = styled(Button)(templateObject_1$F || (templateObject_1$F = __makeTemplateObject(["\n margin-right: 24px;\n &:last-of-type {\n margin-right: 0;\n }\n"], ["\n margin-right: 24px;\n &:last-of-type {\n margin-right: 0;\n }\n"])));
157
+ var inactiveStyles = css(templateObject_2$o || (templateObject_2$o = __makeTemplateObject(["\n p {\n color: ", ";\n }\n"], ["\n p {\n color: ", ";\n }\n"])), theme.palette.grey.seventy);
158
+ var templateObject_1$F, templateObject_2$o;
159
+
160
+ var updateQueryParams = function (newLink) {
161
+ var searchQuery = new URLSearchParams(window.location.search);
162
+ var hrefLinkParams = newLink.split(/\?|&/);
163
+ var hrefParams = Object.fromEntries(new URLSearchParams(hrefLinkParams.slice(1).join("&")).entries());
164
+ var searchParams = Object.fromEntries(searchQuery.entries());
165
+ var route = hrefLinkParams[0];
166
+ Object.keys(searchParams).forEach(function (key, index) {
167
+ if (key in hrefParams) {
168
+ searchParams[key] = hrefParams[key];
169
+ delete hrefParams[key];
170
+ }
171
+ if (key !== "id") {
172
+ route += "".concat(index === 0 ? "?" : "&").concat(key, "=").concat(searchParams[key]);
173
+ }
174
+ });
175
+ Object.keys(hrefParams).forEach(function (key) {
176
+ route += "&".concat(key, "=").concat(hrefParams[key]);
177
+ });
178
+ window.history.pushState({ route: route }, "", route);
179
+ };
180
+
181
+ var ButtonsPanel = forwardRef(function (_a, ref) {
182
+ var tabs = _a.tabs, tabPanels = _a.tabPanels, paths = _a.paths, activeTab = _a.activeTab, isSticky = _a.isSticky, onChange = _a.onChange, startComponent = _a.startComponent, endComponent = _a.endComponent, otherProps = __rest(_a, ["tabs", "tabPanels", "paths", "activeTab", "isSticky", "onChange", "startComponent", "endComponent"]);
183
+ var _b = React.useState(Number(activeTab)), value = _b[0], setValue = _b[1];
184
+ var handleChange = function (newValue) {
185
+ setValue(newValue);
186
+ if (paths && paths.length)
187
+ updateQueryParams(paths[newValue]);
188
+ if (onChange)
189
+ onChange(newValue);
190
+ };
191
+ useEffect(function () {
192
+ setValue(Number(activeTab));
193
+ }, [activeTab]);
194
+ return (jsxs(Fragment, { children: [jsx$1(StyledContainer$2, __assign({ css: isSticky && { position: "sticky" }, ref: ref }, otherProps, { children: jsxs(StyledWrapper$9, __assign({ className: "KUI-ButtonTabs" }, { children: [startComponent, tabs.map(function (item, index) { return (jsx$1(ButtonTab, { index: index, onClick: handleChange, isActive: index === value, label: item }, item)); }), endComponent] })) })), tabPanels.map(function (item, index) { return (jsx$1(Content, __assign({ role: "tabpanel", hidden: value !== index }, { children: value === index && jsx$1(Fragment, { children: item }) }), index)); })] }));
195
+ });
196
+ ButtonsPanel.defaultProps = {
197
+ isSticky: false,
198
+ };
199
+ var Content = styled.div(templateObject_1$E || (templateObject_1$E = __makeTemplateObject(["\n height: 100%;\n"], ["\n height: 100%;\n"])));
200
+ var StyledContainer$2 = styled.div(templateObject_2$n || (templateObject_2$n = __makeTemplateObject(["\n background: ", ";\n top: 80px;\n z-index: 4;\n padding-top: 16px;\n padding-bottom: 24px;\n @media (max-width: 1200px) {\n padding-bottom: 18px;\n }\n @media (max-width: 600px) {\n top: 48px;\n }\n"], ["\n background: ", ";\n top: 80px;\n z-index: 4;\n padding-top: 16px;\n padding-bottom: 24px;\n @media (max-width: 1200px) {\n padding-bottom: 18px;\n }\n @media (max-width: 600px) {\n top: 48px;\n }\n"])), theme.palette.grey.zero);
201
+ var StyledWrapper$9 = styled(Container)(templateObject_3$b || (templateObject_3$b = __makeTemplateObject(["\n display: flex;\n align-items: center;\n"], ["\n display: flex;\n align-items: center;\n"])));
202
+ var templateObject_1$E, templateObject_2$n, templateObject_3$b;
203
+
204
+ var InputDropdown = forwardRef(function (props, ref) {
205
+ var isOpen = props.isOpen, handleClose = props.handleClose, buttonRef = props.buttonRef, children = props.children, endComponent = props.endComponent, otherProps = __rest(props, ["isOpen", "handleClose", "buttonRef", "children", "endComponent"]);
206
+ var _a = useState(false), isScrollable = _a[0], setIsScrollable = _a[1];
207
+ var dropdownRef = useRef(null);
208
+ var closePopUp = function (e) {
209
+ if (dropdownRef.current && buttonRef && buttonRef.current) {
210
+ if (!dropdownRef.current.contains(e.target) &&
211
+ !buttonRef.current.contains(e.target)) {
212
+ handleClose();
213
+ }
214
+ }
215
+ };
216
+ useEffect(function () {
217
+ document.addEventListener("click", closePopUp);
218
+ return function () {
219
+ document.removeEventListener("click", closePopUp);
220
+ };
221
+ });
222
+ useEffect(function () {
223
+ var _a;
224
+ if (buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) {
225
+ if (isOpen) {
226
+ buttonRef.current.style.zIndex = "4";
227
+ var scrollContainer = (_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.children[0].children[0];
228
+ if (scrollContainer) {
229
+ var hasScroll = scrollContainer.scrollHeight > scrollContainer.clientHeight;
230
+ setIsScrollable(hasScroll);
231
+ }
232
+ }
233
+ else {
234
+ buttonRef.current.style.zIndex = "1";
235
+ }
236
+ }
237
+ }, [isOpen]);
238
+ if (!isOpen) {
239
+ return null;
240
+ }
241
+ var forwardedRef = function (elem) {
242
+ if (typeof ref === "function")
243
+ ref(elem);
244
+ else if (ref)
245
+ ref.current = elem;
246
+ dropdownRef.current = elem;
247
+ };
248
+ return (jsxs$1(StyledDropdown$2, __assign({ "data-testid": "input_dropdown", container: true, ref: forwardedRef, isOpen: isOpen }, otherProps, { children: [jsx(StyledWrapper$8, __assign({ isScrollable: isScrollable }, { children: jsx(ScrollingContainer, __assign({ isScrollable: isScrollable, className: "KUI-InputDropdown_scroll" }, { children: children })) })), endComponent] })));
249
+ });
250
+ var StyledDropdown$2 = styled(Grid)(templateObject_1$D || (templateObject_1$D = __makeTemplateObject(["\n width: 100%;\n display: ", ";\n position: absolute;\n background: ", ";\n z-index: 3;\n top: 50px;\n box-shadow: 0px 26px 34px 0px #0000001a;\n border-radius: 0 0 8px 8px;\n user-select: none;\n"], ["\n width: 100%;\n display: ", ";\n position: absolute;\n background: ", ";\n z-index: 3;\n top: 50px;\n box-shadow: 0px 26px 34px 0px #0000001a;\n border-radius: 0 0 8px 8px;\n user-select: none;\n"])), function (_a) {
251
+ var isOpen = _a.isOpen;
252
+ return (isOpen ? "flex" : "none");
253
+ }, theme.palette.grey.zero);
254
+ var StyledWrapper$8 = styled.div(templateObject_2$m || (templateObject_2$m = __makeTemplateObject(["\n width: 100%;\n box-sizing: border-box;\n padding: ", ";\n"], ["\n width: 100%;\n box-sizing: border-box;\n padding: ", ";\n"])), function (_a) {
255
+ var isScrollable = _a.isScrollable;
256
+ return isScrollable ? "14px 8px 8px 0" : "14px 0px 8px 0";
257
+ });
258
+ var ScrollingContainer = styled.div(templateObject_3$a || (templateObject_3$a = __makeTemplateObject(["\n width: 100%;\n max-height: 389px;\n box-sizing: border-box;\n z-index: 3;\n overflow: auto;\n -ms-overflow-style: none;\n overflow-y: scroll;\n overflow-x: hidden;\n user-select: none;\n ::-webkit-scrollbar {\n width: ", ";\n position: absolute;\n right: 8px;\n }\n ::-webkit-scrollbar-track,\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n transition: all ease-out 0.3s;\n }\n\n ::-webkit-resizer,\n ::-webkit-scrollbar-button,\n ::-webkit-scrollbar-corner {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background: ", ";\n }\n\n ::-webkit-scrollbar-thumb {\n background: ", ";\n }\n"], ["\n width: 100%;\n max-height: 389px;\n box-sizing: border-box;\n z-index: 3;\n overflow: auto;\n -ms-overflow-style: none;\n overflow-y: scroll;\n overflow-x: hidden;\n user-select: none;\n ::-webkit-scrollbar {\n width: ", ";\n position: absolute;\n right: 8px;\n }\n ::-webkit-scrollbar-track,\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n transition: all ease-out 0.3s;\n }\n\n ::-webkit-resizer,\n ::-webkit-scrollbar-button,\n ::-webkit-scrollbar-corner {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background: ", ";\n }\n\n ::-webkit-scrollbar-thumb {\n background: ", ";\n }\n"])), function (_a) {
259
+ var isScrollable = _a.isScrollable;
260
+ return (isScrollable ? "4px" : "0px");
261
+ }, theme.palette.grey.fifteenB, theme.palette.grey.thirty);
262
+ var templateObject_1$D, templateObject_2$m, templateObject_3$a;
263
+
264
+ var InputSelectDropdown = forwardRef(function (_a, ref) {
265
+ var options = _a.options, inputRef = _a.inputRef, isOpenDropdown = _a.isOpenDropdown, handleCloseDropdown = _a.handleCloseDropdown, handleSelect = _a.handleSelect, selectedValue = _a.selectedValue, renderOption = _a.renderOption;
266
+ var handleClick = function (option) {
267
+ if (!option.disabled) {
268
+ handleSelect(option);
269
+ }
270
+ };
271
+ return (jsx(StyledDropdown$1, __assign({ buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, ref: ref }, { children: options.map(function (option, key) { return (jsx(OptionWrapper, __assign({ disabled: option.disabled, onClick: function () { return handleClick(option); }, "data-value": "autocomplete_option_".concat(option.value), "data-testid": "autocomplete_option_".concat(key) }, { children: renderOption(option, selectedValue) }), option.label)); }) })));
272
+ });
273
+ var OptionWrapper = styled.div(templateObject_1$C || (templateObject_1$C = __makeTemplateObject(["\n width: 100%;\n padding: 2px 0;\n cursor: ", ";\n p {\n color: ", ";\n }\n"], ["\n width: 100%;\n padding: 2px 0;\n cursor: ", ";\n p {\n color: ", ";\n }\n"])), function (_a) {
274
+ var disabled = _a.disabled;
275
+ return (disabled ? "auto" : "pointer");
276
+ }, function (_a) {
277
+ var disabled = _a.disabled;
278
+ return disabled ? theme.palette.grey.fiftyP : theme.palette.grey.seventy;
279
+ });
280
+ var StyledDropdown$1 = styled(InputDropdown)(templateObject_2$l || (templateObject_2$l = __makeTemplateObject(["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"], ["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"])));
281
+ var templateObject_1$C, templateObject_2$l;
282
+
283
+ function setRef(ref, value) {
284
+ if (typeof ref === "function") {
285
+ ref(value);
286
+ }
287
+ else if (ref) {
288
+ ref.current = value;
289
+ }
290
+ }
291
+ function useForkRef() {
292
+ var refs = [];
293
+ for (var _i = 0; _i < arguments.length; _i++) {
294
+ refs[_i] = arguments[_i];
295
+ }
296
+ return React.useMemo(function () {
297
+ if (refs.every(function (ref) { return ref == null; })) {
298
+ return null;
299
+ }
300
+ return function (instance) {
301
+ refs.forEach(function (ref) {
302
+ setRef(ref, instance);
303
+ });
304
+ };
305
+ }, refs);
306
+ }
307
+
308
+ var InputSelectBase = forwardRef(function (_a, ref) {
309
+ var _b;
310
+ var options = _a.options, name = _a.name, disabled = _a.disabled, handleChange = _a.handleChange, iconProps = _a.iconProps, renderOption = _a.renderOption, selectedLabel = _a.selectedLabel, selectedValue = _a.selectedValue, error = _a.error, inputProps = __rest(_a, ["options", "name", "disabled", "handleChange", "iconProps", "renderOption", "selectedLabel", "selectedValue", "error"]);
311
+ var _c = useState(false), isDropdownOpen = _c[0], setIsDropdownOpen = _c[1];
312
+ var inputRef = useRef(null);
313
+ var forwardedRef = useForkRef(inputRef, ref);
314
+ var handleOpenDropdown = function () {
315
+ var _a, _b, _c, _d;
316
+ if ((_b = (_a = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) {
317
+ (_d = (_c = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.parentElement.focus();
318
+ }
319
+ setIsDropdownOpen(function (prev) { return !prev; });
320
+ };
321
+ var handleCloseDropdown = function () {
322
+ setIsDropdownOpen(false);
323
+ };
324
+ var handleSelect = function (option) {
325
+ if (handleChange)
326
+ handleChange(option);
327
+ handleCloseDropdown();
328
+ };
329
+ return (jsxs(Wrapper$6, { children: [jsx$1("input", { name: name, autoComplete: "off", hidden: true }), jsx$1(StyledInput$3, __assign({ onClick: handleOpenDropdown, ref: forwardedRef, disabled: disabled, readOnly: true, value: selectedLabel, message: error, isDropdownOpen: isDropdownOpen, isLabelShrink: Boolean(selectedValue) || selectedValue === 0 }, inputProps, { endIcon: !disabled && (jsx$1(HalfArrowIcon, __assign({ width: 12, height: 13, css: [
330
+ { transition: "all linear .2s" },
331
+ isDropdownOpen && { transform: "rotate(180deg)" },
332
+ ] }, iconProps))) })), options.length > 0 && !disabled && (jsx$1(InputSelectDropdown, { options: options, inputRef: {
333
+ current: (_b = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _b === void 0 ? void 0 : _b.parentElement,
334
+ }, isOpenDropdown: isDropdownOpen, handleCloseDropdown: handleCloseDropdown, handleSelect: handleSelect, selectedValue: selectedValue, renderOption: renderOption }))] }));
335
+ });
336
+ var Wrapper$6 = styled.div(templateObject_1$B || (templateObject_1$B = __makeTemplateObject(["\n position: relative;\n text-align: left;\n"], ["\n position: relative;\n text-align: left;\n"])));
337
+ var StyledInput$3 = styled(InputWithAdornments)(templateObject_2$k || (templateObject_2$k = __makeTemplateObject(["\n cursor: pointer;\n input,\n label {\n cursor: pointer !important;\n }\n .KUI-InputMessage {\n opacity: ", ";\n }\n"], ["\n cursor: pointer;\n input,\n label {\n cursor: pointer !important;\n }\n .KUI-InputMessage {\n opacity: ", ";\n }\n"])), function (_a) {
338
+ var isDropdownOpen = _a.isDropdownOpen;
339
+ return (isDropdownOpen ? 0 : 1);
340
+ });
341
+ var templateObject_1$B, templateObject_2$k;
342
+
343
+ function InputSelectOption(props) {
344
+ var option = props.option, selectedValue = props.selectedValue;
345
+ return (jsx(StyledOption$1, __assign({ selected: selectedValue === option.value }, { children: jsx(Caption, __assign({ size: "sm", weight: 500 }, { children: option.label })) })));
346
+ }
347
+ var StyledOption$1 = styled.div(templateObject_1$A || (templateObject_1$A = __makeTemplateObject(["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n background-color: ", ";\n &:hover {\n background-color: ", ";\n }\n"], ["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n background-color: ", ";\n &:hover {\n background-color: ", ";\n }\n"])), function (_a) {
348
+ var selected = _a.selected;
349
+ return selected ? theme.palette.background.light1 : theme.palette.grey.zero;
350
+ }, theme.palette.background.light1);
351
+ var templateObject_1$A;
352
+
353
+ var InputSelect = forwardRef(function (_a, ref) {
354
+ var _b;
355
+ var options = _a.options, name = _a.name, handleChange = _a.handleChange; _a.form; var valueProp = _a.value, inputProps = __rest(_a, ["options", "name", "handleChange", "form", "value"]);
356
+ var _c = useState(valueProp), value = _c[0], setValue = _c[1];
357
+ var selectedLabel = (_b = options.find(function (option) { return String(option.value) === String(value); })) === null || _b === void 0 ? void 0 : _b.label;
358
+ var handleSelect = function (option) {
359
+ setValue(option.value);
360
+ if (handleChange) {
361
+ handleChange(option.value);
362
+ }
363
+ };
364
+ useEffect(function () {
365
+ if (typeof valueProp !== "undefined")
366
+ setValue(valueProp);
367
+ }, [valueProp]);
368
+ return (jsx(InputSelectBase, __assign({ options: options, handleChange: handleSelect, selectedLabel: selectedLabel, selectedValue: value, name: name, renderOption: function (option, selectedValue) { return (jsx(InputSelectOption, { option: option, selectedValue: selectedValue })); }, ref: ref }, inputProps)));
369
+ });
370
+
371
+ var checkDisabled$1 = function (year, min, max) {
372
+ return (min && year <= min) || (max && year >= max);
373
+ };
374
+ var SelectYear = forwardRef(function (_a, ref) {
375
+ var yearOptions = _a.yearOptions; _a.options; var min = _a.min, max = _a.max, props = __rest(_a, ["yearOptions", "options", "min", "max"]);
376
+ var formattedYearOptions = yearOptions.map(function (year) { return (__assign(__assign({}, year), { disabled: checkDisabled$1(Number(year.value), min, max) })); });
377
+ return (jsx(InputSelect, __assign({ ref: ref, label: "Year", options: formattedYearOptions }, props)));
378
+ });
379
+
380
+ var checkDisabled = function (month, min, max) { return (min && month <= min) || (max && month >= max); };
381
+ var monthValues = [
382
+ { value: 0, label: "January" },
383
+ { value: 1, label: "February" },
384
+ { value: 2, label: "March" },
385
+ { value: 3, label: "April" },
386
+ { value: 4, label: "May" },
387
+ { value: 5, label: "June" },
388
+ { value: 6, label: "July" },
389
+ { value: 7, label: "August" },
390
+ { value: 8, label: "September" },
391
+ { value: 9, label: "October" },
392
+ { value: 10, label: "November" },
393
+ { value: 11, label: "December" },
394
+ ];
395
+ var SelectMonth = forwardRef(function (props, ref) {
396
+ var min = props.min, max = props.max; props.options; var other = __rest(props, ["min", "max", "options"]);
397
+ var formattedMonths = monthValues.map(function (month) { return (__assign(__assign({}, month), { disabled: checkDisabled(month.value, min, max) })); });
398
+ return (jsx(InputSelect, __assign({ ref: ref, label: "Month", options: formattedMonths }, other)));
399
+ });
400
+
401
+ var CalendarHeaderWithSelect = forwardRef(function (_a, ref) {
402
+ var changeMonth = _a.changeMonth, changeYear = _a.changeYear, date = _a.date, yearOptions = _a.yearOptions, max = _a.max, min = _a.min;
403
+ var year = date.getFullYear();
404
+ var month = date.getMonth();
405
+ var currentYear = DateTime.now().year;
406
+ var minMonth = (min === null || min === void 0 ? void 0 : min.year) === currentYear ? min === null || min === void 0 ? void 0 : min.month : 0;
407
+ var maxMonth = (max === null || max === void 0 ? void 0 : max.year) === currentYear ? max === null || max === void 0 ? void 0 : max.month : 11;
408
+ return (jsx(Wrapper$5, __assign({ ref: ref }, { children: jsxs$1(Grid, __assign({ container: true, spacing: 2 }, { children: [jsx(Grid, __assign({ item: true, xs: 6 }, { children: jsx(SelectYear, { min: min === null || min === void 0 ? void 0 : min.year, max: max === null || max === void 0 ? void 0 : max.year, yearOptions: yearOptions, value: year, handleChange: changeYear }) })), jsx(Grid, __assign({ item: true, xs: 6 }, { children: jsx(SelectMonth, { min: (Number(min === null || min === void 0 ? void 0 : min.year) >= currentYear && minMonth), max: (Number(max === null || max === void 0 ? void 0 : max.year) <= currentYear && maxMonth), value: month, handleChange: changeMonth }) }))] })) })));
409
+ });
410
+ var Wrapper$5 = styled.div(templateObject_1$z || (templateObject_1$z = __makeTemplateObject(["\n margin-bottom: 24px;\n @media (max-width: 900px) {\n padding: 0 18px;\n margin-bottom: 20px;\n }\n"], ["\n margin-bottom: 24px;\n @media (max-width: 900px) {\n padding: 0 18px;\n margin-bottom: 20px;\n }\n"])));
411
+ var templateObject_1$z;
412
+
413
+ var CalendarStandardContainer = forwardRef(function (_a, ref) {
414
+ _a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
415
+ return jsx(DatePickerContainer, __assign({ ref: ref }, props));
416
+ });
417
+ var DatePickerContainer = styled.div(templateObject_1$y || (templateObject_1$y = __makeTemplateObject(["\n padding: 0;\n border: none !important;\n border-radius: 0 !important;\n background: transparent !important;\n overflow: hidden;\n width: 100%;\n height: 100%;\n .react-datepicker__header {\n background-color: transparent !important;\n }\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__day-names {\n display: flex;\n justify-content: space-between;\n .react-datepicker__day-name {\n font-family: \"Inter\", sans-serif;\n font-weight: 600;\n font-size: 14px;\n color: ", ";\n text-transform: uppercase;\n margin: 0;\n width: 33px;\n line-height: normal;\n }\n }\n .react-datepicker__month {\n padding: 0;\n margin: 20px 0 0 !important;\n border: none;\n width: 100%;\n height: calc(100% - 85px);\n .react-datepicker__week {\n display: flex;\n justify-content: space-between;\n }\n }\n .react-datepicker__week {\n margin-bottom: 10px;\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n .react-datepicker__day {\n width: 33px;\n height: 33px;\n user-select: none;\n border-radius: 50% !important;\n transition: background ease-out 0.3s;\n border: 1px solid transparent;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 500;\n font-size: 16px;\n &:hover {\n background: ", ";\n }\n &:active {\n background: ", ";\n }\n }\n .react-datepicker__day--outside-month,\n .react-datepicker__day--disabled {\n color: #a6aebc;\n p {\n color: #a6aebc;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background: transparent;\n color: inherit;\n }\n .react-datepicker__day--today {\n color: ", ";\n background-color: ", ";\n }\n .react-datepicker__day--selected {\n background: white;\n border: 1px solid #e1e4e8;\n color: ", ";\n p {\n color: ", ";\n }\n }\n .react-datepicker__day--selected.warning_day {\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n }\n @media (max-width: 600px) {\n .react-datepicker__day {\n max-width: 48px;\n max-height: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n height: calc((100vw - (18px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n max-width: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n }\n }\n }\n @media (max-width: 350px) {\n .react-datepicker__day {\n width: calc((100vw - (6px * 7)) / 7);\n height: calc((100vw - (6px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n width: calc((100vw - (6px * 7)) / 7);\n }\n }\n }\n"], ["\n padding: 0;\n border: none !important;\n border-radius: 0 !important;\n background: transparent !important;\n overflow: hidden;\n width: 100%;\n height: 100%;\n .react-datepicker__header {\n background-color: transparent !important;\n }\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__day-names {\n display: flex;\n justify-content: space-between;\n .react-datepicker__day-name {\n font-family: \"Inter\", sans-serif;\n font-weight: 600;\n font-size: 14px;\n color: ", ";\n text-transform: uppercase;\n margin: 0;\n width: 33px;\n line-height: normal;\n }\n }\n .react-datepicker__month {\n padding: 0;\n margin: 20px 0 0 !important;\n border: none;\n width: 100%;\n height: calc(100% - 85px);\n .react-datepicker__week {\n display: flex;\n justify-content: space-between;\n }\n }\n .react-datepicker__week {\n margin-bottom: 10px;\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n .react-datepicker__day {\n width: 33px;\n height: 33px;\n user-select: none;\n border-radius: 50% !important;\n transition: background ease-out 0.3s;\n border: 1px solid transparent;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 500;\n font-size: 16px;\n &:hover {\n background: ", ";\n }\n &:active {\n background: ", ";\n }\n }\n .react-datepicker__day--outside-month,\n .react-datepicker__day--disabled {\n color: #a6aebc;\n p {\n color: #a6aebc;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background: transparent;\n color: inherit;\n }\n .react-datepicker__day--today {\n color: ", ";\n background-color: ", ";\n }\n .react-datepicker__day--selected {\n background: white;\n border: 1px solid #e1e4e8;\n color: ", ";\n p {\n color: ", ";\n }\n }\n .react-datepicker__day--selected.warning_day {\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n }\n @media (max-width: 600px) {\n .react-datepicker__day {\n max-width: 48px;\n max-height: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n height: calc((100vw - (18px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n max-width: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n }\n }\n }\n @media (max-width: 350px) {\n .react-datepicker__day {\n width: calc((100vw - (6px * 7)) / 7);\n height: calc((100vw - (6px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n width: calc((100vw - (6px * 7)) / 7);\n }\n }\n }\n"])), theme.palette.grey.fiftyP, theme.palette.background.light3, theme.palette.background.light3, theme.palette.brand.main, theme.palette.brand.light, theme.palette.brand.main, theme.palette.brand.main, theme.palette.grey.fifteenB, theme.palette.red.seventy, theme.palette.grey.zero);
418
+ var templateObject_1$y;
419
+
420
+ var CalendarStandardHeader = forwardRef(function (_a, ref) {
421
+ var decreaseMonth = _a.decreaseMonth, increaseMonth = _a.increaseMonth, nextMonthButtonDisabled = _a.nextMonthButtonDisabled, prevMonthButtonDisabled = _a.prevMonthButtonDisabled, date = _a.date;
422
+ var title = _.capitalize(date.toLocaleString("ru", { month: "long", year: "numeric" })).slice(0, -3);
423
+ return (jsxs$1(HeaderWrapper, __assign({ container: true, alignItems: "center", justify: "space-between", ref: ref }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(StyledHeading, __assign({ size: "h4" }, { children: title })) })), jsx(Grid, __assign({ item: true }, { children: jsxs$1(Grid, __assign({ container: true, spacing: 2 }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", "data-testid": "prev_month_button", variant: "white", disabled: prevMonthButtonDisabled, onClick: decreaseMonth }, { children: jsx(PrevArrowIcon, { width: 10, height: 10 }) })) })), jsx(Grid, __assign({ item: true }, { children: jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", variant: "white", disabled: nextMonthButtonDisabled, onClick: increaseMonth }, { children: jsx(NextArrowIcon, { width: 10, height: 10 }) })) }))] })) }))] })));
424
+ });
425
+ var HeaderWrapper = styled(Grid)(templateObject_1$x || (templateObject_1$x = __makeTemplateObject(["\n padding: 0 6px 34px;\n @media (max-width: 600px) {\n h2 {\n font-size: 16px;\n }\n }\n"], ["\n padding: 0 6px 34px;\n @media (max-width: 600px) {\n h2 {\n font-size: 16px;\n }\n }\n"])));
426
+ var StyledHeading = styled(Heading)(templateObject_2$j || (templateObject_2$j = __makeTemplateObject(["\n @media (max-width: 600px) {\n font-weight: 700;\n }\n"], ["\n @media (max-width: 600px) {\n font-weight: 700;\n }\n"])));
427
+ var CircleButtonStyled = styled(Button)(templateObject_3$9 || (templateObject_3$9 = __makeTemplateObject(["\n border-color: transparent !important;\n &:disabled {\n background-color: white !important;\n }\n"], ["\n border-color: transparent !important;\n &:disabled {\n background-color: white !important;\n }\n"])));
428
+ var templateObject_1$x, templateObject_2$j, templateObject_3$9;
429
+
430
+ var InputForDatepicker = forwardRef(function (props, ref) {
431
+ var onClick = props.onClick, disabled = props.disabled, handleClick = props.handleClick, startIcon = props.startIcon, other = __rest(props, ["onClick", "disabled", "handleClick", "startIcon"]);
432
+ var handleIconClick = function () {
433
+ if (handleClick) {
434
+ handleClick();
435
+ }
436
+ else {
437
+ onClick();
438
+ }
439
+ };
440
+ var Icon = function () { return (jsx(IconWrapper, __assign({ disabled: disabled, onClick: handleIconClick }, { children: startIcon || jsx(CalendarIcon, { width: 19, height: 21 }) }))); };
441
+ return (jsx(InputWithMask$1, __assign({ disabled: disabled, endIcon: !startIcon && jsx(Icon, {}), startIcon: startIcon && jsx(Icon, {}) }, other, { ref: ref })));
442
+ });
443
+ var IconWrapper = styled.div(templateObject_1$w || (templateObject_1$w = __makeTemplateObject(["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"], ["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"])));
444
+ var templateObject_1$w;
445
+
446
+ var MonthPickerContainer = forwardRef(function (_a, ref) {
447
+ _a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
448
+ return jsx(StyledContainer$1, __assign({ ref: ref }, props));
449
+ });
450
+ var StyledContainer$1 = styled.div(templateObject_1$v || (templateObject_1$v = __makeTemplateObject(["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white !important;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"], ["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white !important;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"])), theme.palette.background.light1, theme.palette.grey.fifteenB, theme.palette.grey.fifteenB, theme.palette.brand.main, theme.palette.grey.fifteenB);
451
+ var templateObject_1$v;
452
+
453
+ var MonthPickerHeader = forwardRef(function (_a, ref) {
454
+ var decreaseYear = _a.decreaseYear, increaseYear = _a.increaseYear, nextYearButtonDisabled = _a.nextYearButtonDisabled, prevYearButtonDisabled = _a.prevYearButtonDisabled, date = _a.date;
455
+ return (jsxs$1(StyledHeader, __assign({ container: true, alignItems: "center", justify: "space-between", ref: ref }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(StyledIconButton, __assign({ disabled: prevYearButtonDisabled, onClick: decreaseYear }, { children: jsx(ArrowBackIcon, { width: 14, height: 12 }) })) })), jsx(Grid, __assign({ item: true }, { children: jsx(Caption, __assign({ size: "sm", weight: 600 }, { children: date.getFullYear() })) })), jsx(Grid, __assign({ item: true }, { children: jsx(StyledIconButton, __assign({ disabled: nextYearButtonDisabled, onClick: increaseYear }, { children: jsx(ArrowNextIcon, { width: 14, height: 12 }) })) }))] })));
456
+ });
457
+ var StyledIconButton = styled(IconButton)(templateObject_1$u || (templateObject_1$u = __makeTemplateObject(["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"], ["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"])));
458
+ var StyledHeader = styled(Grid)(templateObject_2$i || (templateObject_2$i = __makeTemplateObject(["\n background: #fff;\n padding: 4px 16px;\n border-radius: 12px 12px 0 0;\n"], ["\n background: #fff;\n padding: 4px 16px;\n border-radius: 12px 12px 0 0;\n"])));
459
+ var templateObject_1$u, templateObject_2$i;
460
+
461
+ var DesktopInputWithMonthPicker = forwardRef(function (_a, ref) {
462
+ var name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, otherProps = __rest(_a, ["name", "form", "disabled", "datePickerProps"]);
463
+ return (jsx(Wrapper$4, __assign({ ref: ref }, { children: jsx(Controller, { name: name, control: form.control, render: function (_a) {
464
+ var _b;
465
+ var field = _a.field, fieldState = _a.fieldState;
466
+ return (jsx(DatePicker, __assign({ selected: field.value, onChange: field.onChange, disabled: disabled, customInput: jsx(InputForDatepicker, __assign({ mask: "00.0000", name: name, disabled: disabled, message: (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message }, otherProps)), showMonthYearPicker: true, dateFormat: "MM.yyyy", popperPlacement: "bottom-end", calendarContainer: MonthPickerContainer, renderCustomHeader: function (props) { return (jsx(MonthPickerHeader, __assign({}, props))); } }, datePickerProps)));
467
+ } }) })));
468
+ });
469
+ var Wrapper$4 = styled.div(templateObject_1$t || (templateObject_1$t = __makeTemplateObject(["\n @media (max-width: 600px) {\n display: none;\n }\n"], ["\n @media (max-width: 600px) {\n display: none;\n }\n"])));
470
+ var templateObject_1$t;
471
+
472
+ var MenuItem = forwardRef(function (_a, ref) {
473
+ var tab = _a.tab, active = _a.active, index = _a.index, handleClick = _a.handleClick, offset = _a.offset, isScrolling = _a.isScrolling, setIsScrolling = _a.setIsScrolling;
474
+ var startScrolling = function () {
475
+ setIsScrolling(true);
476
+ };
477
+ var endScrolling = function () {
478
+ setIsScrolling(false);
479
+ };
480
+ var handleSelect = function () {
481
+ if (!isScrolling) {
482
+ handleClick(index);
483
+ }
484
+ };
485
+ useEffect(function () {
486
+ if (active === index) {
487
+ scroller.scrollTo(tab.label, { offset: offset });
488
+ }
489
+ Events.scrollEvent.register("begin", function (to, element) {
490
+ startScrolling();
491
+ if (element) {
492
+ handleClick(Number(element.dataset.index));
493
+ }
494
+ });
495
+ Events.scrollEvent.register("end", function (to, element) {
496
+ setTimeout(endScrolling);
497
+ });
498
+ return function () {
499
+ Events.scrollEvent.remove("begin");
500
+ Events.scrollEvent.remove("end");
501
+ };
502
+ }, []);
503
+ return (jsx$1(Link$1, __assign({ to: tab.label, spy: true, smooth: true, duration: 500, offset: offset, onSetActive: handleSelect }, { children: jsx$1(ButtonWrapper$2, __assign({ ref: ref }, { children: jsx$1(Button, __assign({ variant: Number(active) === index ? "orange" : "transparentWithBorder", size: "xs", css: Number(active) !== index && disabledStyles }, { children: tab.label })) })) })));
504
+ });
505
+ var ButtonWrapper$2 = styled.div(templateObject_1$s || (templateObject_1$s = __makeTemplateObject(["\n margin-right: 8px;\n width: max-content;\n max-width: 150px;\n @media (max-width: 900px) {\n max-width: unset;\n }\n"], ["\n margin-right: 8px;\n width: max-content;\n max-width: 150px;\n @media (max-width: 900px) {\n max-width: unset;\n }\n"])));
506
+ var disabledStyles = css(templateObject_2$h || (templateObject_2$h = __makeTemplateObject(["\n p {\n color: ", ";\n font-weight: 400;\n },\n"], ["\n p {\n color: ", ";\n font-weight: 400;\n },\n"])), theme.palette.grey.seventy);
507
+ var templateObject_1$s, templateObject_2$h;
508
+
509
+ var DesktopMenuPanel = forwardRef(function (_a, ref) {
510
+ var tabs = _a.tabs, variant = _a.variant, other = __rest(_a, ["tabs", "variant"]);
511
+ return (jsx$1(Wrapper$3, __assign({ container: true, css: variant === "white" && { background: "white" }, ref: ref }, { children: tabs.map(function (tab, index) { return (jsx$1(Grid, __assign({ item: true }, { children: jsx$1(MenuItem, __assign({ tab: tab, index: index, offset: -121 }, other), tab.label) }), index)); }) })));
512
+ });
513
+ var Wrapper$3 = styled(Grid)(templateObject_1$r || (templateObject_1$r = __makeTemplateObject(["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background-color: ", ";\n padding: 16px 16px 24px;\n @media (max-width: 900px) {\n justify-content: space-between;\n }\n @media (max-width: 765px) {\n display: none;\n }\n"], ["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background-color: ", ";\n padding: 16px 16px 24px;\n @media (max-width: 900px) {\n justify-content: space-between;\n }\n @media (max-width: 765px) {\n display: none;\n }\n"])), theme.palette.background.light1);
514
+ var templateObject_1$r;
515
+
516
+ var InputWithMask = forwardRef(function (_a, ref) {
517
+ var form = _a.form, name = _a.name, error = _a.error, inputProps = __rest(_a, ["form", "name", "error"]);
518
+ var handleChange = function (e, field) {
519
+ field.onChange(e);
520
+ if (inputProps.onChange) {
521
+ inputProps.onChange(e);
522
+ }
523
+ };
524
+ var getError = function (fieldState) {
525
+ var _a;
526
+ return typeof error !== "undefined" && String(error).length > 0
527
+ ? error
528
+ : (_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message;
529
+ };
530
+ return (jsx(Controller, { control: form === null || form === void 0 ? void 0 : form.control, name: name, render: function (_a) {
531
+ var field = _a.field, fieldState = _a.fieldState;
532
+ return (jsx(InputWithMask$1, __assign({ message: getError(fieldState) }, field, inputProps, { onChange: function (e) {
533
+ return handleChange(e, field);
534
+ }, inputRef: ref })));
535
+ } }));
536
+ });
537
+
538
+ var InputWithController = forwardRef(function (_a, ref) {
539
+ var form = _a.form, name = _a.name, error = _a.error, value = _a.value, type = _a.type, inputProps = __rest(_a, ["form", "name", "error", "value", "type"]);
540
+ var handleChange = function (e, field) {
541
+ var _a;
542
+ var newValue = type === "number" && !((_a = e.target.value) === null || _a === void 0 ? void 0 : _a.length) ? null : e.target.value;
543
+ field.onChange(__assign(__assign({}, e), { target: __assign(__assign({}, e.target), { value: newValue }) }));
544
+ if (inputProps.onChange) {
545
+ inputProps.onChange(e);
546
+ }
547
+ };
548
+ var getError = function (fieldState) {
549
+ var _a;
550
+ return typeof error !== "undefined" && String(error).length > 0
551
+ ? error
552
+ : (_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message;
553
+ };
554
+ return (jsx(Controller, { control: form === null || form === void 0 ? void 0 : form.control, name: name, render: function (_a) {
555
+ var field = _a.field, fieldState = _a.fieldState;
556
+ return (jsx(InputWithAdornments, __assign({ message: getError(fieldState) }, field, inputProps, { onChange: function (e) {
557
+ return handleChange(e, field);
558
+ }, type: type, value: value !== null && value !== void 0 ? value : field.value, inputRef: ref })));
559
+ } }));
560
+ });
561
+
562
+ var strengthCoefficients = {
563
+ weak: 0,
564
+ simple: 1,
565
+ medium: 2,
566
+ hard: 3,
567
+ };
568
+ var strengthColors = {
569
+ weak: theme.palette.red.fiftyP,
570
+ simple: theme.palette.brand.main,
571
+ medium: theme.palette.blue.fiftyP,
572
+ hard: theme.palette.green.fiftyP,
573
+ };
574
+ var strengthTexts = {
575
+ weak: "Очень простой",
576
+ simple: "Простой",
577
+ medium: "Средний",
578
+ hard: "Сложный",
579
+ };
580
+ var PassportStrengthBar = forwardRef(function (_a, ref) {
581
+ var strength = _a.strength;
582
+ var color = strength
583
+ ? strengthColors[strength]
584
+ : "";
585
+ var strengthKey = strength
586
+ ? strengthCoefficients[strength]
587
+ : -1;
588
+ return (jsxs(Wrapper$2, __assign({ "data-testid": "strength_bar", className: String(!strength && "hidden"), ref: ref }, { children: [jsx$1(ReliabilityLevelWrapper, { children: Object.keys(strengthCoefficients).map(function (item, key) { return (jsx$1(ReliabilityLevel, { children: jsx$1(StyledLinearProgress, { "data-testid": "progress_item_".concat(item), value: strengthKey >= key ? 100 : 0, color: color }) }, item)); }) }), jsx$1(Caption, __assign({ "data-testid": "strength_bar_explanation", size: "s", css: { color: color } }, { children: strength && strengthTexts[strength] })), jsx$1(Description, __assign({ size: "s", color: "fiftyP" }, { children: "\u041F\u0430\u0440\u043E\u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0441\u0442\u043E\u044F\u0442\u044C \u0438\u0437 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0446\u0438\u0444\u0440\u044B, \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0438 \u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u0432\u044B" }))] })));
589
+ });
590
+ var Wrapper$2 = styled.div(templateObject_1$q || (templateObject_1$q = __makeTemplateObject(["\n margin-top: 16px;\n min-height: 86px;\n @media (max-width: 900px) {\n min-height: unset;\n }\n &.hidden {\n opacity: 0;\n @media (max-width: 900px) {\n display: none;\n }\n }\n"], ["\n margin-top: 16px;\n min-height: 86px;\n @media (max-width: 900px) {\n min-height: unset;\n }\n &.hidden {\n opacity: 0;\n @media (max-width: 900px) {\n display: none;\n }\n }\n"])));
591
+ var ReliabilityLevelWrapper = styled.div(templateObject_2$g || (templateObject_2$g = __makeTemplateObject(["\n display: flex;\n margin-bottom: 8px;\n"], ["\n display: flex;\n margin-bottom: 8px;\n"])));
592
+ var ReliabilityLevel = styled.div(templateObject_3$8 || (templateObject_3$8 = __makeTemplateObject(["\n width: calc(100% / 4);\n margin-right: 16px;\n &:last-of-type {\n margin-right: 0;\n }\n"], ["\n width: calc(100% / 4);\n margin-right: 16px;\n &:last-of-type {\n margin-right: 0;\n }\n"])));
593
+ var StyledLinearProgress = styled(LinearProgress)(templateObject_4$5 || (templateObject_4$5 = __makeTemplateObject(["\n height: 8px;\n border-radius: 8px;\n background-color: ", ";\n & .KUI-LinearProgress_bar {\n background-color: ", ";\n width: 102%;\n }\n"], ["\n height: 8px;\n border-radius: 8px;\n background-color: ", ";\n & .KUI-LinearProgress_bar {\n background-color: ", ";\n width: 102%;\n }\n"])), theme.palette.grey.fifteenB, function (_a) {
594
+ var color = _a.color;
595
+ return color;
596
+ });
597
+ var Description = styled(Caption)(templateObject_5$3 || (templateObject_5$3 = __makeTemplateObject(["\n margin-top: 16px;\n @media (max-width: 900px) {\n margin-top: 8px;\n font-size: 12px;\n }\n"], ["\n margin-top: 16px;\n @media (max-width: 900px) {\n margin-top: 8px;\n font-size: 12px;\n }\n"])));
598
+ var templateObject_1$q, templateObject_2$g, templateObject_3$8, templateObject_4$5, templateObject_5$3;
599
+
600
+ var getFormValue = function (name, form) {
601
+ var names = name === null || name === void 0 ? void 0 : name.split(".");
602
+ var fieldValue = form === null || form === void 0 ? void 0 : form.control._formValues;
603
+ names === null || names === void 0 ? void 0 : names.forEach(function (field) {
604
+ if (fieldValue) {
605
+ fieldValue = fieldValue[field];
606
+ }
607
+ });
608
+ return fieldValue;
609
+ };
610
+ var getFormError = function (name, form) {
611
+ var names = name === null || name === void 0 ? void 0 : name.split(".");
612
+ var fieldError = form === null || form === void 0 ? void 0 : form.formState.errors;
613
+ names === null || names === void 0 ? void 0 : names.forEach(function (field) {
614
+ if (fieldError) {
615
+ // @ts-ignore
616
+ fieldError = fieldError[field];
617
+ }
618
+ });
619
+ return fieldError === null || fieldError === void 0 ? void 0 : fieldError.message;
620
+ };
621
+
622
+ var phoneRegExp = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/;
623
+ var isValidWithMaskExp = /^[^_]+$/;
624
+ var dateRegExp = /(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d/;
625
+ var monthYearRegExp = /(0[1-9]|1[012])[- /.](19|20)\d\d/;
626
+ var emailRegExp = /^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/;
627
+ var carNumberRegExp = /^([А-Яа-я]{1}[0-9]{3}[А-Яа-я]{2}\s{0,1}[0-9]{2,3})?$/;
628
+ var innRegExp = /^(([0-9]{12})|([0-9]{10}))?$/;
629
+ var corrAccountRegExp = /^(301[0-9]{17})?$/;
630
+ var accountRegExp = /^408([0-9]{17})?$/;
631
+ var bicRegExp = /^([0-9]{9})?$/;
632
+ var swiftRegExp = /^([A-Za-z]{6}\w{2}\d{0,3})?$/;
633
+ var simplePasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{10,}$/;
634
+ var mediumPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{12,}$/;
635
+ var strongPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{14,}$/;
636
+
637
+ var InputPassword = forwardRef(function (props, ref) {
638
+ var _a = useState(false), showPassword = _a[0], setShowPassword = _a[1];
639
+ var _b = useState(null), strength = _b[0], setStrength = _b[1];
640
+ var handleShowChange = function () {
641
+ setShowPassword(function (prev) { return !prev; });
642
+ };
643
+ var checkPasswordStrength = function (value) {
644
+ if (value.length === 0) {
645
+ setStrength(null);
646
+ return;
647
+ }
648
+ if (strongPasswordRegExp.test(value)) {
649
+ setStrength("hard");
650
+ }
651
+ else if (mediumPasswordRegExp.test(value)) {
652
+ setStrength("medium");
653
+ }
654
+ else if (simplePasswordRegExp.test(value)) {
655
+ setStrength("simple");
656
+ }
657
+ else {
658
+ setStrength("weak");
659
+ }
660
+ };
661
+ var handleChange = function (e) {
662
+ var targetValue = e.target.value;
663
+ checkPasswordStrength(targetValue);
664
+ };
665
+ useEffect(function () {
666
+ var form = props.form, name = props.name;
667
+ var fieldValue = getFormValue(name, form);
668
+ if (typeof fieldValue === "string") {
669
+ checkPasswordStrength(fieldValue);
670
+ }
671
+ }, []);
672
+ return (jsxs$1(Fragment$1, { children: [jsx(InputWithController, __assign({ type: showPassword ? "text" : "password", autoComplete: "new_password", onChange: handleChange, "data-testid": "input_password", ref: ref, endIcon: jsx(EyeIconWrapper, __assign({ "data-testid": "show_value_btn", onClick: handleShowChange }, { children: showPassword ? jsx(ClosedEyeIcon, {}) : jsx(OpenEyeIcon, {}) })) }, props)), jsx(PassportStrengthBar, { strength: strength })] }));
673
+ });
674
+ var EyeIconWrapper = styled.div(templateObject_1$p || (templateObject_1$p = __makeTemplateObject(["\n height: 18px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"], ["\n height: 18px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"])));
675
+ var templateObject_1$p;
676
+
677
+ var InputTextAreaMobile = forwardRef(function (props) { return (jsxs$1(Fragment$1, { children: [jsx(InputWrapper$1, { children: jsx(InputWithController, __assign({}, props)) }), jsx(TextAreaWrapper, { children: jsx(InputWithController, __assign({ isTextArea: true }, props)) })] })); });
678
+ var InputWrapper$1 = styled.div(templateObject_1$o || (templateObject_1$o = __makeTemplateObject(["\n @media (max-width: 900px) {\n display: none;\n }\n"], ["\n @media (max-width: 900px) {\n display: none;\n }\n"])));
679
+ var TextAreaWrapper = styled.div(templateObject_2$f || (templateObject_2$f = __makeTemplateObject(["\n @media (min-width: 901px) {\n display: none;\n }\n"], ["\n @media (min-width: 901px) {\n display: none;\n }\n"])));
680
+ var templateObject_1$o, templateObject_2$f;
681
+
682
+ var useToggle = function (isModalOpen) {
683
+ if (isModalOpen === void 0) { isModalOpen = false; }
684
+ var _a = useState(isModalOpen), isOpen = _a[0], setIsOpen = _a[1];
685
+ var handleClose = function () {
686
+ setIsOpen(false);
687
+ };
688
+ var handleOpen = function () {
689
+ setIsOpen(true);
690
+ };
691
+ return [isOpen, handleOpen, handleClose];
692
+ };
693
+
694
+ var ModalFooter = forwardRef(function (_a, ref) {
695
+ var label = _a.label, button = _a.button, otherProps = __rest(_a, ["label", "button"]);
696
+ return (jsxs$1(StyledFooter, __assign({ ref: ref }, { children: [jsx(Divider, {}), jsx(ButtonWrapper$1, { children: button || (jsx(ButtonStyled, __assign({ fullWidth: true, size: "s", endIcon: jsx(CheckIcon, {}) }, otherProps, { children: label }))) })] })));
697
+ });
698
+ var StyledFooter = styled.div(templateObject_1$n || (templateObject_1$n = __makeTemplateObject(["\n background: ", ";\n border-radius: 0 0 12px 12px;\n z-index: 10;\n position: sticky;\n bottom: 0;\n left: 0;\n"], ["\n background: ", ";\n border-radius: 0 0 12px 12px;\n z-index: 10;\n position: sticky;\n bottom: 0;\n left: 0;\n"])), theme.palette.grey.zero);
699
+ var ButtonWrapper$1 = styled.div(templateObject_2$e || (templateObject_2$e = __makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n padding: 24px 40px;\n @media (max-width: 600px) {\n padding: 24px 16px;\n }\n"], ["\n display: flex;\n justify-content: flex-end;\n padding: 24px 40px;\n @media (max-width: 600px) {\n padding: 24px 16px;\n }\n"])));
700
+ var ButtonStyled = styled(Button)(templateObject_3$7 || (templateObject_3$7 = __makeTemplateObject(["\n @media (max-width: 600px) {\n width: 100%;\n }\n"], ["\n @media (max-width: 600px) {\n width: 100%;\n }\n"])));
701
+ var templateObject_1$n, templateObject_2$e, templateObject_3$7;
702
+
703
+ var generateYearRange = function (offsetFromCurrent, maxYearCount) {
704
+ if (!offsetFromCurrent || !maxYearCount)
705
+ return [];
706
+ var endYear = DateTime.now().year - offsetFromCurrent;
707
+ return _.range(maxYearCount).map(function (elem) {
708
+ var fullYear = endYear - elem;
709
+ return {
710
+ value: fullYear,
711
+ label: fullYear,
712
+ };
713
+ });
714
+ };
715
+ var InputWithDatePicker = forwardRef(function (_a, ref) {
716
+ var _b;
717
+ var title = _a.title, description = _a.description, name = _a.name, form = _a.form, disabled = _a.disabled, yearParams = _a.yearParams, onChange = _a.onChange, max = _a.max, min = _a.min, footerLabel = _a.footerLabel, datePickerProps = _a.datePickerProps, alignTitle = _a.alignTitle, props = __rest(_a, ["title", "description", "name", "form", "disabled", "yearParams", "onChange", "max", "min", "footerLabel", "datePickerProps", "alignTitle"]);
718
+ var _c = useController({
719
+ name: name,
720
+ control: form.control,
721
+ }), field = _c.field, fieldState = _c.fieldState;
722
+ var error = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
723
+ var formattedValue = field.value ? field.value.toFormat("dd.MM.yyyy") : "";
724
+ var formattedDate = field.value ? field.value.toJSDate() : null;
725
+ var _d = useToggle(), isModalOpen = _d[0], handleModalOpen = _d[1], handleModalClose = _d[2];
726
+ var _e = useState(formattedDate), date = _e[0], setDate = _e[1];
727
+ var _f = useState(formattedValue), value = _f[0], setValue = _f[1];
728
+ var yearList = generateYearRange(yearParams === null || yearParams === void 0 ? void 0 : yearParams.min, yearParams === null || yearParams === void 0 ? void 0 : yearParams.max);
729
+ useEffect(function () {
730
+ if (!isModalOpen) {
731
+ setDate(null);
732
+ }
733
+ else {
734
+ setDate(formattedDate);
735
+ }
736
+ }, [isModalOpen]);
737
+ var handleChange = function (e) {
738
+ var targetValue = e.target.value;
739
+ setValue(targetValue);
740
+ if (targetValue.length !== 0 && isValidWithMaskExp.test(targetValue)) {
741
+ var targetDate = DateTime.fromFormat(targetValue, "dd.MM.yyyy");
742
+ setDate(targetDate.toJSDate());
743
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: targetDate, name: name }, type: "change" });
744
+ if (onChange) {
745
+ onChange(targetDate);
746
+ }
747
+ }
748
+ else {
749
+ setDate(null);
750
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: null, name: name }, type: "change" });
751
+ if (onChange) {
752
+ onChange(null);
753
+ }
754
+ }
755
+ };
756
+ var acceptWithDateSelected = function () {
757
+ if (date) {
758
+ var dateObj = DateTime.fromJSDate(date);
759
+ setValue(dateObj.toFormat("dd.MM.yyyy"));
760
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: dateObj, name: name }, type: "change" });
761
+ if (onChange) {
762
+ onChange(dateObj);
763
+ }
764
+ handleModalClose();
765
+ }
766
+ };
767
+ var handleDateChange = function (newDate) {
768
+ setDate(newDate);
769
+ };
770
+ var forwardedRef = useForkRef(ref, field.ref);
771
+ return (jsxs(Fragment, { children: [jsx$1(InputForDatepicker, __assign({ mask: "00.00.0000", name: name, handleClick: handleModalOpen, value: formattedValue || value, onChange: handleChange, disabled: disabled, message: error, ref: forwardedRef }, props)), jsxs(StyledModal, __assign({ title: title, description: description, isOpen: isModalOpen, handleClose: handleModalClose, alignTitle: alignTitle }, { children: [jsx$1(ContentWrapper$2, { children: jsx$1(DatePicker, __assign({ inline: true, selected: date || formattedDate, onChange: handleDateChange, calendarContainer: StyledCalendarStandardContainer, renderCustomHeader: function (headProps) { return (jsx$1(CalendarHeaderWithSelect, __assign({ yearOptions: yearList, max: max, min: min }, headProps))); }, renderDayContents: function (day) { return (jsx$1(DayContent, { children: day })); }, maxDate: max === null || max === void 0 ? void 0 : max.toJSDate(), minDate: min === null || min === void 0 ? void 0 : min.toJSDate() }, datePickerProps)) }), jsx$1(ModalFooter, { fullWidth: true, disabled: !formattedDate && !date, onClick: acceptWithDateSelected, label: footerLabel })] }))] }));
772
+ });
773
+ InputWithDatePicker.defaultProps = {
774
+ title: "Дата рождения",
775
+ description: "Выберите год, месяц и число вашего рождения",
776
+ yearParams: { min: 18, max: 120 },
777
+ footerLabel: "Подтвердить",
778
+ alignTitle: "center",
779
+ };
780
+ var ContentWrapper$2 = styled.div(templateObject_1$m || (templateObject_1$m = __makeTemplateObject(["\n padding: 0px 40px 24px;\n @media (max-width: 600px) {\n padding: 20px 0 0;\n }\n"], ["\n padding: 0px 40px 24px;\n @media (max-width: 600px) {\n padding: 20px 0 0;\n }\n"])));
781
+ var StyledCalendarStandardContainer = styled(CalendarStandardContainer)(templateObject_2$d || (templateObject_2$d = __makeTemplateObject(["\n height: 410px;\n .react-datepicker__header {\n padding: 0 !important;\n }\n .react-datepicker__day-names {\n padding: 35px 22px 0;\n background-color: ", ";\n border-radius: 16px 16px 0 0;\n @media (max-width: 900px) {\n padding: 24px 16px 0;\n }\n }\n .react-datepicker__month {\n justify-content: space-between;\n height: calc(100% - 124px);\n background-color: ", ";\n border-radius: 0 0 16px 16px;\n padding: 20px 22px 24px;\n margin: 0 !important;\n box-sizing: border-box;\n @media (max-width: 900px) {\n padding: 20px 16px 24px;\n }\n }\n @media (max-width: 600px) {\n height: auto;\n margin-bottom: -4px;\n }\n"], ["\n height: 410px;\n .react-datepicker__header {\n padding: 0 !important;\n }\n .react-datepicker__day-names {\n padding: 35px 22px 0;\n background-color: ", ";\n border-radius: 16px 16px 0 0;\n @media (max-width: 900px) {\n padding: 24px 16px 0;\n }\n }\n .react-datepicker__month {\n justify-content: space-between;\n height: calc(100% - 124px);\n background-color: ", ";\n border-radius: 0 0 16px 16px;\n padding: 20px 22px 24px;\n margin: 0 !important;\n box-sizing: border-box;\n @media (max-width: 900px) {\n padding: 20px 16px 24px;\n }\n }\n @media (max-width: 600px) {\n height: auto;\n margin-bottom: -4px;\n }\n"])), theme.palette.background.light1, theme.palette.background.light1);
782
+ var DayContent = styled.span(templateObject_3$6 || (templateObject_3$6 = __makeTemplateObject(["\n padding-top: 1px;\n font-family: Inter, sans-serif;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"], ["\n padding-top: 1px;\n font-family: Inter, sans-serif;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"])));
783
+ var StyledModal = styled(Modal)(templateObject_4$4 || (templateObject_4$4 = __makeTemplateObject(["\n .KUI-Modal_title {\n font-size: 24px;\n line-height: 32px;\n text-align: ", ";\n }\n .KUI-Modal_description {\n margin-bottom: 36px;\n }\n"], ["\n .KUI-Modal_title {\n font-size: 24px;\n line-height: 32px;\n text-align: ", ";\n }\n .KUI-Modal_description {\n margin-bottom: 36px;\n }\n"])), function (_a) {
784
+ var alignTitle = _a.alignTitle;
785
+ return alignTitle || "center";
786
+ });
787
+ var templateObject_1$m, templateObject_2$d, templateObject_3$6, templateObject_4$4;
788
+
789
+ var shortMonths = [
790
+ "ЯНВ",
791
+ "ФЕВ",
792
+ "МАРТ",
793
+ "АПР",
794
+ "МАЙ",
795
+ "ИЮНЬ",
796
+ "ИЮЛЬ",
797
+ "АВГ",
798
+ "СЕНТ",
799
+ "ОКТ",
800
+ "НОЯБ",
801
+ "ДЕК",
802
+ ];
803
+
804
+ var ruCustom = __assign(__assign({}, ru), { localize: {
805
+ month: function (n) { return shortMonths[n]; },
806
+ ordinalNumber: function () { return ""; },
807
+ era: function () { return ""; },
808
+ quarter: function () { return ""; },
809
+ dayPeriod: function () { return ""; },
810
+ day: function () { return ""; },
811
+ } });
812
+ var MobileInputWithMonthPicker = forwardRef(function (_a, ref) {
813
+ var _b;
814
+ var title = _a.title, name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, props = __rest(_a, ["title", "name", "form", "disabled", "datePickerProps"]);
815
+ var _c = useController({
816
+ name: name,
817
+ control: form.control,
818
+ }), field = _c.field, fieldState = _c.fieldState;
819
+ var error = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
820
+ var _d = useToggle(), isModalOpen = _d[0], handleModalOpen = _d[1], handleModalClose = _d[2];
821
+ var _e = useState(field.value
822
+ ? DateTime.fromJSDate(new Date(String(field.value))).toFormat("MM.yyyy")
823
+ : null), value = _e[0], setValue = _e[1];
824
+ var _f = useState(value ? DateTime.fromFormat(value, "MM.yyyy").toJSDate() : null), date = _f[0], setDate = _f[1];
825
+ var handleChange = function (e) {
826
+ var targetValue = e.target.value;
827
+ setValue(targetValue);
828
+ if (targetValue.length !== 0 && isValidWithMaskExp.test(targetValue)) {
829
+ var jsDate = DateTime.fromFormat(targetValue, "MM.yyyy").toJSDate();
830
+ setDate(jsDate);
831
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: jsDate, name: name }, type: "change" });
832
+ }
833
+ else {
834
+ setDate(null);
835
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: null, name: name }, type: "change" });
836
+ }
837
+ };
838
+ var acceptWithDateSelected = function () {
839
+ if (date) {
840
+ setValue(DateTime.fromJSDate(date).toFormat("MM.yyyy"));
841
+ }
842
+ else {
843
+ setValue("");
844
+ }
845
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: date, name: name }, type: "change" });
846
+ handleModalClose();
847
+ };
848
+ return (jsxs$1(Wrapper$1, __assign({ ref: ref }, { children: [jsx(InputForDatepicker, __assign({ mask: "00.0000", name: name, handleCLick: handleModalOpen, value: value, onChange: handleChange, disabled: disabled, message: error, isLabelShrink: Boolean(field.value) }, props)), jsxs$1(Modal, __assign({ title: title, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsx(ContentWrapper$1, { children: jsx(DatePicker, __assign({ inline: true, showMonthYearPicker: true, dateFormat: "MM.yyyy", selected: date, onChange: function (newDate) { return setDate(newDate); }, locale: ruCustom, calendarContainer: MonthPickerContainer, renderCustomHeader: function (headProps) { return (jsx(MonthPickerHeader, __assign({}, headProps))); } }, datePickerProps)) }), jsx(ModalFooter, { fullWidth: true, disabled: !date, onClick: acceptWithDateSelected, label: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C" })] }))] })));
849
+ });
850
+ var Wrapper$1 = styled.div(templateObject_1$l || (templateObject_1$l = __makeTemplateObject(["\n @media (min-width: 601px) {\n display: none;\n }\n"], ["\n @media (min-width: 601px) {\n display: none;\n }\n"])));
851
+ var ContentWrapper$1 = styled.div(templateObject_2$c || (templateObject_2$c = __makeTemplateObject(["\n @media (max-width: 600px) {\n padding: 16px 16px 8px;\n }\n"], ["\n @media (max-width: 600px) {\n padding: 16px 16px 8px;\n }\n"])));
852
+ var templateObject_1$l, templateObject_2$c;
853
+
854
+ var InputWithMonthPicker = function (props) { return (jsxs$1(Fragment$1, { children: [jsx(DesktopInputWithMonthPicker, __assign({}, props)), jsx(MobileInputWithMonthPicker, __assign({}, props))] })); };
855
+
856
+ var MobileMenuPanel = forwardRef(function (_a, ref) {
857
+ var tabs = _a.tabs, handleClick = _a.handleClick, variant = _a.variant, other = __rest(_a, ["tabs", "handleClick", "variant"]);
858
+ var swiperRef = useRef(null);
859
+ var slideTo = function (index) {
860
+ setTimeout(function () {
861
+ var _a, _b;
862
+ (_b = (_a = swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper) === null || _b === void 0 ? void 0 : _b.slideTo(index);
863
+ }, 16);
864
+ handleClick(index);
865
+ };
866
+ return (jsx$1(Wrapper, __assign({ css: variant === "white" && { background: "white" }, ref: ref }, { children: jsx$1(Swiper, __assign({ spaceBetween: 8, slidesPerView: "auto", slideToClickedSlide: true, ref: swiperRef }, { children: tabs.map(function (tab, index) { return (jsx$1(SlideWrapper, { children: jsx$1(MenuItem, __assign({ tab: tab, index: index, handleClick: slideTo, offset: -121 }, other), tab.label) }, index)); }) })) })));
867
+ });
868
+ var Wrapper = styled.div(templateObject_1$k || (templateObject_1$k = __makeTemplateObject(["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background: ", ";\n padding: 16px 0 24px;\n @media (min-width: 766px) {\n display: none;\n }\n"], ["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background: ", ";\n padding: 16px 0 24px;\n @media (min-width: 766px) {\n display: none;\n }\n"])), theme.palette.background.light1);
869
+ var SlideWrapper = styled.div(templateObject_2$b || (templateObject_2$b = __makeTemplateObject(["\n width: max-content !important;\n &:first-of-type {\n padding-left: 16px;\n }\n"], ["\n width: max-content !important;\n &:first-of-type {\n padding-left: 16px;\n }\n"])));
870
+ var templateObject_1$k, templateObject_2$b;
871
+
872
+ var useWindowWidth = function (time) {
873
+ if (time === void 0) { time = 10; }
874
+ var _a = useState(0), width = _a[0], setWidth = _a[1];
875
+ useEffect(function () {
876
+ setWidth(window.innerWidth);
877
+ var handleResize = _.debounce(function () {
878
+ setWidth(window.innerWidth);
879
+ }, time);
880
+ window.addEventListener("resize", handleResize);
881
+ return function () { return window.removeEventListener("resize", handleResize); };
882
+ }, []);
883
+ return width;
884
+ };
885
+
886
+ var MenuPanel = forwardRef(function (_a, ref) {
887
+ var tabs = _a.tabs, tabPanels = _a.tabPanels, paths = _a.paths, activeTab = _a.activeTab, variant = _a.variant;
888
+ var width = useWindowWidth();
889
+ var _b = React.useState(activeTab), value = _b[0], setValue = _b[1];
890
+ var _c = React.useState(false), isScrolling = _c[0], setIsScrolling = _c[1];
891
+ var navigate = useNavigate();
892
+ var location = useLocation();
893
+ var handleClick = function (index) {
894
+ if (paths[index]) {
895
+ setValue(index);
896
+ var pathName = location.pathname;
897
+ var currentLocation = "".concat(pathName).concat(location.search);
898
+ var newLocation = "".concat(pathName).concat(paths[index]);
899
+ if (currentLocation !== newLocation) {
900
+ navigate(newLocation, { replace: true });
901
+ }
902
+ }
903
+ };
904
+ useEffect(function () {
905
+ setValue(activeTab);
906
+ }, [activeTab]);
907
+ useEffect(function () {
908
+ if (typeof activeTab !== "number" && width < 901) {
909
+ animateScroll.scrollToTop();
910
+ }
911
+ }, []);
912
+ if (width === 0) {
913
+ return null;
914
+ }
915
+ return (jsxs("div", __assign({ ref: ref }, { children: [width > 765 ? (jsx$1(DesktopMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })) : (jsx$1(MobileMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })), tabPanels.map(function (item, index) { return (jsx$1("div", __assign({ css: index === tabPanels.length - 1 && fullHeightStyles }, { children: jsx$1(Element, __assign({ name: tabs[index].label, "data-index": index }, { children: item }), index) }), index)); })] })));
916
+ });
917
+ MenuPanel.defaultProps = {
918
+ variant: "grey",
919
+ };
920
+ var fullHeightStyles = css(templateObject_1$j || (templateObject_1$j = __makeTemplateObject(["\n height: calc(100vh - 121px);\n"], ["\n height: calc(100vh - 121px);\n"])));
921
+ var templateObject_1$j;
922
+
923
+ var Switch = forwardRef(function (_a, ref) {
924
+ var form = _a.form, name = _a.name, props = __rest(_a, ["form", "name"]);
925
+ return (jsx$1(Controller, { control: form === null || form === void 0 ? void 0 : form.control, name: name, render: function (_a) {
926
+ var field = _a.field;
927
+ return (jsx$1(Switch$1, __assign({ checked: Boolean(field.value), onChange: field.onChange, "data-testid": name, ref: ref }, props)));
928
+ } }));
929
+ });
930
+
931
+ var InputPhoneWithForm = forwardRef(function (props, ref) {
932
+ var _a;
933
+ var form = props.form, name = props.name, hiddenInputProps = props.hiddenInputProps, error = props.error, other = __rest(props, ["form", "name", "hiddenInputProps", "error"]);
934
+ var codeRegister = useController({
935
+ control: form.control,
936
+ name: "".concat(name, ".phoneCode"),
937
+ defaultValue: "7",
938
+ });
939
+ var phoneRegister = useController({
940
+ control: form.control,
941
+ name: "".concat(name, ".phoneNumber"),
942
+ });
943
+ var errorMessage = typeof error !== "undefined" && String(error).length > 0
944
+ ? error
945
+ : (_a = phoneRegister.fieldState.error) === null || _a === void 0 ? void 0 : _a.message;
946
+ var handleCountryChange = function (country) {
947
+ codeRegister.field.onChange({
948
+ target: { value: country.phoneCode, name: "".concat(name, ".phoneCode") },
949
+ type: "change",
950
+ });
951
+ };
952
+ var handleChange = function (e) {
953
+ phoneRegister.field.onChange(e);
954
+ if (!codeRegister.field.value) {
955
+ codeRegister.field.onChange({
956
+ target: { value: "7", name: "".concat(name, ".phoneCode") },
957
+ type: "change",
958
+ });
959
+ }
960
+ if (other.onChange) {
961
+ other.onChange(e);
962
+ }
963
+ };
964
+ var forwardedRef = useForkRef(ref, phoneRegister.field.ref);
965
+ return (jsx(InputWithCountryDropdown, __assign({ message: errorMessage,
966
+ // @ts-ignore
967
+ hiddenInputProps: __assign(__assign({}, codeRegister.field), hiddenInputProps), onSelectCountry: handleCountryChange }, phoneRegister.field, other, { onChange: handleChange, ref: forwardedRef, autoComplete: "false" })));
968
+ });
969
+ InputPhoneWithForm.defaultProps = {
970
+ name: "phone",
971
+ };
972
+
973
+ var Table = forwardRef(function (props, ref) { return jsx(StyledTable, __assign({ cellSpacing: "0", ref: ref }, props)); });
974
+ var StyledTable = styled.table(templateObject_1$i || (templateObject_1$i = __makeTemplateObject(["\n width: 100%;\n border-spacing: 0;\n"], ["\n width: 100%;\n border-spacing: 0;\n"])));
975
+ var templateObject_1$i;
976
+
977
+ var TableHeadCell = styled.th(templateObject_1$h || (templateObject_1$h = __makeTemplateObject(["\n padding: 0;\n text-align: left;\n"], ["\n padding: 0;\n text-align: left;\n"])));
978
+ var templateObject_1$h;
979
+
980
+ var TableCell = styled.td(templateObject_1$g || (templateObject_1$g = __makeTemplateObject(["\n padding: 0;\n"], ["\n padding: 0;\n"])));
981
+ var templateObject_1$g;
982
+
983
+ var TableRow = forwardRef(function (_a, ref) {
984
+ var children = _a.children, other = __rest(_a, ["children"]);
985
+ var childrenArr = React.Children.toArray(children);
986
+ return (jsx("tr", __assign({ ref: ref }, { children: childrenArr.map(function (child) { return React.cloneElement(child, other); }) })));
987
+ });
988
+
989
+ var placementsPositions = {
990
+ bottomStart: {
991
+ bottom: 1,
992
+ offset: 0,
993
+ },
994
+ bottomMiddle: {
995
+ bottom: 1,
996
+ offset: 0.5,
997
+ },
998
+ bottomEnd: {
999
+ bottom: 1,
1000
+ offset: 1,
1001
+ },
1002
+ topStart: {
1003
+ top: 1,
1004
+ offset: 0,
1005
+ },
1006
+ topMiddle: {
1007
+ top: 1,
1008
+ offset: 0.5,
1009
+ },
1010
+ topEnd: {
1011
+ top: 1,
1012
+ offset: 1,
1013
+ },
1014
+ };
1015
+
1016
+ var PopperBase = forwardRef(function (props, ref) {
1017
+ props.placement; var open = props.open, children = props.children, spacing = props.spacing, className = props.className, style = props.style, other = __rest(props, ["placement", "open", "children", "spacing", "className", "style"]);
1018
+ return (jsx(StyledPopperWrapper, __assign({ ref: ref, className: classNames("KUI-Popper", className), spacing: spacing, style: style }, { children: jsx(StyledPopper, __assign({ open: !!open }, other, { children: children })) })));
1019
+ });
1020
+ var StyledPopperWrapper = styled.div(templateObject_1$f || (templateObject_1$f = __makeTemplateObject(["\n position: absolute;\n max-width: 215px;\n width: max-content;\n padding: ", ";\n z-index: 10;\n @media (max-width: ", "px) {\n position: fixed;\n bottom: 24px;\n top: auto !important;\n left: 16px !important;\n width: calc(100vw - 32px);\n max-width: unset;\n }\n"], ["\n position: absolute;\n max-width: 215px;\n width: max-content;\n padding: ", ";\n z-index: 10;\n @media (max-width: ", "px) {\n position: fixed;\n bottom: 24px;\n top: auto !important;\n left: 16px !important;\n width: calc(100vw - 32px);\n max-width: unset;\n }\n"])), function (_a) {
1021
+ var spacing = _a.spacing;
1022
+ return spacing || 0;
1023
+ }, theme.breakpoints.xxs);
1024
+ var StyledPopper = styled.div(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n padding: 16px;\n border-radius: 12px;\n background: white;\n box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.1);\n transition: opacity 0.3s ease-out;\n opacity: ", ";\n"], ["\n padding: 16px;\n border-radius: 12px;\n background: white;\n box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.1);\n transition: opacity 0.3s ease-out;\n opacity: ", ";\n"])), function (_a) {
1025
+ var open = _a.open;
1026
+ return (open ? 1 : 0);
1027
+ });
1028
+ var templateObject_1$f, templateObject_2$a;
1029
+
1030
+ var PopperWithPortal = forwardRef(function (props, ref) {
1031
+ var placement = props.placement, contentRef = props.contentRef, other = __rest(props, ["placement", "contentRef"]);
1032
+ var popperRef = useRef(null);
1033
+ var _a = useState(null), coords = _a[0], setCoords = _a[1];
1034
+ var _b = useState(null), size = _b[0], setSize = _b[1];
1035
+ useEffect(function () {
1036
+ if (contentRef.current && popperRef.current) {
1037
+ var popper = popperRef.current;
1038
+ var elemCoords = contentRef.current.getBoundingClientRect();
1039
+ var popperSize = {
1040
+ width: popper.clientWidth,
1041
+ height: popper.clientHeight,
1042
+ };
1043
+ setCoords(elemCoords);
1044
+ setSize(popperSize);
1045
+ }
1046
+ }, []);
1047
+ var position = {};
1048
+ if (coords && size) {
1049
+ var placementPositions =
1050
+ // @ts-ignore
1051
+ placementsPositions[placement !== null && placement !== void 0 ? placement : "bottomMiddle"];
1052
+ position = {
1053
+ top: Math.max(placementPositions.top
1054
+ ? coords.top - size.height
1055
+ : coords.top + coords.height, 0),
1056
+ left: Math.max(coords.left +
1057
+ coords.width * placementPositions.offset -
1058
+ size.width * placementPositions.offset, 0),
1059
+ };
1060
+ }
1061
+ var forwardedRef = function (elem) {
1062
+ if (ref) {
1063
+ // @ts-ignore
1064
+ ref.current = elem;
1065
+ }
1066
+ // @ts-ignore
1067
+ popperRef.current = elem;
1068
+ };
1069
+ // TODO подумать как реализовать правильное расположение подсказки под contentRef в зависимости от placement
1070
+ // Автоматом менять положение (верх-низ) в зависимости от того помещается или нет
1071
+ // Распожить стрелочку к контенту посередине контента
1072
+ return ReactDOM.createPortal(jsxs$1(Fragment$1, { children: [jsx(Global, { styles: css(templateObject_1$e || (templateObject_1$e = __makeTemplateObject(["\n body {\n position: relative;\n }\n "], ["\n body {\n position: relative;\n }\n "]))) }), jsx(PopperBase, __assign({ ref: forwardedRef, style: position }, other))] }), document.body);
1073
+ });
1074
+ var templateObject_1$e;
1075
+
1076
+ var StaticPopper = forwardRef(function (props, ref) {
1077
+ var placement = props.placement, contentRef = props.contentRef, other = __rest(props, ["placement", "contentRef"]);
1078
+ var popperRef = useRef(null);
1079
+ var _a = useState(null), contentSize = _a[0], setContentSize = _a[1];
1080
+ var _b = useState(null), popperSize = _b[0], setPopperSize = _b[1];
1081
+ var position = {};
1082
+ useEffect(function () {
1083
+ if (contentRef.current && popperRef.current) {
1084
+ setContentSize({
1085
+ width: contentRef.current.clientWidth,
1086
+ height: contentRef.current.clientHeight,
1087
+ });
1088
+ setPopperSize({
1089
+ width: popperRef.current.clientWidth,
1090
+ height: popperRef.current.clientHeight,
1091
+ });
1092
+ }
1093
+ }, []);
1094
+ if (contentSize && popperSize) {
1095
+ var placementPositions =
1096
+ // @ts-ignore
1097
+ placementsPositions[placement !== null && placement !== void 0 ? placement : "bottomMiddle"];
1098
+ position = {
1099
+ top: placementPositions.top
1100
+ ? 0 - popperSize.height
1101
+ : 0 + contentSize.height,
1102
+ left: Math.max(contentSize.width * placementPositions.offset -
1103
+ popperSize.width * placementPositions.offset, 0),
1104
+ };
1105
+ }
1106
+ var forwardedRef = function (elem) {
1107
+ if (ref) {
1108
+ // @ts-ignore
1109
+ ref.current = elem;
1110
+ }
1111
+ // @ts-ignore
1112
+ popperRef.current = elem;
1113
+ };
1114
+ return jsx(PopperBase, __assign({ ref: forwardedRef, style: position }, other));
1115
+ });
1116
+
1117
+ var Popper = forwardRef(function (props, ref) {
1118
+ var contentRef = props.contentRef, other = __rest(props, ["contentRef"]);
1119
+ var _a = useState(true), isParentSticky = _a[0], setIsParentSticky = _a[1];
1120
+ useEffect(function () {
1121
+ function checkParentIsSticky() {
1122
+ var el = contentRef.current;
1123
+ while (el) {
1124
+ var position = window.getComputedStyle(el).position;
1125
+ if (position === "sticky" || position === "fixed")
1126
+ return true;
1127
+ el = el.parentElement;
1128
+ }
1129
+ return false;
1130
+ }
1131
+ var isSticky = checkParentIsSticky();
1132
+ setIsParentSticky(!!isSticky);
1133
+ }, [contentRef]);
1134
+ return isParentSticky ? (jsx(StaticPopper, __assign({ ref: ref, contentRef: contentRef }, other))) : (jsx(PopperWithPortal, __assign({ ref: ref, contentRef: contentRef }, other)));
1135
+ });
1136
+
1137
+ var Tooltip = forwardRef(function (props, ref) {
1138
+ var content = props.content, onOpen = props.onOpen, onClose = props.onClose, open = props.open, children = props.children, cursor = props.cursor, popper = __rest(props, ["content", "onOpen", "onClose", "open", "children", "cursor"]);
1139
+ var _a = useState(open), isOpen = _a[0], setOpen = _a[1];
1140
+ var elemRef = useRef(null);
1141
+ var handleOpen = function () {
1142
+ setOpen(true);
1143
+ if (onOpen) {
1144
+ onOpen();
1145
+ }
1146
+ };
1147
+ var handleClose = function () {
1148
+ setOpen(false);
1149
+ if (onClose) {
1150
+ onClose();
1151
+ }
1152
+ };
1153
+ useEffect(function () {
1154
+ setOpen(open);
1155
+ }, [open]);
1156
+ return (jsxs$1(StyledWrapper$7, __assign({ onMouseLeave: handleClose, ref: ref }, { children: [jsx(StyledContentWrapper, __assign({ onMouseEnter: handleOpen, onTouchEnd: handleOpen, ref: elemRef, cursor: cursor }, { children: jsx(StyledContent$1, { children: children }) })), jsx(Popper, __assign({ open: isOpen }, popper, { contentRef: elemRef }, { children: content }))] })));
1157
+ });
1158
+ var containerCSS = css(templateObject_1$d || (templateObject_1$d = __makeTemplateObject(["\n display: inline-flex;\n width: 100%;\n height: fit-content;\n"], ["\n display: inline-flex;\n width: 100%;\n height: fit-content;\n"])));
1159
+ var StyledWrapper$7 = styled.div(templateObject_2$9 || (templateObject_2$9 = __makeTemplateObject(["\n ", ";\n position: relative;\n"], ["\n ", ";\n position: relative;\n"])), containerCSS);
1160
+ var StyledContentWrapper = styled.div(templateObject_3$5 || (templateObject_3$5 = __makeTemplateObject(["\n ", ";\n cursor: ", ";\n"], ["\n ", ";\n cursor: ", ";\n"])), containerCSS, function (_a) {
1161
+ var cursor = _a.cursor;
1162
+ return cursor;
1163
+ });
1164
+ var StyledContent$1 = styled.div(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n ", ";\n z-index: -1;\n"], ["\n ", ";\n z-index: -1;\n"])), containerCSS);
1165
+ var templateObject_1$d, templateObject_2$9, templateObject_3$5, templateObject_4$3;
1166
+
1167
+ var ButtonSelect = forwardRef(function (props, ref) {
1168
+ var _a;
1169
+ var options = props.options, otherProps = __rest(props, ["options"]);
1170
+ return (jsx(StyledInputSelect, __assign({ value: (_a = options === null || options === void 0 ? void 0 : options[0]) === null || _a === void 0 ? void 0 : _a.value, options: options, iconProps: { width: 9, height: 5 } }, otherProps, { ref: ref })));
1171
+ });
1172
+ var StyledInputSelect = styled(InputSelect)(templateObject_1$c || (templateObject_1$c = __makeTemplateObject(["\n &.KUI-Input_container {\n height: 40px;\n width: fit-content;\n input {\n height: 40px;\n border-radius: 66px;\n padding: 0 12px;\n transform: none;\n font-size: 12px;\n line-height: 14px;\n margin: 0 !important;\n width: auto !important;\n }\n\n @media (max-width: ", "px) {\n height: 32px;\n input {\n height: 32px;\n }\n }\n }\n & + div {\n top: 22px;\n padding-top: 22px;\n }\n"], ["\n &.KUI-Input_container {\n height: 40px;\n width: fit-content;\n input {\n height: 40px;\n border-radius: 66px;\n padding: 0 12px;\n transform: none;\n font-size: 12px;\n line-height: 14px;\n margin: 0 !important;\n width: auto !important;\n }\n\n @media (max-width: ", "px) {\n height: 32px;\n input {\n height: 32px;\n }\n }\n }\n & + div {\n top: 22px;\n padding-top: 22px;\n }\n"])), theme.breakpoints.xs);
1173
+ var templateObject_1$c;
1174
+
1175
+ var InputSelectWithController = forwardRef(function (_a, ref) {
1176
+ var _b, _c;
1177
+ var options = _a.options, name = _a.name, handleChange = _a.handleChange, form = _a.form, valueProp = _a.value, inputProps = __rest(_a, ["options", "name", "handleChange", "form", "value"]);
1178
+ var control = useController({
1179
+ control: form.control,
1180
+ name: name,
1181
+ });
1182
+ var error = (_b = control.fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
1183
+ var handleSelect = function (value) {
1184
+ var _a;
1185
+ if (handleChange) {
1186
+ handleChange(value);
1187
+ }
1188
+ if (form) {
1189
+ (_a = control.field) === null || _a === void 0 ? void 0 : _a.onChange({
1190
+ target: { value: value, name: name },
1191
+ type: "change",
1192
+ });
1193
+ }
1194
+ };
1195
+ return (jsx(InputSelect, __assign({ options: options, handleChange: handleSelect, error: error, name: name, value: valueProp || ((_c = control.field) === null || _c === void 0 ? void 0 : _c.value), ref: ref }, inputProps)));
1196
+ });
1197
+
1198
+ function InputMultiSelectOption(props) {
1199
+ var option = props.option, selectedValue = props.selectedValue;
1200
+ var selected = selectedValue.includes(option.value);
1201
+ return (jsx(StyledOption, __assign({ container: true, selected: selected }, { children: jsx(Checkbox, { checked: selected, label: jsx(StyledCaption, __assign({ selected: selected, size: "sm", weight: 500 }, { children: option.label })) }) })));
1202
+ }
1203
+ var StyledOption = styled(Grid)(templateObject_1$b || (templateObject_1$b = __makeTemplateObject(["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n background-color: ", ";\n &:hover {\n background-color: ", ";\n p {\n color: ", " !important;\n }\n }\n"], ["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n background-color: ", ";\n &:hover {\n background-color: ", ";\n p {\n color: ", " !important;\n }\n }\n"])), function (_a) {
1204
+ var selected = _a.selected;
1205
+ return selected ? theme.palette.background.light1 : theme.palette.grey.zero;
1206
+ }, theme.palette.background.light1, theme.palette.grey.seventy);
1207
+ var StyledCaption = styled(Caption)(templateObject_2$8 || (templateObject_2$8 = __makeTemplateObject(["\n color: ", " !important;\n"], ["\n color: ", " !important;\n"])), function (_a) {
1208
+ var selected = _a.selected;
1209
+ return selected
1210
+ ? theme.palette.grey.seventy
1211
+ : theme.palette.grey.fiftyP;
1212
+ });
1213
+ var templateObject_1$b, templateObject_2$8;
1214
+
1215
+ function InputMultiSelect(_a) {
1216
+ var _b, _c;
1217
+ var options = _a.options, name = _a.name, handleChange = _a.handleChange, form = _a.form, valueProp = _a.value, inputProps = __rest(_a, ["options", "name", "handleChange", "form", "value"]);
1218
+ var control = form
1219
+ ? useController({
1220
+ control: form.control,
1221
+ name: name,
1222
+ })
1223
+ : null;
1224
+ var _d = useState(valueProp || ((_b = control === null || control === void 0 ? void 0 : control.field) === null || _b === void 0 ? void 0 : _b.value) || []), value = _d[0], setValue = _d[1];
1225
+ var selectedLabel = options
1226
+ .filter(function (option) { return value.includes(option.value); })
1227
+ .map(function (option) { return option.label; })
1228
+ .join(", ");
1229
+ var error = (_c = control === null || control === void 0 ? void 0 : control.fieldState.error) === null || _c === void 0 ? void 0 : _c.message;
1230
+ useEffect(function () {
1231
+ var _a;
1232
+ if (form) {
1233
+ (_a = control === null || control === void 0 ? void 0 : control.field) === null || _a === void 0 ? void 0 : _a.onChange({
1234
+ target: { value: value, name: name },
1235
+ type: "change",
1236
+ });
1237
+ }
1238
+ }, [value]);
1239
+ var handleSelect = function (option) {
1240
+ if (value.includes(option.value)) {
1241
+ setValue(function (prev) { return prev.filter(function (elem) { return elem !== option.value; }); });
1242
+ }
1243
+ else {
1244
+ setValue(function (prev) { return __spreadArray(__spreadArray([], prev, true), [option.value], false); });
1245
+ }
1246
+ if (handleChange) {
1247
+ handleChange(option.value);
1248
+ }
1249
+ };
1250
+ return (jsx(InputSelectBase, __assign({ options: options, handleChange: handleSelect, error: error, selectedLabel: selectedLabel, selectedValue: value, name: name, isLabelShrink: !!selectedLabel, renderOption: function (option, selectedValue) { return (jsx(InputMultiSelectOption, { option: option, selectedValue: selectedValue })); } }, inputProps)));
1251
+ }
1252
+
1253
+ var RadioButtons = forwardRef(function (_a, ref) {
1254
+ var options = _a.options, disabled = _a.disabled, direction = _a.direction, defaultValue = _a.defaultValue, valueOfProps = _a.value, onChange = _a.onChange, isSquare = _a.isSquare, otherProps = __rest(_a, ["options", "disabled", "direction", "defaultValue", "value", "onChange", "isSquare"]);
1255
+ var _b = useState(defaultValue || valueOfProps || options[0].value), value = _b[0], setValue = _b[1];
1256
+ var handleChange = function (e) {
1257
+ var radioValue = e.target.value;
1258
+ setValue(radioValue);
1259
+ if (onChange) {
1260
+ onChange(e, radioValue);
1261
+ }
1262
+ };
1263
+ var handleClick = function (e) {
1264
+ var radioValue = e.target.value;
1265
+ if (String(value) === String(radioValue)) {
1266
+ setValue(null);
1267
+ if (onChange) {
1268
+ onChange(e, null);
1269
+ }
1270
+ }
1271
+ };
1272
+ useEffect(function () {
1273
+ if (valueOfProps) {
1274
+ setValue(valueOfProps);
1275
+ }
1276
+ }, [valueOfProps]);
1277
+ return (jsx(Grid, __assign({ container: true, direction: direction, ref: ref }, { children: options.map(function (option) { return (jsx(Radio, __assign({ value: option.value, label: option.label, disabled: Boolean(disabled), checked: String(value) === String(option.value), isSquare: isSquare, onClick: handleClick, onChange: handleChange }, otherProps), option.value)); }) })));
1278
+ });
1279
+ RadioButtons.defaultProps = {
1280
+ disabled: false,
1281
+ direction: "row",
1282
+ fullWidth: false,
1283
+ defaultValue: undefined,
1284
+ };
1285
+ RadioButtons.displayName = "RadioButtons";
1286
+
1287
+ function RadioButtonsWithController(_a) {
1288
+ var form = _a.form, name = _a.name, defaultValue = _a.defaultValue, otherProps = __rest(_a, ["form", "name", "defaultValue"]);
1289
+ var handleChange = function (e, value, field) {
1290
+ field.onChange({ target: { value: value, name: name }, type: "change" });
1291
+ if (otherProps.onChange) {
1292
+ otherProps.onChange(e, value);
1293
+ }
1294
+ };
1295
+ useEffect(function () {
1296
+ if (!form.getValues(name) && !defaultValue) {
1297
+ form.setValue(name, otherProps.options[0].value);
1298
+ }
1299
+ }, []);
1300
+ return (jsx(Controller, { control: form.control, name: String(name), render: function (_a) {
1301
+ var field = _a.field;
1302
+ return (jsx(RadioButtons, __assign({}, otherProps, field, { defaultValue: defaultValue, onChange: function (e, value) {
1303
+ return handleChange(e, value, field);
1304
+ } })));
1305
+ } }));
1306
+ }
1307
+
1308
+ function RadioGroupWithLabel(props) {
1309
+ var _a;
1310
+ var title = props.title, className = props.className, direction = props.direction, form = props.form, name = props.name, otherProps = __rest(props, ["title", "className", "direction", "form", "name"]);
1311
+ var fieldState = useController({
1312
+ control: form.control,
1313
+ name: name,
1314
+ }).fieldState;
1315
+ var errorMessage = (_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message;
1316
+ return (jsxs$1(StyledContainer, { children: [jsxs$1(StyledWrapper$6, __assign({ container: true, alignItems: direction === "vertical" ? "flex-start" : "center", justify: "space-between", direction: direction === "vertical" ? "column" : "row", hasError: !!errorMessage, className: className, withTitle: !!title }, { children: [title && (jsx(StyledTitle, __assign({ direction: direction, size: "xs", weight: 600 }, { children: title.toUpperCase() }))), jsx(Grid, __assign({ item: true, xs: direction === "vertical" ? 12 : "auto" }, { children: jsx(RadioButtonsWithController, __assign({ form: form, name: name }, otherProps)) }))] })), errorMessage && jsx(InputMessage, { variant: "error", msg: errorMessage })] }));
1317
+ }
1318
+ var StyledContainer = styled.div(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
1319
+ var columnDirectionCSS = function (_a) {
1320
+ var hasError = _a.hasError;
1321
+ return css(templateObject_2$7 || (templateObject_2$7 = __makeTemplateObject(["\n padding: 12px 15px 15px;\n border-radius: ", ";\n"], ["\n padding: 12px 15px 15px;\n border-radius: ", ";\n"])), hasError ? "8px 8px 0 0" : "8px");
1322
+ };
1323
+ var rowDirectionCSS = function (_a) {
1324
+ var hasError = _a.hasError, withTitle = _a.withTitle;
1325
+ return css(templateObject_3$4 || (templateObject_3$4 = __makeTemplateObject(["\n padding: ", ";\n border-radius: ", ";\n"], ["\n padding: ", ";\n border-radius: ", ";\n"])), withTitle ? "3px 4px 3px 16px" : "3px", hasError ? "66px 66px 0 0" : "66px");
1326
+ };
1327
+ var StyledWrapper$6 = styled(Grid, {
1328
+ shouldForwardProp: function (prop) { return prop !== "hasError" && prop !== "withTitle"; },
1329
+ })(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n border: 1px solid\n ", ";\n ", ";\n"], ["\n border: 1px solid\n ", ";\n ", ";\n"])), function (_a) {
1330
+ var hasError = _a.hasError;
1331
+ return hasError ? theme.palette.red.fiftyP : theme.palette.grey.fifteenB;
1332
+ }, function (_a) {
1333
+ var direction = _a.direction, hasError = _a.hasError, withTitle = _a.withTitle;
1334
+ return direction === "column"
1335
+ ? columnDirectionCSS({ hasError: hasError })
1336
+ : rowDirectionCSS({ hasError: hasError, withTitle: withTitle });
1337
+ });
1338
+ var StyledTitle = styled(Caption)(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n margin-bottom: ", "px;\n"], ["\n margin-bottom: ", "px;\n"])), function (_a) {
1339
+ var direction = _a.direction;
1340
+ return (direction === "vertical" ? 8 : 0);
1341
+ });
1342
+ var templateObject_1$a, templateObject_2$7, templateObject_3$4, templateObject_4$2, templateObject_5$2;
1343
+
1344
+ var Loading = forwardRef(function (_a) {
1345
+ var height = _a.height, className = _a.className, otherProps = __rest(_a, ["height", "className"]);
1346
+ return (jsx(StyledWrapper$5, __assign({ container: true, alignItems: "center", justify: "center", className: className, height: height }, { children: jsx(StyledCircularProgress, __assign({}, otherProps)) })));
1347
+ });
1348
+ Loading.defaultProps = {
1349
+ height: "adaptive",
1350
+ };
1351
+ var StyledCircularProgress = styled(CircularProgress)(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject(["\n color: ", ";\n"], ["\n color: ", ";\n"])), theme.palette.brand.main);
1352
+ var StyledWrapper$5 = styled(Grid, {
1353
+ shouldForwardProp: function (prop) { return prop !== "height"; },
1354
+ })(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n height: ", ";\n"], ["\n height: ", ";\n"])), function (_a) {
1355
+ var height = _a.height;
1356
+ return height;
1357
+ });
1358
+ var templateObject_1$9, templateObject_2$6;
1359
+
1360
+ function CreatingEntityFromDropdown(_a) {
1361
+ var creatingLabel = _a.creatingLabel, renderCreatingModal = _a.renderCreatingModal;
1362
+ var _b = useToggle(), isModalOpen = _b[0], handleModalOpen = _b[1], handleModalClose = _b[2];
1363
+ if (!creatingLabel || !renderCreatingModal) {
1364
+ return null;
1365
+ }
1366
+ var handleModalWrapperClick = function (e) { return e.stopPropagation(); };
1367
+ return (jsxs$1(Fragment$1, { children: [jsxs$1(StyledWrapper$4, __assign({ container: true, onClick: handleModalOpen, alignItems: "center" }, { children: [jsx(StyledPlusIcon, { width: 12, height: 12 }), jsx(Caption, __assign({ color: "fiftyP", size: "xs", weight: 500 }, { children: creatingLabel }))] })), jsx(StyledModalWrapper, __assign({ onClick: handleModalWrapperClick }, { children: renderCreatingModal({
1368
+ isOpen: isModalOpen,
1369
+ handleClose: handleModalClose,
1370
+ }) }))] }));
1371
+ }
1372
+ var StyledWrapper$4 = styled(Grid)(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n width: 100%;\n position: sticky;\n bottom: 0;\n left: 0;\n border-radius: 0 0 12px 12px;\n border-top: 1px solid ", ";\n padding: 8px 19px;\n cursor: pointer;\n background: white;\n"], ["\n width: 100%;\n position: sticky;\n bottom: 0;\n left: 0;\n border-radius: 0 0 12px 12px;\n border-top: 1px solid ", ";\n padding: 8px 19px;\n cursor: pointer;\n background: white;\n"])), theme.palette.grey.fifteenB);
1373
+ var StyledPlusIcon = styled(PlusIcon)(templateObject_2$5 || (templateObject_2$5 = __makeTemplateObject(["\n margin-right: 14px;\n path {\n fill: ", ";\n }\n"], ["\n margin-right: 14px;\n path {\n fill: ", ";\n }\n"])), theme.palette.grey.fiftyP);
1374
+ var StyledModalWrapper = styled.div(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject([""], [""])));
1375
+ var templateObject_1$8, templateObject_2$5, templateObject_3$3;
1376
+
1377
+ var AutocompleteOption$1 = function (props) {
1378
+ var option = props.option, renderOption = props.renderOption, handleSelect = props.handleSelect, index = props.index;
1379
+ var handleClick = function () {
1380
+ handleSelect(option);
1381
+ };
1382
+ return (jsx(StyledOptionWrapper, __assign({ item: true, xs: 12, onClick: handleClick, "data-testid": "autocomplete_option_".concat(index) }, { children: renderOption(option) })));
1383
+ };
1384
+ var StyledOptionWrapper = styled(Grid)(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n cursor: pointer;\n"], ["\n cursor: pointer;\n"])));
1385
+ var templateObject_1$7;
1386
+
1387
+ function AutocompleteDropdown(props) {
1388
+ var options = props.options, renderOption = props.renderOption, creatingLabel = props.creatingLabel, renderCreatingModal = props.renderCreatingModal;
1389
+ var inputRef = props.inputRef, isOpenDropdown = props.isOpenDropdown, isLoading = props.isLoading;
1390
+ var handleCloseDropdown = props.handleCloseDropdown, handleSelect = props.handleSelect, handleScrollEnd = props.handleScrollEnd;
1391
+ var handleScroll = function (e) {
1392
+ if (e.target.scrollHeight - (e.target.scrollTop + e.target.offsetHeight) <
1393
+ 100) {
1394
+ if (handleScrollEnd)
1395
+ handleScrollEnd();
1396
+ }
1397
+ };
1398
+ return (jsxs$1(StyledDropdown, __assign({ buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, onScroll: handleScroll, endComponent: jsx(CreatingEntityFromDropdown, { creatingLabel: creatingLabel, renderCreatingModal: renderCreatingModal }) }, { children: [options.map(function (option, key) { return (jsx(AutocompleteOption$1, { option: option, renderOption: renderOption, handleSelect: handleSelect, index: key }, key)); }), isLoading && jsx(StyledLoading, { height: "auto" })] })));
1399
+ }
1400
+ var StyledDropdown = styled(InputDropdown)(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"], ["\n .KUI-InputDropdown_scroll {\n max-height: 142px;\n padding: 0 4px;\n }\n"])));
1401
+ var StyledLoading = styled(Loading)(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n position: sticky;\n bottom: 30px;\n"], ["\n position: sticky;\n bottom: 30px;\n"])));
1402
+ var templateObject_1$6, templateObject_2$4;
1403
+
1404
+ function InputWithAutocomplete(_a) {
1405
+ var _b;
1406
+ var renderOption = _a.renderOption, options = _a.options, name = _a.name, hideName = _a.hideName, form = _a.form, isLoading = _a.isLoading, onSelectItem = _a.onSelectItem, handleScrollEnd = _a.handleScrollEnd, onSearchItem = _a.onSearchItem, isLabelLoading = _a.isLabelLoading, disabled = _a.disabled, creatingLabel = _a.creatingLabel, renderCreatingModal = _a.renderCreatingModal, endComponent = _a.endComponent, inputRefProps = _a.inputRef, inputProps = __rest(_a, ["renderOption", "options", "name", "hideName", "form", "isLoading", "onSelectItem", "handleScrollEnd", "onSearchItem", "isLabelLoading", "disabled", "creatingLabel", "renderCreatingModal", "endComponent", "inputRef"]);
1407
+ var _c = useState(false), isOpenDropdown = _c[0], setIsOpenDropDown = _c[1];
1408
+ var inputRef = useRef(null);
1409
+ if (hideName)
1410
+ form.register(hideName);
1411
+ var handleOpenDropdown = function () {
1412
+ setIsOpenDropDown(true);
1413
+ };
1414
+ var handleCloseDropdown = function () {
1415
+ setIsOpenDropDown(false);
1416
+ };
1417
+ var handleSelect = function (option) {
1418
+ var _a;
1419
+ onSelectItem(option);
1420
+ handleCloseDropdown();
1421
+ var error = (_a = form.getFieldState(name).error) === null || _a === void 0 ? void 0 : _a.message;
1422
+ if (error) {
1423
+ form.clearErrors(name);
1424
+ }
1425
+ };
1426
+ var handleSearch = function (e) {
1427
+ if (onSearchItem) {
1428
+ onSearchItem(e.target.value);
1429
+ form.setValue(hideName, null);
1430
+ }
1431
+ if (!e.target.value && hideName) {
1432
+ form.setValue(hideName, null);
1433
+ form.setValue(name, null);
1434
+ onSelectItem(null);
1435
+ }
1436
+ handleOpenDropdown();
1437
+ };
1438
+ var forwardRef = useForkRef(inputRef, inputRefProps);
1439
+ return (jsxs(StyledWrapper$3, { children: [isLabelLoading && (jsx$1(StyledLoadingWrapper, { children: jsx$1(Loading, { height: "100%" }) })), jsx$1(StyledInput$2, __assign({ form: form, onInput: handleSearch, onFocus: handleOpenDropdown, name: name, disabled: disabled, ref: forwardRef, isDropdownOpen: isOpenDropdown }, inputProps, { endIcon: !disabled && (jsxs(Grid, __assign({ container: true, alignItems: "center" }, { children: [jsx$1(Box, __assign({ mr: 2 }, { children: endComponent })), inputProps.endIcon ||
1440
+ (!disabled && (jsx$1(HalfArrowIcon, { width: 12, height: 13, css: [
1441
+ { transition: "all linear .2s" },
1442
+ isOpenDropdown && { transform: "rotate(180deg)" },
1443
+ ] })))] }))) })), jsx$1(AutocompleteDropdown, { renderOption: renderOption, options: options, inputRef: {
1444
+ current: (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.parentElement,
1445
+ }, isOpenDropdown: isOpenDropdown, handleCloseDropdown: handleCloseDropdown, handleSelect: handleSelect, isLoading: isLoading, handleScrollEnd: handleScrollEnd, creatingLabel: creatingLabel, renderCreatingModal: renderCreatingModal })] }));
1446
+ }
1447
+ var StyledLoadingWrapper = styled.div(templateObject_1$5 || (templateObject_1$5 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1;\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1;\n"])));
1448
+ var StyledWrapper$3 = styled.div(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
1449
+ var StyledInput$2 = styled(InputWithController)(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n .KUI-InputMessage {\n opacity: ", ";\n }\n"], ["\n .KUI-InputMessage {\n opacity: ", ";\n }\n"])), function (_a) {
1450
+ var isDropdownOpen = _a.isDropdownOpen;
1451
+ return (isDropdownOpen ? 0 : 1);
1452
+ });
1453
+ var templateObject_1$5, templateObject_2$3, templateObject_3$2;
1454
+
1455
+ function AutocompleteOption(_a) {
1456
+ var label = _a.label;
1457
+ return (jsx(StyledWrapper$2, { children: jsx(Caption, __assign({ size: "s", weight: 500 }, { children: label })) }));
1458
+ }
1459
+ var StyledWrapper$2 = styled.div(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n padding: 8px;\n border-radius: 8px;\n cursor: pointer;\n &:hover {\n background: ", ";\n },\n"], ["\n padding: 8px;\n border-radius: 8px;\n cursor: pointer;\n &:hover {\n background: ", ";\n },\n"])), theme.palette.background.light2);
1460
+ var templateObject_1$4;
1461
+
1462
+ function Link(props) {
1463
+ var href = props.href, withoutRoute = props.withoutRoute, stopPropagation = props.stopPropagation, openInNewWindow = props.openInNewWindow, other = __rest(props, ["href", "withoutRoute", "stopPropagation", "openInNewWindow"]);
1464
+ var navigate = useNavigate();
1465
+ var handleClick = function (e) {
1466
+ if (stopPropagation)
1467
+ e.stopPropagation();
1468
+ e.preventDefault();
1469
+ if (href) {
1470
+ if (withoutRoute)
1471
+ updateQueryParams(href);
1472
+ else if (openInNewWindow)
1473
+ window.open(href, "_blank");
1474
+ else
1475
+ navigate(href);
1476
+ }
1477
+ };
1478
+ return (jsx(StyledLink, __assign({ href: href || undefined, onClick: handleClick }, other)));
1479
+ }
1480
+ var StyledLink = styled.a(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n text-decoration: none;\n color: inherit;\n max-width: 100%;\n width: 100%;\n"], ["\n text-decoration: none;\n color: inherit;\n max-width: 100%;\n width: 100%;\n"])));
1481
+ var templateObject_1$3;
1482
+
1483
+ function FileItem(_a) {
1484
+ var _b, _c;
1485
+ var file = _a.file, onDelete = _a.onDelete, onChange = _a.onChange, index = _a.index, selectedFile = _a.selectedFile, setSelectedFile = _a.setSelectedFile, limitTitle = _a.limitTitle, icon = _a.icon, subtitle = _a.subtitle, disabled = _a.disabled, error = _a.error, className = _a.className, otherProps = __rest(_a, ["file", "onDelete", "onChange", "index", "selectedFile", "setSelectedFile", "limitTitle", "icon", "subtitle", "disabled", "error", "className"]);
1486
+ var formattedFileName = String((_c = (file.title || file.name || ((_b = file.file) === null || _b === void 0 ? void 0 : _b.name))) === null || _c === void 0 ? void 0 : _c.replace(/\.[^/.]+$/, ""));
1487
+ var _d = useState(formattedFileName), title = _d[0], setTitle = _d[1];
1488
+ var _e = useState(false), isEditing = _e[0], setIsEditing = _e[1];
1489
+ var inputRef = useRef(null);
1490
+ useEffect(function () {
1491
+ var _a;
1492
+ if (isEditing) {
1493
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
1494
+ }
1495
+ if (!isEditing && formattedFileName !== title && onChange) {
1496
+ onChange(title, index);
1497
+ }
1498
+ }, [isEditing]);
1499
+ var toggleEdit = function () {
1500
+ setIsEditing(function (prev) { return !prev; });
1501
+ };
1502
+ var handleBlur = function () {
1503
+ setIsEditing(false);
1504
+ };
1505
+ var handleChange = function (e) {
1506
+ setTitle(e.target.value);
1507
+ };
1508
+ var handleDelete = function () {
1509
+ var _a;
1510
+ if (onDelete) {
1511
+ onDelete((_a = file.index) !== null && _a !== void 0 ? _a : 1, Number(index));
1512
+ }
1513
+ };
1514
+ var handleClick = function () {
1515
+ if (setSelectedFile) {
1516
+ setSelectedFile(index !== null && index !== void 0 ? index : 1);
1517
+ }
1518
+ };
1519
+ return (jsxs$1(Fragment$1, { children: [jsxs$1(FileWrapper, __assign({ selected: (selectedFile !== null && selectedFile !== void 0 ? selectedFile : -1) === index, error: (limitTitle && title.length > limitTitle) || !!error, onClick: handleClick, disabled: !!disabled, className: "FileWrapper ".concat(className || "") }, otherProps, { children: [jsx(FileIconWrapper, __assign({ className: "FileIcon_wrapper" }, { children: icon || jsx(FileIcon, {}) })), jsxs$1(ContentWrapper, __assign({ className: "FileContent_wrapper" }, { children: [jsxs$1(InputWrapper, { children: [jsx(Link, __assign({ href: file.url, openInNewWindow: true }, { children: jsx(InputPlaceholder, { children: title }) })), jsx(StyledInput$1, { "data-testid": "file_name", ref: inputRef, disabled: !isEditing, value: title, onChange: handleChange, onBlur: handleBlur, maxLength: 100 })] }), subtitle ||
1520
+ (String(file.size) && (jsxs$1(Caption, __assign({ "data-testid": "file_size", size: "xs", color: "fiftyP" }, { children: [Number(file.size), " mb"] }))))] })), jsxs$1(ButtonWrapper, __assign({ className: "FileButtons_wrapper" }, { children: [!disabled && onChange && (jsx(Button, __assign({ isCircle: true, "data-testid": "edit_file_name_btn", size: "xs", variant: "transparentLight", onClick: toggleEdit }, { children: isEditing ? jsx(CheckIcon, {}) : jsx(EditIcon, { width: 18, height: 18 }) }))), onDelete && !disabled && (jsx(Button, __assign({ isCircle: true, "data-testid": "delete_file_btn", size: "xs", variant: "transparentLight", onClick: handleDelete }, { children: jsx(TrashIcon, { width: 18, height: 18 }) })))] }))] })), ((limitTitle && title.length > limitTitle) || error) && (jsx(Box, __assign({ mb: 1 }, { children: jsx(Caption, __assign({ size: "xs", colorGroup: "red", weight: 500 }, { children: error ||
1521
+ "File upload error. The number of characters in the file name should not exceed 100" })) })))] }));
1522
+ }
1523
+ FileItem.defaultProps = {
1524
+ limitTitle: 100,
1525
+ };
1526
+ var errorCSS = function (_a) {
1527
+ var error = _a.error;
1528
+ return error && css(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n border-color: ", ";\n "], ["\n border-color: ", ";\n "])), theme.palette.red.seventy);
1529
+ };
1530
+ var disabledCSS = function (_a) {
1531
+ var disabled = _a.disabled;
1532
+ return disabled && css(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n background: ", ";\n "], ["\n background: ", ";\n "])), theme.palette.background.light1);
1533
+ };
1534
+ var FileWrapper = styled.div(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n width: 100%;\n border-radius: 12px;\n padding: 10px 12px;\n border: 1px solid\n ", ";\n display: flex;\n margin-bottom: 8px;\n cursor: pointer;\n ", ";\n ", ";\n &:last-child {\n margin-bottom: 0;\n }\n"], ["\n width: 100%;\n border-radius: 12px;\n padding: 10px 12px;\n border: 1px solid\n ", ";\n display: flex;\n margin-bottom: 8px;\n cursor: pointer;\n ", ";\n ", ";\n &:last-child {\n margin-bottom: 0;\n }\n"])), function (_a) {
1535
+ var selected = _a.selected;
1536
+ return selected ? theme.palette.brand.main : theme.palette.grey.fifteenB;
1537
+ }, disabledCSS, errorCSS);
1538
+ var FileIconWrapper = styled.div(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n margin-right: 16px;\n min-height: 32px;\n width: 32px;\n border-radius: 12px;\n background: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n align-self: flex-start;\n"], ["\n margin-right: 16px;\n min-height: 32px;\n width: 32px;\n border-radius: 12px;\n background: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n align-self: flex-start;\n"])), theme.palette.brand.light);
1539
+ var ButtonWrapper = styled.div(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n margin-left: auto;\n padding-left: 8px;\n display: flex;\n align-items: center;\n align-self: flex-start;\n svg {\n path {\n fill: ", ";\n }\n }\n"], ["\n margin-left: auto;\n padding-left: 8px;\n display: flex;\n align-items: center;\n align-self: flex-start;\n svg {\n path {\n fill: ", ";\n }\n }\n"])), theme.palette.grey.thirty);
1540
+ var ContentWrapper = styled.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n width: calc(100% - 120px);\n min-height: 34px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n & > p {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n"], ["\n width: calc(100% - 120px);\n min-height: 34px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n & > p {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n"])));
1541
+ var StyledInput$1 = styled.textarea(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n border: none;\n font-size: 14px;\n position: absolute;\n top: 0;\n left: 0;\n font-weight: 500;\n background: transparent;\n padding: 0;\n color: ", ";\n caret-color: ", ";\n height: -webkit-fill-available;\n overflow: hidden;\n resize: none;\n width: 100%;\n &:focus-visible {\n outline: none;\n }\n &:disabled {\n pointer-events: none;\n }\n"], ["\n border: none;\n font-size: 14px;\n position: absolute;\n top: 0;\n left: 0;\n font-weight: 500;\n background: transparent;\n padding: 0;\n color: ", ";\n caret-color: ", ";\n height: -webkit-fill-available;\n overflow: hidden;\n resize: none;\n width: 100%;\n &:focus-visible {\n outline: none;\n }\n &:disabled {\n pointer-events: none;\n }\n"])), theme.palette.grey.seventy, theme.palette.brand.main);
1542
+ var InputPlaceholder = styled.span(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n font-size: 14px;\n font-weight: 500;\n word-break: break-word;\n max-width: 100%;\n color: transparent;\n min-height: 17px;\n display: inline-block;\n white-space: nowrap;\n"], ["\n font-size: 14px;\n font-weight: 500;\n word-break: break-word;\n max-width: 100%;\n color: transparent;\n min-height: 17px;\n display: inline-block;\n white-space: nowrap;\n"])));
1543
+ var InputWrapper = styled.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n position: relative;\n width: fit-content;\n max-width: 100%;\n height: auto;\n"], ["\n position: relative;\n width: fit-content;\n max-width: 100%;\n height: auto;\n"])));
1544
+ var templateObject_1$2, templateObject_2$2, templateObject_3$1, templateObject_4$1, templateObject_5$1, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
1545
+
1546
+ var limitTitle = 100;
1547
+ var InputFile = forwardRef(function (props, ref) {
1548
+ var _a;
1549
+ var form = props.form, name = props.name, label = props.label, disabled = props.disabled, withEdit = props.withEdit, fileName = props.fileName, otherProps = __rest(props, ["form", "name", "label", "disabled", "withEdit", "fileName"]);
1550
+ var _b = useState(false), mounted = _b[0], setMounted = _b[1];
1551
+ var _c = useState(), file = _c[0], setFile = _c[1];
1552
+ var _d = useState(""), defaultFileURL = _d[0], setDefaultFileURL = _d[1];
1553
+ var inputRef = useRef(null);
1554
+ var _e = useController({
1555
+ control: form.control,
1556
+ name: name,
1557
+ }), field = _e.field, fieldState = _e.fieldState;
1558
+ var formattedFile = file && "url" in file
1559
+ ? file
1560
+ : {
1561
+ file: file,
1562
+ url: file ? URL.createObjectURL(file) : defaultFileURL,
1563
+ size: file
1564
+ ? Math.round((file.size / (1024 * 1024)) * 100) / 100
1565
+ : null,
1566
+ name: fileName || (file === null || file === void 0 ? void 0 : file.name),
1567
+ };
1568
+ var error = (_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message;
1569
+ useEffect(function () {
1570
+ if (typeof field.value === "string") {
1571
+ setDefaultFileURL(field.value);
1572
+ }
1573
+ if (typeof field.value === "object") {
1574
+ setFile(field.value);
1575
+ }
1576
+ setMounted(true);
1577
+ }, []);
1578
+ useEffect(function () {
1579
+ var _a;
1580
+ var toBigTitle = Number((fileName === null || fileName === void 0 ? void 0 : fileName.length) || ((_a = file === null || file === void 0 ? void 0 : file.name) === null || _a === void 0 ? void 0 : _a.length)) > limitTitle;
1581
+ if (mounted && !defaultFileURL) {
1582
+ field.onChange({ target: { value: file, name: name }, type: "change" });
1583
+ }
1584
+ if (toBigTitle) {
1585
+ form.setError(name, {
1586
+ type: "custom",
1587
+ message: "The file name must be less than 100 characters",
1588
+ });
1589
+ }
1590
+ else {
1591
+ form.clearErrors(name);
1592
+ }
1593
+ }, [file]);
1594
+ var handleChange = function (e) {
1595
+ if (e.target.files && e.target.files[0]) {
1596
+ setFile(e.target.files[0]);
1597
+ }
1598
+ else {
1599
+ setFile(undefined);
1600
+ }
1601
+ };
1602
+ var handleClick = function () {
1603
+ if (inputRef.current) {
1604
+ inputRef.current.click();
1605
+ }
1606
+ };
1607
+ var handleDelete = function () {
1608
+ if (file && inputRef.current) {
1609
+ inputRef.current.value = "";
1610
+ }
1611
+ setFile(undefined);
1612
+ setDefaultFileURL("");
1613
+ field.onChange({ target: { value: null, name: name }, type: "change" });
1614
+ };
1615
+ var changeName = function (newName) {
1616
+ var currentFile = form.getValues(name);
1617
+ var extension = currentFile.name.split(".").pop();
1618
+ var newFileName = "".concat(newName, ".").concat(extension);
1619
+ var newFile;
1620
+ if ("filesStore" in currentFile) {
1621
+ currentFile.updateName(newName);
1622
+ newFile = currentFile;
1623
+ }
1624
+ else {
1625
+ newFile = new File([currentFile], newFileName, {
1626
+ type: currentFile.type,
1627
+ });
1628
+ }
1629
+ setFile(newFile);
1630
+ };
1631
+ var forwardedRef = function (elem) {
1632
+ if (ref) {
1633
+ // @ts-ignore
1634
+ // eslint-disable-next-line no-param-reassign
1635
+ ref.current = elem;
1636
+ }
1637
+ inputRef.current = elem;
1638
+ };
1639
+ return (jsxs$1(StyledWrapper$1, { children: [jsx(StyledInput, __assign({ type: "file", onInput: handleChange }, otherProps, { ref: forwardedRef })), file || defaultFileURL ? (jsx(FileItem, { file: formattedFile, onDelete: handleDelete, onChange: withEdit && changeName, error: error, disabled: disabled })) : (jsxs$1(Fragment$1, { children: [jsxs$1(StyledLabel, __assign({ error: !!error, disabled: disabled, container: true, justify: "space-between", alignItems: "center" }, { children: [jsx(StyledContent, __assign({ item: true }, { children: jsx(Caption, __assign({ size: "s", color: "fiftyP" }, { children: label })) })), jsx(Grid, __assign({ item: true }, { children: jsx(StyledButton, __assign({ disabled: disabled, size: "s", onClick: handleClick }, { children: "Upload" })) }))] })), error && jsx(InputMessage, { variant: "error", msg: error })] }))] }));
1640
+ });
1641
+ InputFile.defaultProps = {
1642
+ withEdit: true,
1643
+ };
1644
+ var StyledWrapper$1 = styled.div(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
1645
+ var StyledLabel = styled(Grid)(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n border-radius: ", ";\n border: 1px solid\n ", ";\n background: ", ";\n height: 56px;\n padding: 0 8px 0 15px;\n"], ["\n border-radius: ", ";\n border: 1px solid\n ", ";\n background: ", ";\n height: 56px;\n padding: 0 8px 0 15px;\n"])), function (_a) {
1646
+ var error = _a.error;
1647
+ return (error ? "8px 8px 0 0" : "8px");
1648
+ }, function (_a) {
1649
+ var error = _a.error;
1650
+ return error ? theme.palette.red.fiftyP : theme.palette.grey.fifteenB;
1651
+ }, function (_a) {
1652
+ var disabled = _a.disabled;
1653
+ return disabled ? theme.palette.background.light1 : theme.palette.grey.zero;
1654
+ });
1655
+ var StyledInput = styled.input(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
1656
+ var StyledContent = styled(Grid)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n max-width: calc(100% - 32px);\n"], ["\n max-width: calc(100% - 32px);\n"])));
1657
+ var StyledButton = styled(Button)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n border-radius: 12px;\n"], ["\n border-radius: 12px;\n"])));
1658
+ var templateObject_1$1, templateObject_2$1, templateObject_3, templateObject_4, templateObject_5;
1659
+
1660
+ var CheckboxWithController = forwardRef(function (props, ref) {
1661
+ var form = props.form, name = props.name, label = props.label, labelProps = props.labelProps, inputProps = __rest(props, ["form", "name", "label", "labelProps"]);
1662
+ var handleChange = function (e, field) {
1663
+ field.onChange(e);
1664
+ if (inputProps.onChange) {
1665
+ inputProps.onChange(e);
1666
+ }
1667
+ };
1668
+ return (jsx(Controller, { control: form.control, name: String(name), render: function (_a) {
1669
+ var field = _a.field;
1670
+ return (jsx(Checkbox, __assign({}, inputProps, field, { checked: field.value || "", onChange: function (e) {
1671
+ return handleChange(e, field);
1672
+ }, label: jsx(Caption, __assign({}, labelProps, { children: label })) })));
1673
+ } }));
1674
+ });
1675
+
1676
+ function CheckboxGroupWithTitle(_a) {
1677
+ var title = _a.title, options = _a.options, form = _a.form; _a.name; var otherProps = __rest(_a, ["title", "options", "form", "name"]);
1678
+ return (jsxs$1(StyledWrapper, __assign({ container: true, alignItems: "center", justify: "space-between" }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(Caption, __assign({ size: "s", weight: 500, color: "fiftyP" }, { children: title })) })), jsx(Grid, __assign({ item: true }, { children: jsx(Grid, __assign({ container: true }, { children: options.map(function (option) { return (jsx(StyledCheckbox, __assign({ name: option.name, label: jsx(Caption, __assign({ size: "s", color: "fiftyP", weight: 500 }, { children: option.label })), form: form, testId: option.name }, otherProps), option.name)); }) })) }))] })));
1679
+ }
1680
+ var StyledCheckbox = styled(CheckboxWithController)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n &:not(:last-child) {\n margin-right: 22px;\n }\n"], ["\n &:not(:last-child) {\n margin-right: 22px;\n }\n"])));
1681
+ var StyledWrapper = styled(Grid)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 3px 16px;\n border: 1px solid ", ";\n border-radius: 66px;\n height: 40px;\n"], ["\n padding: 3px 16px;\n border: 1px solid ", ";\n border-radius: 66px;\n height: 40px;\n"])), theme.palette.grey.fifteenB);
1682
+ var templateObject_1, templateObject_2;
1683
+
1684
+ var settings = {
1685
+ mapKey: "",
1686
+ };
1687
+ var observers = [];
1688
+ var getSettings = function () { return (__assign({}, settings)); };
1689
+ var setSettings = function (newSettings) {
1690
+ settings = __assign(__assign({}, settings), newSettings);
1691
+ observers.forEach(function (observer) { return observer(settings); });
1692
+ };
1693
+ var subscribeToSettings = function (observer) {
1694
+ observers.push(observer);
1695
+ };
1696
+ var unsubscribeFromSettings = function (observer) {
1697
+ var index = observers.indexOf(observer);
1698
+ if (index !== -1)
1699
+ observers.splice(index, 1);
1700
+ };
1701
+
1702
+ var render = function (status) {
1703
+ if (status === "LOADING")
1704
+ return jsx(Loading, { height: "100%" });
1705
+ if (status === "FAILURE")
1706
+ return jsx("h3", { children: status });
1707
+ return jsx("div", {});
1708
+ };
1709
+ function MapWrapper(_a) {
1710
+ var children = _a.children;
1711
+ var _b = useState(false), isUnMounted = _b[0], setIsUnMounted = _b[1];
1712
+ var _c = useState("LOADING"), status = _c[0], setStatus = _c[1];
1713
+ var _d = useState(getSettings().mapKey), mapKey = _d[0], setMapKey = _d[1];
1714
+ useEffect(function () {
1715
+ var handleChange = function (settings) {
1716
+ return setMapKey(settings.mapKey);
1717
+ };
1718
+ subscribeToSettings(handleChange);
1719
+ return function () {
1720
+ unsubscribeFromSettings(handleChange);
1721
+ };
1722
+ }, []);
1723
+ useEffect(function () {
1724
+ if (!isUnMounted && mapKey) {
1725
+ var loader = new Loader({
1726
+ apiKey: mapKey,
1727
+ libraries: ["places"],
1728
+ });
1729
+ var setStatusAndExecuteCallback_1 = function (newStatus) {
1730
+ setStatus(newStatus);
1731
+ };
1732
+ setStatusAndExecuteCallback_1("LOADING");
1733
+ loader.load().then(function () { return setStatusAndExecuteCallback_1("SUCCESS"); }, function () { return setStatusAndExecuteCallback_1("FAILURE"); });
1734
+ }
1735
+ return function () { return setIsUnMounted(true); };
1736
+ }, [mapKey]);
1737
+ if (!mapKey) {
1738
+ return jsx("h2", { children: "Add google key" });
1739
+ }
1740
+ if (status === "SUCCESS" && children)
1741
+ return jsx(Fragment$1, { children: children });
1742
+ render(status);
1743
+ return jsx(Fragment$1, {});
1744
+ }
1745
+
1746
+ var useAddressAutocomplete = function (form, name, handlePlaceSelectProp) {
1747
+ var _a = useState(null), place = _a[0], setPlace = _a[1];
1748
+ var inputRef = useRef(null);
1749
+ function handlePlaceSelect(newPlace) {
1750
+ var _a, _b, _c, _d, _e, _f, _g;
1751
+ return __awaiter(this, void 0, void 0, function () {
1752
+ var toCoords, lat, lng, street, houseNumber, zipCode, formattedAddress;
1753
+ return __generator(this, function (_h) {
1754
+ toCoords = ((_a = newPlace.geometry) === null || _a === void 0 ? void 0 : _a.location)
1755
+ ? {
1756
+ lat: newPlace.geometry.location.lat(),
1757
+ lng: newPlace.geometry.location.lng(),
1758
+ }
1759
+ : null;
1760
+ lat = toCoords === null || toCoords === void 0 ? void 0 : toCoords.lat;
1761
+ lng = toCoords === null || toCoords === void 0 ? void 0 : toCoords.lng;
1762
+ if (handlePlaceSelectProp) {
1763
+ handlePlaceSelectProp(lat && lng ? { lat: lat, lng: lng } : null, newPlace);
1764
+ }
1765
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lat"), lat, { shouldValidate: true });
1766
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lon"), lng, { shouldValidate: true });
1767
+ form.setValue("".concat(name, ".addressAutoComplete"), newPlace, {
1768
+ shouldValidate: true,
1769
+ });
1770
+ street = (_c = (_b = newPlace.address_components) === null || _b === void 0 ? void 0 : _b.find(function (elem) {
1771
+ return elem.types.includes("route");
1772
+ })) === null || _c === void 0 ? void 0 : _c.short_name;
1773
+ houseNumber = (_e = (_d = newPlace.address_components) === null || _d === void 0 ? void 0 : _d.find(function (elem) {
1774
+ return elem.types.includes("street_number");
1775
+ })) === null || _e === void 0 ? void 0 : _e.short_name;
1776
+ zipCode = (_g = (_f = newPlace.address_components) === null || _f === void 0 ? void 0 : _f.find(function (elem) {
1777
+ return elem.types.includes("postal_code");
1778
+ })) === null || _g === void 0 ? void 0 : _g.short_name;
1779
+ formattedAddress = newPlace.formatted_address;
1780
+ if (street && houseNumber) {
1781
+ formattedAddress = "".concat(street, ", ").concat(houseNumber);
1782
+ }
1783
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".address"), formattedAddress, {
1784
+ shouldValidate: true,
1785
+ });
1786
+ form.setValue("zipCode", zipCode);
1787
+ setPlace(newPlace);
1788
+ return [2 /*return*/];
1789
+ });
1790
+ });
1791
+ }
1792
+ var addAutocomplete = function () {
1793
+ if (inputRef.current) {
1794
+ var autoComplete_1 = new window.google.maps.places.Autocomplete(inputRef.current);
1795
+ autoComplete_1.addListener("place_changed", function () {
1796
+ var newPlace = autoComplete_1.getPlace();
1797
+ handlePlaceSelect(newPlace);
1798
+ });
1799
+ }
1800
+ };
1801
+ var cleanLocation = function () {
1802
+ setPlace(null);
1803
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lat"), null, { shouldValidate: true });
1804
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lon"), null, { shouldValidate: true });
1805
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".addressAutoComplete"), null, {
1806
+ shouldValidate: true,
1807
+ });
1808
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".address"), "", { shouldValidate: true });
1809
+ };
1810
+ var checkMapLoaded = function () {
1811
+ if (!window.google || !inputRef.current) {
1812
+ setTimeout(checkMapLoaded, 1);
1813
+ }
1814
+ else
1815
+ addAutocomplete();
1816
+ };
1817
+ var setDefaultPlace = function () {
1818
+ var address = form.getValues("".concat(name, ".address"));
1819
+ var lat = form.getValues("".concat(name, ".location.lat"));
1820
+ var lng = form.getValues("".concat(name, ".location.lon"));
1821
+ var defaultPlace = {
1822
+ formatted_address: address,
1823
+ geometry: {
1824
+ location: { lat: lat, lng: lng },
1825
+ },
1826
+ };
1827
+ if (address && lat && lng)
1828
+ setPlace(defaultPlace);
1829
+ };
1830
+ useEffect(function () {
1831
+ checkMapLoaded();
1832
+ setDefaultPlace();
1833
+ }, []);
1834
+ return { inputRef: inputRef, handlePlaceSelect: handlePlaceSelect, place: place, cleanLocation: cleanLocation };
1835
+ };
1836
+
1837
+ function InputWithAddressAutocomplete(_a) {
1838
+ var form = _a.form, name = _a.name, handlePlaceSelect = _a.handlePlaceSelect, inputProps = __rest(_a, ["form", "name", "handlePlaceSelect"]);
1839
+ var inputRef = useAddressAutocomplete(form, name, handlePlaceSelect).inputRef;
1840
+ return (jsx(MapWrapper, { children: jsx(InputWithController, __assign({ name: "".concat(name, ".address"), form: form, ref: inputRef, placeholder: "" }, inputProps)) }));
1841
+ }
1842
+ InputWithAddressAutocomplete.defaultProps = {
1843
+ label: "Address",
1844
+ };
1845
+
1846
+ var DependentInput = function (props) {
1847
+ var dependentInputName = props.dependentInputName, form = props.form, disabled = props.disabled, Input = props.Input, other = __rest(props, ["dependentInputName", "form", "disabled", "Input"]);
1848
+ var dependentInputValue = useWatch({
1849
+ control: form.control,
1850
+ name: dependentInputName,
1851
+ });
1852
+ var inputProps = __assign({ form: form, disabled: disabled || !dependentInputValue }, other);
1853
+ return Input ? (jsx(Input, __assign({}, inputProps))) : (jsx(InputWithController, __assign({}, inputProps)));
1854
+ };
1855
+
1856
+ var getVisibility = function (_a) {
1857
+ var landlord = _a.landlord, tenant = _a.tenant;
1858
+ if (landlord && tenant)
1859
+ return "everybody";
1860
+ if (landlord)
1861
+ return "landlord";
1862
+ if (tenant)
1863
+ return "tenant";
1864
+ return "nobody";
1865
+ };
1866
+ var getVisibilitySettings = function (visibility) {
1867
+ switch (visibility) {
1868
+ case "everybody":
1869
+ return { tenant: true, landlord: true };
1870
+ case "landlord":
1871
+ return { tenant: false, landlord: true };
1872
+ case "tenant":
1873
+ return { tenant: true, landlord: false };
1874
+ default:
1875
+ return { tenant: false, landlord: false };
1876
+ }
1877
+ };
1878
+
1879
+ export { AutocompleteOption, Avatar, ButtonSelect, ButtonTab, ButtonsPanel, CalendarHeaderWithSelect, CalendarStandardContainer, CalendarStandardHeader, CheckboxGroupWithTitle, CheckboxWithController, DependentInput, DesktopInputWithMonthPicker, DesktopMenuPanel, InputDropdown, InputFile, InputForDatepicker, InputMultiSelect, InputPassword, InputPhoneWithForm, InputSelect, InputSelectDropdown, InputSelectWithController, InputTextAreaMobile, InputWithAddressAutocomplete, InputWithAutocomplete, InputWithController, InputWithDatePicker, InputWithMask, InputWithMonthPicker, Loading, MapWrapper, MenuItem, MenuPanel, MobileInputWithMonthPicker, MobileMenuPanel, MonthPickerContainer, MonthPickerHeader, PassportStrengthBar, RadioButtons, RadioButtonsWithController, RadioGroupWithLabel, SelectMonth, SelectYear, Switch, Table, TableCell, TableHeadCell, TableRow, Tooltip, UndefinedAvatar, accountRegExp, bicRegExp, carNumberRegExp, corrAccountRegExp, dateRegExp, emailRegExp, getFormError, getFormValue, getVisibility, getVisibilitySettings, innRegExp, isValidWithMaskExp, mediumPasswordRegExp, monthYearRegExp, phoneRegExp, setSettings, simplePasswordRegExp, strongPasswordRegExp, swiftRegExp, useAddressAutocomplete };
1880
+ //# sourceMappingURL=index.js.map