@redneckz/wildless-cms-uni-blocks 0.14.989 → 0.14.990

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 (633) hide show
  1. package/bundle/api/LeadServiceAPI.d.ts +8 -2
  2. package/bundle/api/getSubmitBody.d.ts +201 -97
  3. package/bundle/api/sendFile.d.ts +16 -0
  4. package/bundle/blocks.schema.json +1 -1
  5. package/bundle/bundle.umd.js +562 -50
  6. package/bundle/bundle.umd.min.js +1 -1
  7. package/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +8 -2
  8. package/bundle/components/ApplicationForm/constants.d.ts +7 -0
  9. package/bundle/components/ApplicationForm/handlers.d.ts +3 -2
  10. package/bundle/hooks/useDragAndDrop.d.ts +16 -0
  11. package/bundle/model/FormTypeFieldDef.d.ts +1 -1
  12. package/bundle/model/InputTypes.d.ts +1 -1
  13. package/bundle/ui-kit/FormField/CustomFieldProps.d.ts +1 -0
  14. package/bundle/ui-kit/FormField/Fields/AddressBranchField.d.ts +1 -2
  15. package/bundle/ui-kit/FormField/Fields/AverageGradeField.d.ts +2 -0
  16. package/bundle/ui-kit/FormField/Fields/FileIdField.d.ts +2 -0
  17. package/bundle/ui-kit/FormField/Fields/FileUpload.d.ts +2 -0
  18. package/bundle/ui-kit/FormField/Fields/InternshipEndDateField.d.ts +2 -0
  19. package/bundle/ui-kit/FormField/Fields/InternshipStartDateField.d.ts +2 -0
  20. package/bundle/ui-kit/FormField/Fields/SelectField.d.ts +6 -0
  21. package/bundle/ui-kit/FormField/Fields/TextField.d.ts +2 -0
  22. package/bundle/ui-kit/FormField/InputsMap.d.ts +62 -0
  23. package/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -1
  24. package/bundle/ui-kit/FormField/constants.d.ts +3 -0
  25. package/bundle/ui-kit/FormField/validators.d.ts +1 -0
  26. package/bundle/ui-kit/Input/InputFile.d.ts +2 -0
  27. package/bundle/ui-kit/Input/InputFileControl.d.ts +2 -0
  28. package/bundle/ui-kit/Input/InputProps.d.ts +6 -1
  29. package/bundle/ui-kit/Input/checks/checkFIleExtension.d.ts +1 -0
  30. package/bundle/ui-kit/Input/checks/checkFileMimeType.d.ts +1 -0
  31. package/bundle/ui-kit/Input/checks/checkFileSignature.d.ts +3 -0
  32. package/bundle/ui-kit/Input/checks/checkFileSize.d.ts +1 -0
  33. package/bundle/ui-kit/Input/checks/getFileSignature.d.ts +1 -0
  34. package/bundle/ui-kit/Input/constants.d.ts +6 -0
  35. package/bundle/ui-kit/Input/renderFileInput.d.ts +12 -0
  36. package/bundle/ui-kit/Input/renderInfoText.d.ts +1 -0
  37. package/bundle/ui-kit/Input/styles.d.ts +2 -0
  38. package/bundle/ui-kit/Input/useVerifyFile.d.ts +17 -0
  39. package/bundle/ui-kit/PreventableEvent.d.ts +4 -0
  40. package/bundle/ui-kit/ProgressBar/ProgressBar.d.ts +1 -0
  41. package/bundle/utils/animateStepWithMinDuration.d.ts +8 -0
  42. package/bundle/utils/isDateValid.d.ts +4 -0
  43. package/dist/api/LeadServiceAPI.d.ts +8 -2
  44. package/dist/api/LeadServiceAPI.js +18 -8
  45. package/dist/api/LeadServiceAPI.js.map +1 -1
  46. package/dist/api/getSubmitBody.d.ts +201 -97
  47. package/dist/api/getSubmitBody.js +13 -6
  48. package/dist/api/getSubmitBody.js.map +1 -1
  49. package/dist/api/sendFile.d.ts +16 -0
  50. package/dist/api/sendFile.js +78 -0
  51. package/dist/api/sendFile.js.map +1 -0
  52. package/dist/components/ApplicationForm/ApplicationForm.js +5 -6
  53. package/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  54. package/dist/components/ApplicationForm/ApplicationFormContent.d.ts +8 -2
  55. package/dist/components/ApplicationForm/constants.d.ts +7 -0
  56. package/dist/components/ApplicationForm/constants.js +29 -0
  57. package/dist/components/ApplicationForm/constants.js.map +1 -0
  58. package/dist/components/ApplicationForm/handlers.d.ts +3 -2
  59. package/dist/components/ApplicationForm/handlers.js +3 -3
  60. package/dist/components/ApplicationForm/handlers.js.map +1 -1
  61. package/dist/hooks/useDragAndDrop.d.ts +16 -0
  62. package/dist/hooks/useDragAndDrop.js +29 -0
  63. package/dist/hooks/useDragAndDrop.js.map +1 -0
  64. package/dist/model/FormTypeFieldDef.d.ts +1 -1
  65. package/dist/model/InputTypes.d.ts +1 -1
  66. package/dist/ui-kit/FormField/CustomFieldProps.d.ts +1 -0
  67. package/dist/ui-kit/FormField/Fields/AddressBranchField.d.ts +1 -2
  68. package/dist/ui-kit/FormField/Fields/AverageGradeField.d.ts +2 -0
  69. package/dist/ui-kit/FormField/Fields/AverageGradeField.js +9 -0
  70. package/dist/ui-kit/FormField/Fields/AverageGradeField.js.map +1 -0
  71. package/dist/ui-kit/FormField/Fields/BirthdayField.js +4 -1
  72. package/dist/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  73. package/dist/ui-kit/FormField/Fields/CommentField.js +1 -1
  74. package/dist/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  75. package/dist/ui-kit/FormField/Fields/FileIdField.d.ts +2 -0
  76. package/dist/ui-kit/FormField/Fields/FileIdField.js +7 -0
  77. package/dist/ui-kit/FormField/Fields/FileIdField.js.map +1 -0
  78. package/dist/ui-kit/FormField/Fields/FileUpload.d.ts +2 -0
  79. package/dist/ui-kit/FormField/Fields/FileUpload.js +14 -0
  80. package/dist/ui-kit/FormField/Fields/FileUpload.js.map +1 -0
  81. package/dist/ui-kit/FormField/Fields/InternshipEndDateField.d.ts +2 -0
  82. package/dist/ui-kit/FormField/Fields/InternshipEndDateField.js +23 -0
  83. package/dist/ui-kit/FormField/Fields/InternshipEndDateField.js.map +1 -0
  84. package/dist/ui-kit/FormField/Fields/InternshipStartDateField.d.ts +2 -0
  85. package/dist/ui-kit/FormField/Fields/InternshipStartDateField.js +23 -0
  86. package/dist/ui-kit/FormField/Fields/InternshipStartDateField.js.map +1 -0
  87. package/dist/ui-kit/FormField/Fields/SelectField.d.ts +6 -0
  88. package/dist/ui-kit/FormField/Fields/SelectField.js +7 -0
  89. package/dist/ui-kit/FormField/Fields/SelectField.js.map +1 -0
  90. package/dist/ui-kit/FormField/Fields/TextField.d.ts +2 -0
  91. package/dist/ui-kit/FormField/Fields/TextField.js +7 -0
  92. package/dist/ui-kit/FormField/Fields/TextField.js.map +1 -0
  93. package/dist/ui-kit/FormField/InputsMap.d.ts +62 -0
  94. package/dist/ui-kit/FormField/InputsMap.js +119 -0
  95. package/dist/ui-kit/FormField/InputsMap.js.map +1 -0
  96. package/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -1
  97. package/dist/ui-kit/FormField/constants.d.ts +3 -0
  98. package/dist/ui-kit/FormField/constants.js +27 -1
  99. package/dist/ui-kit/FormField/constants.js.map +1 -1
  100. package/dist/ui-kit/FormField/getField.js +2 -94
  101. package/dist/ui-kit/FormField/getField.js.map +1 -1
  102. package/dist/ui-kit/FormField/getObjectValidator.js +15 -1
  103. package/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
  104. package/dist/ui-kit/FormField/validators.d.ts +1 -0
  105. package/dist/ui-kit/FormField/validators.js +4 -1
  106. package/dist/ui-kit/FormField/validators.js.map +1 -1
  107. package/dist/ui-kit/Input/Input.js +2 -2
  108. package/dist/ui-kit/Input/Input.js.map +1 -1
  109. package/dist/ui-kit/Input/InputFile.d.ts +2 -0
  110. package/dist/ui-kit/Input/InputFile.js +75 -0
  111. package/dist/ui-kit/Input/InputFile.js.map +1 -0
  112. package/dist/ui-kit/Input/InputFileControl.d.ts +2 -0
  113. package/dist/ui-kit/Input/InputFileControl.js +10 -0
  114. package/dist/ui-kit/Input/InputFileControl.js.map +1 -0
  115. package/dist/ui-kit/Input/InputProps.d.ts +6 -1
  116. package/dist/ui-kit/Input/checks/checkFIleExtension.d.ts +1 -0
  117. package/dist/ui-kit/Input/checks/checkFIleExtension.js +12 -0
  118. package/dist/ui-kit/Input/checks/checkFIleExtension.js.map +1 -0
  119. package/dist/ui-kit/Input/checks/checkFileMimeType.d.ts +1 -0
  120. package/dist/ui-kit/Input/checks/checkFileMimeType.js +20 -0
  121. package/dist/ui-kit/Input/checks/checkFileMimeType.js.map +1 -0
  122. package/dist/ui-kit/Input/checks/checkFileSignature.d.ts +3 -0
  123. package/dist/ui-kit/Input/checks/checkFileSignature.js +25 -0
  124. package/dist/ui-kit/Input/checks/checkFileSignature.js.map +1 -0
  125. package/dist/ui-kit/Input/checks/checkFileSize.d.ts +1 -0
  126. package/dist/ui-kit/Input/checks/checkFileSize.js +13 -0
  127. package/dist/ui-kit/Input/checks/checkFileSize.js.map +1 -0
  128. package/dist/ui-kit/Input/checks/getFileSignature.d.ts +1 -0
  129. package/dist/ui-kit/Input/checks/getFileSignature.js +19 -0
  130. package/dist/ui-kit/Input/checks/getFileSignature.js.map +1 -0
  131. package/dist/ui-kit/Input/constants.d.ts +6 -0
  132. package/dist/ui-kit/Input/constants.js +9 -0
  133. package/dist/ui-kit/Input/constants.js.map +1 -0
  134. package/dist/ui-kit/Input/renderFileInput.d.ts +12 -0
  135. package/dist/ui-kit/Input/renderFileInput.js +33 -0
  136. package/dist/ui-kit/Input/renderFileInput.js.map +1 -0
  137. package/dist/ui-kit/Input/renderInfoText.d.ts +1 -0
  138. package/dist/ui-kit/Input/renderInfoText.js +14 -0
  139. package/dist/ui-kit/Input/renderInfoText.js.map +1 -0
  140. package/dist/ui-kit/Input/styles.d.ts +2 -0
  141. package/dist/ui-kit/Input/styles.js +5 -0
  142. package/dist/ui-kit/Input/styles.js.map +1 -0
  143. package/dist/ui-kit/Input/useVerifyFile.d.ts +17 -0
  144. package/dist/ui-kit/Input/useVerifyFile.js +64 -0
  145. package/dist/ui-kit/Input/useVerifyFile.js.map +1 -0
  146. package/dist/ui-kit/PreventableEvent.d.ts +4 -0
  147. package/dist/ui-kit/ProgressBar/ProgressBar.d.ts +1 -0
  148. package/dist/ui-kit/ProgressBar/ProgressBar.js +1 -1
  149. package/dist/ui-kit/ProgressBar/ProgressBar.js.map +1 -1
  150. package/dist/utils/animateStepWithMinDuration.d.ts +8 -0
  151. package/dist/utils/animateStepWithMinDuration.js +26 -0
  152. package/dist/utils/animateStepWithMinDuration.js.map +1 -0
  153. package/dist/utils/isDateValid.d.ts +4 -0
  154. package/dist/utils/isDateValid.js +24 -0
  155. package/dist/utils/isDateValid.js.map +1 -0
  156. package/lib/api/LeadServiceAPI.d.ts +8 -2
  157. package/lib/api/LeadServiceAPI.js +18 -8
  158. package/lib/api/LeadServiceAPI.js.map +1 -1
  159. package/lib/api/getSubmitBody.d.ts +201 -97
  160. package/lib/api/getSubmitBody.js +13 -6
  161. package/lib/api/getSubmitBody.js.map +1 -1
  162. package/lib/api/sendFile.d.ts +16 -0
  163. package/lib/api/sendFile.js +75 -0
  164. package/lib/api/sendFile.js.map +1 -0
  165. package/lib/common.css +1 -1
  166. package/lib/components/ApplicationForm/ApplicationForm.fixture.d.ts +2 -0
  167. package/lib/components/ApplicationForm/ApplicationForm.js +5 -6
  168. package/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  169. package/lib/components/ApplicationForm/ApplicationFormContent.d.ts +8 -2
  170. package/lib/components/ApplicationForm/constants.d.ts +7 -0
  171. package/lib/components/ApplicationForm/constants.js +27 -0
  172. package/lib/components/ApplicationForm/constants.js.map +1 -0
  173. package/lib/components/ApplicationForm/handlers.d.ts +3 -2
  174. package/lib/components/ApplicationForm/handlers.js +3 -3
  175. package/lib/components/ApplicationForm/handlers.js.map +1 -1
  176. package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +1 -1
  177. package/lib/hooks/useDragAndDrop.d.ts +16 -0
  178. package/lib/hooks/useDragAndDrop.js +26 -0
  179. package/lib/hooks/useDragAndDrop.js.map +1 -0
  180. package/lib/model/FormTypeFieldDef.d.ts +1 -1
  181. package/lib/model/InputTypes.d.ts +1 -1
  182. package/lib/ui-kit/FormField/CustomFieldProps.d.ts +1 -0
  183. package/lib/ui-kit/FormField/Fields/AddressBranchField.d.ts +1 -2
  184. package/lib/ui-kit/FormField/Fields/AverageGradeField.d.ts +2 -0
  185. package/lib/ui-kit/FormField/Fields/AverageGradeField.js +7 -0
  186. package/lib/ui-kit/FormField/Fields/AverageGradeField.js.map +1 -0
  187. package/lib/ui-kit/FormField/Fields/BirthdayField.js +4 -1
  188. package/lib/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  189. package/lib/ui-kit/FormField/Fields/CommentField.js +1 -1
  190. package/lib/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  191. package/lib/ui-kit/FormField/Fields/FileIdField.d.ts +2 -0
  192. package/lib/ui-kit/FormField/Fields/FileIdField.js +5 -0
  193. package/lib/ui-kit/FormField/Fields/FileIdField.js.map +1 -0
  194. package/lib/ui-kit/FormField/Fields/FileUpload.d.ts +2 -0
  195. package/lib/ui-kit/FormField/Fields/FileUpload.js +12 -0
  196. package/lib/ui-kit/FormField/Fields/FileUpload.js.map +1 -0
  197. package/lib/ui-kit/FormField/Fields/InternshipEndDateField.d.ts +2 -0
  198. package/lib/ui-kit/FormField/Fields/InternshipEndDateField.js +21 -0
  199. package/lib/ui-kit/FormField/Fields/InternshipEndDateField.js.map +1 -0
  200. package/lib/ui-kit/FormField/Fields/InternshipStartDateField.d.ts +2 -0
  201. package/lib/ui-kit/FormField/Fields/InternshipStartDateField.js +21 -0
  202. package/lib/ui-kit/FormField/Fields/InternshipStartDateField.js.map +1 -0
  203. package/lib/ui-kit/FormField/Fields/SelectField.d.ts +6 -0
  204. package/lib/ui-kit/FormField/Fields/SelectField.js +5 -0
  205. package/lib/ui-kit/FormField/Fields/SelectField.js.map +1 -0
  206. package/lib/ui-kit/FormField/Fields/TextField.d.ts +2 -0
  207. package/lib/ui-kit/FormField/Fields/TextField.js +5 -0
  208. package/lib/ui-kit/FormField/Fields/TextField.js.map +1 -0
  209. package/lib/ui-kit/FormField/InputsMap.d.ts +62 -0
  210. package/lib/ui-kit/FormField/InputsMap.js +117 -0
  211. package/lib/ui-kit/FormField/InputsMap.js.map +1 -0
  212. package/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -1
  213. package/lib/ui-kit/FormField/constants.d.ts +3 -0
  214. package/lib/ui-kit/FormField/constants.js +26 -0
  215. package/lib/ui-kit/FormField/constants.js.map +1 -1
  216. package/lib/ui-kit/FormField/getField.js +1 -93
  217. package/lib/ui-kit/FormField/getField.js.map +1 -1
  218. package/lib/ui-kit/FormField/getObjectValidator.js +16 -2
  219. package/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
  220. package/lib/ui-kit/FormField/validators.d.ts +1 -0
  221. package/lib/ui-kit/FormField/validators.js +2 -0
  222. package/lib/ui-kit/FormField/validators.js.map +1 -1
  223. package/lib/ui-kit/Input/Input.js +1 -1
  224. package/lib/ui-kit/Input/Input.js.map +1 -1
  225. package/lib/ui-kit/Input/InputFile.d.ts +2 -0
  226. package/lib/ui-kit/Input/InputFile.js +73 -0
  227. package/lib/ui-kit/Input/InputFile.js.map +1 -0
  228. package/lib/ui-kit/Input/InputFileControl.d.ts +2 -0
  229. package/lib/ui-kit/Input/InputFileControl.js +8 -0
  230. package/lib/ui-kit/Input/InputFileControl.js.map +1 -0
  231. package/lib/ui-kit/Input/InputProps.d.ts +6 -1
  232. package/lib/ui-kit/Input/checks/checkFIleExtension.d.ts +1 -0
  233. package/lib/ui-kit/Input/checks/checkFIleExtension.js +9 -0
  234. package/lib/ui-kit/Input/checks/checkFIleExtension.js.map +1 -0
  235. package/lib/ui-kit/Input/checks/checkFileMimeType.d.ts +1 -0
  236. package/lib/ui-kit/Input/checks/checkFileMimeType.js +17 -0
  237. package/lib/ui-kit/Input/checks/checkFileMimeType.js.map +1 -0
  238. package/lib/ui-kit/Input/checks/checkFileSignature.d.ts +3 -0
  239. package/lib/ui-kit/Input/checks/checkFileSignature.js +22 -0
  240. package/lib/ui-kit/Input/checks/checkFileSignature.js.map +1 -0
  241. package/lib/ui-kit/Input/checks/checkFileSize.d.ts +1 -0
  242. package/lib/ui-kit/Input/checks/checkFileSize.js +10 -0
  243. package/lib/ui-kit/Input/checks/checkFileSize.js.map +1 -0
  244. package/lib/ui-kit/Input/checks/getFileSignature.d.ts +1 -0
  245. package/lib/ui-kit/Input/checks/getFileSignature.js +16 -0
  246. package/lib/ui-kit/Input/checks/getFileSignature.js.map +1 -0
  247. package/lib/ui-kit/Input/constants.d.ts +6 -0
  248. package/lib/ui-kit/Input/constants.js +7 -0
  249. package/lib/ui-kit/Input/constants.js.map +1 -0
  250. package/lib/ui-kit/Input/renderFileInput.d.ts +12 -0
  251. package/lib/ui-kit/Input/renderFileInput.js +30 -0
  252. package/lib/ui-kit/Input/renderFileInput.js.map +1 -0
  253. package/lib/ui-kit/Input/renderInfoText.d.ts +1 -0
  254. package/lib/ui-kit/Input/renderInfoText.js +11 -0
  255. package/lib/ui-kit/Input/renderInfoText.js.map +1 -0
  256. package/lib/ui-kit/Input/styles.d.ts +2 -0
  257. package/lib/ui-kit/Input/styles.js +3 -0
  258. package/lib/ui-kit/Input/styles.js.map +1 -0
  259. package/lib/ui-kit/Input/useVerifyFile.d.ts +17 -0
  260. package/lib/ui-kit/Input/useVerifyFile.js +61 -0
  261. package/lib/ui-kit/Input/useVerifyFile.js.map +1 -0
  262. package/lib/ui-kit/PreventableEvent.d.ts +4 -0
  263. package/lib/ui-kit/ProgressBar/ProgressBar.d.ts +1 -0
  264. package/lib/ui-kit/ProgressBar/ProgressBar.js +1 -1
  265. package/lib/ui-kit/ProgressBar/ProgressBar.js.map +1 -1
  266. package/lib/utils/animateStepWithMinDuration.d.ts +8 -0
  267. package/lib/utils/animateStepWithMinDuration.js +23 -0
  268. package/lib/utils/animateStepWithMinDuration.js.map +1 -0
  269. package/lib/utils/isDateValid.d.ts +4 -0
  270. package/lib/utils/isDateValid.js +21 -0
  271. package/lib/utils/isDateValid.js.map +1 -0
  272. package/mobile/bundle/api/LeadServiceAPI.d.ts +8 -2
  273. package/mobile/bundle/api/getSubmitBody.d.ts +201 -97
  274. package/mobile/bundle/api/sendFile.d.ts +16 -0
  275. package/mobile/bundle/bundle.umd.js +562 -50
  276. package/mobile/bundle/bundle.umd.min.js +1 -1
  277. package/mobile/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +8 -2
  278. package/mobile/bundle/components/ApplicationForm/constants.d.ts +7 -0
  279. package/mobile/bundle/components/ApplicationForm/handlers.d.ts +3 -2
  280. package/mobile/bundle/hooks/useDragAndDrop.d.ts +16 -0
  281. package/mobile/bundle/model/FormTypeFieldDef.d.ts +1 -1
  282. package/mobile/bundle/model/InputTypes.d.ts +1 -1
  283. package/mobile/bundle/ui-kit/FormField/CustomFieldProps.d.ts +1 -0
  284. package/mobile/bundle/ui-kit/FormField/Fields/AddressBranchField.d.ts +1 -2
  285. package/mobile/bundle/ui-kit/FormField/Fields/AverageGradeField.d.ts +2 -0
  286. package/mobile/bundle/ui-kit/FormField/Fields/FileIdField.d.ts +2 -0
  287. package/mobile/bundle/ui-kit/FormField/Fields/FileUpload.d.ts +2 -0
  288. package/mobile/bundle/ui-kit/FormField/Fields/InternshipEndDateField.d.ts +2 -0
  289. package/mobile/bundle/ui-kit/FormField/Fields/InternshipStartDateField.d.ts +2 -0
  290. package/mobile/bundle/ui-kit/FormField/Fields/SelectField.d.ts +6 -0
  291. package/mobile/bundle/ui-kit/FormField/Fields/TextField.d.ts +2 -0
  292. package/mobile/bundle/ui-kit/FormField/InputsMap.d.ts +62 -0
  293. package/mobile/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -1
  294. package/mobile/bundle/ui-kit/FormField/constants.d.ts +3 -0
  295. package/mobile/bundle/ui-kit/FormField/validators.d.ts +1 -0
  296. package/mobile/bundle/ui-kit/Input/InputFile.d.ts +2 -0
  297. package/mobile/bundle/ui-kit/Input/InputFileControl.d.ts +2 -0
  298. package/mobile/bundle/ui-kit/Input/InputProps.d.ts +6 -1
  299. package/mobile/bundle/ui-kit/Input/checks/checkFIleExtension.d.ts +1 -0
  300. package/mobile/bundle/ui-kit/Input/checks/checkFileMimeType.d.ts +1 -0
  301. package/mobile/bundle/ui-kit/Input/checks/checkFileSignature.d.ts +3 -0
  302. package/mobile/bundle/ui-kit/Input/checks/checkFileSize.d.ts +1 -0
  303. package/mobile/bundle/ui-kit/Input/checks/getFileSignature.d.ts +1 -0
  304. package/mobile/bundle/ui-kit/Input/constants.d.ts +6 -0
  305. package/mobile/bundle/ui-kit/Input/renderFileInput.d.ts +12 -0
  306. package/mobile/bundle/ui-kit/Input/renderInfoText.d.ts +1 -0
  307. package/mobile/bundle/ui-kit/Input/styles.d.ts +2 -0
  308. package/mobile/bundle/ui-kit/Input/useVerifyFile.d.ts +17 -0
  309. package/mobile/bundle/ui-kit/PreventableEvent.d.ts +4 -0
  310. package/mobile/bundle/ui-kit/ProgressBar/ProgressBar.d.ts +1 -0
  311. package/mobile/bundle/utils/animateStepWithMinDuration.d.ts +8 -0
  312. package/mobile/bundle/utils/isDateValid.d.ts +4 -0
  313. package/mobile/dist/api/LeadServiceAPI.d.ts +8 -2
  314. package/mobile/dist/api/LeadServiceAPI.js +18 -8
  315. package/mobile/dist/api/LeadServiceAPI.js.map +1 -1
  316. package/mobile/dist/api/getSubmitBody.d.ts +201 -97
  317. package/mobile/dist/api/getSubmitBody.js +13 -6
  318. package/mobile/dist/api/getSubmitBody.js.map +1 -1
  319. package/mobile/dist/api/sendFile.d.ts +16 -0
  320. package/mobile/dist/api/sendFile.js +78 -0
  321. package/mobile/dist/api/sendFile.js.map +1 -0
  322. package/mobile/dist/components/ApplicationForm/ApplicationForm.js +5 -6
  323. package/mobile/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  324. package/mobile/dist/components/ApplicationForm/ApplicationFormContent.d.ts +8 -2
  325. package/mobile/dist/components/ApplicationForm/constants.d.ts +7 -0
  326. package/mobile/dist/components/ApplicationForm/constants.js +29 -0
  327. package/mobile/dist/components/ApplicationForm/constants.js.map +1 -0
  328. package/mobile/dist/components/ApplicationForm/handlers.d.ts +3 -2
  329. package/mobile/dist/components/ApplicationForm/handlers.js +3 -3
  330. package/mobile/dist/components/ApplicationForm/handlers.js.map +1 -1
  331. package/mobile/dist/hooks/useDragAndDrop.d.ts +16 -0
  332. package/mobile/dist/hooks/useDragAndDrop.js +29 -0
  333. package/mobile/dist/hooks/useDragAndDrop.js.map +1 -0
  334. package/mobile/dist/model/FormTypeFieldDef.d.ts +1 -1
  335. package/mobile/dist/model/InputTypes.d.ts +1 -1
  336. package/mobile/dist/ui-kit/FormField/CustomFieldProps.d.ts +1 -0
  337. package/mobile/dist/ui-kit/FormField/Fields/AddressBranchField.d.ts +1 -2
  338. package/mobile/dist/ui-kit/FormField/Fields/AverageGradeField.d.ts +2 -0
  339. package/mobile/dist/ui-kit/FormField/Fields/AverageGradeField.js +9 -0
  340. package/mobile/dist/ui-kit/FormField/Fields/AverageGradeField.js.map +1 -0
  341. package/mobile/dist/ui-kit/FormField/Fields/BirthdayField.js +4 -1
  342. package/mobile/dist/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  343. package/mobile/dist/ui-kit/FormField/Fields/CommentField.js +1 -1
  344. package/mobile/dist/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  345. package/mobile/dist/ui-kit/FormField/Fields/FileIdField.d.ts +2 -0
  346. package/mobile/dist/ui-kit/FormField/Fields/FileIdField.js +7 -0
  347. package/mobile/dist/ui-kit/FormField/Fields/FileIdField.js.map +1 -0
  348. package/mobile/dist/ui-kit/FormField/Fields/FileUpload.d.ts +2 -0
  349. package/mobile/dist/ui-kit/FormField/Fields/FileUpload.js +14 -0
  350. package/mobile/dist/ui-kit/FormField/Fields/FileUpload.js.map +1 -0
  351. package/mobile/dist/ui-kit/FormField/Fields/InternshipEndDateField.d.ts +2 -0
  352. package/mobile/dist/ui-kit/FormField/Fields/InternshipEndDateField.js +23 -0
  353. package/mobile/dist/ui-kit/FormField/Fields/InternshipEndDateField.js.map +1 -0
  354. package/mobile/dist/ui-kit/FormField/Fields/InternshipStartDateField.d.ts +2 -0
  355. package/mobile/dist/ui-kit/FormField/Fields/InternshipStartDateField.js +23 -0
  356. package/mobile/dist/ui-kit/FormField/Fields/InternshipStartDateField.js.map +1 -0
  357. package/mobile/dist/ui-kit/FormField/Fields/SelectField.d.ts +6 -0
  358. package/mobile/dist/ui-kit/FormField/Fields/SelectField.js +7 -0
  359. package/mobile/dist/ui-kit/FormField/Fields/SelectField.js.map +1 -0
  360. package/mobile/dist/ui-kit/FormField/Fields/TextField.d.ts +2 -0
  361. package/mobile/dist/ui-kit/FormField/Fields/TextField.js +7 -0
  362. package/mobile/dist/ui-kit/FormField/Fields/TextField.js.map +1 -0
  363. package/mobile/dist/ui-kit/FormField/InputsMap.d.ts +62 -0
  364. package/mobile/dist/ui-kit/FormField/InputsMap.js +119 -0
  365. package/mobile/dist/ui-kit/FormField/InputsMap.js.map +1 -0
  366. package/mobile/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -1
  367. package/mobile/dist/ui-kit/FormField/constants.d.ts +3 -0
  368. package/mobile/dist/ui-kit/FormField/constants.js +27 -1
  369. package/mobile/dist/ui-kit/FormField/constants.js.map +1 -1
  370. package/mobile/dist/ui-kit/FormField/getField.js +2 -94
  371. package/mobile/dist/ui-kit/FormField/getField.js.map +1 -1
  372. package/mobile/dist/ui-kit/FormField/getObjectValidator.js +15 -1
  373. package/mobile/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
  374. package/mobile/dist/ui-kit/FormField/validators.d.ts +1 -0
  375. package/mobile/dist/ui-kit/FormField/validators.js +4 -1
  376. package/mobile/dist/ui-kit/FormField/validators.js.map +1 -1
  377. package/mobile/dist/ui-kit/Input/Input.js +2 -2
  378. package/mobile/dist/ui-kit/Input/Input.js.map +1 -1
  379. package/mobile/dist/ui-kit/Input/InputFile.d.ts +2 -0
  380. package/mobile/dist/ui-kit/Input/InputFile.js +75 -0
  381. package/mobile/dist/ui-kit/Input/InputFile.js.map +1 -0
  382. package/mobile/dist/ui-kit/Input/InputFileControl.d.ts +2 -0
  383. package/mobile/dist/ui-kit/Input/InputFileControl.js +10 -0
  384. package/mobile/dist/ui-kit/Input/InputFileControl.js.map +1 -0
  385. package/mobile/dist/ui-kit/Input/InputProps.d.ts +6 -1
  386. package/mobile/dist/ui-kit/Input/checks/checkFIleExtension.d.ts +1 -0
  387. package/mobile/dist/ui-kit/Input/checks/checkFIleExtension.js +12 -0
  388. package/mobile/dist/ui-kit/Input/checks/checkFIleExtension.js.map +1 -0
  389. package/mobile/dist/ui-kit/Input/checks/checkFileMimeType.d.ts +1 -0
  390. package/mobile/dist/ui-kit/Input/checks/checkFileMimeType.js +20 -0
  391. package/mobile/dist/ui-kit/Input/checks/checkFileMimeType.js.map +1 -0
  392. package/mobile/dist/ui-kit/Input/checks/checkFileSignature.d.ts +3 -0
  393. package/mobile/dist/ui-kit/Input/checks/checkFileSignature.js +25 -0
  394. package/mobile/dist/ui-kit/Input/checks/checkFileSignature.js.map +1 -0
  395. package/mobile/dist/ui-kit/Input/checks/checkFileSize.d.ts +1 -0
  396. package/mobile/dist/ui-kit/Input/checks/checkFileSize.js +13 -0
  397. package/mobile/dist/ui-kit/Input/checks/checkFileSize.js.map +1 -0
  398. package/mobile/dist/ui-kit/Input/checks/getFileSignature.d.ts +1 -0
  399. package/mobile/dist/ui-kit/Input/checks/getFileSignature.js +19 -0
  400. package/mobile/dist/ui-kit/Input/checks/getFileSignature.js.map +1 -0
  401. package/mobile/dist/ui-kit/Input/constants.d.ts +6 -0
  402. package/mobile/dist/ui-kit/Input/constants.js +9 -0
  403. package/mobile/dist/ui-kit/Input/constants.js.map +1 -0
  404. package/mobile/dist/ui-kit/Input/renderFileInput.d.ts +12 -0
  405. package/mobile/dist/ui-kit/Input/renderFileInput.js +33 -0
  406. package/mobile/dist/ui-kit/Input/renderFileInput.js.map +1 -0
  407. package/mobile/dist/ui-kit/Input/renderInfoText.d.ts +1 -0
  408. package/mobile/dist/ui-kit/Input/renderInfoText.js +14 -0
  409. package/mobile/dist/ui-kit/Input/renderInfoText.js.map +1 -0
  410. package/mobile/dist/ui-kit/Input/styles.d.ts +2 -0
  411. package/mobile/dist/ui-kit/Input/styles.js +5 -0
  412. package/mobile/dist/ui-kit/Input/styles.js.map +1 -0
  413. package/mobile/dist/ui-kit/Input/useVerifyFile.d.ts +17 -0
  414. package/mobile/dist/ui-kit/Input/useVerifyFile.js +64 -0
  415. package/mobile/dist/ui-kit/Input/useVerifyFile.js.map +1 -0
  416. package/mobile/dist/ui-kit/PreventableEvent.d.ts +4 -0
  417. package/mobile/dist/ui-kit/ProgressBar/ProgressBar.d.ts +1 -0
  418. package/mobile/dist/ui-kit/ProgressBar/ProgressBar.js +1 -1
  419. package/mobile/dist/ui-kit/ProgressBar/ProgressBar.js.map +1 -1
  420. package/mobile/dist/utils/animateStepWithMinDuration.d.ts +8 -0
  421. package/mobile/dist/utils/animateStepWithMinDuration.js +26 -0
  422. package/mobile/dist/utils/animateStepWithMinDuration.js.map +1 -0
  423. package/mobile/dist/utils/isDateValid.d.ts +4 -0
  424. package/mobile/dist/utils/isDateValid.js +24 -0
  425. package/mobile/dist/utils/isDateValid.js.map +1 -0
  426. package/mobile/lib/api/LeadServiceAPI.d.ts +8 -2
  427. package/mobile/lib/api/LeadServiceAPI.js +18 -8
  428. package/mobile/lib/api/LeadServiceAPI.js.map +1 -1
  429. package/mobile/lib/api/getSubmitBody.d.ts +201 -97
  430. package/mobile/lib/api/getSubmitBody.js +13 -6
  431. package/mobile/lib/api/getSubmitBody.js.map +1 -1
  432. package/mobile/lib/api/sendFile.d.ts +16 -0
  433. package/mobile/lib/api/sendFile.js +75 -0
  434. package/mobile/lib/api/sendFile.js.map +1 -0
  435. package/mobile/lib/common.css +1 -1
  436. package/mobile/lib/components/ApplicationForm/ApplicationForm.js +5 -6
  437. package/mobile/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  438. package/mobile/lib/components/ApplicationForm/ApplicationFormContent.d.ts +8 -2
  439. package/mobile/lib/components/ApplicationForm/constants.d.ts +7 -0
  440. package/mobile/lib/components/ApplicationForm/constants.js +27 -0
  441. package/mobile/lib/components/ApplicationForm/constants.js.map +1 -0
  442. package/mobile/lib/components/ApplicationForm/handlers.d.ts +3 -2
  443. package/mobile/lib/components/ApplicationForm/handlers.js +3 -3
  444. package/mobile/lib/components/ApplicationForm/handlers.js.map +1 -1
  445. package/mobile/lib/hooks/useDragAndDrop.d.ts +16 -0
  446. package/mobile/lib/hooks/useDragAndDrop.js +26 -0
  447. package/mobile/lib/hooks/useDragAndDrop.js.map +1 -0
  448. package/mobile/lib/model/FormTypeFieldDef.d.ts +1 -1
  449. package/mobile/lib/model/InputTypes.d.ts +1 -1
  450. package/mobile/lib/ui-kit/FormField/CustomFieldProps.d.ts +1 -0
  451. package/mobile/lib/ui-kit/FormField/Fields/AddressBranchField.d.ts +1 -2
  452. package/mobile/lib/ui-kit/FormField/Fields/AverageGradeField.d.ts +2 -0
  453. package/mobile/lib/ui-kit/FormField/Fields/AverageGradeField.js +7 -0
  454. package/mobile/lib/ui-kit/FormField/Fields/AverageGradeField.js.map +1 -0
  455. package/mobile/lib/ui-kit/FormField/Fields/BirthdayField.js +4 -1
  456. package/mobile/lib/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  457. package/mobile/lib/ui-kit/FormField/Fields/CommentField.js +1 -1
  458. package/mobile/lib/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  459. package/mobile/lib/ui-kit/FormField/Fields/FileIdField.d.ts +2 -0
  460. package/mobile/lib/ui-kit/FormField/Fields/FileIdField.js +5 -0
  461. package/mobile/lib/ui-kit/FormField/Fields/FileIdField.js.map +1 -0
  462. package/mobile/lib/ui-kit/FormField/Fields/FileUpload.d.ts +2 -0
  463. package/mobile/lib/ui-kit/FormField/Fields/FileUpload.js +12 -0
  464. package/mobile/lib/ui-kit/FormField/Fields/FileUpload.js.map +1 -0
  465. package/mobile/lib/ui-kit/FormField/Fields/InternshipEndDateField.d.ts +2 -0
  466. package/mobile/lib/ui-kit/FormField/Fields/InternshipEndDateField.js +21 -0
  467. package/mobile/lib/ui-kit/FormField/Fields/InternshipEndDateField.js.map +1 -0
  468. package/mobile/lib/ui-kit/FormField/Fields/InternshipStartDateField.d.ts +2 -0
  469. package/mobile/lib/ui-kit/FormField/Fields/InternshipStartDateField.js +21 -0
  470. package/mobile/lib/ui-kit/FormField/Fields/InternshipStartDateField.js.map +1 -0
  471. package/mobile/lib/ui-kit/FormField/Fields/SelectField.d.ts +6 -0
  472. package/mobile/lib/ui-kit/FormField/Fields/SelectField.js +5 -0
  473. package/mobile/lib/ui-kit/FormField/Fields/SelectField.js.map +1 -0
  474. package/mobile/lib/ui-kit/FormField/Fields/TextField.d.ts +2 -0
  475. package/mobile/lib/ui-kit/FormField/Fields/TextField.js +5 -0
  476. package/mobile/lib/ui-kit/FormField/Fields/TextField.js.map +1 -0
  477. package/mobile/lib/ui-kit/FormField/InputsMap.d.ts +62 -0
  478. package/mobile/lib/ui-kit/FormField/InputsMap.js +117 -0
  479. package/mobile/lib/ui-kit/FormField/InputsMap.js.map +1 -0
  480. package/mobile/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -1
  481. package/mobile/lib/ui-kit/FormField/constants.d.ts +3 -0
  482. package/mobile/lib/ui-kit/FormField/constants.js +26 -0
  483. package/mobile/lib/ui-kit/FormField/constants.js.map +1 -1
  484. package/mobile/lib/ui-kit/FormField/getField.js +1 -93
  485. package/mobile/lib/ui-kit/FormField/getField.js.map +1 -1
  486. package/mobile/lib/ui-kit/FormField/getObjectValidator.js +16 -2
  487. package/mobile/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
  488. package/mobile/lib/ui-kit/FormField/validators.d.ts +1 -0
  489. package/mobile/lib/ui-kit/FormField/validators.js +2 -0
  490. package/mobile/lib/ui-kit/FormField/validators.js.map +1 -1
  491. package/mobile/lib/ui-kit/Input/Input.js +1 -1
  492. package/mobile/lib/ui-kit/Input/Input.js.map +1 -1
  493. package/mobile/lib/ui-kit/Input/InputFile.d.ts +2 -0
  494. package/mobile/lib/ui-kit/Input/InputFile.js +73 -0
  495. package/mobile/lib/ui-kit/Input/InputFile.js.map +1 -0
  496. package/mobile/lib/ui-kit/Input/InputFileControl.d.ts +2 -0
  497. package/mobile/lib/ui-kit/Input/InputFileControl.js +8 -0
  498. package/mobile/lib/ui-kit/Input/InputFileControl.js.map +1 -0
  499. package/mobile/lib/ui-kit/Input/InputProps.d.ts +6 -1
  500. package/mobile/lib/ui-kit/Input/checks/checkFIleExtension.d.ts +1 -0
  501. package/mobile/lib/ui-kit/Input/checks/checkFIleExtension.js +9 -0
  502. package/mobile/lib/ui-kit/Input/checks/checkFIleExtension.js.map +1 -0
  503. package/mobile/lib/ui-kit/Input/checks/checkFileMimeType.d.ts +1 -0
  504. package/mobile/lib/ui-kit/Input/checks/checkFileMimeType.js +17 -0
  505. package/mobile/lib/ui-kit/Input/checks/checkFileMimeType.js.map +1 -0
  506. package/mobile/lib/ui-kit/Input/checks/checkFileSignature.d.ts +3 -0
  507. package/mobile/lib/ui-kit/Input/checks/checkFileSignature.js +22 -0
  508. package/mobile/lib/ui-kit/Input/checks/checkFileSignature.js.map +1 -0
  509. package/mobile/lib/ui-kit/Input/checks/checkFileSize.d.ts +1 -0
  510. package/mobile/lib/ui-kit/Input/checks/checkFileSize.js +10 -0
  511. package/mobile/lib/ui-kit/Input/checks/checkFileSize.js.map +1 -0
  512. package/mobile/lib/ui-kit/Input/checks/getFileSignature.d.ts +1 -0
  513. package/mobile/lib/ui-kit/Input/checks/getFileSignature.js +16 -0
  514. package/mobile/lib/ui-kit/Input/checks/getFileSignature.js.map +1 -0
  515. package/mobile/lib/ui-kit/Input/constants.d.ts +6 -0
  516. package/mobile/lib/ui-kit/Input/constants.js +7 -0
  517. package/mobile/lib/ui-kit/Input/constants.js.map +1 -0
  518. package/mobile/lib/ui-kit/Input/renderFileInput.d.ts +12 -0
  519. package/mobile/lib/ui-kit/Input/renderFileInput.js +30 -0
  520. package/mobile/lib/ui-kit/Input/renderFileInput.js.map +1 -0
  521. package/mobile/lib/ui-kit/Input/renderInfoText.d.ts +1 -0
  522. package/mobile/lib/ui-kit/Input/renderInfoText.js +11 -0
  523. package/mobile/lib/ui-kit/Input/renderInfoText.js.map +1 -0
  524. package/mobile/lib/ui-kit/Input/styles.d.ts +2 -0
  525. package/mobile/lib/ui-kit/Input/styles.js +3 -0
  526. package/mobile/lib/ui-kit/Input/styles.js.map +1 -0
  527. package/mobile/lib/ui-kit/Input/useVerifyFile.d.ts +17 -0
  528. package/mobile/lib/ui-kit/Input/useVerifyFile.js +61 -0
  529. package/mobile/lib/ui-kit/Input/useVerifyFile.js.map +1 -0
  530. package/mobile/lib/ui-kit/PreventableEvent.d.ts +4 -0
  531. package/mobile/lib/ui-kit/ProgressBar/ProgressBar.d.ts +1 -0
  532. package/mobile/lib/ui-kit/ProgressBar/ProgressBar.js +1 -1
  533. package/mobile/lib/ui-kit/ProgressBar/ProgressBar.js.map +1 -1
  534. package/mobile/lib/utils/animateStepWithMinDuration.d.ts +8 -0
  535. package/mobile/lib/utils/animateStepWithMinDuration.js +23 -0
  536. package/mobile/lib/utils/animateStepWithMinDuration.js.map +1 -0
  537. package/mobile/lib/utils/isDateValid.d.ts +4 -0
  538. package/mobile/lib/utils/isDateValid.js +21 -0
  539. package/mobile/lib/utils/isDateValid.js.map +1 -0
  540. package/mobile/src/api/LeadServiceAPI.ts +29 -9
  541. package/mobile/src/api/getSubmitBody.ts +28 -7
  542. package/mobile/src/api/sendFile.ts +97 -0
  543. package/mobile/src/components/ApplicationForm/ApplicationForm.example.json +192 -0
  544. package/mobile/src/components/ApplicationForm/ApplicationForm.tsx +22 -16
  545. package/mobile/src/components/ApplicationForm/ApplicationFormContent.ts +16 -2
  546. package/mobile/src/components/ApplicationForm/constants.ts +33 -0
  547. package/mobile/src/components/ApplicationForm/handlers.ts +5 -3
  548. package/mobile/src/hooks/useDragAndDrop.ts +48 -0
  549. package/mobile/src/model/FormTypeFieldDef.ts +2 -1
  550. package/mobile/src/model/InputTypes.ts +1 -1
  551. package/mobile/src/ui-kit/FormField/CustomFieldProps.ts +1 -0
  552. package/mobile/src/ui-kit/FormField/Fields/AddressBranchField.tsx +1 -1
  553. package/mobile/src/ui-kit/FormField/Fields/AverageGradeField.tsx +14 -0
  554. package/mobile/src/ui-kit/FormField/Fields/BirthdayField.tsx +12 -7
  555. package/mobile/src/ui-kit/FormField/Fields/CommentField.tsx +1 -1
  556. package/mobile/src/ui-kit/FormField/Fields/FileIdField.tsx +7 -0
  557. package/mobile/src/ui-kit/FormField/Fields/FileUpload.tsx +22 -0
  558. package/mobile/src/ui-kit/FormField/Fields/InternshipEndDateField.tsx +38 -0
  559. package/mobile/src/ui-kit/FormField/Fields/InternshipStartDateField.tsx +38 -0
  560. package/mobile/src/ui-kit/FormField/Fields/SelectField.tsx +12 -0
  561. package/mobile/src/ui-kit/FormField/Fields/TextField.tsx +7 -0
  562. package/mobile/src/ui-kit/FormField/InputsMap.tsx +133 -0
  563. package/mobile/src/ui-kit/FormField/NameFieldDef.ts +17 -1
  564. package/mobile/src/ui-kit/FormField/constants.tsx +29 -0
  565. package/mobile/src/ui-kit/FormField/getField.tsx +1 -105
  566. package/mobile/src/ui-kit/FormField/getObjectValidator.tsx +16 -1
  567. package/mobile/src/ui-kit/FormField/validators.ts +4 -0
  568. package/mobile/src/ui-kit/Input/Input.tsx +1 -2
  569. package/mobile/src/ui-kit/Input/InputFile.tsx +132 -0
  570. package/mobile/src/ui-kit/Input/InputFileControl.tsx +22 -0
  571. package/mobile/src/ui-kit/Input/InputProps.ts +10 -1
  572. package/mobile/src/ui-kit/Input/checks/checkFIleExtension.ts +9 -0
  573. package/mobile/src/ui-kit/Input/checks/checkFileMimeType.ts +20 -0
  574. package/mobile/src/ui-kit/Input/checks/checkFileSignature.ts +30 -0
  575. package/mobile/src/ui-kit/Input/checks/checkFileSize.ts +10 -0
  576. package/mobile/src/ui-kit/Input/checks/getFileSignature.ts +16 -0
  577. package/mobile/src/ui-kit/Input/constants.ts +6 -0
  578. package/mobile/src/ui-kit/Input/renderFileInput.tsx +87 -0
  579. package/mobile/src/ui-kit/Input/renderInfoText.tsx +15 -0
  580. package/mobile/src/ui-kit/Input/styles.ts +2 -0
  581. package/mobile/src/ui-kit/Input/useVerifyFile.ts +100 -0
  582. package/mobile/src/ui-kit/PreventableEvent.ts +5 -0
  583. package/mobile/src/ui-kit/ProgressBar/ProgressBar.tsx +7 -2
  584. package/mobile/src/utils/animateStepWithMinDuration.ts +38 -0
  585. package/mobile/src/utils/isDateValid.ts +33 -0
  586. package/package.json +2 -2
  587. package/src/api/LeadServiceAPI.ts +29 -9
  588. package/src/api/getSubmitBody.ts +28 -7
  589. package/src/api/sendFile.ts +97 -0
  590. package/src/components/ApplicationForm/ApplicationForm.example.json +192 -0
  591. package/src/components/ApplicationForm/ApplicationForm.fixture.tsx +132 -0
  592. package/src/components/ApplicationForm/ApplicationForm.tsx +22 -16
  593. package/src/components/ApplicationForm/ApplicationFormContent.ts +16 -2
  594. package/src/components/ApplicationForm/constants.ts +33 -0
  595. package/src/components/ApplicationForm/handlers.ts +5 -3
  596. package/src/hooks/useDragAndDrop.ts +48 -0
  597. package/src/model/FormTypeFieldDef.ts +2 -1
  598. package/src/model/InputTypes.ts +1 -1
  599. package/src/ui-kit/FormField/CustomFieldProps.ts +1 -0
  600. package/src/ui-kit/FormField/Fields/AddressBranchField.tsx +1 -1
  601. package/src/ui-kit/FormField/Fields/AverageGradeField.tsx +14 -0
  602. package/src/ui-kit/FormField/Fields/BirthdayField.tsx +12 -7
  603. package/src/ui-kit/FormField/Fields/CommentField.tsx +1 -1
  604. package/src/ui-kit/FormField/Fields/FileIdField.tsx +7 -0
  605. package/src/ui-kit/FormField/Fields/FileUpload.tsx +22 -0
  606. package/src/ui-kit/FormField/Fields/InternshipEndDateField.tsx +38 -0
  607. package/src/ui-kit/FormField/Fields/InternshipStartDateField.tsx +38 -0
  608. package/src/ui-kit/FormField/Fields/SelectField.tsx +12 -0
  609. package/src/ui-kit/FormField/Fields/TextField.tsx +7 -0
  610. package/src/ui-kit/FormField/InputsMap.tsx +133 -0
  611. package/src/ui-kit/FormField/NameFieldDef.ts +17 -1
  612. package/src/ui-kit/FormField/constants.tsx +29 -0
  613. package/src/ui-kit/FormField/getField.tsx +1 -105
  614. package/src/ui-kit/FormField/getObjectValidator.tsx +16 -1
  615. package/src/ui-kit/FormField/validators.ts +4 -0
  616. package/src/ui-kit/Input/Input.tsx +1 -2
  617. package/src/ui-kit/Input/InputFile.tsx +132 -0
  618. package/src/ui-kit/Input/InputFileControl.tsx +22 -0
  619. package/src/ui-kit/Input/InputProps.ts +10 -1
  620. package/src/ui-kit/Input/checks/checkFIleExtension.ts +9 -0
  621. package/src/ui-kit/Input/checks/checkFileMimeType.ts +20 -0
  622. package/src/ui-kit/Input/checks/checkFileSignature.ts +30 -0
  623. package/src/ui-kit/Input/checks/checkFileSize.ts +10 -0
  624. package/src/ui-kit/Input/checks/getFileSignature.ts +16 -0
  625. package/src/ui-kit/Input/constants.ts +6 -0
  626. package/src/ui-kit/Input/renderFileInput.tsx +87 -0
  627. package/src/ui-kit/Input/renderInfoText.tsx +15 -0
  628. package/src/ui-kit/Input/styles.ts +2 -0
  629. package/src/ui-kit/Input/useVerifyFile.ts +100 -0
  630. package/src/ui-kit/PreventableEvent.ts +5 -0
  631. package/src/ui-kit/ProgressBar/ProgressBar.tsx +7 -2
  632. package/src/utils/animateStepWithMinDuration.ts +38 -0
  633. package/src/utils/isDateValid.ts +33 -0
@@ -0,0 +1,132 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useEffect, useRef, useState } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { SUCCESS_STATUS, type ResponseData } from '../../api/sendFile';
4
+ import { useDragAndDrop } from '../../hooks/useDragAndDrop';
5
+ import { noop } from '../../utils/noop';
6
+ import { style } from '../../utils/style';
7
+ import { CloseButton } from '../DialogManager/CloseButton';
8
+ import { ProgressBar } from '../ProgressBar/ProgressBar';
9
+ import { getValidStyle } from './getValidStyle';
10
+ import { type InputProps } from './InputProps';
11
+ import { renderErrorText } from './renderErrorText';
12
+ import { renderFileInput } from './renderFileInput';
13
+ import { renderInfoText } from './renderInfoText';
14
+ import { borderStyle, defaultStyle } from './styles';
15
+ import { useVerifyFile } from './useVerifyFile';
16
+
17
+ export const InputFile = JSX<InputProps>(
18
+ // eslint-disable-next-line max-lines-per-function
19
+ ({
20
+ key,
21
+ className,
22
+ id,
23
+ name,
24
+ type = 'file',
25
+ label,
26
+ valid = true,
27
+ pattern,
28
+ autoFocus = false,
29
+ extensions,
30
+ children,
31
+ onFocus,
32
+ onBlur,
33
+ maxSizeMB,
34
+ error,
35
+ onFileChanged = noop,
36
+ }) => {
37
+ const inputRef = useRef<HTMLInputElement | null>(null);
38
+ const [selectedFile, setSelectedFile] = useState<File | null>(null);
39
+ const [uploadError, setUploadError] = useState('');
40
+ const [uploadResponse, setUploadResponse] = useState<ResponseData | null>(null);
41
+
42
+ const { verifyFile, isFileUploading, progress } = useVerifyFile({
43
+ onUploadError: setUploadError,
44
+ onUploadResponse: setUploadResponse,
45
+ onFileSelected: setSelectedFile,
46
+ extensions,
47
+ maxSizeMB,
48
+ });
49
+
50
+ useEffect(() => {
51
+ if (autoFocus) {
52
+ inputRef.current?.focus();
53
+ }
54
+ }, [autoFocus, inputRef]);
55
+
56
+ const handleFileChange = async (file?: File) => {
57
+ handleResetFile();
58
+ if (file) {
59
+ await verifyFile({ file, onFileChanged });
60
+ }
61
+ };
62
+
63
+ const handleResetFile = () => {
64
+ setSelectedFile(null);
65
+ setUploadError('');
66
+ setUploadResponse(null);
67
+ onFileChanged('');
68
+ };
69
+
70
+ const { handleDrag, handleLeave, handleDrop, isDragActive } = useDragAndDrop({
71
+ onReset: handleResetFile,
72
+ onFileSelected: verifyFile,
73
+ uploadResponse,
74
+ onFileChanged,
75
+ });
76
+
77
+ const paddingStyle = children ? 'pr-3xl' : '';
78
+ const validStyle = getValidStyle(valid);
79
+ const activeDragStyle = isDragActive ? 'border-primary-hover' : '';
80
+
81
+ return (
82
+ <div
83
+ className={style('relative', className)}
84
+ onDragEnter={handleDrag}
85
+ onDragOver={handleDrag}
86
+ onDragLeave={handleLeave}
87
+ onDrop={handleDrop}
88
+ >
89
+ <label
90
+ className={style(
91
+ 'h-14 cursor-pointer space-y-xs block',
92
+ defaultStyle,
93
+ paddingStyle,
94
+ borderStyle,
95
+ validStyle,
96
+ activeDragStyle,
97
+ )}
98
+ >
99
+ {isFileUploading ? (
100
+ <div>
101
+ <ProgressBar step={progress} isOnlyInteger={true} />
102
+ </div>
103
+ ) : (
104
+ renderFileInput({
105
+ label,
106
+ inputRef,
107
+ id,
108
+ key,
109
+ type,
110
+ name,
111
+ pattern,
112
+ disabled: Boolean(uploadResponse || isFileUploading),
113
+ onChange: handleFileChange,
114
+ onFocus,
115
+ onBlur,
116
+ extensions,
117
+ uploadResponse,
118
+ file: selectedFile,
119
+ })
120
+ )}
121
+ </label>
122
+ {uploadResponse?.status === SUCCESS_STATUS ? (
123
+ <CloseButton className="absolute top-0 right-0 z-10" onClose={handleResetFile} />
124
+ ) : null}
125
+
126
+ {renderInfoText(extensions, maxSizeMB)}
127
+ {renderErrorText(error || uploadError)}
128
+ {children}
129
+ </div>
130
+ );
131
+ },
132
+ );
@@ -0,0 +1,22 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { getRequiredLabel } from '../../utils/getRequiredLabel';
3
+ import { InputFile } from './InputFile';
4
+ import { type InputProps } from './InputProps';
5
+
6
+ export const InputFileControl = JSX<InputProps>(
7
+ ({ label, value = '', error, type, inputRef, required, ...rest }) => {
8
+ return (
9
+ <div ref={inputRef}>
10
+ <InputFile
11
+ type={type || 'file'}
12
+ aria-label={label}
13
+ label={getRequiredLabel({ label, required })}
14
+ valid={Boolean(!error)}
15
+ value={value}
16
+ error={error}
17
+ {...rest}
18
+ />
19
+ </div>
20
+ );
21
+ },
22
+ );
@@ -3,7 +3,16 @@ import { type DefaultControlType } from '../../model/DefaultControlType';
3
3
  import { type InputTypes } from '../../model/InputTypes';
4
4
  import { type PreventableEventWithTarget } from '../PreventableEvent';
5
5
 
6
- export interface InputProps<V = string> extends DefaultControlType, ControlProps<V> {
6
+ export type FileInputProps = {
7
+ extensions?: string[];
8
+ maxSizeMB?: number;
9
+ onFileChanged?: (value: string) => void;
10
+ };
11
+
12
+ export interface InputProps<V = string>
13
+ extends DefaultControlType,
14
+ ControlProps<V>,
15
+ FileInputProps {
7
16
  id?: string;
8
17
  name?: string;
9
18
  type?: InputTypes;
@@ -0,0 +1,9 @@
1
+ import { EXTENSIONS_ERROR_TEXT } from '../constants';
2
+
3
+ export const checkFileExtension = async (file: File, extensions?: string[]): Promise<void> => {
4
+ const fileExt = file.name.split('.')[1];
5
+ console.log(fileExt, extensions);
6
+ if (!extensions?.includes(fileExt)) {
7
+ throw new Error(EXTENSIONS_ERROR_TEXT);
8
+ }
9
+ };
@@ -0,0 +1,20 @@
1
+ import { EXTENSIONS_ERROR_TEXT } from '../constants';
2
+
3
+ const EXT_TO_MIME: Record<string, string> = {
4
+ pdf: 'application/pdf',
5
+ doc: 'application/msword',
6
+ docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
7
+ pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
8
+ };
9
+
10
+ export const checkFileMimeType = async (file?: File, extensions?: string[]): Promise<void> => {
11
+ const fileMimeType = file?.type ?? '';
12
+
13
+ const expectedMimeTypes = (extensions || [])
14
+ .map((ext) => EXT_TO_MIME[ext])
15
+ .filter((mime) => mime !== undefined);
16
+
17
+ if (!expectedMimeTypes.includes(fileMimeType)) {
18
+ throw new Error(EXTENSIONS_ERROR_TEXT);
19
+ }
20
+ };
@@ -0,0 +1,30 @@
1
+ import { EXTENSIONS_ERROR_TEXT } from '../constants';
2
+ import { getFileSignature } from './getFileSignature';
3
+
4
+ const SIGNATURES: Record<string, string> = {
5
+ pdf: '25 50 44 46 2d',
6
+ docx: '50 4b 03 04',
7
+ pptx: '50 4b 03 04',
8
+ xlsx: '50 4b 03 04',
9
+ doc: 'D0 CF 11 E0 A1 B1 1A E1',
10
+ };
11
+
12
+ export const checkFileSignature = async (
13
+ file?: File,
14
+ expectedTypes?: (keyof typeof SIGNATURES)[],
15
+ ): Promise<void> => {
16
+ const hexSignature = await getFileSignature(file);
17
+
18
+ const isValid = (expectedTypes ?? []).some((type) => {
19
+ const expectedSignature = SIGNATURES[type]?.toLowerCase();
20
+
21
+ console.log(expectedSignature);
22
+ console.log(hexSignature);
23
+
24
+ return expectedSignature && hexSignature.startsWith(expectedSignature);
25
+ });
26
+
27
+ if (!isValid) {
28
+ throw new Error(EXTENSIONS_ERROR_TEXT);
29
+ }
30
+ };
@@ -0,0 +1,10 @@
1
+ import { EMPTY_FILE_ERROR_TEXT, MAX_SIZE_ERROR_TEXT } from '../constants';
2
+
3
+ export const checkFileSize = async (file: File, maxSizeMB?: number): Promise<void> => {
4
+ if (maxSizeMB && file.size > maxSizeMB * 1024 * 1024) {
5
+ throw new Error(MAX_SIZE_ERROR_TEXT);
6
+ }
7
+ if (file.size === 0) {
8
+ throw new Error(EMPTY_FILE_ERROR_TEXT);
9
+ }
10
+ };
@@ -0,0 +1,16 @@
1
+ export const getFileSignature = (file?: File): Promise<string> => {
2
+ return new Promise((resolve, reject) => {
3
+ const reader = new FileReader();
4
+ reader.onload = () => {
5
+ const buffer = reader.result as ArrayBuffer;
6
+ const bytes = new Uint8Array(buffer);
7
+ const hex = Array.from(bytes)
8
+ .map((b) => b.toString(16).padStart(2, '0'))
9
+ .join(' ');
10
+ resolve(hex);
11
+ };
12
+ reader.onerror = reject;
13
+
14
+ return file && reader.readAsArrayBuffer(file.slice(0, 8));
15
+ });
16
+ };
@@ -0,0 +1,6 @@
1
+ export const ACCEPTED_EXTENSIONS_TEXT = 'Поддерживаемые форматы файлов';
2
+ export const MAX_SIZE_TEXT = 'Максимальный размер файла';
3
+ export const EMPTY_FILE_ERROR_TEXT = 'Ошибка загрузки файла. Убедитесь, что файл не пустой';
4
+ export const EXTENSIONS_ERROR_TEXT = 'Файл не соответствует допустимым расширениям';
5
+ export const MAX_SIZE_ERROR_TEXT = 'Файл превышает допустимый размер';
6
+ export const DEFAULT_ERROR_TEXT = 'Ошибка при загрузке файла. Попробуйте загрузить файл позднее';
@@ -0,0 +1,87 @@
1
+ import { SUCCESS_STATUS, type ResponseData } from '../../api/sendFile';
2
+ import type { IconName } from '../../icons/IconName';
3
+ import type { IconVersion } from '../../model/IconVersion';
4
+ import { noop } from '../../utils/noop';
5
+ import { style } from '../../utils/style';
6
+ import { Icon } from '../Icon/Icon';
7
+ import type { PreventableEvent, PreventableEventWithTargetFiles } from '../PreventableEvent';
8
+ import type { InputProps } from './InputProps';
9
+ import { renderLabel } from './renderLabel';
10
+
11
+ const ICON_PROPS: { name: IconName; iconVersion: IconVersion; width: string; height: string } = {
12
+ name: 'DocIcon',
13
+ iconVersion: 'black',
14
+ width: '24',
15
+ height: '24',
16
+ };
17
+
18
+ interface InputFileProps extends InputProps<File> {
19
+ key?: string;
20
+ uploadResponse?: ResponseData | null;
21
+ file?: File | null;
22
+ onReset?: (e: PreventableEvent) => void;
23
+ isCustomValid?: boolean;
24
+ }
25
+
26
+ export const renderFileInput = ({
27
+ label,
28
+ inputRef,
29
+ id,
30
+ key,
31
+ type,
32
+ name,
33
+ pattern,
34
+ disabled,
35
+ onChange = noop,
36
+ onFocus,
37
+ onBlur,
38
+ extensions,
39
+ uploadResponse,
40
+ file,
41
+ }: InputFileProps) => {
42
+ const ariaLabel = label ?? name ?? id;
43
+
44
+ return (
45
+ <div>
46
+ {uploadResponse?.status === SUCCESS_STATUS ? (
47
+ renderFileName(file)
48
+ ) : (
49
+ <div className="flex items-center space-x-2">
50
+ <Icon className="inline-block" {...ICON_PROPS} />
51
+ {renderLabel(label)}
52
+ <input
53
+ ref={inputRef}
54
+ className={style('h-14 hidden')}
55
+ id={id}
56
+ key={key}
57
+ type={type}
58
+ name={name || id}
59
+ pattern={pattern}
60
+ disabled={disabled}
61
+ aria-label={ariaLabel}
62
+ onChange={(e: PreventableEventWithTargetFiles) => {
63
+ e?.target?.files && onChange(e?.target?.files[0]);
64
+ }}
65
+ onFocus={onFocus}
66
+ onBlur={onBlur}
67
+ accept={extensionsToAccept(extensions)}
68
+ />
69
+ </div>
70
+ )}
71
+ </div>
72
+ );
73
+ };
74
+
75
+ const extensionsToAccept = (extensions: string[] = []): string => {
76
+ return extensions
77
+ .map((ext) => {
78
+ const str = String(ext).trim();
79
+
80
+ return str.startsWith('.') ? str : '.' + str;
81
+ })
82
+ .map((ext) => ext.toLowerCase())
83
+ .filter((ext, index, arr) => arr.indexOf(ext) === index)
84
+ .join(', ');
85
+ };
86
+
87
+ const renderFileName = (file?: File | null | undefined) => <span>{file?.name}</span>;
@@ -0,0 +1,15 @@
1
+ import { Text } from '../Text/Text';
2
+ import { ACCEPTED_EXTENSIONS_TEXT, MAX_SIZE_TEXT } from './constants';
3
+
4
+ export const renderInfoText = (extensions?: string[], maxSize?: number) => {
5
+ const extensionsMessage = extensions
6
+ ? `${ACCEPTED_EXTENSIONS_TEXT} - ${extensions.join(', ')}. `
7
+ : '';
8
+ const maxSizeMessage = maxSize ? `${MAX_SIZE_TEXT} - ${maxSize}Мб.` : '';
9
+
10
+ return (
11
+ <Text size="text-xs" font="font-light" color="text-secondary-text">
12
+ {extensionsMessage + maxSizeMessage}
13
+ </Text>
14
+ );
15
+ };
@@ -0,0 +1,2 @@
1
+ export const defaultStyle = 'w-full border rounded-md text-primary-text outline-none p-m';
2
+ export const borderStyle = 'border-dashed';
@@ -0,0 +1,100 @@
1
+ import { useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { sendFile, SUCCESS_STATUS, type ResponseData } from '../../api/sendFile';
3
+ import { animateStepWithMinDuration } from '../../utils/animateStepWithMinDuration';
4
+ import { debounce } from '../../utils/debounce';
5
+ import { noop } from '../../utils/noop';
6
+ import { checkFileExtension } from './checks/checkFIleExtension';
7
+ import { checkFileMimeType } from './checks/checkFileMimeType';
8
+ import { checkFileSignature } from './checks/checkFileSignature';
9
+ import { checkFileSize } from './checks/checkFileSize';
10
+ import { DEFAULT_ERROR_TEXT } from './constants';
11
+ import { type FileInputProps } from './InputProps';
12
+
13
+ const DEBOUNCE_DELAY = 500;
14
+
15
+ interface VerifyFileProps extends FileInputProps {
16
+ onUploadError?: (value: string) => void;
17
+ onFileSelected?: (value: File) => void;
18
+ onUploadResponse?: (value: ResponseData) => void;
19
+ }
20
+
21
+ export type VerifyFileParams = {
22
+ file: File;
23
+ onFileChanged?: (value: string) => void;
24
+ };
25
+
26
+ export const useVerifyFile = ({
27
+ onUploadError = noop,
28
+ onFileSelected = noop,
29
+ extensions,
30
+ maxSizeMB,
31
+ onUploadResponse = noop,
32
+ }: VerifyFileProps) => {
33
+ const [progress, setProgress] = useState(0);
34
+ const [isFileUploading, setIsFileUploading] = useState(false);
35
+
36
+ const debouncedOnFileUploaded = useMemo(
37
+ () => debounce((isUploading: boolean) => setIsFileUploading(isUploading), DEBOUNCE_DELAY),
38
+ [setIsFileUploading],
39
+ );
40
+ const debouncedOnUploadError = useMemo(
41
+ () => debounce((message: string) => onUploadError(message), DEBOUNCE_DELAY),
42
+ [onUploadError],
43
+ );
44
+
45
+ const debouncedOnUploadResponse = useMemo(
46
+ () => debounce((response: ResponseData) => onUploadResponse(response), DEBOUNCE_DELAY),
47
+ [onUploadResponse],
48
+ );
49
+
50
+ const verifyFile = async ({ file, onFileChanged = noop }: VerifyFileParams) => {
51
+ onFileSelected(file);
52
+ setIsFileUploading(true);
53
+
54
+ const checks = [
55
+ () => checkFileExtension(file, extensions),
56
+ () => checkFileSize(file, maxSizeMB),
57
+ () => checkFileSignature(file, extensions),
58
+ () => checkFileMimeType(file, extensions),
59
+ ];
60
+
61
+ const checkProgressStep = 50 / checks.length;
62
+ let currentProgress = 0;
63
+
64
+ try {
65
+ for (let i = 0; i < checks.length; i++) {
66
+ const checkPromise = checks[i];
67
+
68
+ await checkPromise();
69
+
70
+ const targetProgress = (i + 1) * checkProgressStep;
71
+
72
+ await animateStepWithMinDuration({
73
+ from: currentProgress,
74
+ to: targetProgress,
75
+ onUpdate: setProgress,
76
+ minDuration: 300,
77
+ });
78
+
79
+ currentProgress = targetProgress;
80
+ }
81
+
82
+ const response = await sendFile({
83
+ file,
84
+ onProgress: setProgress,
85
+ });
86
+ debouncedOnUploadResponse(response);
87
+ onFileChanged(response?.fileId ?? '');
88
+ if (response?.status === SUCCESS_STATUS) {
89
+ debouncedOnFileUploaded?.(false);
90
+ }
91
+ } catch (e) {
92
+ const errorMessage = e instanceof Error ? e.message : DEFAULT_ERROR_TEXT;
93
+ debouncedOnUploadError(errorMessage);
94
+ onFileChanged('');
95
+ }
96
+ debouncedOnFileUploaded?.(false);
97
+ };
98
+
99
+ return { verifyFile, isFileUploading, progress };
100
+ };
@@ -4,3 +4,8 @@ export interface PreventableEvent {
4
4
  }
5
5
 
6
6
  export type PreventableEventWithTarget = PreventableEvent & { target?: EventTarget | null };
7
+
8
+ export type PreventableEventWithTargetFiles = PreventableEvent & {
9
+ target?: HTMLInputElement | null;
10
+ dataTransfer?: DataTransfer;
11
+ };
@@ -5,16 +5,21 @@ import type { DescriptionProps } from '../../model/HeadlineType';
5
5
  interface ProgressBarProps extends DescriptionProps {
6
6
  step?: number;
7
7
  showPercentage?: boolean;
8
+ isOnlyInteger?: boolean;
8
9
  }
9
10
 
10
11
  export const ProgressBar = JSX<ProgressBarProps>(
11
- ({ step = 10, description, showPercentage = true }) => (
12
+ ({ step = 10, description, showPercentage = true, isOnlyInteger = false }) => (
12
13
  <div>
13
14
  <div className="h-4 w-full bg-gray relative">
14
15
  <div className="h-4 bg-green" style={{ width: `${step}%` }} />
15
16
  </div>
16
17
  <div className="relative">
17
- {showPercentage ? <div className="absolute left-2/4 text-green">{step}%</div> : null}
18
+ {showPercentage ? (
19
+ <div className="absolute left-2/4 text-green">
20
+ {isOnlyInteger ? Math.round(step) : step}%
21
+ </div>
22
+ ) : null}
18
23
  {description ? <div className="text-right pr-m text-gray">{description}</div> : null}
19
24
  </div>
20
25
  </div>
@@ -0,0 +1,38 @@
1
+ import { noop } from './noop';
2
+
3
+ interface AnimateProgressProps {
4
+ from: number;
5
+ to: number;
6
+ onUpdate: (value: number) => void;
7
+ minDuration: number;
8
+ }
9
+
10
+ export const animateStepWithMinDuration = ({
11
+ from,
12
+ to,
13
+ onUpdate = noop,
14
+ minDuration = 300,
15
+ }: AnimateProgressProps): Promise<void> => {
16
+ return new Promise((resolve) => {
17
+ const startTime = performance.now();
18
+
19
+ const animate = () => {
20
+ const currentTime = performance.now();
21
+ const elapsed = currentTime - startTime;
22
+ const animationProgress = Math.min(elapsed / minDuration, 1);
23
+ const easeProgress = 1 - Math.pow(1 - animationProgress, 3);
24
+ const value = from + (to - from) * easeProgress;
25
+
26
+ onUpdate(value);
27
+
28
+ if (animationProgress < 1) {
29
+ requestAnimationFrame(animate);
30
+ } else {
31
+ onUpdate(to);
32
+ resolve();
33
+ }
34
+ };
35
+
36
+ requestAnimationFrame(animate);
37
+ });
38
+ };
@@ -0,0 +1,33 @@
1
+ export const isDateValid = (
2
+ value: Date,
3
+ limits: {
4
+ minLimit?: Date;
5
+ maxLimit?: Date;
6
+ },
7
+ ): boolean => {
8
+ if (!value || isNaN(value.getTime())) {
9
+ return false;
10
+ }
11
+
12
+ const { minLimit, maxLimit } = limits;
13
+
14
+ const time = value.getTime();
15
+
16
+ return isValidMin(time, minLimit) && isValidMax(time, maxLimit);
17
+ };
18
+
19
+ const isValidMin = (time: number, minLimit?: Date | null): boolean => {
20
+ if (!minLimit || isNaN(minLimit.getTime())) {
21
+ return true;
22
+ }
23
+
24
+ return time > minLimit.getTime();
25
+ };
26
+
27
+ const isValidMax = (time: number, maxLimit?: Date | null): boolean => {
28
+ if (!maxLimit || isNaN(maxLimit.getTime())) {
29
+ return true;
30
+ }
31
+
32
+ return time < maxLimit.getTime();
33
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.989",
3
+ "version": "0.14.990",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -205,7 +205,7 @@
205
205
  "path": "lib/common.css"
206
206
  },
207
207
  {
208
- "limit": "106 kB",
208
+ "limit": "110 kB",
209
209
  "path": "bundle/bundle.umd.min.js"
210
210
  }
211
211
  ],
@@ -1,4 +1,5 @@
1
1
  import { type JSONRecord, type JSONScalar } from '@redneckz/json-op';
2
+ import { type EndpointType } from '../components/ApplicationForm/ApplicationFormContent';
2
3
  import { type Router } from '../external/useRouter';
3
4
  import { getUserTimezoneOffset } from '../utils/getTimezone';
4
5
  import { API_BASE_URI } from './apiBaseUrl';
@@ -42,15 +43,24 @@ type PhoneOnly = {
42
43
  phone?: string;
43
44
  };
44
45
 
46
+ export type sendProps = {
47
+ body: LeadRequest;
48
+ router: Router;
49
+ endpoint?: EndpointType;
50
+ };
51
+
45
52
  type SubmitBody = PhoneOnly | LeadRequest | CheckCodeProps | VerifiedLeadRequest;
46
53
 
47
54
  export function LeadServiceAPI() {
48
- async function send(body: LeadRequest, router: Router, isIndividualType = false) {
49
- const { serviceDirection } = body;
55
+ async function send({ body, router, endpoint }: sendProps) {
56
+ const calculatedEndpoint = endpoint && getEndpoint(endpoint, body);
57
+ const url = `${API_BASE_URI}/${calculatedEndpoint}`;
50
58
 
51
- const isNaturalPerson = isIndividualType && serviceDirection !== 'Юридическое лицо / ИП';
52
- const url = `${API_BASE_URI}${isNaturalPerson ? '/lead' : '/sendcorporatelead'}`;
53
- const submitBody = getSubmitBody(body, isNaturalPerson, router);
59
+ const submitBody = getSubmitBody({
60
+ body,
61
+ endpoint,
62
+ router,
63
+ });
54
64
 
55
65
  try {
56
66
  const response = await LeadServiceFetch(url, submitBody);
@@ -88,8 +98,8 @@ export function LeadServiceAPI() {
88
98
  async function checkCode({ reqId, code, body }: CheckCodeProps): Promise<CheckCodeResponse> {
89
99
  const submitBody = {
90
100
  requestId: reqId,
91
- confimationCode: code,
92
- leadRequest: getSubmitBody(body, false),
101
+ confimationCode: code, // не исправлять опечатку!
102
+ leadRequest: getSubmitBody({ body }),
93
103
  };
94
104
  try {
95
105
  const response = await LeadServiceFetch(`${API_BASE_URI}/confirmCorporateLead`, submitBody);
@@ -100,9 +110,9 @@ export function LeadServiceAPI() {
100
110
  }
101
111
  }
102
112
 
103
- async function sendPhoneCallRequest(body: LeadRequest, isNaturalPerson = false) {
113
+ async function sendPhoneCallRequest(body: LeadRequest, endpoint?: EndpointType) {
104
114
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
105
- const submitBody = getSubmitBody(body, isNaturalPerson);
115
+ const submitBody = getSubmitBody({ body, endpoint });
106
116
 
107
117
  const formatSubmitBody = getFormatCallbackSubmitBody(submitBody);
108
118
 
@@ -145,3 +155,13 @@ const getFormatCallbackSubmitBody = (submitBody: Partial<LeadRequest>): SubmitBo
145
155
  clientTimezone: getUserTimezoneOffset(),
146
156
  };
147
157
  };
158
+
159
+ const getEndpoint = (endpoint: EndpointType, body: LeadRequest) => {
160
+ const { serviceDirection } = body;
161
+
162
+ if (endpoint === 'lead' && serviceDirection !== 'Юридическое лицо / ИП') {
163
+ return 'lead';
164
+ }
165
+
166
+ return endpoint;
167
+ };