@pisell/private-materials 3.4.43 → 3.4.45

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 (651) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +9 -1
  6. package/build/lowcode/preview.js +146 -160
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +9 -9
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +9 -9
  11. package/es/businessModel/SalesModel/index.d.ts +1 -0
  12. package/es/components/Sales/Summary/utils.d.ts +1 -1
  13. package/es/components/appointmentBooking/components/Cart/Item/Total.d.ts +1 -0
  14. package/es/components/appointmentBooking/components/Cart/Item/index.d.ts +2 -1
  15. package/es/components/appointmentBooking/components/Cart/Item/index.js +3 -2
  16. package/es/components/appointmentBooking/components/Cart/index.d.ts +1 -0
  17. package/es/components/appointmentBooking/components/ConfirmInformation/index.js +273 -76
  18. package/es/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  19. package/es/components/appointmentBooking/components/Content/index.d.ts +1 -0
  20. package/es/components/appointmentBooking/components/Deposit/index.d.ts +1 -0
  21. package/es/components/appointmentBooking/components/Footer/index.d.ts +1 -0
  22. package/es/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
  23. package/es/components/appointmentBooking/components/Header/index.d.ts +1 -0
  24. package/es/components/appointmentBooking/components/Voucher/index.d.ts +1 -0
  25. package/es/components/appointmentBooking/deposit/index.d.ts +1 -0
  26. package/es/components/appointmentBooking/hooks.d.ts +1 -0
  27. package/es/components/appointmentBooking/hooks.js +30 -30
  28. package/es/components/appointmentBooking/index.d.ts +1 -0
  29. package/es/components/appointmentBooking/locales.d.ts +3 -0
  30. package/es/components/appointmentBooking/locales.js +9 -6
  31. package/es/components/booking/components/TabProduct/index.d.ts +1 -0
  32. package/es/components/booking/components/TabProduct/productItem/index.d.ts +1 -0
  33. package/es/components/booking/components/TabProduct/selectProductItem/index.d.ts +1 -0
  34. package/es/components/booking/components/collapsibleList/utils.d.ts +1 -0
  35. package/es/components/booking/components/customSelect/index.js +1 -1
  36. package/es/components/booking/components/emptyBooking/index.d.ts +1 -0
  37. package/es/components/booking/components/footer/FooterMenus/index.d.ts +1 -0
  38. package/es/components/booking/components/footer/index.d.ts +1 -0
  39. package/es/components/booking/components/footer/index.js +4 -1
  40. package/es/components/booking/components/footer/utils.js +75 -73
  41. package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  42. package/es/components/booking/deposit/index.d.ts +1 -0
  43. package/es/components/booking/forms/footer.d.ts +1 -0
  44. package/es/components/booking/forms/footer.js +24 -10
  45. package/es/components/booking/forms/sendModal/useSendModal.d.ts +1 -0
  46. package/es/components/booking/forms/single/index.d.ts +1 -0
  47. package/es/components/booking/forms/table/index.d.ts +1 -0
  48. package/es/components/booking/hooks/useClearCart.d.ts +1 -0
  49. package/es/components/booking/hooks/useQuotation.d.ts +1 -0
  50. package/es/components/booking/info/addServiceVariant/index.d.ts +1 -0
  51. package/es/components/booking/info/client/index.js +28 -13
  52. package/es/components/booking/info/clientVariant/hooks/useClientFn.d.ts +1 -0
  53. package/es/components/booking/info/clientVariant/hooks/useClientFn.js +16 -10
  54. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  55. package/es/components/booking/info/clientVariant/vertical/SelectDrawer.js +10 -2
  56. package/es/components/booking/info/clientVariant/vertical/index.js +1 -1
  57. package/es/components/booking/info/date/index.d.ts +1 -0
  58. package/es/components/booking/info/dateRange/index.d.ts +1 -0
  59. package/es/components/booking/info/header/index.d.ts +1 -0
  60. package/es/components/booking/info/hooks/useInfoHolder.d.ts +1 -0
  61. package/es/components/booking/info/index.d.ts +1 -0
  62. package/es/components/booking/info/main.js +3 -2
  63. package/es/components/booking/info/model.js +5 -0
  64. package/es/components/booking/info/notes/index.d.ts +1 -0
  65. package/es/components/booking/info/service/Lists.d.ts +1 -0
  66. package/es/components/booking/info/service/actions/index.d.ts +1 -0
  67. package/es/components/booking/info/service/addService/index.d.ts +1 -0
  68. package/es/components/booking/info/service/addTimeModal/index.d.ts +1 -0
  69. package/es/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
  70. package/es/components/booking/info/service/like/index.d.ts +1 -0
  71. package/es/components/booking/info/service/serviceItem/index.d.ts +1 -0
  72. package/es/components/booking/info/service/serviceList/index.d.ts +1 -0
  73. package/es/components/booking/info/service2/Lists.d.ts +1 -0
  74. package/es/components/booking/info/service2/utils.d.ts +1 -1
  75. package/es/components/booking/info2/index.js +3 -2
  76. package/es/components/booking/info2/service/actions/index.d.ts +1 -0
  77. package/es/components/booking/info2/service/addTimeModal/index.d.ts +1 -0
  78. package/es/components/booking/info2/service/contactInfoMode/index.d.ts +3 -0
  79. package/es/components/booking/info2/service/contactInfoMode/index.js +94 -0
  80. package/es/components/booking/info2/service/serviceItem/index.d.ts +1 -0
  81. package/es/components/booking/info2/service/serviceList/index.d.ts +1 -0
  82. package/es/components/booking/locales.d.ts +6 -0
  83. package/es/components/booking/locales.js +12 -3
  84. package/es/components/booking/materiels/contacts/index.d.ts +1 -0
  85. package/es/components/booking/materiels/duration/index.d.ts +1 -0
  86. package/es/components/booking/materiels/holder/index.d.ts +1 -0
  87. package/es/components/booking/materiels/startTime/index.d.ts +1 -0
  88. package/es/components/booking/model.d.ts +4 -0
  89. package/es/components/booking/model.js +3 -0
  90. package/es/components/booking/notes/NoteBlock/NoteItem/index.d.ts +1 -0
  91. package/es/components/booking/notes/NoteBlock/index.d.ts +1 -0
  92. package/es/components/booking/notes/addNote/index.d.ts +1 -0
  93. package/es/components/booking/utils.d.ts +2 -2
  94. package/es/components/eftpos/deviceList/index.d.ts +1 -0
  95. package/es/components/eftpos/form/index.d.ts +1 -0
  96. package/es/components/eftpos/group/index.d.ts +1 -0
  97. package/es/components/eftpos/hooks.d.ts +1 -0
  98. package/es/components/eftpos/icon/apiKey.d.ts +1 -0
  99. package/es/components/eftpos/icon/device.d.ts +1 -0
  100. package/es/components/eftpos/index.d.ts +1 -0
  101. package/es/components/eftpos/pos.d.ts +1 -0
  102. package/es/components/eftpos/receipt/index.d.ts +1 -0
  103. package/es/components/eftpos/surcharge/index.d.ts +1 -0
  104. package/es/components/eftposPay/amount.d.ts +2 -1
  105. package/es/components/eftposPay/app.d.ts +1 -0
  106. package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
  107. package/es/components/eftposPay/component/fail/failCustom.d.ts +1 -0
  108. package/es/components/eftposPay/component/fail/network.d.ts +1 -0
  109. package/es/components/eftposPay/component/fail/unknow.d.ts +1 -0
  110. package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
  111. package/es/components/eftposPay/component/manual/index.d.ts +1 -0
  112. package/es/components/eftposPay/component/signature/index.d.ts +1 -0
  113. package/es/components/eftposPay/component/step/index.d.ts +1 -0
  114. package/es/components/eftposPay/component/step/step.d.ts +1 -0
  115. package/es/components/eftposPay/device.d.ts +2 -1
  116. package/es/components/eftposPay/hooks.d.ts +2 -2
  117. package/es/components/eftposPay/index.d.ts +1 -0
  118. package/es/components/eftposPay/linkly/index.d.ts +1 -0
  119. package/es/components/eftposPay/pay.d.ts +1 -0
  120. package/es/components/eftposPay/payo/config.d.ts +1 -0
  121. package/es/components/eftposPay/store/index.d.ts +6 -6
  122. package/es/components/eftposPay/tip.d.ts +1 -0
  123. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  124. package/es/components/eftposPay/windcave/receiptAction.d.ts +1 -0
  125. package/es/components/eftposPay/windcave/windcave.d.ts +1 -0
  126. package/es/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
  127. package/es/components/eventBooking/components/Provider/Cart/ContinueButton/index.d.ts +1 -0
  128. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  129. package/es/components/eventBooking/components/Provider/Cart/Item/Total.d.ts +1 -0
  130. package/es/components/eventBooking/components/Provider/Cart/Item/index.d.ts +1 -0
  131. package/es/components/eventBooking/components/Provider/Cart/index.d.ts +1 -0
  132. package/es/components/eventBooking/components/Provider/Content/index.d.ts +1 -0
  133. package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +1 -0
  134. package/es/components/eventBooking/components/Provider/Event/index.d.ts +1 -0
  135. package/es/components/eventBooking/components/Provider/Footer/index.d.ts +1 -0
  136. package/es/components/eventBooking/components/Provider/Header/index.d.ts +1 -0
  137. package/es/components/eventBooking/components/Provider/Information/index.d.ts +1 -0
  138. package/es/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
  139. package/es/components/eventBooking/components/Provider/OrderProductModal/index.d.ts +1 -0
  140. package/es/components/eventBooking/components/Provider/RemoveOptionConfirmModal.d.ts +1 -0
  141. package/es/components/eventBooking/components/Provider/Resource/index.d.ts +1 -0
  142. package/es/components/eventBooking/components/Provider/SelectHolderModal.d.ts +1 -0
  143. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  144. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
  145. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
  146. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
  147. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  148. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  149. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  150. package/es/components/eventBooking/components/bookingDetailModal/components/BookingOptions.d.ts +1 -0
  151. package/es/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +1 -0
  152. package/es/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +1 -0
  153. package/es/components/eventBooking/components/scheduleCalendar/ProductItem/index.d.ts +1 -0
  154. package/es/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
  155. package/es/components/eventBooking/components/scheduleCalendar/components/ScheduleTimeItem/index.d.ts +1 -0
  156. package/es/components/eventBooking/index.d.ts +1 -0
  157. package/es/components/login/index.d.ts +1 -0
  158. package/es/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.d.ts +1 -0
  159. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
  160. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
  161. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  162. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
  163. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
  164. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
  165. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  166. package/es/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
  167. package/es/components/pay/toC/index.js +14 -11
  168. package/es/components/pisellSelectCustomerModal/RightPanel/Add/BirthdayField/index.d.ts +1 -0
  169. package/es/components/pisellSelectCustomerModal/RightPanel/Add/GenderField/index.d.ts +1 -0
  170. package/es/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
  171. package/es/components/pisellSelectCustomerModal/RightPanel/Add/index.d.ts +1 -0
  172. package/es/components/pisellSelectCustomerModal/RightPanel/List/index.d.ts +1 -0
  173. package/es/components/pisellSelectCustomerModal/RightPanel/index.d.ts +1 -0
  174. package/es/components/pisellSelectCustomerModal/index.d.ts +1 -0
  175. package/es/components/productExtension/fields/Actor/index.d.ts +1 -0
  176. package/es/components/productExtension/fields/Forms/index.d.ts +1 -0
  177. package/es/components/productExtension/fields/SelectProducts/ProductItem/index.d.ts +1 -0
  178. package/es/components/productExtension/fields/SelectProducts/ProductItemPreview/index.d.ts +1 -0
  179. package/es/components/productExtension/fields/SelectProducts/index.d.ts +1 -0
  180. package/es/components/productExtension/fields/SelectResourcesTable/index.d.ts +1 -0
  181. package/es/components/productExtension/index.d.ts +1 -0
  182. package/es/components/productSelect/components/TabProduct/index.d.ts +1 -0
  183. package/es/components/productSelect/components/productGroup/index.d.ts +1 -0
  184. package/es/components/ruleSetting/index.d.ts +1 -0
  185. package/es/components/ruleSetting/ruleBorder/index.d.ts +1 -0
  186. package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
  187. package/es/components/schedules/calendar/index.d.ts +1 -0
  188. package/es/components/schedules/components/CurrentDay/index.d.ts +1 -0
  189. package/es/components/schedules/components/ScheduleDetailList/index.d.ts +1 -0
  190. package/es/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
  191. package/es/components/schedules/components/ScheduleList/index.d.ts +1 -0
  192. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.d.ts +1 -0
  193. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/ResourcesModule/index.d.ts +1 -0
  194. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/SchedulesModule/AddSchedules/index.d.ts +1 -0
  195. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/SchedulesModule/index.d.ts +1 -0
  196. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  197. package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  198. package/es/components/schedules/products/ProductDetailDrawer/index.d.ts +1 -0
  199. package/es/components/schedules/products/index.d.ts +1 -0
  200. package/es/components/schedules/products/list/ProductItem/index.d.ts +1 -0
  201. package/es/components/schedules/products/list/index.d.ts +1 -0
  202. package/es/components/schedules/resources/index.d.ts +1 -0
  203. package/es/components/schedules/resources/list/index.d.ts +1 -0
  204. package/es/components/schedules/resources/relationProduct/index.d.ts +1 -0
  205. package/es/components/schedules/schedules/AllSchedules/index.d.ts +1 -0
  206. package/es/components/schedules/schedules/ScheduleDetailDrawer/index.d.ts +1 -0
  207. package/es/components/schedules/schedules/index.d.ts +1 -0
  208. package/es/components/shoppingCart/components/Cart/Product.d.ts +1 -0
  209. package/es/components/shoppingCart/components/Cart/index.d.ts +1 -0
  210. package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
  211. package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
  212. package/es/components/shoppingCart/hooks/useAddService.d.ts +1 -0
  213. package/es/components/shoppingCart/hooks/useClearCart.d.ts +1 -0
  214. package/es/components/shoppingCart/index.d.ts +1 -0
  215. package/es/components/taxSelect/index.d.ts +1 -0
  216. package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
  217. package/es/components/ticketBooking/components/menuBar/index.d.ts +1 -0
  218. package/es/components/ticketBooking/components/ticketBooking/index.less +2 -1
  219. package/es/components/wallet/hooks/useWalletCard.d.ts +1 -0
  220. package/es/components/workSpaceList/components/Modal/index.d.ts +1 -0
  221. package/es/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
  222. package/es/hooks/usePaymentLogger.d.ts +1 -0
  223. package/es/index.d.ts +3 -0
  224. package/es/index.js +4 -1
  225. package/es/plus/clientName/index.d.ts +5 -0
  226. package/es/plus/clientName/index.js +18 -0
  227. package/es/plus/clientName/index.less +10 -0
  228. package/es/plus/clientName/type.d.ts +13 -0
  229. package/es/plus/clientName/type.js +1 -0
  230. package/es/plus/clientName/utils.d.ts +2 -0
  231. package/es/plus/clientName/utils.js +18 -0
  232. package/es/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  233. package/es/plus/contactInfo/components/Avatar/index.js +30 -0
  234. package/es/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  235. package/es/plus/contactInfo/components/SwipeAction/index.js +360 -0
  236. package/es/plus/contactInfo/components/SwipeAction/index.less +74 -0
  237. package/es/plus/contactInfo/index.d.ts +6 -0
  238. package/es/plus/contactInfo/index.js +198 -0
  239. package/es/plus/contactInfo/index.less +621 -0
  240. package/es/plus/contactInfo/locales.d.ts +15 -0
  241. package/es/plus/contactInfo/locales.js +14 -0
  242. package/es/plus/contactInfo/types.d.ts +91 -0
  243. package/es/plus/contactInfo/types.js +1 -0
  244. package/es/plus/contactInfo/utils.d.ts +7 -0
  245. package/es/plus/contactInfo/utils.js +50 -0
  246. package/es/plus/contactInfoModal/ContactInfoContent.d.ts +4 -0
  247. package/es/plus/contactInfoModal/ContactInfoContent.js +74 -0
  248. package/es/plus/contactInfoModal/index.d.ts +41 -0
  249. package/es/plus/contactInfoModal/index.js +155 -0
  250. package/es/plus/contactInfoModal/index.less +19 -0
  251. package/es/plus/contactInfoModal/locales.d.ts +66 -0
  252. package/es/plus/contactInfoModal/locales.js +65 -0
  253. package/es/plus/saasCreateOrganization/components/Header.d.ts +1 -0
  254. package/es/plus/saasCreateOrganization/index.d.ts +1 -0
  255. package/es/plus/saasRegister/components/EntryEmail.d.ts +1 -0
  256. package/es/plus/saasRegister/components/EntryInfo.d.ts +1 -0
  257. package/es/plus/saasRegister/components/GoLogin.d.ts +1 -0
  258. package/es/plus/saasRegister/components/Header.d.ts +1 -0
  259. package/es/plus/saasRegister/components/VerifyError.d.ts +1 -0
  260. package/es/plus/saasRegister/components/VerifyingLink.d.ts +1 -0
  261. package/es/plus/saasRegister/components/VertifyEmail.d.ts +1 -0
  262. package/es/pro/Login2.0/AuthModal.d.ts +143 -0
  263. package/es/pro/Login2.0/AuthModal.js +630 -0
  264. package/es/pro/Login2.0/Login2.d.ts +61 -0
  265. package/es/pro/Login2.0/Login2.js +2235 -0
  266. package/es/pro/Login2.0/Register2.d.ts +65 -0
  267. package/es/pro/Login2.0/Register2.js +1501 -0
  268. package/es/pro/Login2.0/components/ForgotPasswordFlow.d.ts +31 -0
  269. package/es/pro/Login2.0/components/ForgotPasswordFlow.js +330 -0
  270. package/es/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  271. package/es/pro/Login2.0/components/LegalTerms.js +51 -0
  272. package/es/pro/Login2.0/components/LegalTerms.less +74 -0
  273. package/es/pro/Login2.0/components/LoginCodeInput.d.ts +27 -0
  274. package/es/pro/Login2.0/components/LoginCodeInput.js +207 -0
  275. package/es/pro/Login2.0/components/OAuthButtonGroup.d.ts +22 -0
  276. package/es/pro/Login2.0/components/OAuthButtonGroup.js +55 -0
  277. package/es/pro/Login2.0/components/PhoneInput.d.ts +53 -0
  278. package/es/pro/Login2.0/components/PhoneInput.js +414 -0
  279. package/es/pro/Login2.0/components/PhoneInput.less +148 -0
  280. package/es/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  281. package/es/pro/Login2.0/components/phoneValidation.js +228 -0
  282. package/es/pro/Login2.0/hooks/index.d.ts +2 -0
  283. package/es/pro/Login2.0/hooks/index.js +1 -0
  284. package/es/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +24 -0
  285. package/es/pro/Login2.0/hooks/usePasswordValidationRules.js +87 -0
  286. package/es/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  287. package/es/pro/Login2.0/hooks/useRegisterFlow.js +158 -0
  288. package/es/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  289. package/es/pro/Login2.0/hooks/useRegistrationMethods.js +31 -0
  290. package/es/pro/Login2.0/index.js +8 -0
  291. package/es/pro/Login2.0/index.less +1002 -0
  292. package/es/pro/Login2.0/locales.d.ts +543 -0
  293. package/es/pro/Login2.0/locales.js +622 -0
  294. package/es/pro/Login2.0/shared/Header.d.ts +11 -0
  295. package/es/pro/Login2.0/shared/Header.js +42 -0
  296. package/es/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  297. package/es/pro/Login2.0/shared/OAuthButtons.js +59 -0
  298. package/es/pro/Login2.0/shared/registerFlow.d.ts +116 -0
  299. package/es/pro/Login2.0/shared/registerFlow.js +171 -0
  300. package/es/pro/Login2.0/shared/types.d.ts +232 -0
  301. package/es/pro/Login2.0/shared/types.js +1 -0
  302. package/es/pro/Login2.0/steps/CodeInput.d.ts +24 -0
  303. package/es/pro/Login2.0/steps/CodeInput.js +209 -0
  304. package/es/pro/Login2.0/steps/EmailAlreadyRegistered.d.ts +12 -0
  305. package/es/pro/Login2.0/steps/EmailAlreadyRegistered.js +35 -0
  306. package/es/pro/Login2.0/steps/EmailLinkAlreadyUsed.d.ts +7 -0
  307. package/es/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +25 -0
  308. package/es/pro/Login2.0/steps/EmailLinkExpired.d.ts +9 -0
  309. package/es/pro/Login2.0/steps/EmailLinkExpired.js +33 -0
  310. package/es/pro/Login2.0/steps/SetPassword.d.ts +19 -0
  311. package/es/pro/Login2.0/steps/SetPassword.js +148 -0
  312. package/es/pro/Login2.0/steps/VerificationSuccess.d.ts +8 -0
  313. package/es/pro/Login2.0/steps/VerificationSuccess.js +35 -0
  314. package/es/pro/Login2.0/steps/VerifyingEmailLink.d.ts +7 -0
  315. package/es/pro/Login2.0/steps/VerifyingEmailLink.js +17 -0
  316. package/es/pro/Login2.0/steps/WaitEmailLink.d.ts +18 -0
  317. package/es/pro/Login2.0/steps/WaitEmailLink.js +54 -0
  318. package/es/pro/Login2.0/steps/index.d.ts +19 -0
  319. package/es/pro/Login2.0/steps/index.js +11 -0
  320. package/es/pro/Login2.0/steps/steps.less +423 -0
  321. package/es/pro/Login2.0/types.d.ts +167 -0
  322. package/es/pro/Login2.0/types.js +1 -0
  323. package/es/pro/pisellPaymentList/example.d.ts +1 -0
  324. package/lib/businessModel/SalesModel/index.d.ts +1 -0
  325. package/lib/components/Sales/Summary/utils.d.ts +1 -1
  326. package/lib/components/appointmentBooking/components/Cart/Item/Total.d.ts +1 -0
  327. package/lib/components/appointmentBooking/components/Cart/Item/index.d.ts +2 -1
  328. package/lib/components/appointmentBooking/components/Cart/Item/index.js +5 -3
  329. package/lib/components/appointmentBooking/components/Cart/index.d.ts +1 -0
  330. package/lib/components/appointmentBooking/components/ConfirmInformation/index.js +156 -13
  331. package/lib/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  332. package/lib/components/appointmentBooking/components/Content/index.d.ts +1 -0
  333. package/lib/components/appointmentBooking/components/Deposit/index.d.ts +1 -0
  334. package/lib/components/appointmentBooking/components/Footer/index.d.ts +1 -0
  335. package/lib/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
  336. package/lib/components/appointmentBooking/components/Header/index.d.ts +1 -0
  337. package/lib/components/appointmentBooking/components/Voucher/index.d.ts +1 -0
  338. package/lib/components/appointmentBooking/deposit/index.d.ts +1 -0
  339. package/lib/components/appointmentBooking/hooks.d.ts +1 -0
  340. package/lib/components/appointmentBooking/hooks.js +73 -35
  341. package/lib/components/appointmentBooking/index.d.ts +1 -0
  342. package/lib/components/appointmentBooking/locales.d.ts +3 -0
  343. package/lib/components/appointmentBooking/locales.js +6 -3
  344. package/lib/components/booking/components/TabProduct/index.d.ts +1 -0
  345. package/lib/components/booking/components/TabProduct/productItem/index.d.ts +1 -0
  346. package/lib/components/booking/components/TabProduct/selectProductItem/index.d.ts +1 -0
  347. package/lib/components/booking/components/collapsibleList/utils.d.ts +1 -0
  348. package/lib/components/booking/components/customSelect/index.js +1 -1
  349. package/lib/components/booking/components/emptyBooking/index.d.ts +1 -0
  350. package/lib/components/booking/components/footer/FooterMenus/index.d.ts +1 -0
  351. package/lib/components/booking/components/footer/index.d.ts +1 -0
  352. package/lib/components/booking/components/footer/index.js +4 -1
  353. package/lib/components/booking/components/footer/utils.js +93 -68
  354. package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  355. package/lib/components/booking/deposit/index.d.ts +1 -0
  356. package/lib/components/booking/forms/footer.d.ts +1 -0
  357. package/lib/components/booking/forms/footer.js +29 -11
  358. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +1 -0
  359. package/lib/components/booking/forms/single/index.d.ts +1 -0
  360. package/lib/components/booking/forms/table/index.d.ts +1 -0
  361. package/lib/components/booking/hooks/useClearCart.d.ts +1 -0
  362. package/lib/components/booking/hooks/useQuotation.d.ts +1 -0
  363. package/lib/components/booking/info/addServiceVariant/index.d.ts +1 -0
  364. package/lib/components/booking/info/client/index.js +14 -1
  365. package/lib/components/booking/info/clientVariant/hooks/useClientFn.d.ts +1 -0
  366. package/lib/components/booking/info/clientVariant/hooks/useClientFn.js +7 -2
  367. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  368. package/lib/components/booking/info/clientVariant/vertical/SelectDrawer.js +11 -4
  369. package/lib/components/booking/info/clientVariant/vertical/index.js +34 -17
  370. package/lib/components/booking/info/date/index.d.ts +1 -0
  371. package/lib/components/booking/info/dateRange/index.d.ts +1 -0
  372. package/lib/components/booking/info/header/index.d.ts +1 -0
  373. package/lib/components/booking/info/hooks/useInfoHolder.d.ts +1 -0
  374. package/lib/components/booking/info/index.d.ts +1 -0
  375. package/lib/components/booking/info/main.js +5 -4
  376. package/lib/components/booking/info/model.js +5 -0
  377. package/lib/components/booking/info/notes/index.d.ts +1 -0
  378. package/lib/components/booking/info/service/Lists.d.ts +1 -0
  379. package/lib/components/booking/info/service/actions/index.d.ts +1 -0
  380. package/lib/components/booking/info/service/addService/index.d.ts +1 -0
  381. package/lib/components/booking/info/service/addTimeModal/index.d.ts +1 -0
  382. package/lib/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
  383. package/lib/components/booking/info/service/like/index.d.ts +1 -0
  384. package/lib/components/booking/info/service/serviceItem/index.d.ts +1 -0
  385. package/lib/components/booking/info/service/serviceList/index.d.ts +1 -0
  386. package/lib/components/booking/info/service2/Lists.d.ts +1 -0
  387. package/lib/components/booking/info/service2/utils.d.ts +1 -1
  388. package/lib/components/booking/info2/index.js +5 -4
  389. package/lib/components/booking/info2/service/actions/index.d.ts +1 -0
  390. package/lib/components/booking/info2/service/addTimeModal/index.d.ts +1 -0
  391. package/lib/components/booking/info2/service/contactInfoMode/index.d.ts +3 -0
  392. package/lib/components/booking/info2/service/contactInfoMode/index.js +111 -0
  393. package/lib/components/booking/info2/service/serviceItem/index.d.ts +1 -0
  394. package/lib/components/booking/info2/service/serviceList/index.d.ts +1 -0
  395. package/lib/components/booking/locales.d.ts +6 -0
  396. package/lib/components/booking/locales.js +12 -3
  397. package/lib/components/booking/materiels/contacts/index.d.ts +1 -0
  398. package/lib/components/booking/materiels/duration/index.d.ts +1 -0
  399. package/lib/components/booking/materiels/holder/index.d.ts +1 -0
  400. package/lib/components/booking/materiels/startTime/index.d.ts +1 -0
  401. package/lib/components/booking/model.d.ts +4 -0
  402. package/lib/components/booking/model.js +3 -0
  403. package/lib/components/booking/notes/NoteBlock/NoteItem/index.d.ts +1 -0
  404. package/lib/components/booking/notes/NoteBlock/index.d.ts +1 -0
  405. package/lib/components/booking/notes/addNote/index.d.ts +1 -0
  406. package/lib/components/booking/utils.d.ts +2 -2
  407. package/lib/components/eftpos/deviceList/index.d.ts +1 -0
  408. package/lib/components/eftpos/form/index.d.ts +1 -0
  409. package/lib/components/eftpos/group/index.d.ts +1 -0
  410. package/lib/components/eftpos/hooks.d.ts +1 -0
  411. package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
  412. package/lib/components/eftpos/icon/device.d.ts +1 -0
  413. package/lib/components/eftpos/index.d.ts +1 -0
  414. package/lib/components/eftpos/pos.d.ts +1 -0
  415. package/lib/components/eftpos/receipt/index.d.ts +1 -0
  416. package/lib/components/eftpos/surcharge/index.d.ts +1 -0
  417. package/lib/components/eftposPay/amount.d.ts +2 -1
  418. package/lib/components/eftposPay/app.d.ts +1 -0
  419. package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
  420. package/lib/components/eftposPay/component/fail/failCustom.d.ts +1 -0
  421. package/lib/components/eftposPay/component/fail/network.d.ts +1 -0
  422. package/lib/components/eftposPay/component/fail/unknow.d.ts +1 -0
  423. package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
  424. package/lib/components/eftposPay/component/manual/index.d.ts +1 -0
  425. package/lib/components/eftposPay/component/signature/index.d.ts +1 -0
  426. package/lib/components/eftposPay/component/step/index.d.ts +1 -0
  427. package/lib/components/eftposPay/component/step/step.d.ts +1 -0
  428. package/lib/components/eftposPay/device.d.ts +2 -1
  429. package/lib/components/eftposPay/hooks.d.ts +2 -2
  430. package/lib/components/eftposPay/index.d.ts +1 -0
  431. package/lib/components/eftposPay/linkly/index.d.ts +1 -0
  432. package/lib/components/eftposPay/pay.d.ts +1 -0
  433. package/lib/components/eftposPay/payo/config.d.ts +1 -0
  434. package/lib/components/eftposPay/store/index.d.ts +6 -6
  435. package/lib/components/eftposPay/tip.d.ts +1 -0
  436. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  437. package/lib/components/eftposPay/windcave/receiptAction.d.ts +1 -0
  438. package/lib/components/eftposPay/windcave/windcave.d.ts +1 -0
  439. package/lib/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
  440. package/lib/components/eventBooking/components/Provider/Cart/ContinueButton/index.d.ts +1 -0
  441. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  442. package/lib/components/eventBooking/components/Provider/Cart/Item/Total.d.ts +1 -0
  443. package/lib/components/eventBooking/components/Provider/Cart/Item/index.d.ts +1 -0
  444. package/lib/components/eventBooking/components/Provider/Cart/index.d.ts +1 -0
  445. package/lib/components/eventBooking/components/Provider/Content/index.d.ts +1 -0
  446. package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +1 -0
  447. package/lib/components/eventBooking/components/Provider/Event/index.d.ts +1 -0
  448. package/lib/components/eventBooking/components/Provider/Footer/index.d.ts +1 -0
  449. package/lib/components/eventBooking/components/Provider/Header/index.d.ts +1 -0
  450. package/lib/components/eventBooking/components/Provider/Information/index.d.ts +1 -0
  451. package/lib/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
  452. package/lib/components/eventBooking/components/Provider/OrderProductModal/index.d.ts +1 -0
  453. package/lib/components/eventBooking/components/Provider/RemoveOptionConfirmModal.d.ts +1 -0
  454. package/lib/components/eventBooking/components/Provider/Resource/index.d.ts +1 -0
  455. package/lib/components/eventBooking/components/Provider/SelectHolderModal.d.ts +1 -0
  456. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  457. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
  458. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
  459. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
  460. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  461. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  462. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  463. package/lib/components/eventBooking/components/bookingDetailModal/components/BookingOptions.d.ts +1 -0
  464. package/lib/components/eventBooking/components/bookingDetailModal/components/Resource.d.ts +1 -0
  465. package/lib/components/eventBooking/components/bookingDetailModal/components/Schedule.d.ts +1 -0
  466. package/lib/components/eventBooking/components/scheduleCalendar/ProductItem/index.d.ts +1 -0
  467. package/lib/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
  468. package/lib/components/eventBooking/components/scheduleCalendar/components/ScheduleTimeItem/index.d.ts +1 -0
  469. package/lib/components/eventBooking/index.d.ts +1 -0
  470. package/lib/components/login/index.d.ts +1 -0
  471. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/TDSPay/ThreedsLoading/index.d.ts +1 -0
  472. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
  473. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
  474. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  475. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
  476. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
  477. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
  478. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  479. package/lib/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
  480. package/lib/components/pay/toC/index.js +7 -1
  481. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/BirthdayField/index.d.ts +1 -0
  482. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/GenderField/index.d.ts +1 -0
  483. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
  484. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/index.d.ts +1 -0
  485. package/lib/components/pisellSelectCustomerModal/RightPanel/List/index.d.ts +1 -0
  486. package/lib/components/pisellSelectCustomerModal/RightPanel/index.d.ts +1 -0
  487. package/lib/components/pisellSelectCustomerModal/index.d.ts +1 -0
  488. package/lib/components/productExtension/fields/Actor/index.d.ts +1 -0
  489. package/lib/components/productExtension/fields/Forms/index.d.ts +1 -0
  490. package/lib/components/productExtension/fields/SelectProducts/ProductItem/index.d.ts +1 -0
  491. package/lib/components/productExtension/fields/SelectProducts/ProductItemPreview/index.d.ts +1 -0
  492. package/lib/components/productExtension/fields/SelectProducts/index.d.ts +1 -0
  493. package/lib/components/productExtension/fields/SelectResourcesTable/index.d.ts +1 -0
  494. package/lib/components/productExtension/index.d.ts +1 -0
  495. package/lib/components/productSelect/components/TabProduct/index.d.ts +1 -0
  496. package/lib/components/productSelect/components/productGroup/index.d.ts +1 -0
  497. package/lib/components/ruleSetting/index.d.ts +1 -0
  498. package/lib/components/ruleSetting/ruleBorder/index.d.ts +1 -0
  499. package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
  500. package/lib/components/schedules/calendar/index.d.ts +1 -0
  501. package/lib/components/schedules/components/CurrentDay/index.d.ts +1 -0
  502. package/lib/components/schedules/components/ScheduleDetailList/index.d.ts +1 -0
  503. package/lib/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
  504. package/lib/components/schedules/components/ScheduleList/index.d.ts +1 -0
  505. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/MaxParticipantsModule/index.d.ts +1 -0
  506. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/ResourcesModule/index.d.ts +1 -0
  507. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/SchedulesModule/AddSchedules/index.d.ts +1 -0
  508. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/SchedulesModule/index.d.ts +1 -0
  509. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  510. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  511. package/lib/components/schedules/products/ProductDetailDrawer/index.d.ts +1 -0
  512. package/lib/components/schedules/products/index.d.ts +1 -0
  513. package/lib/components/schedules/products/list/ProductItem/index.d.ts +1 -0
  514. package/lib/components/schedules/products/list/index.d.ts +1 -0
  515. package/lib/components/schedules/resources/index.d.ts +1 -0
  516. package/lib/components/schedules/resources/list/index.d.ts +1 -0
  517. package/lib/components/schedules/resources/relationProduct/index.d.ts +1 -0
  518. package/lib/components/schedules/schedules/AllSchedules/index.d.ts +1 -0
  519. package/lib/components/schedules/schedules/ScheduleDetailDrawer/index.d.ts +1 -0
  520. package/lib/components/schedules/schedules/index.d.ts +1 -0
  521. package/lib/components/shoppingCart/components/Cart/Product.d.ts +1 -0
  522. package/lib/components/shoppingCart/components/Cart/index.d.ts +1 -0
  523. package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
  524. package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
  525. package/lib/components/shoppingCart/hooks/useAddService.d.ts +1 -0
  526. package/lib/components/shoppingCart/hooks/useClearCart.d.ts +1 -0
  527. package/lib/components/shoppingCart/index.d.ts +1 -0
  528. package/lib/components/taxSelect/index.d.ts +1 -0
  529. package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
  530. package/lib/components/ticketBooking/components/menuBar/index.d.ts +1 -0
  531. package/lib/components/ticketBooking/components/ticketBooking/index.less +2 -1
  532. package/lib/components/wallet/hooks/useWalletCard.d.ts +1 -0
  533. package/lib/components/workSpaceList/components/Modal/index.d.ts +1 -0
  534. package/lib/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
  535. package/lib/hooks/usePaymentLogger.d.ts +1 -0
  536. package/lib/index.d.ts +3 -0
  537. package/lib/index.js +13 -0
  538. package/lib/plus/clientName/index.d.ts +5 -0
  539. package/lib/plus/clientName/index.js +53 -0
  540. package/lib/plus/clientName/index.less +10 -0
  541. package/lib/plus/clientName/type.d.ts +13 -0
  542. package/lib/plus/clientName/type.js +17 -0
  543. package/lib/plus/clientName/utils.d.ts +2 -0
  544. package/lib/plus/clientName/utils.js +43 -0
  545. package/lib/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  546. package/lib/plus/contactInfo/components/Avatar/index.js +56 -0
  547. package/lib/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  548. package/lib/plus/contactInfo/components/SwipeAction/index.js +373 -0
  549. package/lib/plus/contactInfo/components/SwipeAction/index.less +74 -0
  550. package/lib/plus/contactInfo/index.d.ts +6 -0
  551. package/lib/plus/contactInfo/index.js +226 -0
  552. package/lib/plus/contactInfo/index.less +621 -0
  553. package/lib/plus/contactInfo/locales.d.ts +15 -0
  554. package/lib/plus/contactInfo/locales.js +38 -0
  555. package/lib/plus/contactInfo/types.d.ts +91 -0
  556. package/lib/plus/contactInfo/types.js +17 -0
  557. package/lib/plus/contactInfo/utils.d.ts +7 -0
  558. package/lib/plus/contactInfo/utils.js +64 -0
  559. package/lib/plus/contactInfoModal/ContactInfoContent.d.ts +4 -0
  560. package/lib/plus/contactInfoModal/ContactInfoContent.js +129 -0
  561. package/lib/plus/contactInfoModal/index.d.ts +41 -0
  562. package/lib/plus/contactInfoModal/index.js +139 -0
  563. package/lib/plus/contactInfoModal/index.less +19 -0
  564. package/lib/plus/contactInfoModal/locales.d.ts +66 -0
  565. package/lib/plus/contactInfoModal/locales.js +89 -0
  566. package/lib/plus/saasCreateOrganization/components/Header.d.ts +1 -0
  567. package/lib/plus/saasCreateOrganization/index.d.ts +1 -0
  568. package/lib/plus/saasRegister/components/EntryEmail.d.ts +1 -0
  569. package/lib/plus/saasRegister/components/EntryInfo.d.ts +1 -0
  570. package/lib/plus/saasRegister/components/GoLogin.d.ts +1 -0
  571. package/lib/plus/saasRegister/components/Header.d.ts +1 -0
  572. package/lib/plus/saasRegister/components/VerifyError.d.ts +1 -0
  573. package/lib/plus/saasRegister/components/VerifyingLink.d.ts +1 -0
  574. package/lib/plus/saasRegister/components/VertifyEmail.d.ts +1 -0
  575. package/lib/pro/Login2.0/AuthModal.d.ts +143 -0
  576. package/lib/pro/Login2.0/AuthModal.js +503 -0
  577. package/lib/pro/Login2.0/Login2.d.ts +61 -0
  578. package/lib/pro/Login2.0/Login2.js +1544 -0
  579. package/lib/pro/Login2.0/Register2.d.ts +65 -0
  580. package/lib/pro/Login2.0/Register2.js +1062 -0
  581. package/lib/pro/Login2.0/components/ForgotPasswordFlow.d.ts +31 -0
  582. package/lib/pro/Login2.0/components/ForgotPasswordFlow.js +213 -0
  583. package/lib/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  584. package/lib/pro/Login2.0/components/LegalTerms.js +76 -0
  585. package/lib/pro/Login2.0/components/LegalTerms.less +74 -0
  586. package/lib/pro/Login2.0/components/LoginCodeInput.d.ts +27 -0
  587. package/lib/pro/Login2.0/components/LoginCodeInput.js +161 -0
  588. package/lib/pro/Login2.0/components/OAuthButtonGroup.d.ts +22 -0
  589. package/lib/pro/Login2.0/components/OAuthButtonGroup.js +87 -0
  590. package/lib/pro/Login2.0/components/PhoneInput.d.ts +53 -0
  591. package/lib/pro/Login2.0/components/PhoneInput.js +263 -0
  592. package/lib/pro/Login2.0/components/PhoneInput.less +148 -0
  593. package/lib/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  594. package/lib/pro/Login2.0/components/phoneValidation.js +153 -0
  595. package/lib/pro/Login2.0/hooks/index.d.ts +2 -0
  596. package/lib/pro/Login2.0/hooks/index.js +29 -0
  597. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +24 -0
  598. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.js +140 -0
  599. package/lib/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  600. package/lib/pro/Login2.0/hooks/useRegisterFlow.js +149 -0
  601. package/lib/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  602. package/lib/pro/Login2.0/hooks/useRegistrationMethods.js +51 -0
  603. package/lib/pro/Login2.0/index.js +45 -0
  604. package/lib/pro/Login2.0/index.less +1002 -0
  605. package/lib/pro/Login2.0/locales.d.ts +543 -0
  606. package/lib/pro/Login2.0/locales.js +646 -0
  607. package/lib/pro/Login2.0/shared/Header.d.ts +11 -0
  608. package/lib/pro/Login2.0/shared/Header.js +81 -0
  609. package/lib/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  610. package/lib/pro/Login2.0/shared/OAuthButtons.js +78 -0
  611. package/lib/pro/Login2.0/shared/registerFlow.d.ts +116 -0
  612. package/lib/pro/Login2.0/shared/registerFlow.js +235 -0
  613. package/lib/pro/Login2.0/shared/types.d.ts +232 -0
  614. package/lib/pro/Login2.0/shared/types.js +17 -0
  615. package/lib/pro/Login2.0/steps/CodeInput.d.ts +24 -0
  616. package/lib/pro/Login2.0/steps/CodeInput.js +160 -0
  617. package/lib/pro/Login2.0/steps/EmailAlreadyRegistered.d.ts +12 -0
  618. package/lib/pro/Login2.0/steps/EmailAlreadyRegistered.js +46 -0
  619. package/lib/pro/Login2.0/steps/EmailLinkAlreadyUsed.d.ts +7 -0
  620. package/lib/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +51 -0
  621. package/lib/pro/Login2.0/steps/EmailLinkExpired.d.ts +9 -0
  622. package/lib/pro/Login2.0/steps/EmailLinkExpired.js +51 -0
  623. package/lib/pro/Login2.0/steps/SetPassword.d.ts +19 -0
  624. package/lib/pro/Login2.0/steps/SetPassword.js +131 -0
  625. package/lib/pro/Login2.0/steps/VerificationSuccess.d.ts +8 -0
  626. package/lib/pro/Login2.0/steps/VerificationSuccess.js +49 -0
  627. package/lib/pro/Login2.0/steps/VerifyingEmailLink.d.ts +7 -0
  628. package/lib/pro/Login2.0/steps/VerifyingEmailLink.js +41 -0
  629. package/lib/pro/Login2.0/steps/WaitEmailLink.d.ts +18 -0
  630. package/lib/pro/Login2.0/steps/WaitEmailLink.js +67 -0
  631. package/lib/pro/Login2.0/steps/index.d.ts +19 -0
  632. package/lib/pro/Login2.0/steps/index.js +60 -0
  633. package/lib/pro/Login2.0/steps/steps.less +423 -0
  634. package/lib/pro/Login2.0/types.d.ts +167 -0
  635. package/lib/pro/Login2.0/types.js +17 -0
  636. package/lib/pro/pisellPaymentList/example.d.ts +1 -0
  637. package/lowcode/authmodal/meta.ts +395 -0
  638. package/lowcode/contact-info/fragments/cardStyle.ts +68 -0
  639. package/lowcode/contact-info/fragments/nameStyle.ts +33 -0
  640. package/lowcode/contact-info/fragments/pisellAvatar.ts +103 -0
  641. package/lowcode/contact-info/fragments/textStyle.ts +33 -0
  642. package/lowcode/contact-info/meta.ts +199 -0
  643. package/lowcode/contact-info-modal/meta.ts +98 -0
  644. package/lowcode/login2/CONFIG.md +447 -0
  645. package/lowcode/login2/TEST_CONFIG.md +324 -0
  646. package/lowcode/login2/VERIFICATION_METHODS.md +364 -0
  647. package/lowcode/login2/meta.ts +560 -0
  648. package/lowcode/login2/snippets.ts +124 -0
  649. package/lowcode/register2/meta.ts +562 -0
  650. package/lowcode/register2/snippets.ts +257 -0
  651. package/package.json +5 -3
@@ -0,0 +1,1544 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/pro/Login2.0/Login2.tsx
30
+ var Login2_exports = {};
31
+ __export(Login2_exports, {
32
+ default: () => Login2_default
33
+ });
34
+ module.exports = __toCommonJS(Login2_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_materials = require("@pisell/materials");
38
+ var import_classnames = __toESM(require("classnames"));
39
+ var import_utils = require("@pisell/utils");
40
+ var import_ahooks = require("ahooks");
41
+ var import_locales = __toESM(require("./locales"));
42
+ var import_Header = __toESM(require("./shared/Header"));
43
+ var import_LoginCodeInput = __toESM(require("./components/LoginCodeInput"));
44
+ var import_ForgotPasswordFlow = __toESM(require("./components/ForgotPasswordFlow"));
45
+ var import_SetPassword = __toESM(require("./steps/SetPassword"));
46
+ var import_PhoneInput = __toESM(require("./components/PhoneInput"));
47
+ var import_phoneValidation = require("./components/phoneValidation");
48
+ var import_LegalTerms = __toESM(require("./components/LegalTerms"));
49
+ var import_index = require("./index.less");
50
+ var import_useEngineContext = require("../../hooks/useEngineContext");
51
+ var import_useEngineContext2 = __toESM(require("../../hooks/useEngineContext"));
52
+ var import_materials2 = require("@pisell/materials");
53
+ var import_usePasswordValidationRules = __toESM(require("./hooks/usePasswordValidationRules"));
54
+ var import_OAuthButtonGroup = __toESM(require("./components/OAuthButtonGroup"));
55
+ var Login2 = ({
56
+ config,
57
+ visible = true,
58
+ onClose,
59
+ className,
60
+ style,
61
+ onLogin,
62
+ onOAuthLogin,
63
+ onSendVerificationCode,
64
+ onForgotPassword,
65
+ onSwitchToRegister,
66
+ onError
67
+ }) => {
68
+ var _a, _b, _c, _d, _e, _f;
69
+ const [form] = import_antd.Form.useForm();
70
+ const [loading, setLoading] = (0, import_react.useState)(false);
71
+ const [countdown, setCountdown] = (0, import_react.useState)(0);
72
+ const [countries, setCountries] = (0, import_react.useState)([]);
73
+ const pisellOS = (0, import_useEngineContext.usePisellOS)();
74
+ const registerAndLogin = pisellOS == null ? void 0 : pisellOS.getModule("registerAndLogin");
75
+ const context = (0, import_useEngineContext2.default)();
76
+ const storage = (_b = (_a = context == null ? void 0 : context.appHelper) == null ? void 0 : _a.utils) == null ? void 0 : _b.storage;
77
+ (0, import_react.useEffect)(() => {
78
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g;
79
+ import_utils.locales.init(
80
+ import_locales.default,
81
+ ((_e2 = (_d2 = (_c2 = (_b2 = (_a2 = context.appHelper.utils) == null ? void 0 : _a2.getApp) == null ? void 0 : _b2.call(_a2)) == null ? void 0 : _c2.locales) == null ? void 0 : _d2.getLocale) == null ? void 0 : _e2.call(_d2)) || ((_g = (_f2 = context.appHelper.utils) == null ? void 0 : _f2.storage) == null ? void 0 : _g.get("umi_locale")) || "en"
82
+ );
83
+ }, []);
84
+ const loginMethods = config.loginMethods || [];
85
+ const passwordValidationRules = (0, import_usePasswordValidationRules.default)(
86
+ (_c = config.ui) == null ? void 0 : _c.passwordRules,
87
+ {
88
+ translate: import_utils.locales.getText,
89
+ fallbackMinLength: 6,
90
+ messageKeys: {
91
+ required: import_utils.locales.getText("pisell-login2-password-required"),
92
+ minLength: import_utils.locales.getText("pisell-set-password-min-length"),
93
+ requireUppercase: import_utils.locales.getText("pisell-set-password-require-uppercase"),
94
+ requireLowercase: import_utils.locales.getText("pisell-set-password-require-lowercase"),
95
+ requireNumber: import_utils.locales.getText("pisell-set-password-require-number"),
96
+ requireSpecialCharacters: import_utils.locales.getText("pisell-set-password-require-special"),
97
+ summary: import_utils.locales.getText("pisell-set-password-must-contain")
98
+ }
99
+ }
100
+ );
101
+ const [currentLoginMethod, setCurrentLoginMethod] = (0, import_react.useState)(null);
102
+ const [currentVerificationMethod, setCurrentVerificationMethod] = (0, import_react.useState)("password");
103
+ const hasTriggeredGuestLoginRef = (0, import_react.useRef)(false);
104
+ (0, import_react.useEffect)(() => {
105
+ var _a2;
106
+ if (loginMethods.length > 0 && !currentLoginMethod) {
107
+ const initialMethod = loginMethods[0];
108
+ setCurrentLoginMethod(initialMethod);
109
+ if ((initialMethod == null ? void 0 : initialMethod.type) === "email" || (initialMethod == null ? void 0 : initialMethod.type) === "phone") {
110
+ setCurrentVerificationMethod(
111
+ ((_a2 = initialMethod.verificationMethods) == null ? void 0 : _a2[0]) || "password"
112
+ );
113
+ }
114
+ }
115
+ if (hasTriggeredGuestLoginRef.current) return;
116
+ const hasOnlyGuest = loginMethods.length === 1 && loginMethods[0].type === "guest";
117
+ if (!hasOnlyGuest) return;
118
+ hasTriggeredGuestLoginRef.current = true;
119
+ handleGuestLogin();
120
+ }, [loginMethods, currentLoginMethod]);
121
+ (0, import_react.useEffect)(() => {
122
+ if (((currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" || (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "phone") && currentVerificationMethod === "password") {
123
+ const storedRememberMe = storage.get("login_remember_me") === "true";
124
+ setRememberMe(storedRememberMe);
125
+ let account = storage.get("login_account");
126
+ try {
127
+ account = JSON.parse(account || "{}");
128
+ } catch (e) {
129
+ console.error(e);
130
+ }
131
+ if (account && storedRememberMe) {
132
+ const accountString = typeof account === "string" ? account : account.phone || account.email || "";
133
+ const isEmail = accountString.includes("@");
134
+ const isPhone = /^\d+$/.test(accountString.replace(/\+/g, "").replace(/\s/g, ""));
135
+ const shouldUseStoredAccount = currentLoginMethod.type === "email" && isEmail || currentLoginMethod.type === "phone" && isPhone;
136
+ if (shouldUseStoredAccount) {
137
+ setEnteredAccount(account);
138
+ setHasStoredCredentials(true);
139
+ if (isEmail && !form.getFieldValue("email")) {
140
+ form.setFieldsValue({
141
+ email: account
142
+ });
143
+ }
144
+ if (isPhone && !form.getFieldValue("phone")) {
145
+ form.setFieldsValue({
146
+ phone: account
147
+ });
148
+ }
149
+ if (currentLoginMethod == null ? void 0 : currentLoginMethod.stepByStep) {
150
+ setLoginStep("password");
151
+ }
152
+ } else {
153
+ setHasStoredCredentials(false);
154
+ setEnteredAccount("");
155
+ }
156
+ } else {
157
+ setHasStoredCredentials(false);
158
+ }
159
+ }
160
+ }, [currentLoginMethod, currentVerificationMethod]);
161
+ (0, import_react.useEffect)(() => {
162
+ if (!visible) {
163
+ form.setFieldsValue({ password: "" });
164
+ }
165
+ }, [visible, form]);
166
+ const [loginStep, setLoginStep] = (0, import_react.useState)(
167
+ "account"
168
+ );
169
+ const [enteredAccount, setEnteredAccount] = (0, import_react.useState)("");
170
+ const [codeError, setCodeError] = (0, import_react.useState)("");
171
+ const [rememberMe, setRememberMe] = (0, import_react.useState)(false);
172
+ const [hasStoredCredentials, setHasStoredCredentials] = (0, import_react.useState)(false);
173
+ const [lastLoginMethod, setLastLoginMethod] = (0, import_react.useState)(null);
174
+ const [showForgotPassword, setShowForgotPassword] = (0, import_react.useState)(false);
175
+ const [emailLinkVerifyStatus, setEmailLinkVerifyStatus] = (0, import_react.useState)(null);
176
+ const [emailLinkError, setEmailLinkError] = (0, import_react.useState)("");
177
+ const [resetPasswordUserEmail, setResetPasswordUserEmail] = (0, import_react.useState)("");
178
+ const isEmailLinkVerification = ((_d = config.emailLinkVerification) == null ? void 0 : _d.enabled) && ((_e = config.emailLinkVerification) == null ? void 0 : _e.code);
179
+ (0, import_react.useEffect)(() => {
180
+ var _a2;
181
+ if (isEmailLinkVerification && ((_a2 = config.emailLinkVerification) == null ? void 0 : _a2.code)) {
182
+ setEmailLinkVerifyStatus("verifying");
183
+ const checkCode = async () => {
184
+ var _a3;
185
+ try {
186
+ if (registerAndLogin == null ? void 0 : registerAndLogin.checkResetPasswordCode) {
187
+ const result = await registerAndLogin.checkResetPasswordCode({
188
+ code: config.emailLinkVerification.code
189
+ });
190
+ if (result.status) {
191
+ setEmailLinkVerifyStatus("success");
192
+ if ((_a3 = result.data) == null ? void 0 : _a3.email) {
193
+ setResetPasswordUserEmail(result.data.email);
194
+ }
195
+ } else {
196
+ setEmailLinkVerifyStatus("error");
197
+ setEmailLinkError(result.message || "验证码无效或已过期");
198
+ }
199
+ } else {
200
+ setEmailLinkVerifyStatus("error");
201
+ setEmailLinkError("系统错误,请稍后重试");
202
+ }
203
+ } catch (error) {
204
+ setEmailLinkVerifyStatus("error");
205
+ setEmailLinkError("网络错误,请稍后重试");
206
+ }
207
+ };
208
+ checkCode();
209
+ }
210
+ }, [
211
+ isEmailLinkVerification,
212
+ (_f = config.emailLinkVerification) == null ? void 0 : _f.code,
213
+ registerAndLogin
214
+ ]);
215
+ (0, import_react.useEffect)(() => {
216
+ if (countdown > 0) {
217
+ const timer = setTimeout(() => {
218
+ setCountdown(countdown - 1);
219
+ }, 1e3);
220
+ return () => clearTimeout(timer);
221
+ }
222
+ }, [countdown]);
223
+ (0, import_react.useEffect)(() => {
224
+ const fetchCountries = async () => {
225
+ try {
226
+ if (registerAndLogin == null ? void 0 : registerAndLogin.getCountries) {
227
+ const countriesList = await registerAndLogin.getCountries();
228
+ setCountries(countriesList || []);
229
+ }
230
+ } catch (error) {
231
+ console.error("Failed to fetch countries:", error);
232
+ }
233
+ };
234
+ fetchCountries();
235
+ }, [registerAndLogin]);
236
+ (0, import_react.useEffect)(() => {
237
+ try {
238
+ const storedLoginMethod = storage.get("pisell_last_login_method");
239
+ if (storedLoginMethod) {
240
+ const parsedMethod = JSON.parse(storedLoginMethod);
241
+ setLastLoginMethod(parsedMethod);
242
+ }
243
+ const rememberMe2 = storage.get("login_remember_me") === "true";
244
+ const account = storage.get("login_account");
245
+ const password = storage.get("login_password");
246
+ if (rememberMe2 && account && password) {
247
+ let accountData;
248
+ try {
249
+ accountData = JSON.parse(account || "{}");
250
+ } catch (e) {
251
+ accountData = account;
252
+ }
253
+ const isEmail = typeof accountData === "string" && accountData.includes("@");
254
+ const loginMethod = loginMethods.find((m) => m.type === (isEmail ? "email" : "phone"));
255
+ if (loginMethod) {
256
+ setCurrentLoginMethod(loginMethod);
257
+ setCurrentVerificationMethod("password");
258
+ setEnteredAccount(accountData);
259
+ const accountFieldName = isEmail ? "email" : "phone";
260
+ form.setFieldsValue({ [accountFieldName]: accountData, password, remember_me: true });
261
+ setLoginStep("password");
262
+ setRememberMe(true);
263
+ }
264
+ }
265
+ } catch (error) {
266
+ console.error("Failed to parse last login method:", error);
267
+ }
268
+ }, [loginMethods]);
269
+ const isLastLoginMethod = (0, import_react.useCallback)((methodType) => {
270
+ if (!lastLoginMethod) return false;
271
+ return lastLoginMethod.type === methodType;
272
+ }, [lastLoginMethod]);
273
+ const switchVerificationMethod = (0, import_react.useCallback)(
274
+ (method) => {
275
+ form.resetFields();
276
+ setLoginStep("account");
277
+ setEnteredAccount("");
278
+ setCurrentVerificationMethod(method);
279
+ },
280
+ [form]
281
+ );
282
+ const switchLoginMethod = (0, import_react.useCallback)(
283
+ (method) => {
284
+ form.resetFields();
285
+ setLoginStep("account");
286
+ setEnteredAccount("");
287
+ setHasStoredCredentials(false);
288
+ setCurrentLoginMethod(method);
289
+ if (method.type === "email" || method.type === "phone") {
290
+ setCurrentVerificationMethod(method.verificationMethods[0]);
291
+ }
292
+ },
293
+ [form]
294
+ );
295
+ const handleContinueWithAccountInternal = async () => {
296
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g;
297
+ try {
298
+ setLoading(true);
299
+ const accountFieldName = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
300
+ const accountValues = await form.validateFields([accountFieldName]);
301
+ const account = accountValues[accountFieldName];
302
+ if ((currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" && registerAndLogin) {
303
+ const utils = ((_a2 = context == null ? void 0 : context.appHelper) == null ? void 0 : _a2.utils) || {};
304
+ const shopId = ((_g = (_f2 = (_e2 = (_d2 = (_c2 = (_b2 = utils.getStore) == null ? void 0 : _b2.call(utils)) == null ? void 0 : _c2.getState) == null ? void 0 : _d2.call(_c2)) == null ? void 0 : _e2.global) == null ? void 0 : _f2.shop) == null ? void 0 : _g.id) || 9;
305
+ const result = await registerAndLogin.checkEmailExists({
306
+ email: account,
307
+ shop_id: shopId
308
+ });
309
+ if (result.status && result.data) {
310
+ if (result.data.exists) {
311
+ setEnteredAccount(account);
312
+ setLoginStep("password");
313
+ form.setFieldsValue({ [accountFieldName]: account });
314
+ } else {
315
+ import_antd.message.error(
316
+ import_utils.locales.getText("pisell-login2-email-not-registered")
317
+ );
318
+ return;
319
+ }
320
+ } else {
321
+ import_antd.message.error(
322
+ result.message || import_utils.locales.getText("pisell-login2-check-email-failed")
323
+ );
324
+ return;
325
+ }
326
+ } else {
327
+ setEnteredAccount(account);
328
+ setLoginStep("password");
329
+ form.setFieldsValue({ [accountFieldName]: account });
330
+ }
331
+ } catch (error) {
332
+ if (error.errorFields) {
333
+ return;
334
+ }
335
+ console.error("Continue with account error:", error);
336
+ import_antd.message.error(
337
+ (error == null ? void 0 : error.message) || import_utils.locales.getText("pisell-login2-continue-failed")
338
+ );
339
+ } finally {
340
+ setLoading(false);
341
+ }
342
+ };
343
+ const { run: handleContinueWithAccount } = (0, import_ahooks.useDebounceFn)(handleContinueWithAccountInternal, {
344
+ wait: 200,
345
+ leading: true,
346
+ trailing: false
347
+ });
348
+ const handleBackToAccountInternal = () => {
349
+ setLoginStep("account");
350
+ form.resetFields(["password"]);
351
+ };
352
+ const { run: handleBackToAccount } = (0, import_ahooks.useDebounceFn)(handleBackToAccountInternal, {
353
+ wait: 200,
354
+ leading: true,
355
+ trailing: false
356
+ });
357
+ const handleSendCode = async () => {
358
+ var _a2;
359
+ try {
360
+ const accountFieldName = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
361
+ await form.validateFields([accountFieldName]);
362
+ const account = form.getFieldValue(accountFieldName);
363
+ if (!account) {
364
+ import_antd.message.error(import_utils.locales.getText("pisell-login2-account-required"));
365
+ return;
366
+ }
367
+ setLoading(true);
368
+ const type = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
369
+ if (registerAndLogin) {
370
+ let res;
371
+ if (type === "email") {
372
+ res = await registerAndLogin.sendEmailLoginCode({
373
+ type: "email",
374
+ target: account,
375
+ purpose: "login"
376
+ });
377
+ } else {
378
+ let phoneData;
379
+ if (typeof account === "string") {
380
+ phoneData = {
381
+ phone: account,
382
+ country_calling_code: ((_a2 = countries.find((country) => country.value === account)) == null ? void 0 : _a2.calling_code) || ""
383
+ };
384
+ } else {
385
+ phoneData = account;
386
+ }
387
+ res = await registerAndLogin.sendSmsLoginCode(phoneData);
388
+ }
389
+ if ((res == null ? void 0 : res.code) !== 200) {
390
+ throw new Error(
391
+ (res == null ? void 0 : res.message) || import_utils.locales.getText("pisell-login2-code-send-failed")
392
+ );
393
+ }
394
+ }
395
+ await (onSendVerificationCode == null ? void 0 : onSendVerificationCode(account, type, config.channel));
396
+ setEnteredAccount(account);
397
+ setLoginStep("code");
398
+ setCountdown(60);
399
+ import_antd.message.success(import_utils.locales.getText("pisell-login2-code-sent"));
400
+ } catch (error) {
401
+ if (error == null ? void 0 : error.errorFields) return;
402
+ import_antd.message.error(
403
+ (error == null ? void 0 : error.message) || import_utils.locales.getText("pisell-login2-code-send-failed")
404
+ );
405
+ } finally {
406
+ setLoading(false);
407
+ }
408
+ };
409
+ const handleCodeSubmit = async (code) => {
410
+ var _a2;
411
+ try {
412
+ setLoading(true);
413
+ setCodeError("");
414
+ const method = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) || "email";
415
+ let result;
416
+ if (registerAndLogin) {
417
+ if (method === "email") {
418
+ result = await registerAndLogin.emailCodeLogin({
419
+ email: enteredAccount,
420
+ code
421
+ });
422
+ } else if (method === "phone") {
423
+ let phoneData;
424
+ if (typeof enteredAccount === "string") {
425
+ phoneData = {
426
+ phone: enteredAccount,
427
+ country_calling_code: ((_a2 = countries.find((country) => country.value === enteredAccount)) == null ? void 0 : _a2.calling_code) || ""
428
+ };
429
+ } else {
430
+ phoneData = enteredAccount;
431
+ }
432
+ result = await registerAndLogin.phoneCodeLogin({
433
+ phone: phoneData.phone,
434
+ country_calling_code: phoneData.country_calling_code,
435
+ code
436
+ });
437
+ }
438
+ if ((result == null ? void 0 : result.code) !== 200) {
439
+ const errorMessage = (result == null ? void 0 : result.message) || import_utils.locales.getText("pisell-login2-login-failed");
440
+ const error = new Error(errorMessage);
441
+ onError == null ? void 0 : onError(error, method);
442
+ setCodeError(errorMessage);
443
+ return;
444
+ }
445
+ }
446
+ const loginData = {
447
+ account: enteredAccount,
448
+ password: void 0,
449
+ verification_code: code,
450
+ remember_me: false
451
+ };
452
+ await (onLogin == null ? void 0 : onLogin(result.data, method, loginData, config.channel));
453
+ import_antd.message.success(import_utils.locales.getText("pisell-login2-login-success"));
454
+ } catch (error) {
455
+ setCodeError(
456
+ (error == null ? void 0 : error.message) || import_utils.locales.getText("pisell-login2-login-failed")
457
+ );
458
+ } finally {
459
+ setLoading(false);
460
+ }
461
+ };
462
+ const handleBackFromCode = () => {
463
+ setLoginStep("account");
464
+ form.resetFields();
465
+ setCodeError("");
466
+ };
467
+ const handleForgotPasswordClickInternal = () => {
468
+ const accountFieldName = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
469
+ const account = form.getFieldValue(accountFieldName);
470
+ setEnteredAccount(account || "");
471
+ setShowForgotPassword(true);
472
+ };
473
+ const { run: handleForgotPasswordClick } = (0, import_ahooks.useDebounceFn)(handleForgotPasswordClickInternal, {
474
+ wait: 200,
475
+ leading: true,
476
+ trailing: false
477
+ });
478
+ const handleCloseForgotPassword = () => {
479
+ setShowForgotPassword(false);
480
+ setCountdown(0);
481
+ };
482
+ const handleForgotPasswordSendLink = async (account) => {
483
+ try {
484
+ setLoading(true);
485
+ if (registerAndLogin) {
486
+ const res = await registerAndLogin.sendResetPasswordLink({
487
+ email: account
488
+ });
489
+ if (!res.status) {
490
+ throw new Error(res.message || "发送重置密码链接失败");
491
+ }
492
+ }
493
+ import_antd.message.success(import_utils.locales.getText("pisell-forgot-password-link-sent"));
494
+ } catch (error) {
495
+ import_antd.message.error((error == null ? void 0 : error.message) || "发送重置密码链接失败");
496
+ throw error;
497
+ } finally {
498
+ setLoading(false);
499
+ }
500
+ };
501
+ const handleForgotPasswordSendCode = async (account) => {
502
+ try {
503
+ setLoading(true);
504
+ const type = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
505
+ if (registerAndLogin) {
506
+ if (type === "email") {
507
+ const res = await registerAndLogin.sendPasswordResetEmail({
508
+ email: account
509
+ });
510
+ if (!res.status) {
511
+ throw new Error(
512
+ res.message || import_utils.locales.getText("pisell-login2-code-send-failed")
513
+ );
514
+ }
515
+ } else {
516
+ const phoneAccount = account;
517
+ const res = await registerAndLogin.sendPasswordResetSms({
518
+ phone: phoneAccount.phone,
519
+ country_calling_code: phoneAccount.country_calling_code
520
+ });
521
+ if (!res.status) {
522
+ throw new Error(
523
+ res.message || import_utils.locales.getText("pisell-login2-code-send-failed")
524
+ );
525
+ }
526
+ }
527
+ }
528
+ setCountdown(60);
529
+ import_antd.message.success(import_utils.locales.getText("pisell-login2-code-sent"));
530
+ } catch (error) {
531
+ import_antd.message.error(
532
+ (error == null ? void 0 : error.message) || import_utils.locales.getText("pisell-login2-code-send-failed")
533
+ );
534
+ throw error;
535
+ } finally {
536
+ setLoading(false);
537
+ }
538
+ };
539
+ const handleForgotPasswordVerifyCode = async (account, code) => {
540
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g;
541
+ try {
542
+ setLoading(true);
543
+ if (registerAndLogin) {
544
+ const utils = ((_a2 = context == null ? void 0 : context.appHelper) == null ? void 0 : _a2.utils) || {};
545
+ const shopId = ((_g = (_f2 = (_e2 = (_d2 = (_c2 = (_b2 = utils.getStore) == null ? void 0 : _b2.call(utils)) == null ? void 0 : _c2.getState) == null ? void 0 : _d2.call(_c2)) == null ? void 0 : _e2.global) == null ? void 0 : _f2.shop) == null ? void 0 : _g.id) || 9;
546
+ const isPhoneAccount = typeof account === "object" && "phone" in account;
547
+ let res;
548
+ if (!isPhoneAccount) {
549
+ res = await registerAndLogin.checkEmailCode({
550
+ email: account,
551
+ shop_id: shopId,
552
+ code,
553
+ action: "customer_reset_password_code"
554
+ });
555
+ } else {
556
+ const phoneData = account;
557
+ res = await registerAndLogin.checkMobileCode({
558
+ phone: phoneData.phone,
559
+ country_calling_code: phoneData.country_calling_code,
560
+ code
561
+ });
562
+ }
563
+ if (!res.status) {
564
+ throw new Error(res.message || "验证码验证失败");
565
+ }
566
+ if (!res.data.valid) {
567
+ throw new Error(import_utils.locales.getText("pisell-login2-code-verify-failed"));
568
+ }
569
+ }
570
+ } catch (error) {
571
+ import_antd.message.error((error == null ? void 0 : error.message) || "验证码验证失败");
572
+ throw error;
573
+ } finally {
574
+ setLoading(false);
575
+ }
576
+ };
577
+ const handleForgotPasswordReset = async (account, password, code) => {
578
+ try {
579
+ setLoading(true);
580
+ if (registerAndLogin) {
581
+ const isPhoneAccount2 = typeof account === "object" && "phone" in account;
582
+ let resetPasswordParams;
583
+ if (isPhoneAccount2) {
584
+ resetPasswordParams = {
585
+ type: "phone",
586
+ target: {
587
+ phone: account.phone,
588
+ country_calling_code: account.country_calling_code
589
+ },
590
+ password,
591
+ code
592
+ };
593
+ } else {
594
+ resetPasswordParams = {
595
+ type: "email",
596
+ target: {
597
+ email: account
598
+ },
599
+ password,
600
+ code
601
+ };
602
+ }
603
+ const res = await registerAndLogin.resetPassword(resetPasswordParams);
604
+ if ((res == null ? void 0 : res.code) !== 200) {
605
+ throw new Error((res == null ? void 0 : res.message) || "密码重置失败");
606
+ }
607
+ }
608
+ handleCloseForgotPassword();
609
+ const isPhoneAccount = typeof account === "object" && "phone" in account;
610
+ if (isPhoneAccount) {
611
+ const phoneMethod = config.loginMethods.find((method) => method.type === "phone");
612
+ if (phoneMethod) {
613
+ setCurrentLoginMethod(phoneMethod);
614
+ setCurrentVerificationMethod(phoneMethod.verificationMethods[0]);
615
+ }
616
+ form.setFieldsValue({ phone: account });
617
+ setEnteredAccount(account);
618
+ } else {
619
+ const emailMethod = config.loginMethods.find((method) => method.type === "email");
620
+ if (emailMethod) {
621
+ setCurrentLoginMethod(emailMethod);
622
+ setCurrentVerificationMethod(emailMethod.verificationMethods[0]);
623
+ }
624
+ form.setFieldsValue({ email: account });
625
+ setEnteredAccount(account);
626
+ }
627
+ setLoginStep("account");
628
+ } catch (error) {
629
+ import_antd.message.error((error == null ? void 0 : error.message) || "密码重置失败");
630
+ } finally {
631
+ setLoading(false);
632
+ }
633
+ };
634
+ const handleEmailLinkResetPassword = async (account, password, code) => {
635
+ try {
636
+ setLoading(true);
637
+ if (registerAndLogin) {
638
+ const res = await registerAndLogin.resetPasswordByCode({
639
+ code: config.emailLinkVerification.code,
640
+ password
641
+ });
642
+ if ((res == null ? void 0 : res.code) !== 200) {
643
+ throw new Error((res == null ? void 0 : res.message) || "密码重置失败");
644
+ }
645
+ }
646
+ handleCloseForgotPassword();
647
+ setEmailLinkVerifyStatus(null);
648
+ import_antd.message.success("密码重置成功");
649
+ } catch (error) {
650
+ import_antd.message.error((error == null ? void 0 : error.message) || "密码重置失败");
651
+ throw error;
652
+ } finally {
653
+ setLoading(false);
654
+ }
655
+ };
656
+ const handleGuestLoginInternal = async () => {
657
+ try {
658
+ setLoading(true);
659
+ if (registerAndLogin) {
660
+ const result = await registerAndLogin.guestLogin();
661
+ if (result.code === 200) {
662
+ import_antd.message.success(import_utils.locales.getText("pisell-login2-login-success"));
663
+ const loginMethodInfo = {
664
+ type: "guest",
665
+ verificationMethod: null,
666
+ timestamp: Date.now()
667
+ };
668
+ storage.set("pisell_last_login_method", JSON.stringify(loginMethodInfo));
669
+ onLogin == null ? void 0 : onLogin(
670
+ result.data,
671
+ "guest",
672
+ {
673
+ account: "guest",
674
+ password: void 0
675
+ },
676
+ config.channel
677
+ );
678
+ } else {
679
+ import_antd.message.error(
680
+ result.message || import_utils.locales.getText("pisell-login2-login-failed")
681
+ );
682
+ }
683
+ }
684
+ } catch (error) {
685
+ console.error("Guest login error:", error);
686
+ import_antd.message.error(import_utils.locales.getText("pisell-login2-login-failed"));
687
+ } finally {
688
+ setLoading(false);
689
+ }
690
+ };
691
+ const { run: handleGuestLogin } = (0, import_ahooks.useDebounceFn)(handleGuestLoginInternal, {
692
+ wait: 200,
693
+ leading: true,
694
+ trailing: false
695
+ });
696
+ const oauthProviders = (0, import_react.useMemo)(() => {
697
+ return loginMethods.filter(
698
+ (method) => ["google", "facebook", "apple", "guest"].includes(method.type)
699
+ ).map((method) => {
700
+ const isLast = isLastLoginMethod(method.type);
701
+ const commonConfig = {
702
+ className: (0, import_classnames.default)("login2-oauth-button", method.type, {
703
+ "has-last-login-badge": isLast
704
+ }),
705
+ badge: isLast ? import_utils.locales.getText("pisell-login2-last-login-badge") : void 0,
706
+ badgeClassName: "last-login-badge"
707
+ };
708
+ switch (method.type) {
709
+ case "google":
710
+ return {
711
+ key: "google",
712
+ label: /* @__PURE__ */ import_react.default.createElement("span", null, import_utils.locales.getText("pisell-login2-continue-with"), " Google"),
713
+ icon: /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-google" }),
714
+ onClick: () => handleOAuthClick("google"),
715
+ ...commonConfig
716
+ };
717
+ case "facebook":
718
+ return {
719
+ key: "facebook",
720
+ label: /* @__PURE__ */ import_react.default.createElement("span", null, import_utils.locales.getText("pisell-login2-continue-with"), " Facebook"),
721
+ icon: /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-facebook" }),
722
+ onClick: () => handleOAuthClick("facebook"),
723
+ ...commonConfig
724
+ };
725
+ case "apple":
726
+ return {
727
+ key: "apple",
728
+ label: /* @__PURE__ */ import_react.default.createElement("span", null, import_utils.locales.getText("pisell-login2-continue-with"), " Apple"),
729
+ icon: /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-apple" }),
730
+ onClick: () => handleOAuthClick("apple"),
731
+ ...commonConfig
732
+ };
733
+ case "guest":
734
+ return {
735
+ key: "guest",
736
+ label: import_utils.locales.getText("pisell-login2-login-as-guest"),
737
+ icon: /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-user-01" }),
738
+ onClick: handleGuestLogin,
739
+ ...commonConfig
740
+ };
741
+ default:
742
+ return null;
743
+ }
744
+ }).filter(Boolean);
745
+ }, [handleGuestLogin, handleOAuthClick, isLastLoginMethod, loginMethods]);
746
+ const handleLoginInternal = async () => {
747
+ var _a2;
748
+ try {
749
+ setLoading(true);
750
+ const values = await form.validateFields();
751
+ const accountFieldName = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
752
+ const account = values[accountFieldName] || values.account;
753
+ const loginData = {
754
+ account,
755
+ password: currentVerificationMethod === "password" ? values.password : void 0,
756
+ verification_code: currentVerificationMethod === "verification_code" ? values.verification_code : void 0,
757
+ remember_me: values.remember_me
758
+ };
759
+ const method = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) || "email";
760
+ let result;
761
+ if (registerAndLogin) {
762
+ if (method === "email") {
763
+ if (currentVerificationMethod === "password") {
764
+ result = await registerAndLogin.emailPasswordLogin({
765
+ email: account,
766
+ password: values.password
767
+ });
768
+ } else {
769
+ result = await registerAndLogin.emailCodeLogin({
770
+ email: account,
771
+ code: values.verification_code
772
+ });
773
+ }
774
+ } else if (method === "phone") {
775
+ let phoneData;
776
+ if (typeof account === "string") {
777
+ phoneData = {
778
+ phone: account,
779
+ country_calling_code: ((_a2 = countries.find((country) => country.value === account)) == null ? void 0 : _a2.calling_code) || ""
780
+ };
781
+ } else {
782
+ phoneData = account;
783
+ }
784
+ if (currentVerificationMethod === "password") {
785
+ result = await registerAndLogin.phonePasswordLogin({
786
+ phone: phoneData.phone,
787
+ country_calling_code: phoneData.country_calling_code,
788
+ password: values.password
789
+ });
790
+ } else {
791
+ result = await registerAndLogin.phoneCodeLogin({
792
+ phone: phoneData.phone,
793
+ country_calling_code: phoneData.country_calling_code,
794
+ code: values.verification_code
795
+ });
796
+ }
797
+ }
798
+ if ((result == null ? void 0 : result.code) !== 200) {
799
+ throw new Error(
800
+ (result == null ? void 0 : result.message) || import_utils.locales.getText("pisell-login2-login-failed")
801
+ );
802
+ }
803
+ }
804
+ await (onLogin == null ? void 0 : onLogin(result.data, method, loginData, config.channel));
805
+ const loginMethodInfo = {
806
+ type: method,
807
+ verificationMethod: currentVerificationMethod,
808
+ timestamp: Date.now()
809
+ };
810
+ storage.set("pisell_last_login_method", JSON.stringify(loginMethodInfo));
811
+ if (values.remember_me && account) {
812
+ storage.set("login_account", JSON.stringify(account));
813
+ storage.set("login_remember_me", "true");
814
+ if (currentVerificationMethod === "password") {
815
+ storage.set("login_password", values.password);
816
+ }
817
+ setEnteredAccount(account);
818
+ } else {
819
+ storage.remove("login_account");
820
+ storage.remove("login_remember_me");
821
+ storage.remove("login_password");
822
+ }
823
+ import_antd.message.success(import_utils.locales.getText("pisell-login2-login-success"));
824
+ } catch (error) {
825
+ if (error.errorFields) {
826
+ return;
827
+ }
828
+ import_antd.message.error(
829
+ (error == null ? void 0 : error.message) || import_utils.locales.getText("pisell-login2-login-failed")
830
+ );
831
+ } finally {
832
+ setLoading(false);
833
+ }
834
+ };
835
+ const { run: handleLogin } = (0, import_ahooks.useDebounceFn)(handleLoginInternal, {
836
+ wait: 1e3,
837
+ leading: true,
838
+ trailing: false
839
+ });
840
+ const handleOAuthClickInternal = async (provider) => {
841
+ var _a2, _b2;
842
+ try {
843
+ setLoading(true);
844
+ if (provider === "facebook") {
845
+ const fbConfig = (_a2 = config == null ? void 0 : config.loginMethods) == null ? void 0 : _a2.find((n) => n.type === "facebook");
846
+ const token = fbConfig == null ? void 0 : fbConfig.appId;
847
+ if (token) {
848
+ const res = await registerAndLogin.loginWithFacebook(token);
849
+ if (res.status) {
850
+ onLogin == null ? void 0 : onLogin(res.data, "facebook", { account: "", password: "" }, config.channel);
851
+ }
852
+ } else {
853
+ throw new Error("Facebook app_id not configured");
854
+ }
855
+ } else if (provider === "apple") {
856
+ const appleConfig = (_b2 = config == null ? void 0 : config.loginMethods) == null ? void 0 : _b2.find((n) => n.type === "apple");
857
+ const token = appleConfig == null ? void 0 : appleConfig.clientId;
858
+ if (token) {
859
+ const res = await registerAndLogin.loginWithApple(token);
860
+ onLogin == null ? void 0 : onLogin(res.data, "apple", { account: "", password: "" }, config.channel);
861
+ } else {
862
+ throw new Error("Apple client_id not configured");
863
+ }
864
+ } else {
865
+ await (onOAuthLogin == null ? void 0 : onOAuthLogin(provider, config.channel));
866
+ }
867
+ } catch (error) {
868
+ if (error.message === "facebook_login_cancel") {
869
+ return import_antd.message.error(import_utils.locales.getText("pisell-register2-facebook-login-canceled"));
870
+ }
871
+ import_antd.message.error(
872
+ (error == null ? void 0 : error.message) || import_utils.locales.getText("pisell-login2-login-failed")
873
+ );
874
+ } finally {
875
+ setLoading(false);
876
+ }
877
+ };
878
+ const { run: handleOAuthClick } = (0, import_ahooks.useDebounceFn)(handleOAuthClickInternal, {
879
+ wait: 200,
880
+ leading: true,
881
+ trailing: false
882
+ });
883
+ const renderMainLoginForm = () => {
884
+ var _a2, _b2, _c2, _d2, _e2, _f2, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
885
+ if (!currentLoginMethod) return null;
886
+ const { type } = currentLoginMethod;
887
+ if (type === "google" || type === "facebook" || type === "apple" || type === "guest") {
888
+ return null;
889
+ }
890
+ const hasEmailOrPhoneMethod = loginMethods.some(
891
+ (method) => method.type === "email" || method.type === "phone"
892
+ );
893
+ if (!hasEmailOrPhoneMethod) {
894
+ return null;
895
+ }
896
+ const isEmail = type === "email";
897
+ const isPhone = type === "phone";
898
+ const accountFieldName = isEmail ? "email" : "phone";
899
+ const getAccountValue = (values) => {
900
+ if (values) {
901
+ return values[accountFieldName] || values.account;
902
+ }
903
+ return form.getFieldValue(accountFieldName) || form.getFieldValue("account");
904
+ };
905
+ const accountLabel = isEmail ? ((_c2 = (_b2 = (_a2 = config.ui) == null ? void 0 : _a2.formLabels) == null ? void 0 : _b2.email) == null ? void 0 : _c2.show) !== false ? ((_f2 = (_e2 = (_d2 = config.ui) == null ? void 0 : _d2.formLabels) == null ? void 0 : _e2.email) == null ? void 0 : _f2.text) || import_utils.locales.getText("pisell-login2-email-label") : void 0 : ((_i = (_h = (_g = config.ui) == null ? void 0 : _g.formLabels) == null ? void 0 : _h.phone) == null ? void 0 : _i.show) !== false ? ((_l = (_k = (_j = config.ui) == null ? void 0 : _j.formLabels) == null ? void 0 : _k.phone) == null ? void 0 : _l.text) || import_utils.locales.getText("pisell-login2-phone-label") : void 0;
906
+ const accountPlaceholder = isEmail ? import_utils.locales.getText("pisell-login2-email-placeholder") : import_utils.locales.getText("pisell-login2-phone-placeholder");
907
+ const accountRules = isEmail ? [
908
+ {
909
+ required: true,
910
+ message: import_utils.locales.getText("pisell-login2-email-required")
911
+ },
912
+ {
913
+ type: "email",
914
+ message: import_utils.locales.getText("pisell-login2-email-invalid")
915
+ }
916
+ ] : (0, import_phoneValidation.createPhoneValidationRules)(import_utils.locales.getText, true);
917
+ const useStepByStep = (currentLoginMethod == null ? void 0 : currentLoginMethod.stepByStep) && currentVerificationMethod === "password";
918
+ if (useStepByStep) {
919
+ const isPasswordStep = loginStep === "password";
920
+ const showPasswordField = isPasswordStep;
921
+ const handleFormSubmit = (e) => {
922
+ e == null ? void 0 : e.preventDefault();
923
+ if (isPasswordStep) {
924
+ handleLogin();
925
+ } else {
926
+ handleContinueWithAccount();
927
+ }
928
+ };
929
+ return /* @__PURE__ */ import_react.default.createElement(
930
+ import_antd.Form,
931
+ {
932
+ form,
933
+ layout: "vertical",
934
+ className: "login2-form",
935
+ size: "large"
936
+ },
937
+ (isEmail || isPhone) && !showPasswordField && /* @__PURE__ */ import_react.default.createElement("div", { style: { position: "absolute", left: "-9999px", opacity: 0, pointerEvents: "none" } }, /* @__PURE__ */ import_react.default.createElement(
938
+ "input",
939
+ {
940
+ type: "text",
941
+ name: "username",
942
+ autoComplete: "username",
943
+ tabIndex: -1,
944
+ readOnly: true,
945
+ "aria-hidden": "true"
946
+ }
947
+ )),
948
+ showPasswordField && /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-account-show-text-edit" }, /* @__PURE__ */ import_react.default.createElement("span", { className: "login2-account-show-text-edit-text" }, isPhone && `+${(_m = getAccountValue()) == null ? void 0 : _m.country_calling_code}${(_n = getAccountValue()) == null ? void 0 : _n.phone}` || "", isEmail && getAccountValue() || ""), /* @__PURE__ */ import_react.default.createElement("span", { className: "login2-account-show-text-edit-icon", onClick: handleBackToAccount }, /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-edit-05" }))),
949
+ /* @__PURE__ */ import_react.default.createElement(
950
+ import_antd.Form.Item,
951
+ {
952
+ style: { display: showPasswordField ? "none" : "block" },
953
+ label: accountLabel,
954
+ name: isEmail ? "email" : "phone",
955
+ rules: accountRules,
956
+ validateTrigger: ["onBlur", "onSubmit"],
957
+ className: isPhone ? "phone-input-form-item" : ""
958
+ },
959
+ isPhone ? /* @__PURE__ */ import_react.default.createElement(
960
+ import_PhoneInput.default,
961
+ {
962
+ size: "large",
963
+ placeholder: accountPlaceholder,
964
+ className: "login2-phone-input",
965
+ countries,
966
+ valueFormat: "object",
967
+ value: isPasswordStep ? enteredAccount : getAccountValue() || void 0,
968
+ onChange: (value) => {
969
+ if (isPasswordStep) {
970
+ setEnteredAccount(value);
971
+ }
972
+ form.setFieldsValue({ [accountFieldName]: value });
973
+ }
974
+ }
975
+ ) : /* @__PURE__ */ import_react.default.createElement(
976
+ import_materials.Input,
977
+ {
978
+ size: "large",
979
+ placeholder: accountPlaceholder,
980
+ className: "login2-input",
981
+ type: "email",
982
+ autoComplete: "email",
983
+ value: getAccountValue() || enteredAccount || "",
984
+ onChange: (e) => {
985
+ const newValue = e.target.value;
986
+ if (isPasswordStep) {
987
+ setEnteredAccount(newValue);
988
+ }
989
+ form.setFieldsValue({ [accountFieldName]: newValue });
990
+ },
991
+ onKeyDown: (e) => {
992
+ if (e.key === "Enter" && !e.shiftKey && !e.ctrlKey && !e.metaKey) {
993
+ e.preventDefault();
994
+ handleFormSubmit(e);
995
+ }
996
+ }
997
+ }
998
+ )
999
+ ),
1000
+ /* @__PURE__ */ import_react.default.createElement(
1001
+ import_antd.Form.Item,
1002
+ {
1003
+ style: { display: showPasswordField ? "block" : "none" },
1004
+ label: ((_q = (_p = (_o = config.ui) == null ? void 0 : _o.formLabels) == null ? void 0 : _p.password) == null ? void 0 : _q.show) !== false ? ((_t = (_s = (_r = config.ui) == null ? void 0 : _r.formLabels) == null ? void 0 : _s.password) == null ? void 0 : _t.text) || import_utils.locales.getText("pisell-login2-password-label") : void 0,
1005
+ name: "password",
1006
+ validateTrigger: ["onBlur", "onSubmit"],
1007
+ rules: passwordValidationRules
1008
+ },
1009
+ /* @__PURE__ */ import_react.default.createElement(
1010
+ import_materials.Input.Password,
1011
+ {
1012
+ size: "large",
1013
+ placeholder: import_utils.locales.getText(
1014
+ "pisell-login2-password-placeholder"
1015
+ ),
1016
+ className: "login2-input",
1017
+ name: "password",
1018
+ autoComplete: "current-password",
1019
+ type: "password",
1020
+ autoFocus: hasStoredCredentials,
1021
+ onKeyDown: (e) => {
1022
+ if (e.key === "Enter" && !e.shiftKey && !e.ctrlKey && !e.metaKey) {
1023
+ e.preventDefault();
1024
+ handleFormSubmit(e);
1025
+ }
1026
+ }
1027
+ }
1028
+ )
1029
+ ),
1030
+ showPasswordField && /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-form-footer" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { name: "remember_me", valuePropName: "checked", noStyle: true }, /* @__PURE__ */ import_react.default.createElement(import_materials.Checkbox, { defaultChecked: rememberMe }, import_utils.locales.getText("pisell-login2-remember-me"))), /* @__PURE__ */ import_react.default.createElement("a", { className: "login2-link", onClick: handleForgotPasswordClick }, import_utils.locales.getText("pisell-login2-forgot-password"))),
1031
+ /* @__PURE__ */ import_react.default.createElement(
1032
+ import_materials.Button,
1033
+ {
1034
+ type: "primary",
1035
+ size: "large",
1036
+ block: true,
1037
+ htmlType: "button",
1038
+ loading,
1039
+ onClick: handleFormSubmit,
1040
+ className: "login2-submit-button"
1041
+ },
1042
+ isPasswordStep ? import_utils.locales.getText("pisell-login2-login-button") : isEmail ? import_utils.locales.getText("pisell-login2-continue-with-email") : import_utils.locales.getText("pisell-login2-continue-with-phone")
1043
+ ),
1044
+ showPasswordField && /* @__PURE__ */ import_react.default.createElement(
1045
+ import_materials.Button,
1046
+ {
1047
+ size: "large",
1048
+ block: true,
1049
+ onClick: handleBackToAccount,
1050
+ className: "login2-back-button"
1051
+ },
1052
+ import_utils.locales.getText("pisell-login2-back")
1053
+ )
1054
+ );
1055
+ }
1056
+ if (currentVerificationMethod === "verification_code" && loginStep === "account") {
1057
+ const handleFormSubmit = (e) => {
1058
+ e == null ? void 0 : e.preventDefault();
1059
+ handleSendCode();
1060
+ };
1061
+ return /* @__PURE__ */ import_react.default.createElement(
1062
+ import_antd.Form,
1063
+ {
1064
+ form,
1065
+ layout: "vertical",
1066
+ className: "login2-form",
1067
+ size: "large"
1068
+ },
1069
+ isEmail && /* @__PURE__ */ import_react.default.createElement("div", { style: { position: "absolute", left: "-9999px", opacity: 0, pointerEvents: "none" } }, /* @__PURE__ */ import_react.default.createElement(
1070
+ "input",
1071
+ {
1072
+ type: "text",
1073
+ name: "username",
1074
+ autoComplete: "username",
1075
+ tabIndex: -1,
1076
+ readOnly: true,
1077
+ "aria-hidden": "true"
1078
+ }
1079
+ )),
1080
+ /* @__PURE__ */ import_react.default.createElement(
1081
+ import_antd.Form.Item,
1082
+ {
1083
+ label: accountLabel,
1084
+ name: accountFieldName,
1085
+ rules: accountRules,
1086
+ className: isPhone ? "phone-input-form-item" : "",
1087
+ validateTrigger: ["onBlur", "onSubmit"]
1088
+ },
1089
+ isPhone ? /* @__PURE__ */ import_react.default.createElement(
1090
+ import_PhoneInput.default,
1091
+ {
1092
+ size: "large",
1093
+ placeholder: accountPlaceholder,
1094
+ className: "login2-phone-input",
1095
+ countries,
1096
+ valueFormat: "object",
1097
+ onKeyDown: (e) => {
1098
+ if (e.key === "Enter" && !e.shiftKey && !e.ctrlKey && !e.metaKey) {
1099
+ e.preventDefault();
1100
+ handleFormSubmit(e);
1101
+ }
1102
+ }
1103
+ }
1104
+ ) : /* @__PURE__ */ import_react.default.createElement(
1105
+ import_materials.Input,
1106
+ {
1107
+ size: "large",
1108
+ placeholder: accountPlaceholder,
1109
+ className: "login2-input",
1110
+ type: "email",
1111
+ autoComplete: "email",
1112
+ onKeyDown: (e) => {
1113
+ if (e.key === "Enter" && !e.shiftKey && !e.ctrlKey && !e.metaKey) {
1114
+ e.preventDefault();
1115
+ handleFormSubmit(e);
1116
+ }
1117
+ }
1118
+ }
1119
+ )
1120
+ ),
1121
+ /* @__PURE__ */ import_react.default.createElement(
1122
+ import_materials.Button,
1123
+ {
1124
+ type: "primary",
1125
+ size: "large",
1126
+ block: true,
1127
+ htmlType: "button",
1128
+ loading,
1129
+ onClick: handleFormSubmit,
1130
+ className: "login2-submit-button"
1131
+ },
1132
+ isEmail ? import_utils.locales.getText("pisell-login2-continue-with-email") : import_utils.locales.getText("pisell-login2-continue-with-phone")
1133
+ )
1134
+ );
1135
+ }
1136
+ return /* @__PURE__ */ import_react.default.createElement(
1137
+ import_antd.Form,
1138
+ {
1139
+ form,
1140
+ layout: "vertical",
1141
+ className: "login2-form",
1142
+ size: "large",
1143
+ onFinish: handleLogin
1144
+ },
1145
+ isEmail && /* @__PURE__ */ import_react.default.createElement("div", { style: { position: "absolute", left: "-9999px", opacity: 0, pointerEvents: "none" } }, /* @__PURE__ */ import_react.default.createElement(
1146
+ "input",
1147
+ {
1148
+ type: "text",
1149
+ name: "username",
1150
+ autoComplete: "username",
1151
+ tabIndex: -1,
1152
+ readOnly: true,
1153
+ "aria-hidden": "true"
1154
+ }
1155
+ )),
1156
+ isEmail ? /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { label: accountLabel, name: accountFieldName, rules: accountRules, validateTrigger: ["onBlur", "onSubmit"] }, /* @__PURE__ */ import_react.default.createElement(
1157
+ import_materials.Input,
1158
+ {
1159
+ size: "large",
1160
+ placeholder: accountPlaceholder,
1161
+ className: "login2-input",
1162
+ type: "email",
1163
+ autoComplete: "email",
1164
+ value: getAccountValue() || enteredAccount || "",
1165
+ onChange: (e) => {
1166
+ const newValue = e.target.value;
1167
+ setEnteredAccount(newValue);
1168
+ form.setFieldsValue({ [accountFieldName]: newValue });
1169
+ }
1170
+ }
1171
+ )) : /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { label: accountLabel, name: accountFieldName, rules: accountRules, validateTrigger: ["onBlur", "onSubmit"] }, /* @__PURE__ */ import_react.default.createElement(
1172
+ import_PhoneInput.default,
1173
+ {
1174
+ size: "large",
1175
+ placeholder: accountPlaceholder,
1176
+ className: "login2-phone-input",
1177
+ countries,
1178
+ valueFormat: "object"
1179
+ }
1180
+ )),
1181
+ /* @__PURE__ */ import_react.default.createElement(
1182
+ import_antd.Form.Item,
1183
+ {
1184
+ label: ((_w = (_v = (_u = config.ui) == null ? void 0 : _u.formLabels) == null ? void 0 : _v.password) == null ? void 0 : _w.show) !== false ? ((_z = (_y = (_x = config.ui) == null ? void 0 : _x.formLabels) == null ? void 0 : _y.password) == null ? void 0 : _z.text) || import_utils.locales.getText("pisell-login2-password-label") : void 0,
1185
+ name: "password",
1186
+ rules: passwordValidationRules,
1187
+ validateTrigger: ["onBlur", "onSubmit"]
1188
+ },
1189
+ /* @__PURE__ */ import_react.default.createElement(
1190
+ import_materials.Input.Password,
1191
+ {
1192
+ size: "large",
1193
+ placeholder: import_utils.locales.getText("pisell-login2-password-placeholder"),
1194
+ className: "login2-input",
1195
+ name: "password",
1196
+ autoComplete: "current-password",
1197
+ type: "password"
1198
+ }
1199
+ )
1200
+ ),
1201
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-form-footer" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { name: "remember_me", valuePropName: "checked", noStyle: true }, /* @__PURE__ */ import_react.default.createElement(import_materials.Checkbox, null, import_utils.locales.getText("pisell-login2-remember-me"))), currentVerificationMethod === "password" && /* @__PURE__ */ import_react.default.createElement("a", { className: "login2-link", onClick: handleForgotPasswordClick }, import_utils.locales.getText("pisell-login2-forgot-password"))),
1202
+ /* @__PURE__ */ import_react.default.createElement(
1203
+ import_materials.Button,
1204
+ {
1205
+ type: "primary",
1206
+ size: "large",
1207
+ block: true,
1208
+ htmlType: "submit",
1209
+ loading,
1210
+ onClick: handleLogin,
1211
+ className: "login2-submit-button"
1212
+ },
1213
+ import_utils.locales.getText("pisell-login2-login-button")
1214
+ )
1215
+ );
1216
+ };
1217
+ const renderSwitchOptions = () => {
1218
+ if (!currentLoginMethod) return null;
1219
+ const primaryMethod = loginMethods[0];
1220
+ const currentIsFormMethod = currentLoginMethod.type === "email" || currentLoginMethod.type === "phone";
1221
+ const primaryIsFormMethod = (primaryMethod == null ? void 0 : primaryMethod.type) === "email" || (primaryMethod == null ? void 0 : primaryMethod.type) === "phone";
1222
+ const shouldUseFormLayout = currentIsFormMethod || primaryIsFormMethod;
1223
+ const verificationSwitchButtons = [];
1224
+ if (currentIsFormMethod) {
1225
+ (currentLoginMethod.verificationMethods || []).filter((method) => method !== currentVerificationMethod).forEach((method) => {
1226
+ if (method === "verification_code") {
1227
+ const text = currentLoginMethod.type === "email" ? import_utils.locales.getText("pisell-login2-switch-to-email-code") : import_utils.locales.getText("pisell-login2-switch-to-sms-code");
1228
+ verificationSwitchButtons.push(
1229
+ /* @__PURE__ */ import_react.default.createElement(
1230
+ "button",
1231
+ {
1232
+ key: "switch-to-code",
1233
+ className: "login2-switch-option-button",
1234
+ onClick: () => switchVerificationMethod("verification_code")
1235
+ },
1236
+ currentLoginMethod.type === "email" ? /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-mail-01" }) : /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-phone" }),
1237
+ /* @__PURE__ */ import_react.default.createElement("span", { className: "option-text" }, text)
1238
+ )
1239
+ );
1240
+ } else {
1241
+ verificationSwitchButtons.push(
1242
+ /* @__PURE__ */ import_react.default.createElement(
1243
+ "button",
1244
+ {
1245
+ key: "switch-to-password",
1246
+ className: "login2-switch-option-button",
1247
+ onClick: () => switchVerificationMethod("password")
1248
+ },
1249
+ /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "pisell2-key-01" }),
1250
+ /* @__PURE__ */ import_react.default.createElement("span", { className: "option-text" }, import_utils.locales.getText("pisell-login2-switch-to-password"))
1251
+ )
1252
+ );
1253
+ }
1254
+ });
1255
+ }
1256
+ const emailPhoneSwitchButtons = [];
1257
+ loginMethods.forEach((method, index) => {
1258
+ if (method.type === "email" || method.type === "phone") {
1259
+ if (method.type === currentLoginMethod.type) return;
1260
+ const isLast = isLastLoginMethod(method.type);
1261
+ const className2 = (0, import_classnames.default)("login2-switch-option-button", {
1262
+ "has-last-login-badge": isLast
1263
+ });
1264
+ emailPhoneSwitchButtons.push(
1265
+ /* @__PURE__ */ import_react.default.createElement(
1266
+ "button",
1267
+ {
1268
+ key: `${method.type}-${index}`,
1269
+ className: className2,
1270
+ onClick: () => switchLoginMethod(method)
1271
+ },
1272
+ isLast && /* @__PURE__ */ import_react.default.createElement("div", { className: "last-login-badge" }, import_utils.locales.getText("pisell-login2-last-login-badge")),
1273
+ /* @__PURE__ */ import_react.default.createElement(
1274
+ import_materials2.Iconfont,
1275
+ {
1276
+ type: method.type === "email" ? "pisell2-mail-01" : "pisell2-phone"
1277
+ }
1278
+ ),
1279
+ /* @__PURE__ */ import_react.default.createElement("span", { className: "option-text" }, method.type === "email" ? import_utils.locales.getText("pisell-login2-switch-to-email") : import_utils.locales.getText("pisell-login2-switch-to-phone"))
1280
+ )
1281
+ );
1282
+ }
1283
+ });
1284
+ const nonOauthButtons = [
1285
+ ...verificationSwitchButtons,
1286
+ ...emailPhoneSwitchButtons
1287
+ ];
1288
+ const registerPrompt = onSwitchToRegister && /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-register-prompt" }, /* @__PURE__ */ import_react.default.createElement("span", { className: "register-prompt-text" }, import_utils.locales.getText("pisell-login2-no-account")), /* @__PURE__ */ import_react.default.createElement(
1289
+ "button",
1290
+ {
1291
+ className: "register-prompt-link",
1292
+ onClick: onSwitchToRegister
1293
+ },
1294
+ import_utils.locales.getText("pisell-login2-register-link")
1295
+ ));
1296
+ if (!nonOauthButtons.length && !oauthProviders.length) {
1297
+ return registerPrompt;
1298
+ }
1299
+ if (shouldUseFormLayout) {
1300
+ const groups = [];
1301
+ if (nonOauthButtons.length > 0) {
1302
+ groups.push(
1303
+ /* @__PURE__ */ import_react.default.createElement("div", { key: "non-oauth", className: "login2-switch-options" }, nonOauthButtons)
1304
+ );
1305
+ }
1306
+ if (oauthProviders.length > 0) {
1307
+ groups.push(
1308
+ /* @__PURE__ */ import_react.default.createElement(
1309
+ import_OAuthButtonGroup.default,
1310
+ {
1311
+ key: "oauth",
1312
+ providers: oauthProviders,
1313
+ wrapperClassName: "login2-oauth-buttons",
1314
+ buttonClassName: "login2-oauth-button",
1315
+ gap: 12
1316
+ }
1317
+ )
1318
+ );
1319
+ }
1320
+ if (!groups.length) {
1321
+ return registerPrompt;
1322
+ }
1323
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-divider" }, import_utils.locales.getText("pisell-login2-or")), /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-switch-groups" }, groups), registerPrompt);
1324
+ }
1325
+ const primaryProvider = oauthProviders.find(
1326
+ (provider) => provider.key === (primaryMethod == null ? void 0 : primaryMethod.type)
1327
+ );
1328
+ const secondaryOauthProviders = oauthProviders.filter(
1329
+ (provider) => provider.key !== (primaryMethod == null ? void 0 : primaryMethod.type)
1330
+ );
1331
+ const hasSecondaryButtons = nonOauthButtons.length > 0 || secondaryOauthProviders.length > 0;
1332
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-switch-groups" }, primaryProvider ? /* @__PURE__ */ import_react.default.createElement(
1333
+ import_OAuthButtonGroup.default,
1334
+ {
1335
+ providers: [primaryProvider],
1336
+ wrapperClassName: "login2-oauth-buttons",
1337
+ buttonClassName: "login2-oauth-button",
1338
+ gap: 12
1339
+ }
1340
+ ) : /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-switch-options" }, /* @__PURE__ */ import_react.default.createElement(
1341
+ "button",
1342
+ {
1343
+ key: "primary-fallback",
1344
+ className: "login2-switch-option-button",
1345
+ onClick: () => {
1346
+ if ((primaryMethod == null ? void 0 : primaryMethod.type) === "guest") {
1347
+ handleGuestLogin();
1348
+ } else if ((primaryMethod == null ? void 0 : primaryMethod.type) === "google" || (primaryMethod == null ? void 0 : primaryMethod.type) === "facebook" || (primaryMethod == null ? void 0 : primaryMethod.type) === "apple") {
1349
+ handleOAuthClick(primaryMethod.type);
1350
+ }
1351
+ }
1352
+ },
1353
+ /* @__PURE__ */ import_react.default.createElement(
1354
+ import_materials2.Iconfont,
1355
+ {
1356
+ type: (primaryMethod == null ? void 0 : primaryMethod.type) === "guest" ? "pisell2-user-01" : (primaryMethod == null ? void 0 : primaryMethod.type) === "google" ? "pisell2-google" : (primaryMethod == null ? void 0 : primaryMethod.type) === "facebook" ? "pisell2-facebook" : "pisell2-apple"
1357
+ }
1358
+ ),
1359
+ /* @__PURE__ */ import_react.default.createElement("span", { className: "option-text" }, (primaryMethod == null ? void 0 : primaryMethod.type) === "guest" ? import_utils.locales.getText("pisell-login2-login-as-guest") : `${import_utils.locales.getText("pisell-login2-continue-with")} ${(primaryMethod == null ? void 0 : primaryMethod.type) ? primaryMethod.type.charAt(0).toUpperCase() + primaryMethod.type.slice(1) : ""}`)
1360
+ )), hasSecondaryButtons && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-divider" }, import_utils.locales.getText("pisell-login2-or")), nonOauthButtons.length > 0 && /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-switch-options" }, nonOauthButtons), secondaryOauthProviders.length > 0 && /* @__PURE__ */ import_react.default.createElement(
1361
+ import_OAuthButtonGroup.default,
1362
+ {
1363
+ providers: secondaryOauthProviders,
1364
+ wrapperClassName: "login2-oauth-buttons",
1365
+ buttonClassName: "login2-oauth-button",
1366
+ gap: 12
1367
+ }
1368
+ ))), registerPrompt);
1369
+ };
1370
+ if (!visible) {
1371
+ return null;
1372
+ }
1373
+ const { ui } = config;
1374
+ if (isEmailLinkVerification) {
1375
+ if (emailLinkVerifyStatus === "verifying") {
1376
+ return /* @__PURE__ */ import_react.default.createElement(
1377
+ "div",
1378
+ {
1379
+ className: (0, import_classnames.default)("login2-container", className),
1380
+ style: {
1381
+ ...style,
1382
+ "--theme-color": (ui == null ? void 0 : ui.themeColor) || "#7F56D9"
1383
+ }
1384
+ },
1385
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-email-link-verifying" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "verifying-content" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "verifying-icon" }, /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "icon-loading", spin: true })), /* @__PURE__ */ import_react.default.createElement("h2", { className: "verifying-title" }, "Verifying your email..."), /* @__PURE__ */ import_react.default.createElement("p", { className: "verifying-desc" }, "Please wait while we verify your email link.")))
1386
+ );
1387
+ }
1388
+ if (emailLinkVerifyStatus === "success") {
1389
+ return /* @__PURE__ */ import_react.default.createElement(
1390
+ "div",
1391
+ {
1392
+ className: (0, import_classnames.default)("login2-container", className),
1393
+ style: {
1394
+ ...style,
1395
+ "--theme-color": (ui == null ? void 0 : ui.themeColor) || "#7F56D9"
1396
+ }
1397
+ },
1398
+ /* @__PURE__ */ import_react.default.createElement(
1399
+ import_SetPassword.default,
1400
+ {
1401
+ scenario: "reset",
1402
+ flowData: {
1403
+ account: resetPasswordUserEmail || "",
1404
+ accountType: "email",
1405
+ verificationMethod: "verification_code"
1406
+ },
1407
+ onSubmit: async (password, confirmPassword) => {
1408
+ try {
1409
+ if (registerAndLogin == null ? void 0 : registerAndLogin.resetPasswordByCode) {
1410
+ const result = await registerAndLogin.resetPasswordByCode({
1411
+ code: config.emailLinkVerification.code,
1412
+ password
1413
+ });
1414
+ if (result.status) {
1415
+ import_antd.message.success("密码重置成功");
1416
+ setEmailLinkVerifyStatus(null);
1417
+ setEmailLinkError("");
1418
+ if (resetPasswordUserEmail) {
1419
+ const emailMethod = config.loginMethods.find((method) => method.type === "email");
1420
+ if (emailMethod) {
1421
+ setCurrentLoginMethod(emailMethod);
1422
+ setCurrentVerificationMethod(emailMethod.verificationMethods[0]);
1423
+ }
1424
+ form.setFieldsValue({ email: resetPasswordUserEmail });
1425
+ setEnteredAccount(resetPasswordUserEmail);
1426
+ setLoginStep("account");
1427
+ }
1428
+ } else {
1429
+ import_antd.message.error(result.message || "密码重置失败");
1430
+ }
1431
+ } else {
1432
+ import_antd.message.error("系统错误,请稍后重试");
1433
+ }
1434
+ } catch (error) {
1435
+ import_antd.message.error((error == null ? void 0 : error.message) || "密码重置失败");
1436
+ }
1437
+ },
1438
+ onBack: () => {
1439
+ setEmailLinkVerifyStatus(null);
1440
+ setEmailLinkError("");
1441
+ },
1442
+ loading
1443
+ }
1444
+ )
1445
+ );
1446
+ }
1447
+ if (emailLinkVerifyStatus === "error") {
1448
+ return /* @__PURE__ */ import_react.default.createElement(
1449
+ "div",
1450
+ {
1451
+ className: (0, import_classnames.default)("login2-container", className),
1452
+ style: {
1453
+ ...style,
1454
+ "--theme-color": (ui == null ? void 0 : ui.themeColor) || "#7F56D9"
1455
+ }
1456
+ },
1457
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-email-link-error" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "error-content" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "error-icon" }, /* @__PURE__ */ import_react.default.createElement(import_materials2.Iconfont, { type: "icon-error" })), /* @__PURE__ */ import_react.default.createElement("h2", { className: "error-title" }, import_utils.locales.getText("pisell-login2-verification-failed-title")), /* @__PURE__ */ import_react.default.createElement("p", { className: "error-desc" }, emailLinkError), /* @__PURE__ */ import_react.default.createElement(
1458
+ import_materials.Button,
1459
+ {
1460
+ type: "primary",
1461
+ size: "large",
1462
+ block: true,
1463
+ className: "login2-error-main-button",
1464
+ onClick: () => {
1465
+ setEmailLinkVerifyStatus(null);
1466
+ setEmailLinkError("");
1467
+ }
1468
+ },
1469
+ import_utils.locales.getText("pisell-login2-login-button")
1470
+ )))
1471
+ );
1472
+ }
1473
+ }
1474
+ if (showForgotPassword) {
1475
+ const accountType = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
1476
+ return /* @__PURE__ */ import_react.default.createElement(
1477
+ "div",
1478
+ {
1479
+ className: (0, import_classnames.default)("login2-container", className),
1480
+ style: {
1481
+ ...style,
1482
+ "--theme-color": (ui == null ? void 0 : ui.themeColor) || "#7F56D9"
1483
+ }
1484
+ },
1485
+ /* @__PURE__ */ import_react.default.createElement(
1486
+ import_ForgotPasswordFlow.default,
1487
+ {
1488
+ initialEmail: enteredAccount,
1489
+ accountType,
1490
+ onSendCode: handleForgotPasswordSendCode,
1491
+ onVerifyCode: handleForgotPasswordVerifyCode,
1492
+ onResetPassword: isEmailLinkVerification ? handleEmailLinkResetPassword : handleForgotPasswordReset,
1493
+ onSendResetLink: handleForgotPasswordSendLink,
1494
+ onBack: handleCloseForgotPassword,
1495
+ loading,
1496
+ countdown,
1497
+ countries
1498
+ }
1499
+ )
1500
+ );
1501
+ }
1502
+ if (loginStep === "code") {
1503
+ const accountType = (currentLoginMethod == null ? void 0 : currentLoginMethod.type) === "email" ? "email" : "phone";
1504
+ return /* @__PURE__ */ import_react.default.createElement(
1505
+ "div",
1506
+ {
1507
+ className: (0, import_classnames.default)("login2-container", className),
1508
+ style: {
1509
+ ...style,
1510
+ "--theme-color": (ui == null ? void 0 : ui.themeColor) || "#7F56D9"
1511
+ }
1512
+ },
1513
+ /* @__PURE__ */ import_react.default.createElement(
1514
+ import_LoginCodeInput.default,
1515
+ {
1516
+ account: typeof enteredAccount === "string" ? enteredAccount : enteredAccount.phone,
1517
+ accountType,
1518
+ codeLength: 4,
1519
+ onSubmit: handleCodeSubmit,
1520
+ onResend: handleSendCode,
1521
+ onBack: handleBackFromCode,
1522
+ countdown,
1523
+ loading,
1524
+ error: codeError,
1525
+ onClearError: () => setCodeError("")
1526
+ }
1527
+ )
1528
+ );
1529
+ }
1530
+ return /* @__PURE__ */ import_react.default.createElement(
1531
+ "div",
1532
+ {
1533
+ className: (0, import_classnames.default)("login2-container", "register2-container", className),
1534
+ style: {
1535
+ ...style,
1536
+ "--theme-color": (ui == null ? void 0 : ui.themeColor) || "#7F56D9"
1537
+ }
1538
+ },
1539
+ /* @__PURE__ */ import_react.default.createElement(import_Header.default, { ui }),
1540
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "login2-content" }, renderMainLoginForm(), renderSwitchOptions()),
1541
+ /* @__PURE__ */ import_react.default.createElement(import_LegalTerms.default, { config: { ...config.legalTerms, mode: "login" } })
1542
+ );
1543
+ };
1544
+ var Login2_default = Login2;