@pisell/private-materials 6.3.29 → 6.3.31

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 (313) 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 +144 -144
  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/components/appointmentBooking/components/Cart/Item/index.js +3 -2
  12. package/es/components/appointmentBooking/components/ConfirmInformation/index.js +267 -76
  13. package/es/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  14. package/es/components/appointmentBooking/hooks.js +30 -30
  15. package/es/components/appointmentBooking/locales.js +9 -6
  16. package/es/components/booking/components/TabProduct/index.d.ts +1 -0
  17. package/es/components/booking/components/footer/index.d.ts +1 -0
  18. package/es/components/booking/components/footer/index.js +4 -1
  19. package/es/components/booking/components/footer/utils.js +62 -46
  20. package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  21. package/es/components/booking/forms/table/index.d.ts +1 -0
  22. package/es/components/booking/info/clientVariant/hooks/useClientFn.js +2 -2
  23. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  24. package/es/components/booking/info/clientVariant/vertical/index.js +1 -1
  25. package/es/components/booking/info/main.js +3 -2
  26. package/es/components/booking/info/model.js +5 -0
  27. package/es/components/booking/info/service/like/index.d.ts +1 -0
  28. package/es/components/booking/info2/index.js +3 -2
  29. package/es/components/booking/info2/service/contactInfoMode/index.js +93 -0
  30. package/es/components/booking/locales.js +9 -3
  31. package/es/components/booking/model.js +3 -0
  32. package/es/components/eftpos/deviceList/index.d.ts +1 -0
  33. package/es/components/eftpos/form/index.d.ts +1 -0
  34. package/es/components/eftpos/group/index.d.ts +1 -0
  35. package/es/components/eftpos/hooks.d.ts +1 -0
  36. package/es/components/eftpos/icon/apiKey.d.ts +1 -0
  37. package/es/components/eftpos/icon/device.d.ts +1 -0
  38. package/es/components/eftpos/receipt/index.d.ts +1 -0
  39. package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
  40. package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
  41. package/es/components/eftposPay/component/step/index.d.ts +1 -0
  42. package/es/components/eftposPay/component/step/step.d.ts +1 -0
  43. package/es/components/eftposPay/hooks.d.ts +1 -1
  44. package/es/components/eftposPay/store/index.d.ts +1 -1
  45. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  46. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  47. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  48. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  49. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  50. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  51. package/es/components/pay/toC/PaymentMethods/ApplePay/index.js +1 -1
  52. package/es/components/pay/toC/PaymentMethods/GooglePay/index.js +1 -1
  53. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  54. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  55. package/es/components/productExtension/fields/Actor/index.d.ts +1 -0
  56. package/es/components/productExtension/fields/Forms/index.d.ts +1 -0
  57. package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
  58. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  59. package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  60. package/es/components/schedules/resources/relationProduct/index.d.ts +1 -0
  61. package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
  62. package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
  63. package/es/index.d.ts +3 -0
  64. package/es/index.js +4 -1
  65. package/es/plus/clientName/index.js +18 -0
  66. package/es/plus/clientName/index.less +10 -0
  67. package/es/plus/clientName/type.js +1 -0
  68. package/es/plus/clientName/utils.js +18 -0
  69. package/es/plus/contactInfo/components/Avatar/index.js +30 -0
  70. package/es/plus/contactInfo/components/SwipeAction/index.js +360 -0
  71. package/es/plus/contactInfo/components/SwipeAction/index.less +74 -0
  72. package/es/plus/contactInfo/index.js +198 -0
  73. package/es/plus/contactInfo/index.less +621 -0
  74. package/es/plus/contactInfo/locales.js +14 -0
  75. package/es/plus/contactInfo/types.js +1 -0
  76. package/es/plus/contactInfo/utils.js +50 -0
  77. package/es/plus/contactInfoModal/ContactInfoContent.js +74 -0
  78. package/es/plus/contactInfoModal/index.js +154 -0
  79. package/es/plus/contactInfoModal/index.less +19 -0
  80. package/es/plus/contactInfoModal/locales.js +65 -0
  81. package/es/pro/Login2.0/AuthModal.d.ts +143 -0
  82. package/es/pro/Login2.0/AuthModal.js +624 -0
  83. package/es/pro/Login2.0/Login2.d.ts +61 -0
  84. package/es/pro/Login2.0/Login2.js +2157 -0
  85. package/es/pro/Login2.0/Register2.d.ts +65 -0
  86. package/es/pro/Login2.0/Register2.js +1501 -0
  87. package/es/pro/Login2.0/components/ForgotPasswordFlow.js +330 -0
  88. package/es/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  89. package/es/pro/Login2.0/components/LegalTerms.js +51 -0
  90. package/es/pro/Login2.0/components/LegalTerms.less +74 -0
  91. package/es/pro/Login2.0/components/LoginCodeInput.js +207 -0
  92. package/es/pro/Login2.0/components/OAuthButtonGroup.js +55 -0
  93. package/es/pro/Login2.0/components/PhoneInput.js +414 -0
  94. package/es/pro/Login2.0/components/PhoneInput.less +148 -0
  95. package/es/pro/Login2.0/components/phoneValidation.js +228 -0
  96. package/es/pro/Login2.0/hooks/index.d.ts +2 -0
  97. package/es/pro/Login2.0/hooks/index.js +1 -0
  98. package/es/pro/Login2.0/hooks/usePasswordValidationRules.js +87 -0
  99. package/es/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  100. package/es/pro/Login2.0/hooks/useRegisterFlow.js +158 -0
  101. package/es/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  102. package/es/pro/Login2.0/hooks/useRegistrationMethods.js +31 -0
  103. package/es/pro/Login2.0/index.js +8 -0
  104. package/es/pro/Login2.0/index.less +993 -0
  105. package/es/pro/Login2.0/locales.js +622 -0
  106. package/es/pro/Login2.0/shared/Header.d.ts +11 -0
  107. package/es/pro/Login2.0/shared/Header.js +42 -0
  108. package/es/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  109. package/es/pro/Login2.0/shared/OAuthButtons.js +59 -0
  110. package/es/pro/Login2.0/shared/registerFlow.js +171 -0
  111. package/es/pro/Login2.0/shared/types.d.ts +232 -0
  112. package/es/pro/Login2.0/shared/types.js +1 -0
  113. package/es/pro/Login2.0/steps/CodeInput.js +209 -0
  114. package/es/pro/Login2.0/steps/EmailAlreadyRegistered.js +35 -0
  115. package/es/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +25 -0
  116. package/es/pro/Login2.0/steps/EmailLinkExpired.js +33 -0
  117. package/es/pro/Login2.0/steps/SetPassword.js +148 -0
  118. package/es/pro/Login2.0/steps/VerificationSuccess.js +35 -0
  119. package/es/pro/Login2.0/steps/VerifyingEmailLink.js +17 -0
  120. package/es/pro/Login2.0/steps/WaitEmailLink.js +54 -0
  121. package/es/pro/Login2.0/steps/index.js +11 -0
  122. package/es/pro/Login2.0/steps/steps.less +423 -0
  123. package/es/pro/Login2.0/types.js +1 -0
  124. package/lib/components/appointmentBooking/components/Cart/Item/index.js +5 -3
  125. package/lib/components/appointmentBooking/components/ConfirmInformation/index.js +151 -13
  126. package/lib/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  127. package/lib/components/appointmentBooking/hooks.js +73 -35
  128. package/lib/components/appointmentBooking/locales.js +6 -3
  129. package/lib/components/booking/components/TabProduct/index.d.ts +1 -0
  130. package/lib/components/booking/components/footer/index.d.ts +1 -0
  131. package/lib/components/booking/components/footer/index.js +4 -1
  132. package/lib/components/booking/components/footer/utils.js +70 -38
  133. package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  134. package/lib/components/booking/forms/table/index.d.ts +1 -0
  135. package/lib/components/booking/info/clientVariant/hooks/useClientFn.js +1 -1
  136. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  137. package/lib/components/booking/info/clientVariant/vertical/index.js +34 -17
  138. package/lib/components/booking/info/main.js +5 -4
  139. package/lib/components/booking/info/model.js +5 -0
  140. package/lib/components/booking/info/service/like/index.d.ts +1 -0
  141. package/lib/components/booking/info2/index.js +5 -4
  142. package/lib/components/booking/info2/service/contactInfoMode/index.js +104 -0
  143. package/lib/components/booking/locales.js +9 -3
  144. package/lib/components/booking/model.js +3 -0
  145. package/lib/components/eftpos/deviceList/index.d.ts +1 -0
  146. package/lib/components/eftpos/form/index.d.ts +1 -0
  147. package/lib/components/eftpos/group/index.d.ts +1 -0
  148. package/lib/components/eftpos/hooks.d.ts +1 -0
  149. package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
  150. package/lib/components/eftpos/icon/device.d.ts +1 -0
  151. package/lib/components/eftpos/receipt/index.d.ts +1 -0
  152. package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
  153. package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
  154. package/lib/components/eftposPay/component/step/index.d.ts +1 -0
  155. package/lib/components/eftposPay/component/step/step.d.ts +1 -0
  156. package/lib/components/eftposPay/hooks.d.ts +1 -1
  157. package/lib/components/eftposPay/store/index.d.ts +1 -1
  158. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  159. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  160. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  161. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  162. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  163. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  164. package/lib/components/pay/toC/PaymentMethods/ApplePay/index.js +1 -1
  165. package/lib/components/pay/toC/PaymentMethods/GooglePay/index.js +1 -1
  166. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  167. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  168. package/lib/components/productExtension/fields/Actor/index.d.ts +1 -0
  169. package/lib/components/productExtension/fields/Forms/index.d.ts +1 -0
  170. package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
  171. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  172. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  173. package/lib/components/schedules/resources/relationProduct/index.d.ts +1 -0
  174. package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
  175. package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
  176. package/lib/index.d.ts +3 -0
  177. package/lib/index.js +13 -0
  178. package/lib/plus/clientName/index.js +53 -0
  179. package/lib/plus/clientName/index.less +10 -0
  180. package/lib/plus/clientName/type.js +17 -0
  181. package/lib/plus/clientName/utils.js +43 -0
  182. package/lib/plus/contactInfo/components/Avatar/index.js +56 -0
  183. package/lib/plus/contactInfo/components/SwipeAction/index.js +373 -0
  184. package/lib/plus/contactInfo/components/SwipeAction/index.less +74 -0
  185. package/lib/plus/contactInfo/index.js +226 -0
  186. package/lib/plus/contactInfo/index.less +621 -0
  187. package/lib/plus/contactInfo/locales.js +38 -0
  188. package/lib/plus/contactInfo/types.js +17 -0
  189. package/lib/plus/contactInfo/utils.js +64 -0
  190. package/lib/plus/contactInfoModal/ContactInfoContent.js +129 -0
  191. package/lib/plus/contactInfoModal/index.js +138 -0
  192. package/lib/plus/contactInfoModal/index.less +19 -0
  193. package/lib/plus/contactInfoModal/locales.js +89 -0
  194. package/lib/pro/Login2.0/AuthModal.d.ts +143 -0
  195. package/lib/pro/Login2.0/AuthModal.js +498 -0
  196. package/lib/pro/Login2.0/Login2.d.ts +61 -0
  197. package/lib/pro/Login2.0/Login2.js +1468 -0
  198. package/lib/pro/Login2.0/Register2.d.ts +65 -0
  199. package/lib/pro/Login2.0/Register2.js +1062 -0
  200. package/lib/pro/Login2.0/components/ForgotPasswordFlow.js +213 -0
  201. package/lib/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  202. package/lib/pro/Login2.0/components/LegalTerms.js +76 -0
  203. package/lib/pro/Login2.0/components/LegalTerms.less +74 -0
  204. package/lib/pro/Login2.0/components/LoginCodeInput.js +161 -0
  205. package/lib/pro/Login2.0/components/OAuthButtonGroup.js +87 -0
  206. package/lib/pro/Login2.0/components/PhoneInput.js +263 -0
  207. package/lib/pro/Login2.0/components/PhoneInput.less +148 -0
  208. package/lib/pro/Login2.0/components/phoneValidation.js +153 -0
  209. package/lib/pro/Login2.0/hooks/index.d.ts +2 -0
  210. package/lib/pro/Login2.0/hooks/index.js +29 -0
  211. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.js +140 -0
  212. package/lib/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  213. package/lib/pro/Login2.0/hooks/useRegisterFlow.js +149 -0
  214. package/lib/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  215. package/lib/pro/Login2.0/hooks/useRegistrationMethods.js +51 -0
  216. package/lib/pro/Login2.0/index.js +45 -0
  217. package/lib/pro/Login2.0/index.less +993 -0
  218. package/lib/pro/Login2.0/locales.js +646 -0
  219. package/lib/pro/Login2.0/shared/Header.d.ts +11 -0
  220. package/lib/pro/Login2.0/shared/Header.js +81 -0
  221. package/lib/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  222. package/lib/pro/Login2.0/shared/OAuthButtons.js +78 -0
  223. package/lib/pro/Login2.0/shared/registerFlow.js +235 -0
  224. package/lib/pro/Login2.0/shared/types.d.ts +232 -0
  225. package/lib/pro/Login2.0/shared/types.js +17 -0
  226. package/lib/pro/Login2.0/steps/CodeInput.js +160 -0
  227. package/lib/pro/Login2.0/steps/EmailAlreadyRegistered.js +46 -0
  228. package/lib/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +51 -0
  229. package/lib/pro/Login2.0/steps/EmailLinkExpired.js +51 -0
  230. package/lib/pro/Login2.0/steps/SetPassword.js +131 -0
  231. package/lib/pro/Login2.0/steps/VerificationSuccess.js +49 -0
  232. package/lib/pro/Login2.0/steps/VerifyingEmailLink.js +41 -0
  233. package/lib/pro/Login2.0/steps/WaitEmailLink.js +67 -0
  234. package/lib/pro/Login2.0/steps/index.js +60 -0
  235. package/lib/pro/Login2.0/steps/steps.less +423 -0
  236. package/lib/pro/Login2.0/types.js +17 -0
  237. package/lowcode/authmodal/meta.ts +395 -0
  238. package/lowcode/contact-info/fragments/cardStyle.ts +68 -0
  239. package/lowcode/contact-info/fragments/nameStyle.ts +33 -0
  240. package/lowcode/contact-info/fragments/pisellAvatar.ts +103 -0
  241. package/lowcode/contact-info/fragments/textStyle.ts +33 -0
  242. package/lowcode/contact-info/meta.ts +199 -0
  243. package/lowcode/contact-info-modal/meta.ts +98 -0
  244. package/lowcode/login2/CONFIG.md +447 -0
  245. package/lowcode/login2/TEST_CONFIG.md +324 -0
  246. package/lowcode/login2/VERIFICATION_METHODS.md +364 -0
  247. package/lowcode/login2/meta.ts +560 -0
  248. package/lowcode/login2/snippets.ts +124 -0
  249. package/lowcode/register2/meta.ts +562 -0
  250. package/lowcode/register2/snippets.ts +257 -0
  251. package/package.json +7 -5
  252. package/es/components/appointmentBooking/components/Cart/Item/index.d.ts +0 -3
  253. package/es/components/appointmentBooking/components/ConfirmInformation/index.d.ts +0 -4
  254. package/es/components/appointmentBooking/components/Services/index.d.ts +0 -4
  255. package/es/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -3
  256. package/es/components/appointmentBooking/hooks.d.ts +0 -106
  257. package/es/components/appointmentBooking/locales.d.ts +0 -360
  258. package/es/components/booking/components/footer/utils.d.ts +0 -41
  259. package/es/components/booking/components/reloadResourceModal/index.d.ts +0 -8
  260. package/es/components/booking/components/voucher/index.d.ts +0 -3
  261. package/es/components/booking/info/clientVariant/hooks/useClientFn.d.ts +0 -43
  262. package/es/components/booking/info/clientVariant/vertical/index.d.ts +0 -8
  263. package/es/components/booking/info/main.d.ts +0 -12
  264. package/es/components/booking/info/model.d.ts +0 -14
  265. package/es/components/booking/info/service/editService/constants.d.ts +0 -1
  266. package/es/components/booking/info/service/editService/index.d.ts +0 -7
  267. package/es/components/booking/info2/index.d.ts +0 -12
  268. package/es/components/booking/info2/service/addService/index.d.ts +0 -11
  269. package/es/components/booking/locales.d.ts +0 -837
  270. package/es/components/booking/model.d.ts +0 -116
  271. package/es/components/eftposPay/component/fail/index.d.ts +0 -3
  272. package/es/components/index.d.ts +0 -22
  273. package/es/components/pay/toC/PaymentMethods/ApplePay/index.d.ts +0 -10
  274. package/es/components/pay/toC/PaymentMethods/GooglePay/index.d.ts +0 -9
  275. package/es/components/pay/toC/PaymentMethods/index.d.ts +0 -9
  276. package/es/components/ruleSetting/locales.d.ts +0 -48
  277. package/es/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -9
  278. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +0 -4
  279. package/es/components/ticketBooking/components/timeBar/index.d.ts +0 -12
  280. package/es/components/ticketBooking/index.d.ts +0 -7
  281. package/es/plus/productSelect/ProductCard/index.d.ts +0 -47
  282. package/es/plus/productSelect/index.d.ts +0 -32
  283. package/lib/components/appointmentBooking/components/Cart/Item/index.d.ts +0 -3
  284. package/lib/components/appointmentBooking/components/ConfirmInformation/index.d.ts +0 -4
  285. package/lib/components/appointmentBooking/components/Services/index.d.ts +0 -4
  286. package/lib/components/appointmentBooking/deposit/components/PolicyModal/index.d.ts +0 -3
  287. package/lib/components/appointmentBooking/hooks.d.ts +0 -106
  288. package/lib/components/appointmentBooking/locales.d.ts +0 -360
  289. package/lib/components/booking/components/footer/utils.d.ts +0 -41
  290. package/lib/components/booking/components/reloadResourceModal/index.d.ts +0 -8
  291. package/lib/components/booking/components/voucher/index.d.ts +0 -3
  292. package/lib/components/booking/info/clientVariant/hooks/useClientFn.d.ts +0 -43
  293. package/lib/components/booking/info/clientVariant/vertical/index.d.ts +0 -8
  294. package/lib/components/booking/info/main.d.ts +0 -12
  295. package/lib/components/booking/info/model.d.ts +0 -14
  296. package/lib/components/booking/info/service/editService/constants.d.ts +0 -1
  297. package/lib/components/booking/info/service/editService/index.d.ts +0 -7
  298. package/lib/components/booking/info2/index.d.ts +0 -12
  299. package/lib/components/booking/info2/service/addService/index.d.ts +0 -11
  300. package/lib/components/booking/locales.d.ts +0 -837
  301. package/lib/components/booking/model.d.ts +0 -116
  302. package/lib/components/eftposPay/component/fail/index.d.ts +0 -3
  303. package/lib/components/index.d.ts +0 -22
  304. package/lib/components/pay/toC/PaymentMethods/ApplePay/index.d.ts +0 -10
  305. package/lib/components/pay/toC/PaymentMethods/GooglePay/index.d.ts +0 -9
  306. package/lib/components/pay/toC/PaymentMethods/index.d.ts +0 -9
  307. package/lib/components/ruleSetting/locales.d.ts +0 -48
  308. package/lib/components/ticketBooking/components/addServiceVariant/addService.d.ts +0 -9
  309. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +0 -4
  310. package/lib/components/ticketBooking/components/timeBar/index.d.ts +0 -12
  311. package/lib/components/ticketBooking/index.d.ts +0 -7
  312. package/lib/plus/productSelect/ProductCard/index.d.ts +0 -47
  313. package/lib/plus/productSelect/index.d.ts +0 -32
@@ -0,0 +1,148 @@
1
+ .phone-input-wrapper {
2
+ width: 100%;
3
+
4
+ .phone-input-container {
5
+ display: flex;
6
+ align-items: center;
7
+ width: 100%;
8
+ height: 44px;
9
+ padding: 0 16px;
10
+ background: #FFFFFF;
11
+ border: 1px solid #D0D5DD;
12
+ border-radius: 8px;
13
+ transition: all 0.2s ease;
14
+
15
+ &:hover {
16
+ border-color: #98A2B3;
17
+ }
18
+
19
+ &:focus-within {
20
+ border-color: var(--theme-color, #7F56D9);
21
+ box-shadow: 0px 0px 0px 4px rgba(127, 86, 217, 0.12);
22
+ }
23
+ }
24
+
25
+ .phone-input-prefix {
26
+ position: relative;
27
+ display: flex;
28
+ align-items: center;
29
+ flex-shrink: 0;
30
+ gap: 6px;
31
+ cursor: pointer;
32
+ }
33
+
34
+ .phone-input-country-display {
35
+ font-size: 14px;
36
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
37
+ font-weight: 400;
38
+ line-height: 20px;
39
+ color: #344054;
40
+ pointer-events: none;
41
+ white-space: nowrap;
42
+ }
43
+
44
+ .phone-input-select {
45
+ position: absolute;
46
+ left: 0;
47
+ top: 0;
48
+ width: 100%;
49
+ height: 100%;
50
+ opacity: 0;
51
+ cursor: pointer;
52
+ font-size: 14px;
53
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
54
+
55
+ &:disabled {
56
+ cursor: not-allowed;
57
+ }
58
+ }
59
+
60
+ .phone-input-arrow {
61
+ flex-shrink: 0;
62
+ color: #667085;
63
+ pointer-events: none;
64
+ }
65
+
66
+ .phone-input-divider {
67
+ width: 1px;
68
+ height: 24px;
69
+ background: #D0D5DD;
70
+ margin: 0 12px;
71
+ flex-shrink: 0;
72
+ }
73
+
74
+ .phone-input-field {
75
+ flex: 1;
76
+ border: none;
77
+ outline: none;
78
+ background: transparent;
79
+ font-size: 16px;
80
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
81
+ font-weight: 400;
82
+ line-height: 24px;
83
+ color: #101828;
84
+ min-width: 0;
85
+
86
+ &::placeholder {
87
+ color: #98A2B3;
88
+ }
89
+
90
+ &:disabled {
91
+ cursor: not-allowed;
92
+ color: #98A2B3;
93
+ }
94
+
95
+ // 移除 number 类型输入框的上下箭头
96
+ &::-webkit-outer-spin-button,
97
+ &::-webkit-inner-spin-button {
98
+ -webkit-appearance: none;
99
+ margin: 0;
100
+ }
101
+
102
+ &[type='number'] {
103
+ -moz-appearance: textfield;
104
+ }
105
+ }
106
+
107
+ // 大小变体
108
+ .phone-input-field-large {
109
+ font-size: 16px;
110
+ line-height: 24px;
111
+ }
112
+
113
+ .phone-input-field-middle {
114
+ font-size: 14px;
115
+ line-height: 22px;
116
+ }
117
+
118
+ .phone-input-field-small {
119
+ font-size: 14px;
120
+ line-height: 20px;
121
+ }
122
+
123
+ // 禁用状态
124
+ &.phone-input-disabled {
125
+ .phone-input-container {
126
+ background: #F9FAFB;
127
+ border-color: #D0D5DD;
128
+ cursor: not-allowed;
129
+
130
+ &:hover {
131
+ border-color: #D0D5DD;
132
+ }
133
+ }
134
+ }
135
+
136
+ // 错误状态
137
+ &.phone-input-error {
138
+ .phone-input-container {
139
+ border-color: #F04438;
140
+
141
+ &:focus-within {
142
+ border-color: #F04438;
143
+ box-shadow: 0px 0px 0px 4px rgba(240, 68, 56, 0.12);
144
+ }
145
+ }
146
+ }
147
+ }
148
+
@@ -0,0 +1,228 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ // 定义 getText 函数类型
6
+
7
+ /**
8
+ * 手机号校验函数,用于 Ant Design Form 的 rules
9
+ * @param value 手机号值,可以是字符串或对象格式
10
+ * @param getText 国际化文本获取函数
11
+ * @returns Promise<void> 校验通过时 resolve,失败时 reject 并返回错误信息
12
+ */
13
+ export var validatePhoneNumber = /*#__PURE__*/function () {
14
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(value, getText) {
15
+ var phone, countryCode, match;
16
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
17
+ while (1) switch (_context.prev = _context.next) {
18
+ case 0:
19
+ if (value) {
20
+ _context.next = 2;
21
+ break;
22
+ }
23
+ throw new Error(getText('pisell-phone-validation-required'));
24
+ case 2:
25
+ if (!(typeof value === 'string')) {
26
+ _context.next = 12;
27
+ break;
28
+ }
29
+ if (value.startsWith('+')) {
30
+ _context.next = 5;
31
+ break;
32
+ }
33
+ throw new Error(getText('pisell-phone-validation-invalid'));
34
+ case 5:
35
+ match = value.match(/^\+(\d{1,4})(\d+)$/);
36
+ if (match) {
37
+ _context.next = 8;
38
+ break;
39
+ }
40
+ throw new Error(getText('pisell-phone-validation-invalid'));
41
+ case 8:
42
+ countryCode = match[1];
43
+ phone = match[2];
44
+ _context.next = 14;
45
+ break;
46
+ case 12:
47
+ // 对象格式:{ phone: "13800138000", country_calling_code: "86" }
48
+ phone = value.phone;
49
+ countryCode = value.country_calling_code;
50
+ case 14:
51
+ if (!(!phone || !countryCode)) {
52
+ _context.next = 16;
53
+ break;
54
+ }
55
+ throw new Error(getText('pisell-phone-validation-required'));
56
+ case 16:
57
+ _context.t0 = countryCode;
58
+ _context.next = _context.t0 === '86' ? 19 : _context.t0 === '852' ? 22 : _context.t0 === '853' ? 25 : _context.t0 === '886' ? 28 : _context.t0 === '1' ? 31 : _context.t0 === '44' ? 34 : _context.t0 === '61' ? 37 : _context.t0 === '81' ? 40 : _context.t0 === '82' ? 43 : _context.t0 === '65' ? 46 : _context.t0 === '60' ? 49 : _context.t0 === '66' ? 52 : _context.t0 === '84' ? 55 : _context.t0 === '63' ? 58 : _context.t0 === '62' ? 61 : _context.t0 === '91' ? 64 : 67;
59
+ break;
60
+ case 19:
61
+ if (/^1[3-9]\d{9}$/.test(phone)) {
62
+ _context.next = 21;
63
+ break;
64
+ }
65
+ throw new Error(getText('pisell-phone-validation-china'));
66
+ case 21:
67
+ return _context.abrupt("break", 70);
68
+ case 22:
69
+ if (/^[5-9]\d{7}$/.test(phone)) {
70
+ _context.next = 24;
71
+ break;
72
+ }
73
+ throw new Error(getText('pisell-phone-validation-hongkong'));
74
+ case 24:
75
+ return _context.abrupt("break", 70);
76
+ case 25:
77
+ if (/^6\d{7}$/.test(phone)) {
78
+ _context.next = 27;
79
+ break;
80
+ }
81
+ throw new Error(getText('pisell-phone-validation-macau'));
82
+ case 27:
83
+ return _context.abrupt("break", 70);
84
+ case 28:
85
+ if (/^9\d{8}$/.test(phone)) {
86
+ _context.next = 30;
87
+ break;
88
+ }
89
+ throw new Error(getText('pisell-phone-validation-taiwan'));
90
+ case 30:
91
+ return _context.abrupt("break", 70);
92
+ case 31:
93
+ if (/^\d{10}$/.test(phone)) {
94
+ _context.next = 33;
95
+ break;
96
+ }
97
+ throw new Error(getText('pisell-phone-validation-us-canada'));
98
+ case 33:
99
+ return _context.abrupt("break", 70);
100
+ case 34:
101
+ if (/^7\d{9}$/.test(phone)) {
102
+ _context.next = 36;
103
+ break;
104
+ }
105
+ throw new Error(getText('pisell-phone-validation-uk'));
106
+ case 36:
107
+ return _context.abrupt("break", 70);
108
+ case 37:
109
+ if (/^4\d{8,9}$/.test(phone)) {
110
+ _context.next = 39;
111
+ break;
112
+ }
113
+ throw new Error(getText('pisell-phone-validation-australia'));
114
+ case 39:
115
+ return _context.abrupt("break", 70);
116
+ case 40:
117
+ if (/^[789]0\d{8}$/.test(phone)) {
118
+ _context.next = 42;
119
+ break;
120
+ }
121
+ throw new Error(getText('pisell-phone-validation-japan'));
122
+ case 42:
123
+ return _context.abrupt("break", 70);
124
+ case 43:
125
+ if (/^1[0-9]\d{7,8}$/.test(phone)) {
126
+ _context.next = 45;
127
+ break;
128
+ }
129
+ throw new Error(getText('pisell-phone-validation-korea'));
130
+ case 45:
131
+ return _context.abrupt("break", 70);
132
+ case 46:
133
+ if (/^[89]\d{7}$/.test(phone)) {
134
+ _context.next = 48;
135
+ break;
136
+ }
137
+ throw new Error(getText('pisell-phone-validation-singapore'));
138
+ case 48:
139
+ return _context.abrupt("break", 70);
140
+ case 49:
141
+ if (/^1[0-9]\d{7,8}$/.test(phone)) {
142
+ _context.next = 51;
143
+ break;
144
+ }
145
+ throw new Error(getText('pisell-phone-validation-malaysia'));
146
+ case 51:
147
+ return _context.abrupt("break", 70);
148
+ case 52:
149
+ if (/^[689]\d{8}$/.test(phone)) {
150
+ _context.next = 54;
151
+ break;
152
+ }
153
+ throw new Error(getText('pisell-phone-validation-thailand'));
154
+ case 54:
155
+ return _context.abrupt("break", 70);
156
+ case 55:
157
+ if (/^[3579]\d{8}$/.test(phone)) {
158
+ _context.next = 57;
159
+ break;
160
+ }
161
+ throw new Error(getText('pisell-phone-validation-vietnam'));
162
+ case 57:
163
+ return _context.abrupt("break", 70);
164
+ case 58:
165
+ if (/^9\d{9}$/.test(phone)) {
166
+ _context.next = 60;
167
+ break;
168
+ }
169
+ throw new Error(getText('pisell-phone-validation-philippines'));
170
+ case 60:
171
+ return _context.abrupt("break", 70);
172
+ case 61:
173
+ if (/^8\d{8,11}$/.test(phone)) {
174
+ _context.next = 63;
175
+ break;
176
+ }
177
+ throw new Error(getText('pisell-phone-validation-indonesia'));
178
+ case 63:
179
+ return _context.abrupt("break", 70);
180
+ case 64:
181
+ if (/^[6-9]\d{9}$/.test(phone)) {
182
+ _context.next = 66;
183
+ break;
184
+ }
185
+ throw new Error(getText('pisell-phone-validation-india'));
186
+ case 66:
187
+ return _context.abrupt("break", 70);
188
+ case 67:
189
+ if (/^\d{6,15}$/.test(phone)) {
190
+ _context.next = 69;
191
+ break;
192
+ }
193
+ throw new Error(getText('pisell-phone-validation-invalid'));
194
+ case 69:
195
+ return _context.abrupt("break", 70);
196
+ case 70:
197
+ case "end":
198
+ return _context.stop();
199
+ }
200
+ }, _callee);
201
+ }));
202
+ return function validatePhoneNumber(_x, _x2) {
203
+ return _ref.apply(this, arguments);
204
+ };
205
+ }();
206
+
207
+ /**
208
+ * 创建手机号校验规则,用于 Form.Item 的 rules 属性
209
+ * @param getText 国际化文本获取函数
210
+ * @param required 是否必填
211
+ * @returns Form 校验规则数组
212
+ */
213
+ export var createPhoneValidationRules = function createPhoneValidationRules(getText) {
214
+ var required = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
215
+ var rules = [];
216
+
217
+ // 只使用自定义 validator,不使用 Ant Design 的 required 规则
218
+ // 这样可以避免重复的错误信息
219
+ rules.push({
220
+ validator: function validator(_, value) {
221
+ if (!value && !required) {
222
+ return Promise.resolve();
223
+ }
224
+ return validatePhoneNumber(value, getText);
225
+ }
226
+ });
227
+ return rules;
228
+ };
@@ -0,0 +1,2 @@
1
+ export { useRegisterFlow } from './useRegisterFlow';
2
+ export type { UseRegisterFlowOptions, UseRegisterFlowReturn } from './useRegisterFlow';
@@ -0,0 +1 @@
1
+ export { useRegisterFlow } from "./useRegisterFlow";
@@ -0,0 +1,87 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { useMemo } from 'react';
8
+ var DEFAULT_MESSAGES = {
9
+ required: 'Password is required',
10
+ minLength: 'Password must be at least {length} characters long',
11
+ requireUppercase: 'at least one uppercase letter',
12
+ requireLowercase: 'at least one lowercase letter',
13
+ requireNumber: 'at least one number',
14
+ requireSpecialCharacters: 'at least one special character',
15
+ summary: 'Password must contain: {requirements}'
16
+ };
17
+ var formatMessage = function formatMessage(template, variables) {
18
+ return Object.keys(variables).reduce(function (message, key) {
19
+ var _variables$key;
20
+ return message.replace(new RegExp("{".concat(key, "}"), 'g'), String((_variables$key = variables[key]) !== null && _variables$key !== void 0 ? _variables$key : ''));
21
+ }, template);
22
+ };
23
+ var resolveMessage = function resolveMessage(key, translate, messageKeys) {
24
+ var messageKey = messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys[key];
25
+ if (messageKey && translate) {
26
+ var translated = translate(messageKey);
27
+ if (translated) {
28
+ return translated;
29
+ }
30
+ }
31
+ return DEFAULT_MESSAGES[key];
32
+ };
33
+ export var usePasswordValidationRules = function usePasswordValidationRules(passwordRules, options) {
34
+ var translate = options === null || options === void 0 ? void 0 : options.translate;
35
+ var messageKeys = options === null || options === void 0 ? void 0 : options.messageKeys;
36
+ var fallbackMinLength = options === null || options === void 0 ? void 0 : options.fallbackMinLength;
37
+ return useMemo(function () {
38
+ var rules = [{
39
+ required: true,
40
+ message: resolveMessage('required', translate, messageKeys)
41
+ }];
42
+ var effectiveRules = _objectSpread({}, passwordRules);
43
+ if (effectiveRules.minLength == null && fallbackMinLength) {
44
+ effectiveRules.minLength = fallbackMinLength;
45
+ }
46
+ if (effectiveRules.minLength) {
47
+ var rawMessage = resolveMessage('minLength', translate, messageKeys);
48
+ rules.push({
49
+ min: effectiveRules.minLength,
50
+ message: formatMessage(rawMessage, {
51
+ length: effectiveRules.minLength
52
+ })
53
+ });
54
+ }
55
+ if (effectiveRules.requireUppercase || effectiveRules.requireLowercase || effectiveRules.requireNumber || effectiveRules.requireSpecialCharacters) {
56
+ rules.push({
57
+ validator: function validator(_rule, value) {
58
+ if (!value) {
59
+ return Promise.resolve();
60
+ }
61
+ var requirements = [];
62
+ if (effectiveRules.requireUppercase && !/[A-Z]/.test(value)) {
63
+ requirements.push(resolveMessage('requireUppercase', translate, messageKeys));
64
+ }
65
+ if (effectiveRules.requireLowercase && !/[a-z]/.test(value)) {
66
+ requirements.push(resolveMessage('requireLowercase', translate, messageKeys));
67
+ }
68
+ if (effectiveRules.requireNumber && !/\d/.test(value)) {
69
+ requirements.push(resolveMessage('requireNumber', translate, messageKeys));
70
+ }
71
+ if (effectiveRules.requireSpecialCharacters && !/[!@#$%^&*]/.test(value)) {
72
+ requirements.push(resolveMessage('requireSpecialCharacters', translate, messageKeys));
73
+ }
74
+ if (requirements.length > 0) {
75
+ var template = resolveMessage('summary', translate, messageKeys);
76
+ return Promise.reject(new Error(formatMessage(template, {
77
+ requirements: requirements.join(', ')
78
+ })));
79
+ }
80
+ return Promise.resolve();
81
+ }
82
+ });
83
+ }
84
+ return rules;
85
+ }, [fallbackMinLength, messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys.requireLowercase, messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys.requireNumber, messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys.requireSpecialCharacters, messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys.requireUppercase, messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys.minLength, messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys.required, messageKeys === null || messageKeys === void 0 ? void 0 : messageKeys.summary, passwordRules === null || passwordRules === void 0 ? void 0 : passwordRules.minLength, passwordRules === null || passwordRules === void 0 ? void 0 : passwordRules.requireLowercase, passwordRules === null || passwordRules === void 0 ? void 0 : passwordRules.requireNumber, passwordRules === null || passwordRules === void 0 ? void 0 : passwordRules.requireSpecialCharacters, passwordRules === null || passwordRules === void 0 ? void 0 : passwordRules.requireUppercase, translate]);
86
+ };
87
+ export default usePasswordValidationRules;
@@ -0,0 +1,39 @@
1
+ import { RegisterStep, RegisterFlowData, RegisterFlowConfig, getStepDefinition } from '../shared/registerFlow';
2
+ import type { AuthMethodType } from '../shared/types';
3
+ export interface UseRegisterFlowOptions {
4
+ /** 账号类型 */
5
+ accountType: AuthMethodType;
6
+ /** 邮箱配置 */
7
+ emailConfig?: {
8
+ enable_email?: boolean;
9
+ require_email_verification?: boolean;
10
+ };
11
+ /** 手机配置 */
12
+ phoneConfig?: {
13
+ enable_phone_number?: boolean;
14
+ require_phone_verification?: boolean;
15
+ };
16
+ /** 初始账号 */
17
+ initialAccount?: string;
18
+ /** 步骤变化回调 */
19
+ onStepChange?: (step: RegisterStep, data: RegisterFlowData) => void;
20
+ /** 完成回调 */
21
+ onComplete?: (data: RegisterFlowData) => void;
22
+ }
23
+ export interface UseRegisterFlowReturn {
24
+ /** 当前流程数据 */
25
+ flowData: RegisterFlowData;
26
+ /** 当前步骤定义 */
27
+ currentStepDef: ReturnType<typeof getStepDefinition>;
28
+ /** 流程配置 */
29
+ flowConfig: RegisterFlowConfig;
30
+ /** 跳转到指定步骤 */
31
+ goToStep: (step: RegisterStep, updates?: Partial<RegisterFlowData>) => void;
32
+ /** 更新流程数据 */
33
+ updateFlowData: (updates: Partial<RegisterFlowData>) => void;
34
+ /** 重置流程 */
35
+ resetFlow: () => void;
36
+ /** 处理错误 */
37
+ handleError: (code: string, message: string, targetStep?: RegisterStep) => void;
38
+ }
39
+ export declare function useRegisterFlow(options: UseRegisterFlowOptions): UseRegisterFlowReturn;