@tap-payments/auth-jsconnect 2.0.42-test → 2.0.42

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 (310) hide show
  1. package/build/@types/app.d.ts +50 -20
  2. package/build/@types/app.js +9 -3
  3. package/build/@types/form.d.ts +21 -12
  4. package/build/api/auth.d.ts +28 -5
  5. package/build/api/auth.js +36 -1
  6. package/build/api/axios.js +2 -2
  7. package/build/api/brand.d.ts +2 -1
  8. package/build/api/brand.js +10 -1
  9. package/build/api/country.d.ts +3 -1
  10. package/build/api/country.js +3 -1
  11. package/build/api/data.d.ts +38 -7
  12. package/build/api/data.js +57 -17
  13. package/build/api/entity.d.ts +51 -5
  14. package/build/api/entity.js +39 -9
  15. package/build/api/firebase.d.ts +1 -1
  16. package/build/api/firebase.js +3 -1
  17. package/build/api/index.d.ts +44 -14
  18. package/build/api/individual.d.ts +76 -19
  19. package/build/api/individual.js +29 -2
  20. package/build/api/lead.d.ts +9 -6
  21. package/build/api/lead.js +8 -1
  22. package/build/app/rootReducer.d.ts +0 -1
  23. package/build/app/rootReducer.js +0 -2
  24. package/build/app/settings.d.ts +9 -2
  25. package/build/app/settings.js +22 -11
  26. package/build/app/store.d.ts +0 -2
  27. package/build/assets/locales/ar.json +258 -183
  28. package/build/assets/locales/en.json +190 -108
  29. package/build/components/AnimationFlow/AnimationFlow.d.ts +4 -1
  30. package/build/components/AnimationFlow/AnimationFlow.js +6 -8
  31. package/build/components/AnimationFlow/BottomSheet.d.ts +2 -1
  32. package/build/components/AnimationFlow/BottomSheet.js +4 -3
  33. package/build/components/AnimationFlow/Dialog.d.ts +4 -1
  34. package/build/components/AnimationFlow/Dialog.js +5 -3
  35. package/build/components/ArabicDatePicker/ArabicDatePicker.d.ts +13 -0
  36. package/build/components/ArabicDatePicker/ArabicDatePicker.js +94 -0
  37. package/build/components/ArabicDatePicker/index.d.ts +2 -0
  38. package/build/components/ArabicDatePicker/index.js +2 -0
  39. package/build/components/ArabicDatePicker/style.css +24 -0
  40. package/build/components/DatePicker/customStyle.css +86 -0
  41. package/build/components/FileInput/DragAndDrop.d.ts +10 -1
  42. package/build/components/FileInput/DragAndDrop.js +108 -8
  43. package/build/components/Lottie/Lottie.d.ts +878 -0
  44. package/build/components/Lottie/Lottie.js +58 -0
  45. package/build/components/Lottie/files/pulsating_circle_waves.json +236 -0
  46. package/build/components/Lottie/files/success.json +425 -0
  47. package/build/components/Lottie/index.d.ts +3 -0
  48. package/build/components/Lottie/index.js +3 -0
  49. package/build/components/OTPField/OTPField.d.ts +2 -1
  50. package/build/components/OTPField/OTPField.js +2 -2
  51. package/build/components/OTPTimer/OTPTimer.js +1 -1
  52. package/build/components/ProgressBar/CircularProgressBar.d.ts +14 -0
  53. package/build/components/ProgressBar/CircularProgressBar.js +48 -0
  54. package/build/components/ProgressBar/index.d.ts +2 -0
  55. package/build/components/ProgressBar/index.js +2 -0
  56. package/build/components/RadioLabel/RadioLabel.d.ts +2 -1
  57. package/build/components/RadioLabel/RadioLabel.js +2 -2
  58. package/build/components/SocialMediaGroup/SocialMediaGroup.d.ts +2 -6
  59. package/build/components/SocialMediaGroup/SocialMediaGroup.js +4 -49
  60. package/build/constants/api.d.ts +6 -0
  61. package/build/constants/api.js +14 -1
  62. package/build/constants/app.d.ts +5 -5
  63. package/build/constants/app.js +62 -32
  64. package/build/constants/assets.d.ts +14 -0
  65. package/build/constants/assets.js +16 -2
  66. package/build/constants/dummy.d.ts +1 -1
  67. package/build/constants/dummy.js +2 -2
  68. package/build/constants/validation.d.ts +10 -0
  69. package/build/constants/validation.js +11 -1
  70. package/build/features/app/auth/authStore.d.ts +30 -4
  71. package/build/features/app/auth/authStore.js +182 -20
  72. package/build/features/app/bank/bankStore.d.ts +16 -0
  73. package/build/features/app/bank/bankStore.js +88 -41
  74. package/build/features/app/business/businessStore.d.ts +22 -3
  75. package/build/features/app/business/businessStore.js +445 -296
  76. package/build/features/app/connect/connectStore.d.ts +34 -31
  77. package/build/features/app/connect/connectStore.js +427 -300
  78. package/build/features/app/entity/entityStore.d.ts +40 -8
  79. package/build/features/app/entity/entityStore.js +389 -149
  80. package/build/features/app/individual/individualStore.d.ts +18 -0
  81. package/build/features/app/individual/individualStore.js +178 -85
  82. package/build/features/app/password/passwordStore.d.ts +1 -7
  83. package/build/features/app/password/passwordStore.js +31 -20
  84. package/build/features/app/tax/taxStore.js +23 -16
  85. package/build/features/auth/Auth.d.ts +2 -1
  86. package/build/features/auth/Auth.js +37 -9
  87. package/build/features/auth/screens/NID/DOB.d.ts +7 -0
  88. package/build/features/auth/screens/NID/DOB.js +47 -0
  89. package/build/features/auth/screens/NID/IDNumber.d.ts +3 -0
  90. package/build/features/auth/screens/NID/IDNumber.js +64 -0
  91. package/build/features/auth/screens/NID/NID.d.ts +5 -0
  92. package/build/features/auth/screens/NID/NID.js +68 -0
  93. package/build/features/auth/screens/NID/TAC.d.ts +3 -0
  94. package/build/features/auth/screens/NID/TAC.js +87 -0
  95. package/build/features/auth/screens/NID/index.d.ts +3 -0
  96. package/build/features/auth/screens/NID/index.js +2 -0
  97. package/build/features/auth/screens/NID/validation.d.ts +27 -0
  98. package/build/features/auth/screens/NID/validation.js +19 -0
  99. package/build/features/auth/screens/OTP/OTP.js +8 -4
  100. package/build/features/auth/screens/OTP/OTPInput.js +9 -2
  101. package/build/features/bank/Bank.js +4 -4
  102. package/build/features/bank/screens/BankDetails/BankDetails.js +18 -5
  103. package/build/features/bank/screens/BankDetails/BankName.js +2 -1
  104. package/build/features/bank/screens/BankDetails/BankStatement.js +41 -8
  105. package/build/features/bank/screens/BankDetails/Beneficiary.js +10 -11
  106. package/build/features/bank/screens/BankDetails/validation.js +2 -2
  107. package/build/features/bank/screens/Success/Success.js +7 -3
  108. package/build/features/bank/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +15 -11
  109. package/build/features/business/Business.js +4 -4
  110. package/build/features/business/screens/Activities/Activities.js +16 -17
  111. package/build/features/business/screens/Activities/ActivitiesList.d.ts +37 -1
  112. package/build/features/business/screens/Activities/ActivitiesList.js +51 -12
  113. package/build/features/business/screens/Activities/OperationStartDate.d.ts +15 -1
  114. package/build/features/business/screens/Activities/OperationStartDate.js +21 -2
  115. package/build/features/business/screens/Activities/validation.d.ts +0 -51
  116. package/build/features/business/screens/Activities/validation.js +0 -9
  117. package/build/features/business/screens/BusinessType/BusinessType.js +20 -7
  118. package/build/features/business/screens/BusinessType/EntityName.d.ts +6 -0
  119. package/build/features/business/screens/BusinessType/EntityName.js +56 -0
  120. package/build/features/business/screens/BusinessType/LicenseCertificate.d.ts +6 -0
  121. package/build/features/business/screens/BusinessType/LicenseCertificate.js +76 -0
  122. package/build/features/business/screens/BusinessType/LicenseList.js +26 -7
  123. package/build/features/business/screens/BusinessType/LicenseNumber.js +12 -6
  124. package/build/features/business/screens/BusinessType/LicenseType.d.ts +6 -0
  125. package/build/features/business/screens/BusinessType/LicenseType.js +78 -0
  126. package/build/features/business/screens/BusinessType/validation.d.ts +19 -0
  127. package/build/features/business/screens/BusinessType/validation.js +52 -3
  128. package/build/features/business/screens/CivilID/CivilID.d.ts +5 -0
  129. package/build/features/business/screens/CivilID/CivilID.js +67 -0
  130. package/build/features/business/screens/CivilID/IDNumber.d.ts +7 -0
  131. package/build/features/business/screens/CivilID/IDNumber.js +59 -0
  132. package/build/features/business/screens/CivilID/index.d.ts +3 -0
  133. package/build/features/business/screens/CivilID/index.js +2 -0
  134. package/build/features/business/screens/CivilID/validation.d.ts +8 -0
  135. package/build/features/business/screens/CivilID/validation.js +4 -0
  136. package/build/features/business/screens/Customers/CustomerLocations.d.ts +15 -2
  137. package/build/features/business/screens/Customers/CustomerLocations.js +32 -8
  138. package/build/features/business/screens/Customers/Customers.js +15 -9
  139. package/build/features/business/screens/Customers/ExpectedCustomers.js +16 -4
  140. package/build/features/business/screens/Customers/ExpectedSalesRange.js +32 -14
  141. package/build/features/business/screens/Customers/RefundPolicy.js +8 -2
  142. package/build/features/business/screens/Customers/TransactionPolicy.js +8 -2
  143. package/build/features/business/screens/IDBOD/IDBOD.js +15 -2
  144. package/build/features/business/screens/OTP/OTP.js +15 -2
  145. package/build/features/business/screens/Success/Success.js +10 -3
  146. package/build/features/business/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +13 -10
  147. package/build/features/business/screens/Verify/Verify.js +4 -4
  148. package/build/features/business/screens/VerifyPACI/VerifyPACI.d.ts +5 -0
  149. package/build/features/business/screens/VerifyPACI/VerifyPACI.js +159 -0
  150. package/build/features/business/screens/VerifyPACI/VerifyPACILoading.d.ts +6 -0
  151. package/build/features/business/screens/VerifyPACI/VerifyPACILoading.js +23 -0
  152. package/build/features/business/screens/VerifyPACI/VerifyPACISuccess.d.ts +5 -0
  153. package/build/features/business/screens/VerifyPACI/VerifyPACISuccess.js +8 -0
  154. package/build/features/business/screens/VerifyPACI/index.d.ts +3 -0
  155. package/build/features/business/screens/VerifyPACI/index.js +2 -0
  156. package/build/features/connect/Connect.d.ts +1 -0
  157. package/build/features/connect/Connect.js +38 -10
  158. package/build/features/connect/screens/CivilID/CivilID.d.ts +5 -0
  159. package/build/features/connect/screens/CivilID/CivilID.js +102 -0
  160. package/build/features/connect/screens/CivilID/IDNumber.d.ts +7 -0
  161. package/build/features/connect/screens/CivilID/IDNumber.js +59 -0
  162. package/build/features/connect/screens/CivilID/index.d.ts +3 -0
  163. package/build/features/connect/screens/CivilID/index.js +2 -0
  164. package/build/features/connect/screens/CivilID/validation.d.ts +8 -0
  165. package/build/features/connect/screens/CivilID/validation.js +4 -0
  166. package/build/features/connect/screens/Individual/Email.js +11 -3
  167. package/build/features/connect/screens/Individual/Individual.js +44 -28
  168. package/build/features/connect/screens/Merchant/BrandList.js +15 -7
  169. package/build/features/connect/screens/Merchant/BrandName.js +7 -4
  170. package/build/features/connect/screens/Merchant/Merchant.js +41 -64
  171. package/build/features/connect/screens/Merchant/SalesChannels.d.ts +3 -1
  172. package/build/features/connect/screens/Merchant/SalesChannels.js +30 -31
  173. package/build/features/connect/screens/Merchant/SocialMedia.d.ts +1 -4
  174. package/build/features/connect/screens/Merchant/SocialMedia.js +129 -109
  175. package/build/features/connect/screens/Merchant/TAC.js +8 -2
  176. package/build/features/connect/screens/Merchant/validation.d.ts +13 -123
  177. package/build/features/connect/screens/Merchant/validation.js +108 -173
  178. package/build/features/connect/screens/Mobile/Mobile.js +33 -12
  179. package/build/features/connect/screens/NID/NID.js +5 -1
  180. package/build/features/connect/screens/OTP/OTP.js +20 -6
  181. package/build/features/connect/screens/OTP/OTPInput.js +3 -2
  182. package/build/features/connect/screens/VerifyPACI/VerifyPACI.d.ts +5 -0
  183. package/build/features/connect/screens/VerifyPACI/VerifyPACI.js +159 -0
  184. package/build/features/connect/screens/VerifyPACI/VerifyPACILoading.d.ts +6 -0
  185. package/build/features/connect/screens/VerifyPACI/VerifyPACILoading.js +23 -0
  186. package/build/features/connect/screens/VerifyPACI/VerifyPACISuccess.d.ts +5 -0
  187. package/build/features/connect/screens/VerifyPACI/VerifyPACISuccess.js +8 -0
  188. package/build/features/connect/screens/VerifyPACI/index.d.ts +3 -0
  189. package/build/features/connect/screens/VerifyPACI/index.js +2 -0
  190. package/build/features/entity/Entity.js +6 -6
  191. package/build/features/entity/screens/Customers/CustomerLocations.d.ts +118 -0
  192. package/build/features/entity/screens/Customers/CustomerLocations.js +171 -0
  193. package/build/features/entity/screens/Customers/Customers.d.ts +5 -0
  194. package/build/features/entity/screens/Customers/Customers.js +90 -0
  195. package/build/features/entity/screens/Customers/ExpectedCustomers.d.ts +8 -0
  196. package/build/features/entity/screens/Customers/ExpectedCustomers.js +98 -0
  197. package/build/features/entity/screens/Customers/ExpectedSalesRange.d.ts +8 -0
  198. package/build/features/entity/screens/Customers/ExpectedSalesRange.js +127 -0
  199. package/build/features/entity/screens/Customers/RefundPolicy.d.ts +36 -0
  200. package/build/features/entity/screens/Customers/RefundPolicy.js +84 -0
  201. package/build/features/entity/screens/Customers/TransactionPolicy.d.ts +3 -0
  202. package/build/features/entity/screens/Customers/TransactionPolicy.js +44 -0
  203. package/build/features/entity/screens/Customers/index.d.ts +3 -0
  204. package/build/features/entity/screens/Customers/index.js +2 -0
  205. package/build/features/entity/screens/Customers/validation.d.ts +20 -0
  206. package/build/features/entity/screens/Customers/validation.js +13 -0
  207. package/build/features/entity/screens/EntityInfoConfirm/ActivitiesList.d.ts +2 -1
  208. package/build/features/entity/screens/EntityInfoConfirm/ActivitiesList.js +25 -15
  209. package/build/features/entity/screens/EntityInfoConfirm/Article.d.ts +3 -0
  210. package/build/features/entity/screens/EntityInfoConfirm/Article.js +73 -0
  211. package/build/features/entity/screens/EntityInfoConfirm/EntityInfo.js +38 -10
  212. package/build/features/entity/screens/EntityInfoConfirm/LicenseName.js +20 -5
  213. package/build/features/entity/screens/EntityInfoConfirm/LicenseNumber.d.ts +2 -1
  214. package/build/features/entity/screens/EntityInfoConfirm/LicenseNumber.js +34 -5
  215. package/build/features/entity/screens/EntityInfoConfirm/OperationStartDate.js +13 -18
  216. package/build/features/entity/screens/EntityInfoConfirm/validation.d.ts +75 -41
  217. package/build/features/entity/screens/EntityInfoConfirm/validation.js +76 -10
  218. package/build/features/entity/screens/Success/Success.js +7 -3
  219. package/build/features/entity/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +9 -8
  220. package/build/features/entity/screens/Verify/Verify.js +18 -5
  221. package/build/features/featuresScreens.d.ts +0 -1
  222. package/build/features/featuresScreens.js +30 -7
  223. package/build/features/individual/Individual.js +4 -4
  224. package/build/features/individual/screens/AdditionalIndividualInfo/AdditionalIndividualInfo.js +18 -25
  225. package/build/features/individual/screens/AdditionalIndividualInfo/MonthlyIncome.js +15 -3
  226. package/build/features/individual/screens/AdditionalIndividualInfo/Occupation.js +11 -3
  227. package/build/features/individual/screens/AdditionalIndividualInfo/SourceOfIncome.js +2 -2
  228. package/build/features/individual/screens/Success/Success.js +7 -3
  229. package/build/features/individual/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +15 -11
  230. package/build/features/individual/screens/Verify/Verify.js +18 -5
  231. package/build/features/password/Password.js +4 -4
  232. package/build/features/password/screens/CreatePassword/CreatePassword.js +16 -3
  233. package/build/features/password/screens/OTP/OTP.js +15 -2
  234. package/build/features/password/screens/Success/Success.js +7 -3
  235. package/build/features/password/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +15 -12
  236. package/build/features/password/screens/Verify/Verify.js +16 -3
  237. package/build/features/shared/Background/Background.d.ts +2 -5
  238. package/build/features/shared/Background/Background.js +7 -3
  239. package/build/features/shared/Button/EmailProvidersButtons.d.ts +2 -1
  240. package/build/features/shared/Button/EmailProvidersButtons.js +7 -2
  241. package/build/features/shared/Button/MobileButton.d.ts +2 -1
  242. package/build/features/shared/Button/MobileButton.js +2 -2
  243. package/build/features/shared/Dialog/CloseDialog.d.ts +11 -0
  244. package/build/features/shared/Dialog/CloseDialog.js +71 -0
  245. package/build/features/shared/Dialog/DialogContainer.d.ts +8 -0
  246. package/build/features/shared/Dialog/DialogContainer.js +56 -0
  247. package/build/features/shared/Dialog/index.d.ts +4 -0
  248. package/build/features/shared/Dialog/index.js +4 -0
  249. package/build/features/shared/Input/Input.d.ts +1 -1
  250. package/build/features/shared/Input/Input.js +2 -2
  251. package/build/features/shared/SuccessScreen/SuccessScreen.js +3 -2
  252. package/build/features/shared/UploadFile/UploadFile.d.ts +10 -3
  253. package/build/features/shared/UploadFile/UploadFile.js +24 -9
  254. package/build/features/signIn/SignIn.js +4 -4
  255. package/build/features/signIn/screens/Email/Email.js +4 -2
  256. package/build/features/signIn/screens/Mobile/Mobile.js +5 -1
  257. package/build/features/signIn/screens/OTP/OTP.js +14 -1
  258. package/build/features/signIn/screens/Password/Password.js +15 -2
  259. package/build/features/tax/Tax.js +6 -6
  260. package/build/features/tax/screens/Success/Success.js +9 -3
  261. package/build/features/tax/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +14 -10
  262. package/build/features/tax/screens/TaxDetails/TaxDetails.js +16 -3
  263. package/build/features/tax/screens/Verify/Verify.js +16 -3
  264. package/build/hooks/index.d.ts +2 -0
  265. package/build/hooks/index.js +2 -0
  266. package/build/hooks/useAppConfig.d.ts +3 -1
  267. package/build/hooks/useAppConfig.js +2 -2
  268. package/build/hooks/useAppDispatch.d.ts +0 -1
  269. package/build/hooks/useErrorListener.js +0 -6
  270. package/build/hooks/useScreen.d.ts +3 -0
  271. package/build/hooks/useScreen.js +14 -0
  272. package/build/hooks/useSetFromDefaultValues.d.ts +2 -0
  273. package/build/hooks/useSetFromDefaultValues.js +24 -0
  274. package/build/index.css +140 -0
  275. package/build/index.d.ts +2 -3
  276. package/build/index.js +1 -4
  277. package/build/utils/array.d.ts +49 -1
  278. package/build/utils/array.js +58 -0
  279. package/build/utils/common.d.ts +1 -0
  280. package/build/utils/common.js +3 -0
  281. package/build/utils/device.d.ts +1 -0
  282. package/build/utils/device.js +13 -0
  283. package/build/utils/index.d.ts +1 -0
  284. package/build/utils/index.js +1 -0
  285. package/build/utils/locale.js +1 -1
  286. package/build/utils/object.d.ts +1 -0
  287. package/build/utils/object.js +12 -0
  288. package/build/utils/string.d.ts +13 -0
  289. package/build/utils/string.js +71 -1
  290. package/build/utils/validation.d.ts +2 -0
  291. package/build/utils/validation.js +6 -0
  292. package/package.json +4 -3
  293. package/build/features/app/otp/otpStore.d.ts +0 -28
  294. package/build/features/app/otp/otpStore.js +0 -153
  295. package/build/features/business/screens/Activities/SalesChannels.d.ts +0 -5
  296. package/build/features/business/screens/Activities/SalesChannels.js +0 -112
  297. package/build/features/entity/screens/EntityInfoConfirm/SalesChannels.d.ts +0 -5
  298. package/build/features/entity/screens/EntityInfoConfirm/SalesChannels.js +0 -112
  299. package/build/features/otp/OTP.d.ts +0 -7
  300. package/build/features/otp/OTP.js +0 -58
  301. package/build/features/otp/index.d.ts +0 -0
  302. package/build/features/otp/index.js +0 -1
  303. package/build/features/otp/screens/OTPVerify/OTPInput.d.ts +0 -6
  304. package/build/features/otp/screens/OTPVerify/OTPInput.js +0 -47
  305. package/build/features/otp/screens/OTPVerify/Verify.d.ts +0 -5
  306. package/build/features/otp/screens/OTPVerify/Verify.js +0 -49
  307. package/build/features/otp/screens/OTPVerify/index.d.ts +0 -2
  308. package/build/features/otp/screens/OTPVerify/index.js +0 -2
  309. package/build/features/otp/screens/OTPVerify/validation.d.ts +0 -8
  310. package/build/features/otp/screens/OTPVerify/validation.js +0 -4
@@ -0,0 +1,78 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import * as React from 'react';
14
+ import { styled, alpha } from '@mui/material/styles';
15
+ import Collapse from '../../../../components/Collapse';
16
+ import { useTranslation } from 'react-i18next';
17
+ import { useController, useFormContext } from 'react-hook-form';
18
+ import Text from '../../../../components/Text';
19
+ import { ScreenContainer } from '../../../shared/Containers';
20
+ import Mandatory from '../../../shared/Mandatory';
21
+ import RadioLabel from '../../../../components/RadioLabel';
22
+ import { BusinessType } from '../../../../@types';
23
+ import RadioGroup from '../../../../components/RadioGroup';
24
+ import Radio from '../../../../components/Radio';
25
+ import { OTHER_CR_LICENSE, OTHER_FL_LICENSE } from '../../../../constants';
26
+ import { businessSelector, clearError } from '../../../app/business/businessStore';
27
+ import { useAppDispatch, useAppSelector } from '../../../../hooks';
28
+ import { isKW } from '../../../../utils';
29
+ import { settingsSelector } from '../../../../app/settings';
30
+ var LabelTextStyled = styled(Text)(function (_a) {
31
+ var theme = _a.theme;
32
+ return (__assign(__assign({}, theme.typography.caption), { color: alpha(theme.palette.text.primary, 0.6), marginBlockEnd: theme.spacing(0.625) }));
33
+ });
34
+ var RadioGroupStyled = styled(RadioGroup)(function (_a) {
35
+ var theme = _a.theme;
36
+ return ({
37
+ marginInlineStart: theme.spacing(0.25)
38
+ });
39
+ });
40
+ var RadioStyled = styled(Radio)(function (_a) {
41
+ var theme = _a.theme;
42
+ return ({
43
+ '& .MuiSvgIcon-root': {
44
+ fontSize: theme.spacing(2.25),
45
+ width: theme.spacing(2.25),
46
+ height: theme.spacing(2.25)
47
+ }
48
+ });
49
+ });
50
+ var LicenseType = function (_a) {
51
+ var show = _a.show;
52
+ var t = useTranslation().t;
53
+ var _b = useFormContext(), control = _b.control, setValue = _b.setValue;
54
+ var error = useAppSelector(businessSelector).error;
55
+ var settingsData = useAppSelector(settingsSelector).data;
56
+ var country_code = settingsData.businessCountry.iso2;
57
+ var selectedLicenseControl = useController({ control: control, name: 'selectedLicense' });
58
+ var dispatch = useAppDispatch();
59
+ var isKWCountry = React.useMemo(function () { return isKW(country_code); }, [country_code]);
60
+ var handleOnChange = function (_a) {
61
+ var target = _a.target;
62
+ if (error)
63
+ dispatch(clearError());
64
+ selectedLicenseControl.field.onChange(target.value === BusinessType.FL ? OTHER_FL_LICENSE : OTHER_CR_LICENSE);
65
+ if (isKWCountry && target.value === BusinessType.FL) {
66
+ setValue('licenseNumber', '', { shouldValidate: true });
67
+ setValue('certificateFile', undefined, { shouldValidate: true });
68
+ setValue('certificateId', undefined, { shouldValidate: true });
69
+ }
70
+ };
71
+ var selectedLicenseValue = selectedLicenseControl.field.value;
72
+ return (_jsx(Collapse, __assign({ in: show }, { children: _jsxs(ScreenContainer, __assign({ sx: { pb: 1.5, pl: 2.5, pr: 2.5 } }, { children: [_jsxs(LabelTextStyled, { children: [t('signup_business_type_label'), _jsx(Mandatory, {})] }), _jsxs(RadioGroupStyled, __assign({ value: selectedLicenseValue != null
73
+ ? (selectedLicenseValue === null || selectedLicenseValue === void 0 ? void 0 : selectedLicenseValue.type) === BusinessType.FL
74
+ ? BusinessType.FL
75
+ : BusinessType.CR
76
+ : false, onChange: handleOnChange }, { children: [_jsx(RadioLabel, { value: BusinessType.CR, label: t('commercial_reg'), control: _jsx(RadioStyled, { color: 'primary', disableFocusRipple: true, disableRipple: true, disableTouchRipple: true, focusRipple: false }) }), _jsx(RadioLabel, { value: BusinessType.FL, label: t('homemaker_reg'), control: _jsx(RadioStyled, { color: 'primary', disableFocusRipple: true, disableRipple: true, disableTouchRipple: true, focusRipple: false }) })] }))] })) })));
77
+ };
78
+ export default LicenseType;
@@ -9,3 +9,22 @@ export declare const LicenseValidationSchema: yup.ObjectSchema<import("yup/lib/o
9
9
  selectedLicense: any;
10
10
  licenseNumber: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
11
11
  }>>>;
12
+ export declare const KWLicenseValidationSchema: yup.ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
13
+ selectedLicense: any;
14
+ licenseNumber: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
15
+ entityLegalName: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
16
+ certificateId: yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
17
+ certificateFile: any;
18
+ }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
19
+ selectedLicense: any;
20
+ licenseNumber: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
21
+ entityLegalName: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
22
+ certificateId: yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
23
+ certificateFile: any;
24
+ }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
25
+ selectedLicense: any;
26
+ licenseNumber: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
27
+ entityLegalName: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
28
+ certificateId: yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
29
+ certificateFile: any;
30
+ }>>>;
@@ -1,5 +1,5 @@
1
1
  import * as yup from 'yup';
2
- import { FL_NUMBER_LENGTH, CR_NUMBER_LENGTH } from '../../../../constants';
2
+ import { REGEX_BRAND_NAME, KW_MIN_LICENSE_LENGTH, MAX_FILE_SIZE, VALID_FILE_FORMATS, FL_MIN_LICENSE_LENGTH, CR_MIN_LICENSE_LENGTH } from '../../../../constants';
3
3
  import { BusinessType } from '../../../../@types';
4
4
  var objectElements = {
5
5
  legal_name: yup.object().shape({
@@ -23,10 +23,59 @@ export var LicenseValidationSchema = yup.object().shape({
23
23
  if (length === 0)
24
24
  return true;
25
25
  if (isCR) {
26
- return length === CR_NUMBER_LENGTH ? true : this.createError({ message: 'cr_max_length' });
26
+ return length > CR_MIN_LICENSE_LENGTH ? true : this.createError({ message: 'cr_max_length' });
27
27
  }
28
- return length === FL_NUMBER_LENGTH ? true : this.createError({ message: 'fl_max_length' });
28
+ return length > FL_MIN_LICENSE_LENGTH ? true : this.createError({ message: 'fl_max_length' });
29
29
  }
30
30
  })
31
31
  .required('')
32
32
  });
33
+ export var KWLicenseValidationSchema = yup.object().shape({
34
+ selectedLicense: yup.object().shape(objectElements).required(''),
35
+ licenseNumber: yup
36
+ .string()
37
+ .when('selectedLicense', function (selectedLicense) {
38
+ var isCR = (selectedLicense === null || selectedLicense === void 0 ? void 0 : selectedLicense.type) === BusinessType.CR;
39
+ if (!isCR) {
40
+ return yup.string().optional();
41
+ }
42
+ return yup
43
+ .string()
44
+ .required('')
45
+ .test({
46
+ test: function (value) {
47
+ var length = (value === null || value === void 0 ? void 0 : value.length) || 0;
48
+ if (length === 0)
49
+ return true;
50
+ return length >= KW_MIN_LICENSE_LENGTH ? true : this.createError({ message: 'cr_kw_max_length' });
51
+ }
52
+ });
53
+ })
54
+ .required(''),
55
+ entityLegalName: yup
56
+ .string()
57
+ .test({
58
+ test: function (value) {
59
+ var length = (value === null || value === void 0 ? void 0 : value.length) || 0;
60
+ if (length === 0)
61
+ return true;
62
+ return !(value === null || value === void 0 ? void 0 : value.match(REGEX_BRAND_NAME)) || (value === null || value === void 0 ? void 0 : value.length) < 3
63
+ ? this.createError({ message: 'enter_entity_name_english_chars_numbers_space' })
64
+ : true;
65
+ }
66
+ })
67
+ .required(''),
68
+ certificateId: yup.string().optional(),
69
+ certificateFile: yup
70
+ .mixed()
71
+ .test({
72
+ test: function (value) {
73
+ if (!!value)
74
+ return VALID_FILE_FORMATS.includes(value === null || value === void 0 ? void 0 : value.type) && (value === null || value === void 0 ? void 0 : value.size) < MAX_FILE_SIZE
75
+ ? true
76
+ : this.createError({ message: 'alert_file_upload' });
77
+ return true;
78
+ }
79
+ })
80
+ .optional()
81
+ });
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export interface CivilIDProps {
3
+ }
4
+ declare const _default: React.MemoExoticComponent<({}: CivilIDProps) => JSX.Element>;
5
+ export default _default;
@@ -0,0 +1,67 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
+ import * as React from 'react';
25
+ import { useTranslation } from 'react-i18next';
26
+ import { styled } from '@mui/material/styles';
27
+ import { useForm, FormProvider } from 'react-hook-form';
28
+ import { yupResolver } from '@hookform/resolvers/yup';
29
+ import { civilIDValidationSchema } from './validation';
30
+ import { useAppDispatch, useLanguage, useAppSelector, useSetFromDefaultValues } from '../../../../hooks';
31
+ import { settingsSelector } from '../../../../app/settings';
32
+ import { clearError, businessSelector, createCivilIdAuth } from '../../../app/business/businessStore';
33
+ import Form from '../../../../components/Form';
34
+ import Button from '../../../shared/Button';
35
+ import { ScreenContainer } from '../../../shared/Containers';
36
+ import IDNumber from './IDNumber';
37
+ var FormStyled = styled(Form)(function () { return ({
38
+ display: 'flex',
39
+ flexDirection: 'column'
40
+ }); });
41
+ var CivilID = function (_a) {
42
+ var isAr = useLanguage().isAr;
43
+ var dispatch = useAppDispatch();
44
+ var t = useTranslation().t;
45
+ var _b = useAppSelector(businessSelector), data = _b.data, loading = _b.loading, error = _b.error;
46
+ var settingsStore = useAppSelector(settingsSelector);
47
+ var _c = data.civilIdData, responseBody = _c.responseBody, defaultValues = __rest(_c, ["responseBody"]);
48
+ var methods = useForm({
49
+ resolver: yupResolver(civilIDValidationSchema),
50
+ defaultValues: defaultValues,
51
+ mode: 'onChange'
52
+ });
53
+ useSetFromDefaultValues(methods, defaultValues);
54
+ React.useEffect(function () {
55
+ handleClearError();
56
+ }, [methods.formState.isValid]);
57
+ var onSubmit = function (data) {
58
+ dispatch(createCivilIdAuth(data));
59
+ };
60
+ var handleClearError = function () {
61
+ if (error)
62
+ dispatch(clearError());
63
+ };
64
+ var disabled = !methods.formState.isValid || !!error;
65
+ return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(IDNumber, { sx: { mb: 7.5, transition: 'mb 0.3s' } }), _jsx(Button, __assign({ loading: loading, isAr: isAr, disableBack: true, disabled: disabled || settingsStore.loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
66
+ };
67
+ export default React.memo(CivilID);
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ interface IDNumberProps {
4
+ sx: SxProps<Theme> | undefined;
5
+ }
6
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<IDNumberProps & React.RefAttributes<unknown>>>;
7
+ export default _default;
@@ -0,0 +1,59 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import * as React from 'react';
14
+ import Box from '@mui/material/Box';
15
+ import { useTranslation } from 'react-i18next';
16
+ import { useController, useFormContext } from 'react-hook-form';
17
+ import { styled, alpha } from '@mui/material/styles';
18
+ import Text from '../../../../components/Text';
19
+ import Input from '../../../shared/Input';
20
+ import ClearIcon from '../../../shared/ClearIcon';
21
+ import CheckIcon from '../../../shared/CheckIcon';
22
+ import ScreenContainer from '../../../shared/Containers/ScreenContainer';
23
+ import { removeAllOtherThanCharsAndNumber } from '../../../../utils';
24
+ import { CIVIL_ID_NUMBER_LENGTH } from '../../../../constants';
25
+ var LabelContainerStyled = styled(Box)(function (_a) {
26
+ var theme = _a.theme;
27
+ return ({
28
+ display: 'flex',
29
+ justifyContent: 'space-between',
30
+ padding: theme.spacing(0, 2.5, 1.25, 2.5)
31
+ });
32
+ });
33
+ var InputLabelStyled = styled(Text)(function (_a) {
34
+ var theme = _a.theme;
35
+ return (__assign(__assign({ color: alpha(theme.palette.text.primary, 0.6), fontWeight: theme.typography.fontWeightMedium }, theme.typography.caption), { lineHeight: theme.spacing(2.5) }));
36
+ });
37
+ var IDNumber = React.forwardRef(function (_a, ref) {
38
+ var _b;
39
+ var sx = _a.sx;
40
+ var t = useTranslation().t;
41
+ var _c = useFormContext(), control = _c.control, setValue = _c.setValue;
42
+ var civilIdControl = useController({ control: control, name: 'civilId' });
43
+ React.useEffect(function () {
44
+ if (civilIdControl.field.value)
45
+ setValue('civilId', civilIdControl.field.value, { shouldValidate: true });
46
+ }, []);
47
+ var handleIdChange = function (_a) {
48
+ var target = _a.target;
49
+ var value = removeAllOtherThanCharsAndNumber(target.value);
50
+ civilIdControl.field.onChange(value);
51
+ };
52
+ var clearIdNumber = function () {
53
+ civilIdControl.field.onChange('');
54
+ };
55
+ var idValue = civilIdControl.field.value;
56
+ var error = (_b = civilIdControl.fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
57
+ return (_jsxs(ScreenContainer, __assign({ ref: ref, sx: sx }, { children: [_jsx(LabelContainerStyled, { children: _jsx(InputLabelStyled, { children: t('enter_civil_id') }) }), _jsx(Input, { dir: 'ltr', type: 'text', inputProps: { maxLength: CIVIL_ID_NUMBER_LENGTH }, onChange: handleIdChange, value: idValue, endAdornment: !error && idValue ? _jsx(CheckIcon, {}) : idValue && _jsx(ClearIcon, { onClick: clearIdNumber }), placeholder: t('civil_id_placeholder'), warningType: 'alert', warningMessage: error && t(error), required: true })] })));
58
+ });
59
+ export default React.memo(IDNumber);
@@ -0,0 +1,3 @@
1
+ import CivilID, { CivilIDProps } from './CivilID';
2
+ export type { CivilIDProps };
3
+ export default CivilID;
@@ -0,0 +1,2 @@
1
+ import CivilID from './CivilID';
2
+ export default CivilID;
@@ -0,0 +1,8 @@
1
+ import * as yup from 'yup';
2
+ export declare const civilIDValidationSchema: yup.ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
3
+ civilId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
4
+ }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
5
+ civilId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
6
+ }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
7
+ civilId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
8
+ }>>>;
@@ -0,0 +1,4 @@
1
+ import * as yup from 'yup';
2
+ export var civilIDValidationSchema = yup.object().shape({
3
+ civilId: yup.string().matches(/^\d+$/, 'invalid_civil_id').min(12, 'invalid_civil_id').required('invalid_civil_id')
4
+ });
@@ -12,6 +12,19 @@ export declare const InputLabelStyled: import("@emotion/styled").StyledComponent
12
12
  } & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "key" | keyof React.HTMLAttributes<HTMLSpanElement>> & {
13
13
  ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
14
14
  }, keyof import("@mui/material/OverridableComponent").CommonProps | ("border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "color" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "p" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "typography" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform") | "children" | "sx" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
15
+ export declare const BaseLabelStyled: import("@emotion/styled").StyledComponent<import("@mui/system").SystemProps<import("@mui/material/styles").Theme> & {
16
+ align?: "right" | "left" | "inherit" | "center" | "justify" | undefined;
17
+ children?: React.ReactNode;
18
+ classes?: Partial<import("@mui/material").TypographyClasses> | undefined;
19
+ gutterBottom?: boolean | undefined;
20
+ noWrap?: boolean | undefined;
21
+ paragraph?: boolean | undefined;
22
+ sx?: import("@mui/material/styles").SxProps<import("@mui/material/styles").Theme> | undefined;
23
+ variant?: "button" | "caption" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "inherit" | "overline" | "subtitle1" | "subtitle2" | "body1" | "body2" | undefined;
24
+ variantMapping?: Partial<Record<"button" | "caption" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "inherit" | "overline" | "subtitle1" | "subtitle2" | "body1" | "body2", string>> | undefined;
25
+ } & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "key" | keyof React.HTMLAttributes<HTMLSpanElement>> & {
26
+ ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
27
+ }, keyof import("@mui/material/OverridableComponent").CommonProps | ("border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "color" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "p" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "typography" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform") | "children" | "sx" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
15
28
  export declare const InputStyled: import("@emotion/styled").StyledComponent<Pick<import("../../../../components/Input").InputProps, "name" | "type" | "className" | "style" | "classes" | "color" | "margin" | "translate" | "slot" | "title" | "ref" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "sx" | "size" | "disabled" | "error" | "components" | "componentsProps" | "value" | "autoFocus" | "fullWidth" | "required" | "rows" | "inputProps" | "inputRef" | "readOnly" | "autoComplete" | "disableInjectingGlobalStyles" | "endAdornment" | "inputComponent" | "multiline" | "renderSuffix" | "maxRows" | "minRows" | "startAdornment" | "disableUnderline" | "onEnterPressed" | "warningMessage"> & {
16
29
  placeholder?: string | undefined;
17
30
  hide?: boolean | undefined;
@@ -35,7 +48,7 @@ export declare const NameContainer: import("@emotion/styled").StyledComponent<im
35
48
  export declare const CheckIconStyled: import("@emotion/styled").StyledComponent<{
36
49
  children?: React.ReactNode;
37
50
  classes?: Partial<import("@mui/material").SvgIconClasses> | undefined;
38
- color?: "inherit" | "disabled" | "error" | "info" | "primary" | "secondary" | "action" | "success" | "warning" | undefined;
51
+ color?: "inherit" | "disabled" | "error" | "success" | "info" | "primary" | "secondary" | "action" | "warning" | undefined;
39
52
  fontSize?: "small" | "inherit" | "medium" | "large" | undefined;
40
53
  htmlColor?: string | undefined;
41
54
  inheritViewBox?: boolean | undefined;
@@ -49,7 +62,7 @@ export declare const CheckIconStyled: import("@emotion/styled").StyledComponent<
49
62
  export declare const RemainingCheck: import("@emotion/styled").StyledComponent<{
50
63
  children?: React.ReactNode;
51
64
  classes?: Partial<import("@mui/material").SvgIconClasses> | undefined;
52
- color?: "inherit" | "disabled" | "error" | "info" | "primary" | "secondary" | "action" | "success" | "warning" | undefined;
65
+ color?: "inherit" | "disabled" | "error" | "success" | "info" | "primary" | "secondary" | "action" | "warning" | undefined;
53
66
  fontSize?: "small" | "inherit" | "medium" | "large" | undefined;
54
67
  htmlColor?: string | undefined;
55
68
  inheritViewBox?: boolean | undefined;
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
23
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
24
24
  import * as React from 'react';
25
25
  import Box from '@mui/material/Box';
26
26
  import { useTranslation } from 'react-i18next';
@@ -31,14 +31,21 @@ import Collapse from '../../../../components/Collapse';
31
31
  import CheckIcon from '@mui/icons-material/Check';
32
32
  import ExpandIcon from '../../../../components/ExpandIcon';
33
33
  import Input from '../../../../components/Input';
34
+ import Tooltip from '../../../../components/Tooltip';
34
35
  import SimpleList from '../../../../components/SimpleList';
35
36
  import { ScreenContainer } from '../../../shared/Containers';
36
37
  import { useLanguage, useAppSelector, useAppDispatch } from '../../../../hooks';
37
38
  import { businessSelector, clearError } from '../../../app/business/businessStore';
39
+ import Search from '../../../../features/shared/Search';
40
+ import { InfoIconStyled, InfoOutlinedIconStyled, LabelContainerStyled } from '../Activities/ActivitiesList';
38
41
  export var InputLabelStyled = styled(Text)(function (_a) {
39
42
  var theme = _a.theme;
40
43
  return (__assign({ margin: theme.spacing(2.5, 2.5, 1.5, 2.5), color: alpha(theme.palette.text.primary, 0.4) }, theme.typography.caption));
41
44
  });
45
+ export var BaseLabelStyled = styled(Text)(function (_a) {
46
+ var theme = _a.theme;
47
+ return (__assign({ color: alpha(theme.palette.text.primary, 0.4) }, theme.typography.caption));
48
+ });
42
49
  export var InputStyled = styled(Input)(function (_a) {
43
50
  var theme = _a.theme;
44
51
  return ({
@@ -81,6 +88,7 @@ var customerLocations = function (_a) {
81
88
  var dispatch = useAppDispatch();
82
89
  var customerLocationsControl = useController({ name: 'customerLocations', control: control });
83
90
  var _d = useAppSelector(businessSelector), data = _d.data, error = _d.error;
91
+ var _e = React.useState(false), isHovered = _e[0], setIsHovered = _e[1];
84
92
  var activitiesData = data.activitiesData;
85
93
  var response = activitiesData.responseBody;
86
94
  var onOpenList = function (event) {
@@ -89,9 +97,12 @@ var customerLocations = function (_a) {
89
97
  (_a = rest.onListOpen) === null || _a === void 0 ? void 0 : _a.call(rest);
90
98
  };
91
99
  var onCloseList = function () {
92
- var _a;
100
+ var _a, _b;
93
101
  setAnchorEl(null);
94
102
  (_a = rest.onListClose) === null || _a === void 0 ? void 0 : _a.call(rest);
103
+ if (((_b = response === null || response === void 0 ? void 0 : response.customerBases) === null || _b === void 0 ? void 0 : _b.length) > 0) {
104
+ setCustomerLocationsList(response === null || response === void 0 ? void 0 : response.customerBases);
105
+ }
95
106
  };
96
107
  React.useEffect(function () {
97
108
  var _a;
@@ -106,15 +117,28 @@ var customerLocations = function (_a) {
106
117
  };
107
118
  var onSelectItem = function (customerLocations) {
108
119
  onCloseList();
109
- var remaining = customerLocationsList.filter(function (location) { return location.id <= customerLocations.id; });
120
+ var checked = customerLocationsList.filter(function (location) { return (location === null || location === void 0 ? void 0 : location.code) === customerLocations.code; });
121
+ if (customerLocations.code === 'regional')
122
+ customerLocationsControl.field.onChange(checked.concat(customerLocationsList.filter(function (location) { return (location === null || location === void 0 ? void 0 : location.code) === 'local'; })));
123
+ else if (customerLocations.code === 'global')
124
+ customerLocationsControl.field.onChange(checked.concat(customerLocationsList.filter(function (location) { return (location === null || location === void 0 ? void 0 : location.code) != customerLocations.code; })));
125
+ else if (customerLocations.code === 'local')
126
+ customerLocationsControl.field.onChange(checked);
110
127
  if (error)
111
128
  dispatch(clearError());
112
- customerLocationsControl.field.onChange(remaining);
129
+ };
130
+ var handleSearch = function (value) {
131
+ var _a;
132
+ var filteredList = (_a = response === null || response === void 0 ? void 0 : response.customerBases) === null || _a === void 0 ? void 0 : _a.filter(function (location) {
133
+ return location.name.en.toLowerCase().startsWith(value.toLowerCase()) ||
134
+ location.name.ar.toLowerCase().startsWith(value.toLowerCase());
135
+ });
136
+ setCustomerLocationsList(filteredList);
113
137
  };
114
138
  var customerLocationsValue = customerLocationsControl.field.value;
115
- var customerLocationSelected = customerLocationsValue[customerLocationsValue.length - 1];
116
- return (_jsx(Collapse, __assign({ in: rest.show }, { children: _jsxs(ScreenContainer, { children: [_jsx(InputLabelStyled, { children: t('select_customer_base') }), _jsx(InputStyled, { readOnly: true, value: isAr ? customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.name_ar : customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.name_en, onClick: !!anchorEl ? function () { return onCloseList(); } : onOpenList, endAdornment: _jsx(ExpandIcon, { anchorEl: !!anchorEl }) }), _jsx(Collapse, __assign({ in: !!anchorEl, timeout: 300 }, { children: _jsx(SimpleListStyled, { searchKeyPath: 'name', list: customerLocationsList, placeholder: 'choose_customer_base', onSelectItem: onSelectItem, renderItem: function (item) {
117
- return (_jsxs(_Fragment, { children: [_jsx(Box, __assign({ display: 'flex' }, { children: _jsx(NameContainer, __assign({ isSelected: (item === null || item === void 0 ? void 0 : item.id) === (customerLocationsValue === null || customerLocationsValue === void 0 ? void 0 : customerLocationsValue.id) }, { children: isAr ? item.name_ar : item.name_en })) })), item.id === (customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.id) && _jsx(CheckIconStyled, {}), checkRemainingCondition(item) && item.id != (customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.id) && _jsx(RemainingCheck, {})] }));
118
- } }) }))] }) })));
139
+ var customerLocationSelected = customerLocationsValue === null || customerLocationsValue === void 0 ? void 0 : customerLocationsValue[0];
140
+ return (_jsx(Collapse, __assign({ in: rest.show }, { children: _jsxs(ScreenContainer, { children: [_jsxs(LabelContainerStyled, { children: [_jsx(BaseLabelStyled, { children: t('select_customer_base') }), _jsx(Tooltip, __assign({ title: t('customer_base_name_hint'), onMouseOver: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, onTouchStartCapture: function () { return setIsHovered(true); } }, { children: isHovered ? _jsx(InfoIconStyled, {}) : _jsx(InfoOutlinedIconStyled, {}) }))] }), _jsx(InputStyled, { readOnly: true, placeholder: t('choose_expected_sales'), value: isAr ? customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.name.ar : customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.name.en, onClick: !!anchorEl ? function () { return onCloseList(); } : onOpenList, endAdornment: _jsx(ExpandIcon, { anchorEl: !!anchorEl }) }), _jsxs(Collapse, __assign({ in: !!anchorEl, timeout: 300 }, { children: [_jsx(Search, { onSearchValue: handleSearch }), _jsx(SimpleListStyled, { searchKeyPath: 'name.en', list: customerLocationsList, placeholder: 'choose_customer_base', onSelectItem: onSelectItem, renderItem: function (item) {
141
+ return (_jsxs(_Fragment, { children: [_jsx(Box, __assign({ display: 'flex' }, { children: _jsx(NameContainer, __assign({ isSelected: (item === null || item === void 0 ? void 0 : item.id) === (customerLocationsValue === null || customerLocationsValue === void 0 ? void 0 : customerLocationsValue.id) }, { children: isAr ? item.name.ar : item.name.en })) })), item.id === (customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.id) && _jsx(CheckIconStyled, {}), checkRemainingCondition(item) && item.id != (customerLocationSelected === null || customerLocationSelected === void 0 ? void 0 : customerLocationSelected.id) && _jsx(RemainingCheck, {})] }));
142
+ } })] }))] }) })));
119
143
  };
120
144
  export default React.memo(customerLocations);
@@ -9,6 +9,17 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
12
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
24
  import Box from '@mui/material/Box/Box';
14
25
  import { styled } from '@mui/material/styles';
@@ -16,7 +27,7 @@ import * as React from 'react';
16
27
  import { useTranslation } from 'react-i18next';
17
28
  import { useForm, FormProvider } from 'react-hook-form';
18
29
  import { yupResolver } from '@hookform/resolvers/yup';
19
- import { useAppDispatch, useAppSelector } from '../../../../hooks';
30
+ import { useAppDispatch, useAppSelector, useSetFromDefaultValues } from '../../../../hooks';
20
31
  import { handlePrevScreenStep } from '../../../../app/settings';
21
32
  import { CustomerInfoValidation } from './validation';
22
33
  import Form from '../../../../components/Form';
@@ -44,12 +55,13 @@ var Customers = function (_a) {
44
55
  var _b = React.useState(), listActive = _b[0], setListActive = _b[1];
45
56
  var dispatch = useAppDispatch();
46
57
  var _c = useAppSelector(businessSelector), data = _c.data, loading = _c.loading, error = _c.error;
47
- var customerData = data.customersData;
58
+ var _d = data.customersData, responseBody = _d.responseBody, defaultValues = __rest(_d, ["responseBody"]);
48
59
  var methods = useForm({
49
60
  resolver: yupResolver(CustomerInfoValidation),
50
- defaultValues: data.customersData,
61
+ defaultValues: defaultValues,
51
62
  mode: 'onChange'
52
63
  });
64
+ useSetFromDefaultValues(methods, defaultValues);
53
65
  var onSubmit = function (data) {
54
66
  dispatch(updateCustomersInfo(data));
55
67
  };
@@ -65,12 +77,6 @@ var Customers = function (_a) {
65
77
  if (error)
66
78
  dispatch(clearError());
67
79
  }, [methods.formState.isValid]);
68
- React.useEffect(function () {
69
- var customerLocations = customerData.customerLocations, expectedCustomer = customerData.expectedCustomer, expectedSale = customerData.expectedSale;
70
- methods.setValue('customerLocations', customerLocations);
71
- methods.setValue('expectedCustomer', expectedCustomer);
72
- methods.setValue('expectedSale', expectedSale);
73
- }, [customerData.customerLocations, customerData.expectedCustomer, customerData.expectedSale]);
74
80
  var isCustomerLocationsListActive = listActive === ListType.CustomerLocationsList;
75
81
  var isExpectedCustomersListActive = listActive === ListType.ExpectedCustomersList;
76
82
  var isExpectedSalesListActive = listActive === ListType.ExpectedSalesList;
@@ -33,6 +33,7 @@ import ExpandIcon from '../../../../components/ExpandIcon';
33
33
  import { ScreenContainer } from '../../../shared/Containers';
34
34
  import { CheckIconStyled, InputLabelStyled, InputStyled, NameContainer } from './CustomerLocations';
35
35
  import { businessSelector, clearError } from '../../../app/business/businessStore';
36
+ import Search from '../../../../features/shared/Search';
36
37
  var ListItemContainer = styled(Box)(function (_a) {
37
38
  var theme = _a.theme;
38
39
  return ({
@@ -61,9 +62,12 @@ var ExpectedCustomers = function (_a) {
61
62
  (_a = rest.onListOpen) === null || _a === void 0 ? void 0 : _a.call(rest);
62
63
  };
63
64
  var onCloseList = function () {
64
- var _a;
65
+ var _a, _b;
65
66
  setAnchorEl(null);
66
67
  (_a = rest.onListClose) === null || _a === void 0 ? void 0 : _a.call(rest);
68
+ if (((_b = response === null || response === void 0 ? void 0 : response.expectedCustomerSales) === null || _b === void 0 ? void 0 : _b.length) > 0) {
69
+ setExpectedCustomersList(response === null || response === void 0 ? void 0 : response.expectedCustomerSales);
70
+ }
67
71
  };
68
72
  React.useEffect(function () {
69
73
  var _a;
@@ -77,10 +81,18 @@ var ExpectedCustomers = function (_a) {
77
81
  dispatch(clearError());
78
82
  onCloseList();
79
83
  };
84
+ var handleSearch = function (value) {
85
+ var _a;
86
+ var filteredList = (_a = response === null || response === void 0 ? void 0 : response.expectedCustomerSales) === null || _a === void 0 ? void 0 : _a.filter(function (customer) {
87
+ return customer.name.en.toLowerCase().startsWith(value.toLowerCase()) ||
88
+ customer.name.ar.toLowerCase().startsWith(value.toLowerCase());
89
+ });
90
+ setExpectedCustomersList(filteredList);
91
+ };
80
92
  var expectedCustomersValue = expectedCustomerControl.field.value;
81
93
  var expectedCustomersSelected = expectedCustomersValue;
82
- return (_jsx(Collapse, __assign({ in: rest.show }, { children: _jsxs(ScreenContainer, { children: [_jsx(InputLabelStyled, { children: t('expected_customers_to_serve') }), _jsx(InputStyled, { readOnly: true, value: isAr ? expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.name_ar : expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.name_en, onClick: !!anchorEl ? function () { return onCloseList(); } : onOpenList, endAdornment: _jsx(ExpandIcon, { anchorEl: !!anchorEl }) }), _jsx(Collapse, __assign({ in: !!anchorEl, timeout: 300 }, { children: _jsx(SimpleListStyled, { searchKeyPath: 'name', list: expectedCustomersList, onSelectItem: onSelectItem, renderItem: function (item) {
83
- return (_jsxs(_Fragment, { children: [_jsx(ListItemContainer, { children: _jsx(NameContainer, __assign({ isSelected: (item === null || item === void 0 ? void 0 : item.id) === (expectedCustomersValue === null || expectedCustomersValue === void 0 ? void 0 : expectedCustomersValue.id) }, { children: isAr ? item.name_ar : item.name_en })) }), item.id === (expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.id) && _jsx(CheckIconStyled, {})] }));
84
- } }) }))] }) })));
94
+ return (_jsx(Collapse, __assign({ in: rest.show }, { children: _jsxs(ScreenContainer, { children: [_jsx(InputLabelStyled, { children: t('expected_customers_to_serve') }), _jsx(InputStyled, { readOnly: true, placeholder: t('choose_expected_sales'), value: isAr ? expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.name.ar : expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.name.en, onClick: !!anchorEl ? function () { return onCloseList(); } : onOpenList, endAdornment: _jsx(ExpandIcon, { anchorEl: !!anchorEl }) }), _jsxs(Collapse, __assign({ in: !!anchorEl, timeout: 300 }, { children: [_jsx(Search, { onSearchValue: handleSearch }), _jsx(SimpleListStyled, { searchKeyPath: 'name', list: expectedCustomersList, onSelectItem: onSelectItem, renderItem: function (item) {
95
+ return (_jsxs(_Fragment, { children: [_jsx(ListItemContainer, { children: _jsx(NameContainer, __assign({ isSelected: (item === null || item === void 0 ? void 0 : item.id) === (expectedCustomersValue === null || expectedCustomersValue === void 0 ? void 0 : expectedCustomersValue.id) }, { children: isAr ? item.name.ar : item.name.en })) }), item.id === (expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.id) && _jsx(CheckIconStyled, {})] }));
96
+ } })] }))] }) })));
85
97
  };
86
98
  export default ExpectedCustomers;