@pisell/private-materials 6.3.30 → 6.3.32

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 (287) 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 -146
  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.d.ts +1 -1
  12. package/es/components/appointmentBooking/components/Cart/Item/index.js +3 -2
  13. package/es/components/appointmentBooking/components/ConfirmInformation/index.js +267 -76
  14. package/es/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  15. package/es/components/appointmentBooking/hooks.d.ts +1 -0
  16. package/es/components/appointmentBooking/hooks.js +30 -30
  17. package/es/components/appointmentBooking/locales.d.ts +3 -0
  18. package/es/components/appointmentBooking/locales.js +9 -6
  19. package/es/components/booking/addons/model.d.ts +10 -1
  20. package/es/components/booking/components/footer/index.js +4 -1
  21. package/es/components/booking/components/footer/utils.js +62 -46
  22. package/es/components/booking/forms/model.d.ts +10 -1
  23. package/es/components/booking/info/clientVariant/hooks/useClientFn.js +2 -2
  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.d.ts +10 -1
  27. package/es/components/booking/info/model.js +5 -0
  28. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  29. package/es/components/booking/info2/index.js +3 -2
  30. package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
  31. package/es/components/booking/info2/service/contactInfoMode/index.d.ts +2 -0
  32. package/es/components/booking/info2/service/contactInfoMode/index.js +94 -0
  33. package/es/components/booking/locales.d.ts +3 -0
  34. package/es/components/booking/locales.js +9 -3
  35. package/es/components/booking/model.d.ts +13 -1
  36. package/es/components/booking/model.js +3 -0
  37. package/es/components/booking/notes/model.d.ts +10 -1
  38. package/es/components/booking/payments/model.d.ts +10 -1
  39. package/es/components/eftposPay/amount.d.ts +1 -1
  40. package/es/components/eftposPay/device.d.ts +1 -1
  41. package/es/components/eftposPay/store/index.d.ts +2 -2
  42. package/es/components/pay/toC/model.d.ts +9 -1
  43. package/es/components/schedules/model.d.ts +9 -1
  44. package/es/components/ticketBooking/components/ticketBooking/index.less +2 -1
  45. package/es/components/wallet/Detail/model.d.ts +13 -1
  46. package/es/components/wallet/DiscountCard/model.d.ts +14 -1
  47. package/es/components/wallet/PointCard/model.d.ts +13 -1
  48. package/es/components/wallet/RechargeableCard/model.d.ts +29 -1
  49. package/es/components/wallet/Voucher/model.d.ts +13 -1
  50. package/es/components/wallet/model.d.ts +9 -1
  51. package/es/index.d.ts +3 -0
  52. package/es/index.js +4 -1
  53. package/es/plus/clientName/index.d.ts +4 -0
  54. package/es/plus/clientName/index.js +18 -0
  55. package/es/plus/clientName/index.less +10 -0
  56. package/es/plus/clientName/type.d.ts +13 -0
  57. package/es/plus/clientName/type.js +1 -0
  58. package/es/plus/clientName/utils.d.ts +2 -0
  59. package/es/plus/clientName/utils.js +18 -0
  60. package/es/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  61. package/es/plus/contactInfo/components/Avatar/index.js +30 -0
  62. package/es/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  63. package/es/plus/contactInfo/components/SwipeAction/index.js +360 -0
  64. package/es/plus/contactInfo/components/SwipeAction/index.less +74 -0
  65. package/es/plus/contactInfo/index.d.ts +6 -0
  66. package/es/plus/contactInfo/index.js +198 -0
  67. package/es/plus/contactInfo/index.less +621 -0
  68. package/es/plus/contactInfo/locales.d.ts +15 -0
  69. package/es/plus/contactInfo/locales.js +14 -0
  70. package/es/plus/contactInfo/types.d.ts +91 -0
  71. package/es/plus/contactInfo/types.js +1 -0
  72. package/es/plus/contactInfo/utils.d.ts +7 -0
  73. package/es/plus/contactInfo/utils.js +50 -0
  74. package/es/plus/contactInfoModal/ContactInfoContent.d.ts +3 -0
  75. package/es/plus/contactInfoModal/ContactInfoContent.js +74 -0
  76. package/es/plus/contactInfoModal/index.d.ts +40 -0
  77. package/es/plus/contactInfoModal/index.js +154 -0
  78. package/es/plus/contactInfoModal/index.less +19 -0
  79. package/es/plus/contactInfoModal/locales.d.ts +66 -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.d.ts +31 -0
  88. package/es/pro/Login2.0/components/ForgotPasswordFlow.js +330 -0
  89. package/es/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  90. package/es/pro/Login2.0/components/LegalTerms.js +51 -0
  91. package/es/pro/Login2.0/components/LegalTerms.less +74 -0
  92. package/es/pro/Login2.0/components/LoginCodeInput.d.ts +27 -0
  93. package/es/pro/Login2.0/components/LoginCodeInput.js +207 -0
  94. package/es/pro/Login2.0/components/OAuthButtonGroup.d.ts +22 -0
  95. package/es/pro/Login2.0/components/OAuthButtonGroup.js +55 -0
  96. package/es/pro/Login2.0/components/PhoneInput.d.ts +53 -0
  97. package/es/pro/Login2.0/components/PhoneInput.js +414 -0
  98. package/es/pro/Login2.0/components/PhoneInput.less +148 -0
  99. package/es/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  100. package/es/pro/Login2.0/components/phoneValidation.js +228 -0
  101. package/es/pro/Login2.0/hooks/index.d.ts +2 -0
  102. package/es/pro/Login2.0/hooks/index.js +1 -0
  103. package/es/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +24 -0
  104. package/es/pro/Login2.0/hooks/usePasswordValidationRules.js +87 -0
  105. package/es/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  106. package/es/pro/Login2.0/hooks/useRegisterFlow.js +158 -0
  107. package/es/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  108. package/es/pro/Login2.0/hooks/useRegistrationMethods.js +31 -0
  109. package/es/pro/Login2.0/index.js +8 -0
  110. package/es/pro/Login2.0/index.less +993 -0
  111. package/es/pro/Login2.0/locales.d.ts +543 -0
  112. package/es/pro/Login2.0/locales.js +622 -0
  113. package/es/pro/Login2.0/shared/Header.d.ts +11 -0
  114. package/es/pro/Login2.0/shared/Header.js +42 -0
  115. package/es/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  116. package/es/pro/Login2.0/shared/OAuthButtons.js +59 -0
  117. package/es/pro/Login2.0/shared/registerFlow.d.ts +116 -0
  118. package/es/pro/Login2.0/shared/registerFlow.js +171 -0
  119. package/es/pro/Login2.0/shared/types.d.ts +232 -0
  120. package/es/pro/Login2.0/shared/types.js +1 -0
  121. package/es/pro/Login2.0/steps/CodeInput.d.ts +24 -0
  122. package/es/pro/Login2.0/steps/CodeInput.js +209 -0
  123. package/es/pro/Login2.0/steps/EmailAlreadyRegistered.d.ts +12 -0
  124. package/es/pro/Login2.0/steps/EmailAlreadyRegistered.js +35 -0
  125. package/es/pro/Login2.0/steps/EmailLinkAlreadyUsed.d.ts +7 -0
  126. package/es/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +25 -0
  127. package/es/pro/Login2.0/steps/EmailLinkExpired.d.ts +9 -0
  128. package/es/pro/Login2.0/steps/EmailLinkExpired.js +33 -0
  129. package/es/pro/Login2.0/steps/SetPassword.d.ts +19 -0
  130. package/es/pro/Login2.0/steps/SetPassword.js +148 -0
  131. package/es/pro/Login2.0/steps/VerificationSuccess.d.ts +8 -0
  132. package/es/pro/Login2.0/steps/VerificationSuccess.js +35 -0
  133. package/es/pro/Login2.0/steps/VerifyingEmailLink.d.ts +7 -0
  134. package/es/pro/Login2.0/steps/VerifyingEmailLink.js +17 -0
  135. package/es/pro/Login2.0/steps/WaitEmailLink.d.ts +18 -0
  136. package/es/pro/Login2.0/steps/WaitEmailLink.js +54 -0
  137. package/es/pro/Login2.0/steps/index.d.ts +19 -0
  138. package/es/pro/Login2.0/steps/index.js +11 -0
  139. package/es/pro/Login2.0/steps/steps.less +423 -0
  140. package/es/pro/Login2.0/types.d.ts +167 -0
  141. package/es/pro/Login2.0/types.js +1 -0
  142. package/lib/components/appointmentBooking/components/Cart/Item/index.d.ts +1 -1
  143. package/lib/components/appointmentBooking/components/Cart/Item/index.js +5 -3
  144. package/lib/components/appointmentBooking/components/ConfirmInformation/index.js +151 -13
  145. package/lib/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  146. package/lib/components/appointmentBooking/hooks.d.ts +1 -0
  147. package/lib/components/appointmentBooking/hooks.js +73 -35
  148. package/lib/components/appointmentBooking/locales.d.ts +3 -0
  149. package/lib/components/appointmentBooking/locales.js +6 -3
  150. package/lib/components/booking/addons/model.d.ts +10 -1
  151. package/lib/components/booking/components/footer/index.js +4 -1
  152. package/lib/components/booking/components/footer/utils.js +70 -38
  153. package/lib/components/booking/forms/model.d.ts +10 -1
  154. package/lib/components/booking/info/clientVariant/hooks/useClientFn.js +1 -1
  155. package/lib/components/booking/info/clientVariant/vertical/index.js +34 -17
  156. package/lib/components/booking/info/main.js +5 -4
  157. package/lib/components/booking/info/model.d.ts +10 -1
  158. package/lib/components/booking/info/model.js +5 -0
  159. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  160. package/lib/components/booking/info2/index.js +5 -4
  161. package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
  162. package/lib/components/booking/info2/service/contactInfoMode/index.d.ts +2 -0
  163. package/lib/components/booking/info2/service/contactInfoMode/index.js +111 -0
  164. package/lib/components/booking/locales.d.ts +3 -0
  165. package/lib/components/booking/locales.js +9 -3
  166. package/lib/components/booking/model.d.ts +13 -1
  167. package/lib/components/booking/model.js +3 -0
  168. package/lib/components/booking/notes/model.d.ts +10 -1
  169. package/lib/components/booking/payments/model.d.ts +10 -1
  170. package/lib/components/eftposPay/amount.d.ts +1 -1
  171. package/lib/components/eftposPay/device.d.ts +1 -1
  172. package/lib/components/eftposPay/store/index.d.ts +2 -2
  173. package/lib/components/pay/toC/model.d.ts +9 -1
  174. package/lib/components/schedules/model.d.ts +9 -1
  175. package/lib/components/ticketBooking/components/ticketBooking/index.less +2 -1
  176. package/lib/components/wallet/Detail/model.d.ts +13 -1
  177. package/lib/components/wallet/DiscountCard/model.d.ts +14 -1
  178. package/lib/components/wallet/PointCard/model.d.ts +13 -1
  179. package/lib/components/wallet/RechargeableCard/model.d.ts +29 -1
  180. package/lib/components/wallet/Voucher/model.d.ts +13 -1
  181. package/lib/components/wallet/model.d.ts +9 -1
  182. package/lib/index.d.ts +3 -0
  183. package/lib/index.js +13 -0
  184. package/lib/plus/clientName/index.d.ts +4 -0
  185. package/lib/plus/clientName/index.js +53 -0
  186. package/lib/plus/clientName/index.less +10 -0
  187. package/lib/plus/clientName/type.d.ts +13 -0
  188. package/lib/plus/clientName/type.js +17 -0
  189. package/lib/plus/clientName/utils.d.ts +2 -0
  190. package/lib/plus/clientName/utils.js +43 -0
  191. package/lib/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  192. package/lib/plus/contactInfo/components/Avatar/index.js +56 -0
  193. package/lib/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  194. package/lib/plus/contactInfo/components/SwipeAction/index.js +373 -0
  195. package/lib/plus/contactInfo/components/SwipeAction/index.less +74 -0
  196. package/lib/plus/contactInfo/index.d.ts +6 -0
  197. package/lib/plus/contactInfo/index.js +226 -0
  198. package/lib/plus/contactInfo/index.less +621 -0
  199. package/lib/plus/contactInfo/locales.d.ts +15 -0
  200. package/lib/plus/contactInfo/locales.js +38 -0
  201. package/lib/plus/contactInfo/types.d.ts +91 -0
  202. package/lib/plus/contactInfo/types.js +17 -0
  203. package/lib/plus/contactInfo/utils.d.ts +7 -0
  204. package/lib/plus/contactInfo/utils.js +64 -0
  205. package/lib/plus/contactInfoModal/ContactInfoContent.d.ts +3 -0
  206. package/lib/plus/contactInfoModal/ContactInfoContent.js +129 -0
  207. package/lib/plus/contactInfoModal/index.d.ts +40 -0
  208. package/lib/plus/contactInfoModal/index.js +138 -0
  209. package/lib/plus/contactInfoModal/index.less +19 -0
  210. package/lib/plus/contactInfoModal/locales.d.ts +66 -0
  211. package/lib/plus/contactInfoModal/locales.js +89 -0
  212. package/lib/pro/Login2.0/AuthModal.d.ts +143 -0
  213. package/lib/pro/Login2.0/AuthModal.js +498 -0
  214. package/lib/pro/Login2.0/Login2.d.ts +61 -0
  215. package/lib/pro/Login2.0/Login2.js +1468 -0
  216. package/lib/pro/Login2.0/Register2.d.ts +65 -0
  217. package/lib/pro/Login2.0/Register2.js +1062 -0
  218. package/lib/pro/Login2.0/components/ForgotPasswordFlow.d.ts +31 -0
  219. package/lib/pro/Login2.0/components/ForgotPasswordFlow.js +213 -0
  220. package/lib/pro/Login2.0/components/LegalTerms.d.ts +8 -0
  221. package/lib/pro/Login2.0/components/LegalTerms.js +76 -0
  222. package/lib/pro/Login2.0/components/LegalTerms.less +74 -0
  223. package/lib/pro/Login2.0/components/LoginCodeInput.d.ts +27 -0
  224. package/lib/pro/Login2.0/components/LoginCodeInput.js +161 -0
  225. package/lib/pro/Login2.0/components/OAuthButtonGroup.d.ts +22 -0
  226. package/lib/pro/Login2.0/components/OAuthButtonGroup.js +87 -0
  227. package/lib/pro/Login2.0/components/PhoneInput.d.ts +53 -0
  228. package/lib/pro/Login2.0/components/PhoneInput.js +263 -0
  229. package/lib/pro/Login2.0/components/PhoneInput.less +148 -0
  230. package/lib/pro/Login2.0/components/phoneValidation.d.ts +17 -0
  231. package/lib/pro/Login2.0/components/phoneValidation.js +153 -0
  232. package/lib/pro/Login2.0/hooks/index.d.ts +2 -0
  233. package/lib/pro/Login2.0/hooks/index.js +29 -0
  234. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.d.ts +24 -0
  235. package/lib/pro/Login2.0/hooks/usePasswordValidationRules.js +140 -0
  236. package/lib/pro/Login2.0/hooks/useRegisterFlow.d.ts +39 -0
  237. package/lib/pro/Login2.0/hooks/useRegisterFlow.js +149 -0
  238. package/lib/pro/Login2.0/hooks/useRegistrationMethods.d.ts +9 -0
  239. package/lib/pro/Login2.0/hooks/useRegistrationMethods.js +51 -0
  240. package/lib/pro/Login2.0/index.js +45 -0
  241. package/lib/pro/Login2.0/index.less +993 -0
  242. package/lib/pro/Login2.0/locales.d.ts +543 -0
  243. package/lib/pro/Login2.0/locales.js +646 -0
  244. package/lib/pro/Login2.0/shared/Header.d.ts +11 -0
  245. package/lib/pro/Login2.0/shared/Header.js +81 -0
  246. package/lib/pro/Login2.0/shared/OAuthButtons.d.ts +11 -0
  247. package/lib/pro/Login2.0/shared/OAuthButtons.js +78 -0
  248. package/lib/pro/Login2.0/shared/registerFlow.d.ts +116 -0
  249. package/lib/pro/Login2.0/shared/registerFlow.js +235 -0
  250. package/lib/pro/Login2.0/shared/types.d.ts +232 -0
  251. package/lib/pro/Login2.0/shared/types.js +17 -0
  252. package/lib/pro/Login2.0/steps/CodeInput.d.ts +24 -0
  253. package/lib/pro/Login2.0/steps/CodeInput.js +160 -0
  254. package/lib/pro/Login2.0/steps/EmailAlreadyRegistered.d.ts +12 -0
  255. package/lib/pro/Login2.0/steps/EmailAlreadyRegistered.js +46 -0
  256. package/lib/pro/Login2.0/steps/EmailLinkAlreadyUsed.d.ts +7 -0
  257. package/lib/pro/Login2.0/steps/EmailLinkAlreadyUsed.js +51 -0
  258. package/lib/pro/Login2.0/steps/EmailLinkExpired.d.ts +9 -0
  259. package/lib/pro/Login2.0/steps/EmailLinkExpired.js +51 -0
  260. package/lib/pro/Login2.0/steps/SetPassword.d.ts +19 -0
  261. package/lib/pro/Login2.0/steps/SetPassword.js +131 -0
  262. package/lib/pro/Login2.0/steps/VerificationSuccess.d.ts +8 -0
  263. package/lib/pro/Login2.0/steps/VerificationSuccess.js +49 -0
  264. package/lib/pro/Login2.0/steps/VerifyingEmailLink.d.ts +7 -0
  265. package/lib/pro/Login2.0/steps/VerifyingEmailLink.js +41 -0
  266. package/lib/pro/Login2.0/steps/WaitEmailLink.d.ts +18 -0
  267. package/lib/pro/Login2.0/steps/WaitEmailLink.js +67 -0
  268. package/lib/pro/Login2.0/steps/index.d.ts +19 -0
  269. package/lib/pro/Login2.0/steps/index.js +60 -0
  270. package/lib/pro/Login2.0/steps/steps.less +423 -0
  271. package/lib/pro/Login2.0/types.d.ts +167 -0
  272. package/lib/pro/Login2.0/types.js +17 -0
  273. package/lowcode/authmodal/meta.ts +395 -0
  274. package/lowcode/contact-info/fragments/cardStyle.ts +68 -0
  275. package/lowcode/contact-info/fragments/nameStyle.ts +33 -0
  276. package/lowcode/contact-info/fragments/pisellAvatar.ts +103 -0
  277. package/lowcode/contact-info/fragments/textStyle.ts +33 -0
  278. package/lowcode/contact-info/meta.ts +199 -0
  279. package/lowcode/contact-info-modal/meta.ts +98 -0
  280. package/lowcode/login2/CONFIG.md +447 -0
  281. package/lowcode/login2/TEST_CONFIG.md +324 -0
  282. package/lowcode/login2/VERIFICATION_METHODS.md +364 -0
  283. package/lowcode/login2/meta.ts +560 -0
  284. package/lowcode/login2/snippets.ts +124 -0
  285. package/lowcode/register2/meta.ts +562 -0
  286. package/lowcode/register2/snippets.ts +257 -0
  287. package/package.json +7 -5
@@ -0,0 +1,209 @@
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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
10
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+ /**
13
+ * 验证码输入页面(对应图3)
14
+ * 支持邮箱和手机号两种账号类型
15
+ */
16
+ import React, { useState, useRef, useEffect } from 'react';
17
+ import { Button } from '@pisell/materials';
18
+ import { locales } from '@pisell/utils';
19
+ import IconFont from '@pisell/materials/src/components/iconfont';
20
+ function CodeInput(_ref) {
21
+ var flowData = _ref.flowData,
22
+ _ref$codeLength = _ref.codeLength,
23
+ codeLength = _ref$codeLength === void 0 ? 4 : _ref$codeLength,
24
+ onSubmit = _ref.onSubmit,
25
+ onResend = _ref.onResend,
26
+ onBack = _ref.onBack,
27
+ _ref$countdown = _ref.countdown,
28
+ countdown = _ref$countdown === void 0 ? 0 : _ref$countdown,
29
+ _ref$loading = _ref.loading,
30
+ loading = _ref$loading === void 0 ? false : _ref$loading,
31
+ error = _ref.error,
32
+ onClearError = _ref.onClearError;
33
+ var _useState = useState(Array(codeLength).fill('')),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ code = _useState2[0],
36
+ setCode = _useState2[1];
37
+ var inputRefs = useRef([]);
38
+ var canResend = countdown === 0;
39
+ useEffect(function () {
40
+ var _inputRefs$current$;
41
+ // 自动聚焦第一个输入框
42
+ (_inputRefs$current$ = inputRefs.current[0]) === null || _inputRefs$current$ === void 0 || _inputRefs$current$.focus();
43
+ }, []);
44
+
45
+ // 当错误出现时,清空输入值
46
+ useEffect(function () {
47
+ if (error) {
48
+ var _inputRefs$current$2;
49
+ setCode(Array(codeLength).fill(''));
50
+ // 聚焦第一个输入框
51
+ (_inputRefs$current$2 = inputRefs.current[0]) === null || _inputRefs$current$2 === void 0 || _inputRefs$current$2.focus();
52
+ }
53
+ }, [error, codeLength]);
54
+
55
+ /**
56
+ * 处理单个输入框的值变化
57
+ * @param index 输入框索引
58
+ * @param value 输入的值
59
+ */
60
+ var handleInputChange = function handleInputChange(index, value) {
61
+ if (!/^\d*$/.test(value)) return; // 只允许数字
62
+
63
+ // 如果用户开始输入且有错误,清除错误
64
+ if (value && error && onClearError) {
65
+ onClearError();
66
+ }
67
+ var newCode = _toConsumableArray(code);
68
+ newCode[index] = value.slice(-1); // 只取最后一个字符
69
+ setCode(newCode);
70
+
71
+ // 自动跳到下一个输入框
72
+ if (value && index < codeLength - 1) {
73
+ var _inputRefs$current;
74
+ (_inputRefs$current = inputRefs.current[index + 1]) === null || _inputRefs$current === void 0 || _inputRefs$current.focus();
75
+ }
76
+
77
+ // 如果所有输入框都填满了,自动提交
78
+ if (newCode.every(function (digit) {
79
+ return digit !== '';
80
+ })) {
81
+ var fullCode = newCode.join('');
82
+ onSubmit === null || onSubmit === void 0 || onSubmit(fullCode);
83
+ }
84
+ };
85
+
86
+ /**
87
+ * 处理键盘按键事件(主要处理退格键)
88
+ * @param index 当前输入框索引
89
+ * @param e 键盘事件
90
+ */
91
+ var handleKeyDown = function handleKeyDown(index, e) {
92
+ // 当前输入框为空且按下退格键时,聚焦到前一个输入框
93
+ if (e.key === 'Backspace' && !code[index] && index > 0) {
94
+ var _inputRefs$current2;
95
+ (_inputRefs$current2 = inputRefs.current[index - 1]) === null || _inputRefs$current2 === void 0 || _inputRefs$current2.focus();
96
+ }
97
+ };
98
+
99
+ /**
100
+ * 处理粘贴事件(支持粘贴完整验证码)
101
+ * @param e 剪贴板事件
102
+ */
103
+ var handlePaste = function handlePaste(e) {
104
+ e.preventDefault();
105
+ var pastedData = e.clipboardData.getData('text').trim();
106
+ if (!/^\d+$/.test(pastedData)) return; // 只允许数字
107
+
108
+ // 如果用户粘贴且有错误,清除错误
109
+ if (pastedData && error && onClearError) {
110
+ onClearError();
111
+ }
112
+ var newCode = pastedData.slice(0, codeLength).split('');
113
+ while (newCode.length < codeLength) {
114
+ newCode.push('');
115
+ }
116
+ setCode(newCode);
117
+
118
+ // 如果粘贴的是完整验证码,自动提交
119
+ if (newCode.every(function (digit) {
120
+ return digit !== '';
121
+ })) {
122
+ onSubmit === null || onSubmit === void 0 || onSubmit(newCode.join(''));
123
+ }
124
+ };
125
+
126
+ /**
127
+ * 手动提交验证码
128
+ */
129
+ var handleSubmit = function handleSubmit() {
130
+ var fullCode = code.join('');
131
+ if (fullCode.length === codeLength) {
132
+ onSubmit === null || onSubmit === void 0 || onSubmit(fullCode);
133
+ }
134
+ };
135
+
136
+ // 根据账号类型显示不同的标题和描述
137
+ var title = flowData.accountType === 'email' ? locales.getText('pisell-register2-check-email-title') : locales.getText('pisell-register2-check-phone-title');
138
+ var description = flowData.accountType === 'email' ? locales.getText('pisell-register2-check-email-desc') : locales.getText('pisell-register2-check-phone-desc');
139
+
140
+ // 格式化账号显示(手机号对象需要转换为字符串)
141
+ var displayAccount = _typeof(flowData.account) === 'object' && 'phone' in flowData.account ? "+".concat(flowData.account.country_calling_code).concat(flowData.account.phone) : flowData.account;
142
+
143
+ // 根据账号类型显示不同的"没有收到"提示
144
+ var noReceiveText = flowData.accountType === 'email' ? locales.getText('pisell-register2-no-email-received') : locales.getText('pisell-register2-no-message-received');
145
+ return /*#__PURE__*/React.createElement("div", {
146
+ className: "register-step-container code-input-page"
147
+ }, /*#__PURE__*/React.createElement("button", {
148
+ className: "back-button-top",
149
+ onClick: onBack,
150
+ "aria-label": "Go back"
151
+ }, /*#__PURE__*/React.createElement(IconFont, {
152
+ type: "pisell2-arrow-left"
153
+ })), /*#__PURE__*/React.createElement("div", {
154
+ className: "register-step-content"
155
+ }, /*#__PURE__*/React.createElement("h2", {
156
+ className: "register-step-title"
157
+ }, title), /*#__PURE__*/React.createElement("p", {
158
+ className: "register-step-desc"
159
+ }, description, /*#__PURE__*/React.createElement("br", null), displayAccount), /*#__PURE__*/React.createElement("div", {
160
+ className: "code-input-group",
161
+ onPaste: handlePaste
162
+ }, code.map(function (digit, index) {
163
+ return /*#__PURE__*/React.createElement("input", {
164
+ key: index,
165
+ ref: function ref(el) {
166
+ return inputRefs.current[index] = el;
167
+ },
168
+ type: "text",
169
+ inputMode: "numeric",
170
+ maxLength: 1,
171
+ className: "code-input-box ".concat(digit ? 'has-value' : '', " ").concat(error ? 'has-error' : ''),
172
+ value: digit,
173
+ onChange: function onChange(e) {
174
+ return handleInputChange(index, e.target.value);
175
+ },
176
+ onKeyDown: function onKeyDown(e) {
177
+ return handleKeyDown(index, e);
178
+ },
179
+ disabled: loading
180
+ });
181
+ })), error && /*#__PURE__*/React.createElement("div", {
182
+ className: "code-input-error"
183
+ }, error), /*#__PURE__*/React.createElement(Button, {
184
+ type: "primary",
185
+ size: "large",
186
+ block: true,
187
+ onClick: handleSubmit,
188
+ loading: loading,
189
+ disabled: code.some(function (digit) {
190
+ return !digit;
191
+ }),
192
+ className: "register-submit-btn"
193
+ }, locales.getText('pisell-common-verify')), /*#__PURE__*/React.createElement(Button, {
194
+ type: "default",
195
+ size: "large",
196
+ block: true,
197
+ onClick: onBack,
198
+ className: "register-back-btn"
199
+ }, locales.getText('pisell-common-back')), /*#__PURE__*/React.createElement("div", {
200
+ className: "register-resend-section"
201
+ }, /*#__PURE__*/React.createElement("span", {
202
+ className: "resend-text"
203
+ }, noReceiveText, " "), /*#__PURE__*/React.createElement("button", {
204
+ className: "resend-link",
205
+ onClick: onResend,
206
+ disabled: !canResend
207
+ }, locales.getText('pisell-common-resend'), countdown > 0 && " (".concat(countdown, " s)")))));
208
+ }
209
+ export default CodeInput;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import type { RegisterFlowData } from '../shared/registerFlow';
3
+ export interface EmailAlreadyRegisteredProps {
4
+ /** 流程数据 */
5
+ flowData: RegisterFlowData;
6
+ /** 跳转到登录 */
7
+ onGoToLogin?: () => void;
8
+ /** 返回重新输入 */
9
+ onBack?: () => void;
10
+ }
11
+ declare function EmailAlreadyRegistered({ flowData, onGoToLogin, onBack, }: EmailAlreadyRegisteredProps): JSX.Element;
12
+ export default EmailAlreadyRegistered;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 账号已注册错误页面(对应图2)
3
+ * 支持邮箱和手机号两种账号类型
4
+ */
5
+ import React from 'react';
6
+ import { locales } from '@pisell/utils';
7
+ import IconFont from '@pisell/materials/src/components/iconfont';
8
+ function EmailAlreadyRegistered(_ref) {
9
+ var flowData = _ref.flowData,
10
+ onGoToLogin = _ref.onGoToLogin,
11
+ onBack = _ref.onBack;
12
+ // 根据账号类型显示不同的提示信息
13
+ var message = flowData.accountType === 'email' ? locales.getText('pisell-register2-email-already-registered') : locales.getText('pisell-register2-phone-already-registered');
14
+ return /*#__PURE__*/React.createElement("div", {
15
+ className: "register-step-container email-already-registered-page"
16
+ }, /*#__PURE__*/React.createElement("button", {
17
+ className: "back-button-top",
18
+ onClick: onBack,
19
+ "aria-label": "Go back"
20
+ }, /*#__PURE__*/React.createElement(IconFont, {
21
+ type: "pisell2-arrow-left"
22
+ })), /*#__PURE__*/React.createElement("div", {
23
+ className: "register-step-content"
24
+ }, /*#__PURE__*/React.createElement("p", {
25
+ className: "email-already-registered-message"
26
+ }, message), /*#__PURE__*/React.createElement("div", {
27
+ className: "register-login-prompt"
28
+ }, /*#__PURE__*/React.createElement("span", {
29
+ className: "prompt-text"
30
+ }, locales.getText('pisell-register2-have-account'), " "), /*#__PURE__*/React.createElement("button", {
31
+ className: "login-link",
32
+ onClick: onGoToLogin
33
+ }, locales.getText('pisell-register2-login-link')))));
34
+ }
35
+ export default EmailAlreadyRegistered;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export interface EmailLinkAlreadyUsedProps {
3
+ /** 跳转到登录页回调 */
4
+ onGoToLogin?: () => void;
5
+ }
6
+ declare function EmailLinkAlreadyUsed({ onGoToLogin }: EmailLinkAlreadyUsedProps): JSX.Element;
7
+ export default EmailLinkAlreadyUsed;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 邮件链接已使用页面 - 对应图3
3
+ */
4
+ import React from 'react';
5
+ import { Button } from '@pisell/materials';
6
+ import { locales } from '@pisell/utils';
7
+ function EmailLinkAlreadyUsed(_ref) {
8
+ var onGoToLogin = _ref.onGoToLogin;
9
+ return /*#__PURE__*/React.createElement("div", {
10
+ className: "register-step-container email-link-already-used-page"
11
+ }, /*#__PURE__*/React.createElement("div", {
12
+ className: "register-step-content"
13
+ }, /*#__PURE__*/React.createElement("h2", {
14
+ className: "email-link-result-title"
15
+ }, locales.getText('pisell-register2-link-already-used-title')), /*#__PURE__*/React.createElement("p", {
16
+ className: "email-link-result-desc"
17
+ }, locales.getText('pisell-register2-link-already-used-desc')), /*#__PURE__*/React.createElement(Button, {
18
+ type: "primary",
19
+ size: "large",
20
+ block: true,
21
+ onClick: onGoToLogin,
22
+ className: "register-submit-btn"
23
+ }, locales.getText('pisell-register2-login-button'))));
24
+ }
25
+ export default EmailLinkAlreadyUsed;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export interface EmailLinkExpiredProps {
3
+ /** 返回注册页回调 */
4
+ onBackToRegistration?: () => void;
5
+ /** 跳转到登录页回调 */
6
+ onGoToLogin?: () => void;
7
+ }
8
+ declare function EmailLinkExpired({ onBackToRegistration, onGoToLogin }: EmailLinkExpiredProps): JSX.Element;
9
+ export default EmailLinkExpired;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 邮件链接已过期页面 - 对应图2
3
+ */
4
+ import React from 'react';
5
+ import { Button } from '@pisell/materials';
6
+ import { locales } from '@pisell/utils';
7
+ function EmailLinkExpired(_ref) {
8
+ var onBackToRegistration = _ref.onBackToRegistration,
9
+ onGoToLogin = _ref.onGoToLogin;
10
+ return /*#__PURE__*/React.createElement("div", {
11
+ className: "register-step-container email-link-expired-page"
12
+ }, /*#__PURE__*/React.createElement("div", {
13
+ className: "register-step-content"
14
+ }, /*#__PURE__*/React.createElement("h2", {
15
+ className: "email-link-result-title"
16
+ }, locales.getText('pisell-register2-link-expired-title')), /*#__PURE__*/React.createElement("p", {
17
+ className: "email-link-result-desc"
18
+ }, locales.getText('pisell-register2-link-expired-desc')), /*#__PURE__*/React.createElement(Button, {
19
+ type: "primary",
20
+ size: "large",
21
+ block: true,
22
+ onClick: onBackToRegistration,
23
+ className: "register-submit-btn"
24
+ }, locales.getText('pisell-register2-back-to-registration')), /*#__PURE__*/React.createElement("div", {
25
+ className: "register-footer-prompt"
26
+ }, /*#__PURE__*/React.createElement("span", {
27
+ className: "prompt-text"
28
+ }, locales.getText('pisell-register2-have-account'), ' '), /*#__PURE__*/React.createElement("button", {
29
+ className: "prompt-link",
30
+ onClick: onGoToLogin
31
+ }, locales.getText('pisell-register2-login-link')))));
32
+ }
33
+ export default EmailLinkExpired;
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import type { RegisterFlowData } from '../shared/registerFlow';
3
+ import { PasswordRuleConfig } from '../hooks/usePasswordValidationRules';
4
+ export interface SetPasswordProps {
5
+ /** 流程数据 */
6
+ flowData: RegisterFlowData;
7
+ /** 提交密码 */
8
+ onSubmit?: (password: string, confirmPassword: string) => void;
9
+ /** 返回 */
10
+ onBack?: () => void;
11
+ /** 加载状态 */
12
+ loading?: boolean;
13
+ /** 密码验证规则配置 */
14
+ passwordRules?: PasswordRuleConfig;
15
+ /** 场景类型:create 表示注册场景,reset 表示修改密码场景 */
16
+ scenario?: 'create' | 'reset';
17
+ }
18
+ declare function SetPassword({ flowData, onSubmit, onBack, loading, passwordRules, scenario, }: SetPasswordProps): JSX.Element;
19
+ export default SetPassword;
@@ -0,0 +1,148 @@
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
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ /**
12
+ * 设置密码页面(对应图5)
13
+ */
14
+ import React, { useState } from 'react';
15
+ import { Form, message } from 'antd';
16
+ import { Input, Button } from '@pisell/materials';
17
+ import { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons';
18
+ import { locales } from '@pisell/utils';
19
+ import usePasswordValidationRules from "../hooks/usePasswordValidationRules";
20
+ function SetPassword(_ref) {
21
+ var flowData = _ref.flowData,
22
+ onSubmit = _ref.onSubmit,
23
+ onBack = _ref.onBack,
24
+ _ref$loading = _ref.loading,
25
+ loading = _ref$loading === void 0 ? false : _ref$loading,
26
+ _ref$passwordRules = _ref.passwordRules,
27
+ passwordRules = _ref$passwordRules === void 0 ? {
28
+ minLength: 8,
29
+ requireNumber: true
30
+ } : _ref$passwordRules,
31
+ _ref$scenario = _ref.scenario,
32
+ scenario = _ref$scenario === void 0 ? 'create' : _ref$scenario;
33
+ var _Form$useForm = Form.useForm(),
34
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
35
+ form = _Form$useForm2[0];
36
+ var _useState = useState(false),
37
+ _useState2 = _slicedToArray(_useState, 2),
38
+ showPassword = _useState2[0],
39
+ setShowPassword = _useState2[1];
40
+ var _useState3 = useState(false),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ showConfirmPassword = _useState4[0],
43
+ setShowConfirmPassword = _useState4[1];
44
+ var handleSubmit = /*#__PURE__*/function () {
45
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
46
+ var values;
47
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
48
+ while (1) switch (_context.prev = _context.next) {
49
+ case 0:
50
+ _context.prev = 0;
51
+ _context.next = 3;
52
+ return form.validateFields();
53
+ case 3:
54
+ values = _context.sent;
55
+ _context.next = 6;
56
+ return onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(values.password, values.confirmPassword);
57
+ case 6:
58
+ _context.next = 13;
59
+ break;
60
+ case 8:
61
+ _context.prev = 8;
62
+ _context.t0 = _context["catch"](0);
63
+ if (!_context.t0.errorFields) {
64
+ _context.next = 12;
65
+ break;
66
+ }
67
+ return _context.abrupt("return");
68
+ case 12:
69
+ message.error((_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) || locales.getText('pisell-set-password-failed'));
70
+ case 13:
71
+ case "end":
72
+ return _context.stop();
73
+ }
74
+ }, _callee, null, [[0, 8]]);
75
+ }));
76
+ return function handleSubmit() {
77
+ return _ref2.apply(this, arguments);
78
+ };
79
+ }();
80
+ var passwordValidationRules = usePasswordValidationRules(passwordRules, {
81
+ translate: locales.getText,
82
+ fallbackMinLength: 8,
83
+ messageKeys: {
84
+ required: locales.getText('pisell-set-password-required'),
85
+ minLength: locales.getText('pisell-set-password-min-length'),
86
+ requireUppercase: locales.getText('pisell-set-password-require-uppercase'),
87
+ requireLowercase: locales.getText('pisell-set-password-require-lowercase'),
88
+ requireNumber: locales.getText('pisell-set-password-require-number'),
89
+ requireSpecialCharacters: locales.getText('pisell-set-password-require-special'),
90
+ summary: locales.getText('pisell-set-password-must-contain')
91
+ }
92
+ });
93
+ return /*#__PURE__*/React.createElement("div", {
94
+ className: "register-step-container"
95
+ }, /*#__PURE__*/React.createElement("div", {
96
+ className: "register-step-content"
97
+ }, /*#__PURE__*/React.createElement("h2", {
98
+ className: "register-step-title"
99
+ }, scenario === 'create' ? locales.getText('pisell-set-password-create-title') : locales.getText('pisell-set-password-reset-title')), /*#__PURE__*/React.createElement(Form, {
100
+ form: form,
101
+ layout: "vertical",
102
+ className: "password-set-form"
103
+ }, /*#__PURE__*/React.createElement(Form.Item, {
104
+ name: "password",
105
+ rules: passwordValidationRules
106
+ }, /*#__PURE__*/React.createElement(Input.Password, {
107
+ size: "large",
108
+ placeholder: locales.getText('pisell-set-password-placeholder'),
109
+ className: "password-input",
110
+ autoComplete: "new-password",
111
+ iconRender: function iconRender(visible) {
112
+ return visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);
113
+ }
114
+ })), /*#__PURE__*/React.createElement(Form.Item, {
115
+ name: "confirmPassword",
116
+ dependencies: ['password'],
117
+ rules: [{
118
+ required: true,
119
+ message: locales.getText('pisell-set-password-confirm-required')
120
+ }, function (_ref3) {
121
+ var getFieldValue = _ref3.getFieldValue;
122
+ return {
123
+ validator: function validator(_, value) {
124
+ if (!value || getFieldValue('password') === value) {
125
+ return Promise.resolve();
126
+ }
127
+ return Promise.reject(new Error(locales.getText('pisell-set-password-not-match')));
128
+ }
129
+ };
130
+ }]
131
+ }, /*#__PURE__*/React.createElement(Input.Password, {
132
+ size: "large",
133
+ placeholder: locales.getText('pisell-set-password-confirm-placeholder'),
134
+ className: "password-input",
135
+ autoComplete: "new-password",
136
+ iconRender: function iconRender(visible) {
137
+ return visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);
138
+ }
139
+ })), /*#__PURE__*/React.createElement(Button, {
140
+ type: "primary",
141
+ size: "large",
142
+ block: true,
143
+ onClick: handleSubmit,
144
+ loading: loading,
145
+ className: "register-submit-btn"
146
+ }, scenario === 'create' ? locales.getText('pisell-set-password-submit') : locales.getText('pisell-common-confirm')))));
147
+ }
148
+ export default SetPassword;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import type { RegisterFlowData } from '../shared/registerFlow';
3
+ export interface VerificationSuccessProps {
4
+ /** 流程数据 */
5
+ flowData: RegisterFlowData;
6
+ }
7
+ declare function VerificationSuccess({ flowData }: VerificationSuccessProps): JSX.Element;
8
+ export default VerificationSuccess;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 验证成功页面(对应图4)
3
+ */
4
+ import React from 'react';
5
+ import { locales } from '@pisell/utils';
6
+ function VerificationSuccess(_ref) {
7
+ var flowData = _ref.flowData;
8
+ return /*#__PURE__*/React.createElement("div", {
9
+ className: "register-step-container"
10
+ }, /*#__PURE__*/React.createElement("div", {
11
+ className: "register-step-content"
12
+ }, /*#__PURE__*/React.createElement("div", {
13
+ className: "success-icon-wrapper"
14
+ }, /*#__PURE__*/React.createElement("svg", {
15
+ width: "64",
16
+ height: "64",
17
+ viewBox: "0 0 64 64",
18
+ fill: "none"
19
+ }, /*#__PURE__*/React.createElement("circle", {
20
+ cx: "32",
21
+ cy: "32",
22
+ r: "32",
23
+ fill: "#10B981",
24
+ fillOpacity: "0.1"
25
+ }), /*#__PURE__*/React.createElement("path", {
26
+ d: "M22 32L28 38L42 24",
27
+ stroke: "#10B981",
28
+ strokeWidth: "3",
29
+ strokeLinecap: "round",
30
+ strokeLinejoin: "round"
31
+ }))), /*#__PURE__*/React.createElement("h2", {
32
+ className: "register-step-title"
33
+ }, locales.getText('pisell-verification-success-title'))));
34
+ }
35
+ export default VerificationSuccess;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export interface VerifyingEmailLinkProps {
3
+ /** 加载提示文本(可选,不传则使用国际化默认文本) */
4
+ loadingText?: string;
5
+ }
6
+ declare function VerifyingEmailLink({ loadingText }: VerifyingEmailLinkProps): JSX.Element;
7
+ export default VerifyingEmailLink;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 验证邮件链接中(Loading 状态)- 对应图1
3
+ */
4
+ import React from 'react';
5
+ import { locales } from '@pisell/utils';
6
+ function VerifyingEmailLink(_ref) {
7
+ var loadingText = _ref.loadingText;
8
+ var text = loadingText || locales.getText('pisell-register2-verifying-email');
9
+ return /*#__PURE__*/React.createElement("div", {
10
+ className: "register-step-container verifying-email-link-page"
11
+ }, /*#__PURE__*/React.createElement("div", {
12
+ className: "register-step-content"
13
+ }, /*#__PURE__*/React.createElement("p", {
14
+ className: "verifying-text"
15
+ }, text)));
16
+ }
17
+ export default VerifyingEmailLink;
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import type { RegisterFlowData, VerificationMethod } from '../shared/registerFlow';
3
+ export interface WaitEmailLinkProps {
4
+ /** 流程数据 */
5
+ flowData: RegisterFlowData;
6
+ /** 重新发送 */
7
+ onResend?: () => void;
8
+ /** 返回 */
9
+ onBack?: () => void;
10
+ /** 编辑邮箱 */
11
+ onEditEmail?: () => void;
12
+ /** 倒计时秒数 */
13
+ countdown?: number;
14
+ /** 验证方式 */
15
+ verificationMethod?: VerificationMethod;
16
+ }
17
+ declare function WaitEmailLink({ flowData, onResend, onBack, onEditEmail, countdown, verificationMethod, }: WaitEmailLinkProps): JSX.Element;
18
+ export default WaitEmailLink;