@contember/react-client-tenant 2.0.0-alpha.32 → 2.0.0-alpha.36

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 (172) hide show
  1. package/dist/development/src/components/IdentityProvider.cjs.map +1 -1
  2. package/dist/development/src/components/IdentityProvider.js.map +1 -1
  3. package/dist/development/src/components/IdentityState.cjs.map +1 -1
  4. package/dist/development/src/components/IdentityState.js.map +1 -1
  5. package/dist/development/src/components/forms/ChangeMyPasswordForm.cjs.map +1 -1
  6. package/dist/development/src/components/forms/ChangeMyPasswordForm.js.map +1 -1
  7. package/dist/development/src/components/forms/CreateApiKeyForm.cjs.map +1 -1
  8. package/dist/development/src/components/forms/CreateApiKeyForm.js.map +1 -1
  9. package/dist/development/src/components/forms/CreateSessionTokenForm.cjs.map +1 -1
  10. package/dist/development/src/components/forms/CreateSessionTokenForm.js.map +1 -1
  11. package/dist/development/src/components/forms/InviteForm.cjs.map +1 -1
  12. package/dist/development/src/components/forms/InviteForm.js.map +1 -1
  13. package/dist/development/src/components/forms/LoginForm.cjs.map +1 -1
  14. package/dist/development/src/components/forms/LoginForm.js.map +1 -1
  15. package/dist/development/src/components/forms/OtpConfirmForm.cjs.map +1 -1
  16. package/dist/development/src/components/forms/OtpConfirmForm.js.map +1 -1
  17. package/dist/development/src/components/forms/OtpPrepareForm.cjs.map +1 -1
  18. package/dist/development/src/components/forms/OtpPrepareForm.js.map +1 -1
  19. package/dist/development/src/components/forms/PasswordResetForm.cjs.map +1 -1
  20. package/dist/development/src/components/forms/PasswordResetForm.js.map +1 -1
  21. package/dist/development/src/components/forms/PasswordResetRequestForm.cjs.map +1 -1
  22. package/dist/development/src/components/forms/PasswordResetRequestForm.js.map +1 -1
  23. package/dist/development/src/components/forms/PasswordlessSignInForm.cjs.map +1 -1
  24. package/dist/development/src/components/forms/PasswordlessSignInForm.js.map +1 -1
  25. package/dist/development/src/components/forms/PasswordlessSignInInitForm.cjs.map +1 -1
  26. package/dist/development/src/components/forms/PasswordlessSignInInitForm.js.map +1 -1
  27. package/dist/development/src/components/forms/TenantForm.cjs.map +1 -1
  28. package/dist/development/src/components/forms/TenantForm.js.map +1 -1
  29. package/dist/development/src/components/forms/UpdateProjectMemberForm.cjs.map +1 -1
  30. package/dist/development/src/components/forms/UpdateProjectMemberForm.js.map +1 -1
  31. package/dist/development/src/components/idp/IDP.cjs.map +1 -1
  32. package/dist/development/src/components/idp/IDP.js.map +1 -1
  33. package/dist/development/src/components/idp/IDPInitTrigger.cjs.map +1 -1
  34. package/dist/development/src/components/idp/IDPInitTrigger.js.map +1 -1
  35. package/dist/development/src/components/idp/IDPState.cjs.map +1 -1
  36. package/dist/development/src/components/idp/IDPState.js.map +1 -1
  37. package/dist/development/src/components/triggers/DisableOtpTrigger.cjs.map +1 -1
  38. package/dist/development/src/components/triggers/DisableOtpTrigger.js.map +1 -1
  39. package/dist/development/src/components/triggers/LogoutTrigger.cjs.map +1 -1
  40. package/dist/development/src/components/triggers/LogoutTrigger.js.map +1 -1
  41. package/dist/development/src/components/triggers/RemoveProjectMemberTrigger.cjs.map +1 -1
  42. package/dist/development/src/components/triggers/RemoveProjectMemberTrigger.js.map +1 -1
  43. package/dist/development/src/components/triggers/TenantActionTrigger.cjs.map +1 -1
  44. package/dist/development/src/components/triggers/TenantActionTrigger.js.map +1 -1
  45. package/dist/development/src/contexts.cjs.map +1 -1
  46. package/dist/development/src/hooks/mutations/auth/useSignInMutation.cjs.map +1 -1
  47. package/dist/development/src/hooks/mutations/idp/useInitSignInIDPMutation.cjs.map +1 -1
  48. package/dist/development/src/hooks/mutations/idp/useSignInIdpMutation.cjs.map +1 -1
  49. package/dist/development/src/hooks/mutations/passwordReset/useCreateResetPasswordRequestMutation.cjs.map +1 -1
  50. package/dist/development/src/hooks/mutations/passwordReset/useResetPasswordMutation.cjs.map +1 -1
  51. package/dist/development/src/hooks/mutations/passwordless/useActivatePasswordlessOtpMutation.cjs.map +1 -1
  52. package/dist/development/src/hooks/mutations/passwordless/useInitSignInPasswordlessMutation.cjs.map +1 -1
  53. package/dist/development/src/hooks/mutations/passwordless/useSignInPasswordlessMutation.cjs.map +1 -1
  54. package/dist/development/src/hooks/queries/useProjectMembersQuery.cjs.map +1 -1
  55. package/dist/development/src/hooks/queries/useProjectMembersQuery.js.map +1 -1
  56. package/dist/development/src/hooks/queries/useProjectMembershipsQuery.cjs.map +1 -1
  57. package/dist/development/src/hooks/queries/useProjectMembershipsQuery.js.map +1 -1
  58. package/dist/development/src/hooks/queries/useProjectRolesDefinitionQuery.cjs.map +1 -1
  59. package/dist/development/src/hooks/queries/useProjectRolesDefinitionQuery.js.map +1 -1
  60. package/dist/development/src/hooks/useFetchIdentity.cjs.map +1 -1
  61. package/dist/development/src/hooks/useFetchIdentity.js.map +1 -1
  62. package/dist/development/src/hooks/useLogout.cjs.map +1 -1
  63. package/dist/development/src/hooks/useLogout.js.map +1 -1
  64. package/dist/development/src/hooks/usePasswordlessOtpActivator.cjs.map +1 -1
  65. package/dist/development/src/hooks/usePasswordlessOtpActivator.js.map +1 -1
  66. package/dist/development/src/hooks/useTenantApi.cjs.map +1 -1
  67. package/dist/development/src/hooks/useTenantApi.js.map +1 -1
  68. package/dist/development/src/hooks/useTenantMutation.cjs.map +1 -1
  69. package/dist/development/src/hooks/useTenantMutation.js.map +1 -1
  70. package/dist/development/src/hooks/useTenantQueryLoader.cjs.map +1 -1
  71. package/dist/development/src/hooks/useTenantQueryLoader.js.map +1 -1
  72. package/dist/development/src/internal/hooks/useHandleIDPResponse.cjs.map +1 -1
  73. package/dist/development/src/internal/hooks/useHandleIDPResponse.js.map +1 -1
  74. package/dist/development/src/internal/hooks/useIDPAutoInit.cjs.map +1 -1
  75. package/dist/development/src/internal/hooks/useIDPAutoInit.js.map +1 -1
  76. package/dist/development/src/internal/hooks/useIDPStateStore.cjs.map +1 -1
  77. package/dist/development/src/internal/hooks/useIDPStateStore.js.map +1 -1
  78. package/dist/development/src/internal/hooks/useInitIDPRedirect.cjs.map +1 -1
  79. package/dist/development/src/internal/hooks/useInitIDPRedirect.js.map +1 -1
  80. package/dist/development/src/internal/hooks/useLogoutInternal.cjs.map +1 -1
  81. package/dist/development/src/internal/hooks/useLogoutInternal.js.map +1 -1
  82. package/dist/development/src/internal/hooks/useRedirectToBacklink.cjs.map +1 -1
  83. package/dist/development/src/internal/hooks/useRedirectToBacklink.js.map +1 -1
  84. package/dist/development/src/internal/utils/randomInt.cjs.map +1 -1
  85. package/dist/development/src/internal/utils/randomInt.js.map +1 -1
  86. package/dist/production/src/components/IdentityProvider.cjs.map +1 -1
  87. package/dist/production/src/components/IdentityProvider.js.map +1 -1
  88. package/dist/production/src/components/IdentityState.cjs.map +1 -1
  89. package/dist/production/src/components/IdentityState.js.map +1 -1
  90. package/dist/production/src/components/forms/ChangeMyPasswordForm.cjs.map +1 -1
  91. package/dist/production/src/components/forms/ChangeMyPasswordForm.js.map +1 -1
  92. package/dist/production/src/components/forms/CreateApiKeyForm.cjs.map +1 -1
  93. package/dist/production/src/components/forms/CreateApiKeyForm.js.map +1 -1
  94. package/dist/production/src/components/forms/CreateSessionTokenForm.cjs.map +1 -1
  95. package/dist/production/src/components/forms/CreateSessionTokenForm.js.map +1 -1
  96. package/dist/production/src/components/forms/InviteForm.cjs.map +1 -1
  97. package/dist/production/src/components/forms/InviteForm.js.map +1 -1
  98. package/dist/production/src/components/forms/LoginForm.cjs.map +1 -1
  99. package/dist/production/src/components/forms/LoginForm.js.map +1 -1
  100. package/dist/production/src/components/forms/OtpConfirmForm.cjs.map +1 -1
  101. package/dist/production/src/components/forms/OtpConfirmForm.js.map +1 -1
  102. package/dist/production/src/components/forms/OtpPrepareForm.cjs.map +1 -1
  103. package/dist/production/src/components/forms/OtpPrepareForm.js.map +1 -1
  104. package/dist/production/src/components/forms/PasswordResetForm.cjs.map +1 -1
  105. package/dist/production/src/components/forms/PasswordResetForm.js.map +1 -1
  106. package/dist/production/src/components/forms/PasswordResetRequestForm.cjs.map +1 -1
  107. package/dist/production/src/components/forms/PasswordResetRequestForm.js.map +1 -1
  108. package/dist/production/src/components/forms/PasswordlessSignInForm.cjs.map +1 -1
  109. package/dist/production/src/components/forms/PasswordlessSignInForm.js.map +1 -1
  110. package/dist/production/src/components/forms/PasswordlessSignInInitForm.cjs.map +1 -1
  111. package/dist/production/src/components/forms/PasswordlessSignInInitForm.js.map +1 -1
  112. package/dist/production/src/components/forms/TenantForm.cjs.map +1 -1
  113. package/dist/production/src/components/forms/TenantForm.js.map +1 -1
  114. package/dist/production/src/components/forms/UpdateProjectMemberForm.cjs.map +1 -1
  115. package/dist/production/src/components/forms/UpdateProjectMemberForm.js.map +1 -1
  116. package/dist/production/src/components/idp/IDP.cjs.map +1 -1
  117. package/dist/production/src/components/idp/IDP.js.map +1 -1
  118. package/dist/production/src/components/idp/IDPInitTrigger.cjs.map +1 -1
  119. package/dist/production/src/components/idp/IDPInitTrigger.js.map +1 -1
  120. package/dist/production/src/components/idp/IDPState.cjs.map +1 -1
  121. package/dist/production/src/components/idp/IDPState.js.map +1 -1
  122. package/dist/production/src/components/triggers/DisableOtpTrigger.cjs.map +1 -1
  123. package/dist/production/src/components/triggers/DisableOtpTrigger.js.map +1 -1
  124. package/dist/production/src/components/triggers/LogoutTrigger.cjs.map +1 -1
  125. package/dist/production/src/components/triggers/LogoutTrigger.js.map +1 -1
  126. package/dist/production/src/components/triggers/RemoveProjectMemberTrigger.cjs.map +1 -1
  127. package/dist/production/src/components/triggers/RemoveProjectMemberTrigger.js.map +1 -1
  128. package/dist/production/src/components/triggers/TenantActionTrigger.cjs.map +1 -1
  129. package/dist/production/src/components/triggers/TenantActionTrigger.js.map +1 -1
  130. package/dist/production/src/contexts.cjs.map +1 -1
  131. package/dist/production/src/hooks/mutations/auth/useSignInMutation.cjs.map +1 -1
  132. package/dist/production/src/hooks/mutations/idp/useInitSignInIDPMutation.cjs.map +1 -1
  133. package/dist/production/src/hooks/mutations/idp/useSignInIdpMutation.cjs.map +1 -1
  134. package/dist/production/src/hooks/mutations/passwordReset/useCreateResetPasswordRequestMutation.cjs.map +1 -1
  135. package/dist/production/src/hooks/mutations/passwordReset/useResetPasswordMutation.cjs.map +1 -1
  136. package/dist/production/src/hooks/mutations/passwordless/useActivatePasswordlessOtpMutation.cjs.map +1 -1
  137. package/dist/production/src/hooks/mutations/passwordless/useInitSignInPasswordlessMutation.cjs.map +1 -1
  138. package/dist/production/src/hooks/mutations/passwordless/useSignInPasswordlessMutation.cjs.map +1 -1
  139. package/dist/production/src/hooks/queries/useProjectMembersQuery.cjs.map +1 -1
  140. package/dist/production/src/hooks/queries/useProjectMembersQuery.js.map +1 -1
  141. package/dist/production/src/hooks/queries/useProjectMembershipsQuery.cjs.map +1 -1
  142. package/dist/production/src/hooks/queries/useProjectMembershipsQuery.js.map +1 -1
  143. package/dist/production/src/hooks/queries/useProjectRolesDefinitionQuery.cjs.map +1 -1
  144. package/dist/production/src/hooks/queries/useProjectRolesDefinitionQuery.js.map +1 -1
  145. package/dist/production/src/hooks/useFetchIdentity.cjs.map +1 -1
  146. package/dist/production/src/hooks/useFetchIdentity.js.map +1 -1
  147. package/dist/production/src/hooks/useLogout.cjs.map +1 -1
  148. package/dist/production/src/hooks/useLogout.js.map +1 -1
  149. package/dist/production/src/hooks/usePasswordlessOtpActivator.cjs.map +1 -1
  150. package/dist/production/src/hooks/usePasswordlessOtpActivator.js.map +1 -1
  151. package/dist/production/src/hooks/useTenantApi.cjs.map +1 -1
  152. package/dist/production/src/hooks/useTenantApi.js.map +1 -1
  153. package/dist/production/src/hooks/useTenantMutation.cjs.map +1 -1
  154. package/dist/production/src/hooks/useTenantMutation.js.map +1 -1
  155. package/dist/production/src/hooks/useTenantQueryLoader.cjs.map +1 -1
  156. package/dist/production/src/hooks/useTenantQueryLoader.js.map +1 -1
  157. package/dist/production/src/internal/hooks/useHandleIDPResponse.cjs.map +1 -1
  158. package/dist/production/src/internal/hooks/useHandleIDPResponse.js.map +1 -1
  159. package/dist/production/src/internal/hooks/useIDPAutoInit.cjs.map +1 -1
  160. package/dist/production/src/internal/hooks/useIDPAutoInit.js.map +1 -1
  161. package/dist/production/src/internal/hooks/useIDPStateStore.cjs.map +1 -1
  162. package/dist/production/src/internal/hooks/useIDPStateStore.js.map +1 -1
  163. package/dist/production/src/internal/hooks/useInitIDPRedirect.cjs.map +1 -1
  164. package/dist/production/src/internal/hooks/useInitIDPRedirect.js.map +1 -1
  165. package/dist/production/src/internal/hooks/useLogoutInternal.cjs.map +1 -1
  166. package/dist/production/src/internal/hooks/useLogoutInternal.js.map +1 -1
  167. package/dist/production/src/internal/hooks/useRedirectToBacklink.cjs.map +1 -1
  168. package/dist/production/src/internal/hooks/useRedirectToBacklink.js.map +1 -1
  169. package/dist/production/src/internal/utils/randomInt.cjs.map +1 -1
  170. package/dist/production/src/internal/utils/randomInt.js.map +1 -1
  171. package/dist/types/tsconfig.tsbuildinfo +1 -1
  172. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"InviteForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/InviteForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { InviteErrorCode, InviteOptions, MembershipInput } from '@contember/graphql-client-tenant'\nimport { InviteMutationResult, useInviteMutation } from '../../hooks'\n\nexport type InviteFormValues = {\n\temail: string\n\tname: string\n\tmemberships: readonly MembershipInput[]\n}\n\nexport type InviteFormErrorCode =\n\t| InviteErrorCode\n\t| 'UNKNOWN_ERROR'\n\t| 'FIELD_REQUIRED'\n\nexport type InviteFormState = FormState\n\nexport type InviteFormError = FormError<InviteFormValues, InviteFormErrorCode>\n\nexport type InviteFormContextValue = FormContextValue<InviteFormValues, InviteFormErrorCode>\n\nexport interface InviteFormProps {\n\tchildren: ReactElement\n\tprojectSlug: string\n\tinviteOptions?: InviteOptions\n\tinitialMemberships?: readonly MembershipInput[]\n\tonSuccess?: (args: { result: InviteMutationResult }) => void\n}\n\nexport const useInviteForm = useForm as () => InviteFormContextValue\n\nexport const InviteForm = ({ children, onSuccess, projectSlug, initialMemberships, inviteOptions }: InviteFormProps) => {\n\tconst invite = useInviteMutation()\n\treturn (\n\t\t<TenantForm<InviteFormContextValue, InviteMutationResult>\n\t\t\tonSuccess={onSuccess}\n\t\t\tinitialValues={{\n\t\t\t\temail: '',\n\t\t\t\tname: '',\n\t\t\t\tmemberships: initialMemberships || [],\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: InviteFormError[] = []\n\t\t\t\tif (!values.email) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'email' })\n\t\t\t\t}\n\t\t\t\tif (values.memberships.length === 0) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'memberships' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await invite({\n\t\t\t\t\temail: values.email,\n\t\t\t\t\tname: values.name,\n\t\t\t\t\tprojectSlug,\n\t\t\t\t\toptions: inviteOptions,\n\t\t\t\t\tmemberships: values.memberships,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\nconst errorToField: Record<InviteErrorCode, keyof InviteFormValues | undefined> = {\n\tALREADY_MEMBER: 'email',\n\tINVALID_EMAIL_FORMAT: 'email',\n\tINVALID_MEMBERSHIP: 'memberships',\n\tPROJECT_NOT_FOUND: undefined,\n\tROLE_NOT_FOUND: 'memberships',\n\tVARIABLE_EMPTY: 'memberships',\n\tVARIABLE_NOT_FOUND: 'memberships',\n}\n"],"names":[],"mappings":";;;;AAgCO,MAAM,gBAAgB;AAEhB,MAAA,aAAa,CAAC,EAAE,UAAU,WAAW,aAAa,oBAAoB,oBAAqC;AACvH,QAAM,SAAS;AAEd,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa,sBAAsB,CAAC;AAAA,MACrC;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAA4B,CAAA;AAC9B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QACvD;AACI,YAAA,OAAO,YAAY,WAAW,GAAG;AACpC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,eAAe;AAAA,QAC7D;AACO,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,OAAO;AAAA,UACnB,OAAO,OAAO;AAAA,UACd,MAAM,OAAO;AAAA,UACb;AAAA,UACA,SAAS;AAAA,UACT,aAAa,OAAO;AAAA,QAAA,CACpB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,MAEb;AAAA,IAAA;AAAA,EAAA;AAGJ;AAEA,MAAM,eAA4E;AAAA,EACjF,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AACrB;"}
1
+ {"version":3,"file":"InviteForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/InviteForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { InviteErrorCode, InviteOptions, MembershipInput } from '@contember/graphql-client-tenant'\nimport { InviteMutationResult, useInviteMutation } from '../../hooks'\n\nexport type InviteFormValues = {\n\temail: string\n\tname: string\n\tmemberships: readonly MembershipInput[]\n}\n\nexport type InviteFormErrorCode =\n\t| InviteErrorCode\n\t| 'UNKNOWN_ERROR'\n\t| 'FIELD_REQUIRED'\n\nexport type InviteFormState = FormState\n\nexport type InviteFormError = FormError<InviteFormValues, InviteFormErrorCode>\n\nexport type InviteFormContextValue = FormContextValue<InviteFormValues, InviteFormErrorCode>\n\nexport interface InviteFormProps {\n\tchildren: ReactElement\n\tprojectSlug: string\n\tinviteOptions?: InviteOptions\n\tinitialMemberships?: readonly MembershipInput[]\n\tonSuccess?: (args: { result: InviteMutationResult }) => void\n}\n\nexport const useInviteForm = useForm as () => InviteFormContextValue\n\nexport const InviteForm = ({ children, onSuccess, projectSlug, initialMemberships, inviteOptions }: InviteFormProps) => {\n\tconst invite = useInviteMutation()\n\treturn (\n\t\t<TenantForm<InviteFormContextValue, InviteMutationResult>\n\t\t\tonSuccess={onSuccess}\n\t\t\tinitialValues={{\n\t\t\t\temail: '',\n\t\t\t\tname: '',\n\t\t\t\tmemberships: initialMemberships || [],\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: InviteFormError[] = []\n\t\t\t\tif (!values.email) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'email' })\n\t\t\t\t}\n\t\t\t\tif (values.memberships.length === 0) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'memberships' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await invite({\n\t\t\t\t\temail: values.email,\n\t\t\t\t\tname: values.name,\n\t\t\t\t\tprojectSlug,\n\t\t\t\t\toptions: inviteOptions,\n\t\t\t\t\tmemberships: values.memberships,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\nconst errorToField: Record<InviteErrorCode, keyof InviteFormValues | undefined> = {\n\tALREADY_MEMBER: 'email',\n\tINVALID_EMAIL_FORMAT: 'email',\n\tINVALID_MEMBERSHIP: 'memberships',\n\tPROJECT_NOT_FOUND: undefined,\n\tROLE_NOT_FOUND: 'memberships',\n\tVARIABLE_EMPTY: 'memberships',\n\tVARIABLE_NOT_FOUND: 'memberships',\n}\n"],"names":[],"mappings":";;;;AAgCO,MAAM,gBAAgB;AAEhB,MAAA,aAAa,CAAC,EAAE,UAAU,WAAW,aAAa,oBAAoB,oBAAqC;AACvH,QAAM,SAAS,kBAAkB;AAEhC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa,sBAAsB,CAAA;AAAA,MACpC;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAA4B,CAAC;AAC/B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QAAA;AAEnD,YAAA,OAAO,YAAY,WAAW,GAAG;AACpC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,eAAe;AAAA,QAAA;AAEtD,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,OAAO;AAAA,UACnB,OAAO,OAAO;AAAA,UACd,MAAM,OAAO;AAAA,UACb;AAAA,UACA,SAAS;AAAA,UACT,aAAa,OAAO;AAAA,QAAA,CACpB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,MAEb;AAAA,IAAA;AAAA,EACF;AAEF;AAEA,MAAM,eAA4E;AAAA,EACjF,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AACrB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoginForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/LoginForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { SignInErrorCode } from '@contember/graphql-client-tenant'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { SignInMutationResult, useSignInMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\n\n\nexport type LoginFormValues = {\n\temail: string\n\tpassword: string\n\totpToken: string\n}\n\nexport type LoginFormErrorCode =\n\t| SignInErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type LoginFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type LoginFormError = FormError<LoginFormValues, LoginFormErrorCode>\n\nexport type LoginFormContextValue = FormContextValue<LoginFormValues, LoginFormErrorCode, LoginFormState>\n\nexport interface LoginFormProps {\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useLoginForm = useForm as () => LoginFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const LoginForm = ({ children, expiration = DEFAULT_LOGIN_EXPIRATION, onSuccess }: LoginFormProps) => {\n\tconst login = useSignInMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<LoginFormContextValue, SignInMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\temail: '',\n\t\t\t\tpassword: '',\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tconst errors: LoginFormError[] = []\n\t\t\t\tif (!values.email) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'email' })\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'email' })\n\t\t\t\t}\n\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'otpToken' })\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'otpToken' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\tconst result = await login({\n\t\t\t\t\temail: values.email!,\n\t\t\t\t\tpassword: values.password!,\n\t\t\t\t\totpToken: values.otpToken || undefined,\n\t\t\t\t\texpiration: expiration,\n\t\t\t\t})\n\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInErrorCode, keyof LoginFormValues | undefined> = {\n\t'INVALID_PASSWORD': 'password',\n\t'NO_PASSWORD_SET': 'password',\n\t'UNKNOWN_EMAIL': 'email',\n\t'PERSON_DISABLED': 'email',\n\t'INVALID_OTP_TOKEN': 'otpToken',\n\t'OTP_REQUIRED': undefined,\n}\n"],"names":["useForm","useSignInMutation","useRedirectToBacklinkCallback","useSetSessionToken","jsx","TenantForm"],"mappings":";;;;;;;;AAqCO,MAAM,eAAeA,SAAA;AAE5B,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAEpC,MAAM,YAAY,CAAC,EAAE,UAAU,aAAa,0BAA0B,gBAAgC;AAC5G,QAAM,QAAQC,kBAAAA,kBAAkB,EAAE,QAAS,CAAA;AAC3C,QAAM,qBAAqBC,sBAAAA;AAC3B,QAAM,kBAAkBC,YAAAA;AAEvB,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN;AACI,wBAAA,KAAK,OAAO,KAAK;AACd;MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,QAAQ,YAAY;AAChC,cAAM,SAA2B,CAAA;AAC7B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBAC5C,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QACtD;AAEI,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QACzD;AACA,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA,WAC/C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QACzD;AACO,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AACxB,cAAA,SAAS,MAAM,MAAM;AAAA,UAC1B,OAAO,OAAO;AAAA,UACd,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO,YAAY;AAAA,UAC7B;AAAA,QAAA,CACA;AAED,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAC3C;AAEO,eAAA;AAAA,MACR;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAqF;AAAA,EAC1F,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,gBAAgB;AACjB;;;"}
1
+ {"version":3,"file":"LoginForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/LoginForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { SignInErrorCode } from '@contember/graphql-client-tenant'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { SignInMutationResult, useSignInMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\n\n\nexport type LoginFormValues = {\n\temail: string\n\tpassword: string\n\totpToken: string\n}\n\nexport type LoginFormErrorCode =\n\t| SignInErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type LoginFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type LoginFormError = FormError<LoginFormValues, LoginFormErrorCode>\n\nexport type LoginFormContextValue = FormContextValue<LoginFormValues, LoginFormErrorCode, LoginFormState>\n\nexport interface LoginFormProps {\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useLoginForm = useForm as () => LoginFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const LoginForm = ({ children, expiration = DEFAULT_LOGIN_EXPIRATION, onSuccess }: LoginFormProps) => {\n\tconst login = useSignInMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<LoginFormContextValue, SignInMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\temail: '',\n\t\t\t\tpassword: '',\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tconst errors: LoginFormError[] = []\n\t\t\t\tif (!values.email) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'email' })\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'email' })\n\t\t\t\t}\n\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'otpToken' })\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'otpToken' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\tconst result = await login({\n\t\t\t\t\temail: values.email!,\n\t\t\t\t\tpassword: values.password!,\n\t\t\t\t\totpToken: values.otpToken || undefined,\n\t\t\t\t\texpiration: expiration,\n\t\t\t\t})\n\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInErrorCode, keyof LoginFormValues | undefined> = {\n\t'INVALID_PASSWORD': 'password',\n\t'NO_PASSWORD_SET': 'password',\n\t'UNKNOWN_EMAIL': 'email',\n\t'PERSON_DISABLED': 'email',\n\t'INVALID_OTP_TOKEN': 'otpToken',\n\t'OTP_REQUIRED': undefined,\n}\n"],"names":["useForm","useSignInMutation","useRedirectToBacklinkCallback","useSetSessionToken","jsx","TenantForm"],"mappings":";;;;;;;;AAqCO,MAAM,eAAeA,SAAAA;AAE5B,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAEpC,MAAM,YAAY,CAAC,EAAE,UAAU,aAAa,0BAA0B,gBAAgC;AAC5G,QAAM,QAAQC,kBAAAA,kBAAkB,EAAE,SAAS;AAC3C,QAAM,qBAAqBC,sBAAAA,8BAA8B;AACzD,QAAM,kBAAkBC,YAAAA,mBAAmB;AAE1C,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN,oBAAA;AACI,wBAAA,KAAK,OAAO,KAAK;AACd,2BAAA;AAAA,MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,QAAQ,YAAY;AAChC,cAAM,SAA2B,CAAC;AAC9B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBAC5C,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QAAA;AAGlD,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA;AAEzD,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA,WAC/C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA;AAElD,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AACxB,cAAA,SAAS,MAAM,MAAM;AAAA,UAC1B,OAAO,OAAO;AAAA,UACd,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO,YAAY;AAAA,UAC7B;AAAA,QAAA,CACA;AAED,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAAA;AAGpC,eAAA;AAAA,MACR;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAqF;AAAA,EAC1F,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,gBAAgB;AACjB;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoginForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/LoginForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { SignInErrorCode } from '@contember/graphql-client-tenant'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { SignInMutationResult, useSignInMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\n\n\nexport type LoginFormValues = {\n\temail: string\n\tpassword: string\n\totpToken: string\n}\n\nexport type LoginFormErrorCode =\n\t| SignInErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type LoginFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type LoginFormError = FormError<LoginFormValues, LoginFormErrorCode>\n\nexport type LoginFormContextValue = FormContextValue<LoginFormValues, LoginFormErrorCode, LoginFormState>\n\nexport interface LoginFormProps {\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useLoginForm = useForm as () => LoginFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const LoginForm = ({ children, expiration = DEFAULT_LOGIN_EXPIRATION, onSuccess }: LoginFormProps) => {\n\tconst login = useSignInMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<LoginFormContextValue, SignInMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\temail: '',\n\t\t\t\tpassword: '',\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tconst errors: LoginFormError[] = []\n\t\t\t\tif (!values.email) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'email' })\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'email' })\n\t\t\t\t}\n\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'otpToken' })\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'otpToken' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\tconst result = await login({\n\t\t\t\t\temail: values.email!,\n\t\t\t\t\tpassword: values.password!,\n\t\t\t\t\totpToken: values.otpToken || undefined,\n\t\t\t\t\texpiration: expiration,\n\t\t\t\t})\n\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInErrorCode, keyof LoginFormValues | undefined> = {\n\t'INVALID_PASSWORD': 'password',\n\t'NO_PASSWORD_SET': 'password',\n\t'UNKNOWN_EMAIL': 'email',\n\t'PERSON_DISABLED': 'email',\n\t'INVALID_OTP_TOKEN': 'otpToken',\n\t'OTP_REQUIRED': undefined,\n}\n"],"names":[],"mappings":";;;;;;AAqCO,MAAM,eAAe;AAE5B,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAEpC,MAAM,YAAY,CAAC,EAAE,UAAU,aAAa,0BAA0B,gBAAgC;AAC5G,QAAM,QAAQ,kBAAkB,EAAE,QAAS,CAAA;AAC3C,QAAM,qBAAqB;AAC3B,QAAM,kBAAkB;AAEvB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN;AACI,wBAAA,KAAK,OAAO,KAAK;AACd;MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,QAAQ,YAAY;AAChC,cAAM,SAA2B,CAAA;AAC7B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBAC5C,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QACtD;AAEI,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QACzD;AACA,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA,WAC/C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QACzD;AACO,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AACxB,cAAA,SAAS,MAAM,MAAM;AAAA,UAC1B,OAAO,OAAO;AAAA,UACd,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO,YAAY;AAAA,UAC7B;AAAA,QAAA,CACA;AAED,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAC3C;AAEO,eAAA;AAAA,MACR;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAqF;AAAA,EAC1F,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,gBAAgB;AACjB;"}
1
+ {"version":3,"file":"LoginForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/LoginForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { SignInErrorCode } from '@contember/graphql-client-tenant'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useSetSessionToken } from '@contember/react-client'\nimport { SignInMutationResult, useSignInMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\n\n\nexport type LoginFormValues = {\n\temail: string\n\tpassword: string\n\totpToken: string\n}\n\nexport type LoginFormErrorCode =\n\t| SignInErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type LoginFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type LoginFormError = FormError<LoginFormValues, LoginFormErrorCode>\n\nexport type LoginFormContextValue = FormContextValue<LoginFormValues, LoginFormErrorCode, LoginFormState>\n\nexport interface LoginFormProps {\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useLoginForm = useForm as () => LoginFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\n\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const LoginForm = ({ children, expiration = DEFAULT_LOGIN_EXPIRATION, onSuccess }: LoginFormProps) => {\n\tconst login = useSignInMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<LoginFormContextValue, SignInMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\temail: '',\n\t\t\t\tpassword: '',\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tconst errors: LoginFormError[] = []\n\t\t\t\tif (!values.email) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'email' })\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'email' })\n\t\t\t\t}\n\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'otpToken' })\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'otpToken' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\tconst result = await login({\n\t\t\t\t\temail: values.email!,\n\t\t\t\t\tpassword: values.password!,\n\t\t\t\t\totpToken: values.otpToken || undefined,\n\t\t\t\t\texpiration: expiration,\n\t\t\t\t})\n\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInErrorCode, keyof LoginFormValues | undefined> = {\n\t'INVALID_PASSWORD': 'password',\n\t'NO_PASSWORD_SET': 'password',\n\t'UNKNOWN_EMAIL': 'email',\n\t'PERSON_DISABLED': 'email',\n\t'INVALID_OTP_TOKEN': 'otpToken',\n\t'OTP_REQUIRED': undefined,\n}\n"],"names":[],"mappings":";;;;;;AAqCO,MAAM,eAAe;AAE5B,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AAEA,MAAM,2BAA2B,KAAK,KAAK;AAEpC,MAAM,YAAY,CAAC,EAAE,UAAU,aAAa,0BAA0B,gBAAgC;AAC5G,QAAM,QAAQ,kBAAkB,EAAE,SAAS;AAC3C,QAAM,qBAAqB,8BAA8B;AACzD,QAAM,kBAAkB,mBAAmB;AAE1C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN,oBAAA;AACI,wBAAA,KAAK,OAAO,KAAK;AACd,2BAAA;AAAA,MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,QAAQ,YAAY;AAChC,cAAM,SAA2B,CAAC;AAC9B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBAC5C,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QAAA;AAGlD,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA;AAEzD,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA,WAC/C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA;AAElD,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AACxB,cAAA,SAAS,MAAM,MAAM;AAAA,UAC1B,OAAO,OAAO;AAAA,UACd,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO,YAAY;AAAA,UAC7B;AAAA,QAAA,CACA;AAED,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAAA;AAGpC,eAAA;AAAA,MACR;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAqF;AAAA,EAC1F,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,gBAAgB;AACjB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OtpConfirmForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpConfirmForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm, useIdentityMethods } from '../../contexts'\nimport { ConfirmOtpErrorCode } from '@contember/graphql-client-tenant'\nimport { useConfirmOtpMutation } from '../../hooks'\n\nexport type OtpConfirmFormValues = {\n\totpToken: string\n}\n\nexport type OtpConfirmFormErrorCode =\n\t| ConfirmOtpErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpConfirmFormState = FormState\n\nexport type OtpConfirmFormError = FormError<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport type OtpConfirmFormContextValue = FormContextValue<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport interface OtpConfirmFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useOtpConfirmForm = useForm as () => OtpConfirmFormContextValue\n\nexport const OtpConfirmForm = ({ children, onSuccess }: OtpConfirmFormProps) => {\n\tconst confirmOtp = useConfirmOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\treturn (\n\t\t<TenantForm<OtpConfirmFormContextValue>\n\t\t\tonSuccess={async args => {\n\t\t\t\tawait refreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}}\n\t\t\tinitialValues={{\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.otpToken) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await confirmOtp({\n\t\t\t\t\t otpToken: values.otpToken,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={{\n\t\t\t\tINVALID_OTP_TOKEN: 'otpToken',\n\t\t\t\tNOT_PREPARED: 'otpToken',\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":["useForm","useConfirmOtpMutation","useIdentityMethods","jsx","TenantForm"],"mappings":";;;;;;AA2BO,MAAM,oBAAoBA,SAAA;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAaC,sBAAAA;AACb,QAAA,EAAE,oBAAoBC,SAAAA;AAE3B,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,OAAM,SAAQ;AACxB,cAAM,gBAAgB;AACV;MACb;AAAA,MACA,eAAe;AAAA,QACd,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,WAAY,CAAA;AAAA,QACtD;AAAA,MACD;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACtB,UAAU,OAAO;AAAA,QAAA,CAClB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,QACb,mBAAmB;AAAA,QACnB,cAAc;AAAA,MACf;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGJ;;;"}
1
+ {"version":3,"file":"OtpConfirmForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpConfirmForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm, useIdentityMethods } from '../../contexts'\nimport { ConfirmOtpErrorCode } from '@contember/graphql-client-tenant'\nimport { useConfirmOtpMutation } from '../../hooks'\n\nexport type OtpConfirmFormValues = {\n\totpToken: string\n}\n\nexport type OtpConfirmFormErrorCode =\n\t| ConfirmOtpErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpConfirmFormState = FormState\n\nexport type OtpConfirmFormError = FormError<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport type OtpConfirmFormContextValue = FormContextValue<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport interface OtpConfirmFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useOtpConfirmForm = useForm as () => OtpConfirmFormContextValue\n\nexport const OtpConfirmForm = ({ children, onSuccess }: OtpConfirmFormProps) => {\n\tconst confirmOtp = useConfirmOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\treturn (\n\t\t<TenantForm<OtpConfirmFormContextValue>\n\t\t\tonSuccess={async args => {\n\t\t\t\tawait refreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}}\n\t\t\tinitialValues={{\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.otpToken) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await confirmOtp({\n\t\t\t\t\t otpToken: values.otpToken,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={{\n\t\t\t\tINVALID_OTP_TOKEN: 'otpToken',\n\t\t\t\tNOT_PREPARED: 'otpToken',\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":["useForm","useConfirmOtpMutation","useIdentityMethods","jsx","TenantForm"],"mappings":";;;;;;AA2BO,MAAM,oBAAoBA,SAAAA;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAaC,sBAAAA,sBAAsB;AACnC,QAAA,EAAE,gBAAgB,IAAIC,4BAAmB;AAE9C,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,OAAM,SAAQ;AACxB,cAAM,gBAAgB;AACV,oBAAA;AAAA,MACb;AAAA,MACA,eAAe;AAAA,QACd,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA;AAAA,MAEvD;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACtB,UAAU,OAAO;AAAA,QAAA,CAClB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,QACb,mBAAmB;AAAA,QACnB,cAAc;AAAA,MACf;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAEF;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OtpConfirmForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpConfirmForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm, useIdentityMethods } from '../../contexts'\nimport { ConfirmOtpErrorCode } from '@contember/graphql-client-tenant'\nimport { useConfirmOtpMutation } from '../../hooks'\n\nexport type OtpConfirmFormValues = {\n\totpToken: string\n}\n\nexport type OtpConfirmFormErrorCode =\n\t| ConfirmOtpErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpConfirmFormState = FormState\n\nexport type OtpConfirmFormError = FormError<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport type OtpConfirmFormContextValue = FormContextValue<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport interface OtpConfirmFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useOtpConfirmForm = useForm as () => OtpConfirmFormContextValue\n\nexport const OtpConfirmForm = ({ children, onSuccess }: OtpConfirmFormProps) => {\n\tconst confirmOtp = useConfirmOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\treturn (\n\t\t<TenantForm<OtpConfirmFormContextValue>\n\t\t\tonSuccess={async args => {\n\t\t\t\tawait refreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}}\n\t\t\tinitialValues={{\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.otpToken) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await confirmOtp({\n\t\t\t\t\t otpToken: values.otpToken,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={{\n\t\t\t\tINVALID_OTP_TOKEN: 'otpToken',\n\t\t\t\tNOT_PREPARED: 'otpToken',\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":[],"mappings":";;;;AA2BO,MAAM,oBAAoB;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAa;AACb,QAAA,EAAE,oBAAoB;AAE3B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,OAAM,SAAQ;AACxB,cAAM,gBAAgB;AACV;MACb;AAAA,MACA,eAAe;AAAA,QACd,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,WAAY,CAAA;AAAA,QACtD;AAAA,MACD;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACtB,UAAU,OAAO;AAAA,QAAA,CAClB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,QACb,mBAAmB;AAAA,QACnB,cAAc;AAAA,MACf;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGJ;"}
1
+ {"version":3,"file":"OtpConfirmForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpConfirmForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm, useIdentityMethods } from '../../contexts'\nimport { ConfirmOtpErrorCode } from '@contember/graphql-client-tenant'\nimport { useConfirmOtpMutation } from '../../hooks'\n\nexport type OtpConfirmFormValues = {\n\totpToken: string\n}\n\nexport type OtpConfirmFormErrorCode =\n\t| ConfirmOtpErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpConfirmFormState = FormState\n\nexport type OtpConfirmFormError = FormError<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport type OtpConfirmFormContextValue = FormContextValue<OtpConfirmFormValues, OtpConfirmFormErrorCode>\n\nexport interface OtpConfirmFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const useOtpConfirmForm = useForm as () => OtpConfirmFormContextValue\n\nexport const OtpConfirmForm = ({ children, onSuccess }: OtpConfirmFormProps) => {\n\tconst confirmOtp = useConfirmOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\treturn (\n\t\t<TenantForm<OtpConfirmFormContextValue>\n\t\t\tonSuccess={async args => {\n\t\t\t\tawait refreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}}\n\t\t\tinitialValues={{\n\t\t\t\totpToken: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.otpToken) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await confirmOtp({\n\t\t\t\t\t otpToken: values.otpToken,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={{\n\t\t\t\tINVALID_OTP_TOKEN: 'otpToken',\n\t\t\t\tNOT_PREPARED: 'otpToken',\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":[],"mappings":";;;;AA2BO,MAAM,oBAAoB;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAa,sBAAsB;AACnC,QAAA,EAAE,gBAAgB,IAAI,mBAAmB;AAE9C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,OAAM,SAAQ;AACxB,cAAM,gBAAgB;AACV,oBAAA;AAAA,MACb;AAAA,MACA,eAAe;AAAA,QACd,UAAU;AAAA,MACX;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA;AAAA,MAEvD;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACtB,UAAU,OAAO;AAAA,QAAA,CAClB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,QACb,mBAAmB;AAAA,QACnB,cAAc;AAAA,MACf;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OtpPrepareForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpPrepareForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { PrepareOtpMutationResult, usePrepareOtpMutation } from '../../hooks'\n\nexport type OtpPrepareFormValues = {\n\tlabel: string\n}\n\nexport type OtpPrepareFormErrorCode =\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpPrepareFormState = FormState\n\nexport type OtpPrepareFormError = FormError<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport type OtpPrepareFormContextValue = FormContextValue<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport interface OtpPrepareFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: PrepareOtpMutationResult }) => void\n}\n\nexport const useOtpPrepareForm = useForm as () => OtpPrepareFormContextValue\n\nexport const OtpPrepareForm = ({ children, onSuccess }: OtpPrepareFormProps) => {\n\tconst prepareOtp = usePrepareOtpMutation()\n\treturn (\n\t\t<TenantForm<OtpPrepareFormContextValue, PrepareOtpMutationResult>\n\t\t\tonSuccess={onSuccess}\n\t\t\tinitialValues={{\n\t\t\t\tlabel: window.location.hostname,\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await prepareOtp({\n\t\t\t\t\tlabel: values.label,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":["useForm","usePrepareOtpMutation","jsx","TenantForm"],"mappings":";;;;;;AAwBO,MAAM,oBAAoBA,SAAA;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAaC,sBAAAA;AAElB,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,QACd,OAAO,OAAO,SAAS;AAAA,MACxB;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGJ;;;"}
1
+ {"version":3,"file":"OtpPrepareForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpPrepareForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { PrepareOtpMutationResult, usePrepareOtpMutation } from '../../hooks'\n\nexport type OtpPrepareFormValues = {\n\tlabel: string\n}\n\nexport type OtpPrepareFormErrorCode =\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpPrepareFormState = FormState\n\nexport type OtpPrepareFormError = FormError<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport type OtpPrepareFormContextValue = FormContextValue<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport interface OtpPrepareFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: PrepareOtpMutationResult }) => void\n}\n\nexport const useOtpPrepareForm = useForm as () => OtpPrepareFormContextValue\n\nexport const OtpPrepareForm = ({ children, onSuccess }: OtpPrepareFormProps) => {\n\tconst prepareOtp = usePrepareOtpMutation()\n\treturn (\n\t\t<TenantForm<OtpPrepareFormContextValue, PrepareOtpMutationResult>\n\t\t\tonSuccess={onSuccess}\n\t\t\tinitialValues={{\n\t\t\t\tlabel: window.location.hostname,\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await prepareOtp({\n\t\t\t\t\tlabel: values.label,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":["useForm","usePrepareOtpMutation","jsx","TenantForm"],"mappings":";;;;;;AAwBO,MAAM,oBAAoBA,SAAAA;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAaC,sBAAAA,sBAAsB;AAExC,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,QACd,OAAO,OAAO,SAAS;AAAA,MACxB;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAEF;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OtpPrepareForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpPrepareForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { PrepareOtpMutationResult, usePrepareOtpMutation } from '../../hooks'\n\nexport type OtpPrepareFormValues = {\n\tlabel: string\n}\n\nexport type OtpPrepareFormErrorCode =\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpPrepareFormState = FormState\n\nexport type OtpPrepareFormError = FormError<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport type OtpPrepareFormContextValue = FormContextValue<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport interface OtpPrepareFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: PrepareOtpMutationResult }) => void\n}\n\nexport const useOtpPrepareForm = useForm as () => OtpPrepareFormContextValue\n\nexport const OtpPrepareForm = ({ children, onSuccess }: OtpPrepareFormProps) => {\n\tconst prepareOtp = usePrepareOtpMutation()\n\treturn (\n\t\t<TenantForm<OtpPrepareFormContextValue, PrepareOtpMutationResult>\n\t\t\tonSuccess={onSuccess}\n\t\t\tinitialValues={{\n\t\t\t\tlabel: window.location.hostname,\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await prepareOtp({\n\t\t\t\t\tlabel: values.label,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":[],"mappings":";;;;AAwBO,MAAM,oBAAoB;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAa;AAElB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,QACd,OAAO,OAAO,SAAS;AAAA,MACxB;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGJ;"}
1
+ {"version":3,"file":"OtpPrepareForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/OtpPrepareForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { PrepareOtpMutationResult, usePrepareOtpMutation } from '../../hooks'\n\nexport type OtpPrepareFormValues = {\n\tlabel: string\n}\n\nexport type OtpPrepareFormErrorCode =\n\t| 'UNKNOWN_ERROR'\n\nexport type OtpPrepareFormState = FormState\n\nexport type OtpPrepareFormError = FormError<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport type OtpPrepareFormContextValue = FormContextValue<OtpPrepareFormValues, OtpPrepareFormErrorCode>\n\nexport interface OtpPrepareFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: PrepareOtpMutationResult }) => void\n}\n\nexport const useOtpPrepareForm = useForm as () => OtpPrepareFormContextValue\n\nexport const OtpPrepareForm = ({ children, onSuccess }: OtpPrepareFormProps) => {\n\tconst prepareOtp = usePrepareOtpMutation()\n\treturn (\n\t\t<TenantForm<OtpPrepareFormContextValue, PrepareOtpMutationResult>\n\t\t\tonSuccess={onSuccess}\n\t\t\tinitialValues={{\n\t\t\t\tlabel: window.location.hostname,\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await prepareOtp({\n\t\t\t\t\tlabel: values.label,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\n"],"names":[],"mappings":";;;;AAwBO,MAAM,oBAAoB;AAE1B,MAAM,iBAAiB,CAAC,EAAE,UAAU,gBAAqC;AAC/E,QAAM,aAAa,sBAAsB;AAExC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,QACd,OAAO,OAAO,SAAS;AAAA,MACxB;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordResetForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { ResetPasswordErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useResetPasswordMutation } from '../../hooks'\n\nexport type PasswordResetFormValues = {\n\ttoken: string\n\tpassword: string\n\tpasswordConfirmation: string\n}\n\nexport type PasswordResetFormErrorCode =\n\t| ResetPasswordErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'PASSWORD_MISMATCH'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetFormState = FormState\n\nexport type PasswordResetFormError = FormError<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport type PasswordResetFormContextValue = FormContextValue<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport interface PasswordResetFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\ttoken?: string\n}\n\nexport const usePasswordResetForm = useForm as () => PasswordResetFormContextValue\n\nexport const PasswordResetForm = ({ children, onSuccess, token }: PasswordResetFormProps) => {\n\tconst createReset = useResetPasswordMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\ttoken: token ?? '',\n\t\t\t\tpassword: '',\n\t\t\t\tpasswordConfirmation: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: PasswordResetFormError[] = []\n\t\t\t\tif (!values.token) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'token' })\n\t\t\t\t}\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t} else if (!values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'passwordConfirmation' })\n\t\t\t\t} else if (values.password !== values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'PASSWORD_MISMATCH', field: 'passwordConfirmation' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await createReset({\n\t\t\t\t\tpassword: values.password,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.ResetPasswordErrorCode, keyof PasswordResetFormValues | undefined> = {\n\tPASSWORD_TOO_WEAK: 'password',\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n}\n"],"names":["useForm","useResetPasswordMutation","jsx","TenantForm"],"mappings":";;;;;;AAiCO,MAAM,uBAAuBA,SAAA;AAE7B,MAAM,oBAAoB,CAAC,EAAE,UAAU,WAAW,YAAoC;AAC5F,QAAM,cAAcC,yBAAAA;AAEnB,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,QACV,sBAAsB;AAAA,MACvB;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAmC,CAAA;AACrC,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QACvD;AACI,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA,WAC9C,CAAC,OAAO,sBAAsB;AACxC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,wBAAwB;AAAA,QAC3D,WAAA,OAAO,aAAa,OAAO,sBAAsB;AAC3D,iBAAO,KAAK,EAAE,MAAM,qBAAqB,OAAO,wBAAwB;AAAA,QACzE;AACO,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,YAAY;AAAA,UACxB,UAAU,OAAO;AAAA,UACjB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAoG;AAAA,EACzG,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAChB;;;"}
1
+ {"version":3,"file":"PasswordResetForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { ResetPasswordErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useResetPasswordMutation } from '../../hooks'\n\nexport type PasswordResetFormValues = {\n\ttoken: string\n\tpassword: string\n\tpasswordConfirmation: string\n}\n\nexport type PasswordResetFormErrorCode =\n\t| ResetPasswordErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'PASSWORD_MISMATCH'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetFormState = FormState\n\nexport type PasswordResetFormError = FormError<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport type PasswordResetFormContextValue = FormContextValue<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport interface PasswordResetFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\ttoken?: string\n}\n\nexport const usePasswordResetForm = useForm as () => PasswordResetFormContextValue\n\nexport const PasswordResetForm = ({ children, onSuccess, token }: PasswordResetFormProps) => {\n\tconst createReset = useResetPasswordMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\ttoken: token ?? '',\n\t\t\t\tpassword: '',\n\t\t\t\tpasswordConfirmation: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: PasswordResetFormError[] = []\n\t\t\t\tif (!values.token) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'token' })\n\t\t\t\t}\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t} else if (!values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'passwordConfirmation' })\n\t\t\t\t} else if (values.password !== values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'PASSWORD_MISMATCH', field: 'passwordConfirmation' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await createReset({\n\t\t\t\t\tpassword: values.password,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.ResetPasswordErrorCode, keyof PasswordResetFormValues | undefined> = {\n\tPASSWORD_TOO_WEAK: 'password',\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n}\n"],"names":["useForm","useResetPasswordMutation","jsx","TenantForm"],"mappings":";;;;;;AAiCO,MAAM,uBAAuBA,SAAAA;AAE7B,MAAM,oBAAoB,CAAC,EAAE,UAAU,WAAW,YAAoC;AAC5F,QAAM,cAAcC,yBAAAA,yBAAyB;AAE5C,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,QACV,sBAAsB;AAAA,MACvB;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAmC,CAAC;AACtC,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QAAA;AAEnD,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA,WAC9C,CAAC,OAAO,sBAAsB;AACxC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,wBAAwB;AAAA,QAC3D,WAAA,OAAO,aAAa,OAAO,sBAAsB;AAC3D,iBAAO,KAAK,EAAE,MAAM,qBAAqB,OAAO,wBAAwB;AAAA,QAAA;AAElE,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,YAAY;AAAA,UACxB,UAAU,OAAO;AAAA,UACjB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAoG;AAAA,EACzG,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAChB;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordResetForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { ResetPasswordErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useResetPasswordMutation } from '../../hooks'\n\nexport type PasswordResetFormValues = {\n\ttoken: string\n\tpassword: string\n\tpasswordConfirmation: string\n}\n\nexport type PasswordResetFormErrorCode =\n\t| ResetPasswordErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'PASSWORD_MISMATCH'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetFormState = FormState\n\nexport type PasswordResetFormError = FormError<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport type PasswordResetFormContextValue = FormContextValue<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport interface PasswordResetFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\ttoken?: string\n}\n\nexport const usePasswordResetForm = useForm as () => PasswordResetFormContextValue\n\nexport const PasswordResetForm = ({ children, onSuccess, token }: PasswordResetFormProps) => {\n\tconst createReset = useResetPasswordMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\ttoken: token ?? '',\n\t\t\t\tpassword: '',\n\t\t\t\tpasswordConfirmation: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: PasswordResetFormError[] = []\n\t\t\t\tif (!values.token) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'token' })\n\t\t\t\t}\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t} else if (!values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'passwordConfirmation' })\n\t\t\t\t} else if (values.password !== values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'PASSWORD_MISMATCH', field: 'passwordConfirmation' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await createReset({\n\t\t\t\t\tpassword: values.password,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.ResetPasswordErrorCode, keyof PasswordResetFormValues | undefined> = {\n\tPASSWORD_TOO_WEAK: 'password',\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n}\n"],"names":[],"mappings":";;;;AAiCO,MAAM,uBAAuB;AAE7B,MAAM,oBAAoB,CAAC,EAAE,UAAU,WAAW,YAAoC;AAC5F,QAAM,cAAc;AAEnB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,QACV,sBAAsB;AAAA,MACvB;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAmC,CAAA;AACrC,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QACvD;AACI,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA,WAC9C,CAAC,OAAO,sBAAsB;AACxC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,wBAAwB;AAAA,QAC3D,WAAA,OAAO,aAAa,OAAO,sBAAsB;AAC3D,iBAAO,KAAK,EAAE,MAAM,qBAAqB,OAAO,wBAAwB;AAAA,QACzE;AACO,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,YAAY;AAAA,UACxB,UAAU,OAAO;AAAA,UACjB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAoG;AAAA,EACzG,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAChB;"}
1
+ {"version":3,"file":"PasswordResetForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetForm.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { ResetPasswordErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { useResetPasswordMutation } from '../../hooks'\n\nexport type PasswordResetFormValues = {\n\ttoken: string\n\tpassword: string\n\tpasswordConfirmation: string\n}\n\nexport type PasswordResetFormErrorCode =\n\t| ResetPasswordErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'PASSWORD_MISMATCH'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetFormState = FormState\n\nexport type PasswordResetFormError = FormError<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport type PasswordResetFormContextValue = FormContextValue<PasswordResetFormValues, PasswordResetFormErrorCode>\n\nexport interface PasswordResetFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\ttoken?: string\n}\n\nexport const usePasswordResetForm = useForm as () => PasswordResetFormContextValue\n\nexport const PasswordResetForm = ({ children, onSuccess, token }: PasswordResetFormProps) => {\n\tconst createReset = useResetPasswordMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={{\n\t\t\t\ttoken: token ?? '',\n\t\t\t\tpassword: '',\n\t\t\t\tpasswordConfirmation: '',\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: PasswordResetFormError[] = []\n\t\t\t\tif (!values.token) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'token' })\n\t\t\t\t}\n\t\t\t\tif (!values.password) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'password' })\n\t\t\t\t} else if (values.password.length < 6) {\n\t\t\t\t\terrors.push({ code: 'INVALID_VALUE', field: 'password' })\n\t\t\t\t} else if (!values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'passwordConfirmation' })\n\t\t\t\t} else if (values.password !== values.passwordConfirmation) {\n\t\t\t\t\terrors.push({ code: 'PASSWORD_MISMATCH', field: 'passwordConfirmation' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await createReset({\n\t\t\t\t\tpassword: values.password,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t})\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.ResetPasswordErrorCode, keyof PasswordResetFormValues | undefined> = {\n\tPASSWORD_TOO_WEAK: 'password',\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n}\n"],"names":[],"mappings":";;;;AAiCO,MAAM,uBAAuB;AAE7B,MAAM,oBAAoB,CAAC,EAAE,UAAU,WAAW,YAAoC;AAC5F,QAAM,cAAc,yBAAyB;AAE5C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,QACd,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,QACV,sBAAsB;AAAA,MACvB;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAmC,CAAC;AACtC,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QAAA;AAEnD,YAAA,CAAC,OAAO,UAAU;AACrB,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAC/C,WAAA,OAAO,SAAS,SAAS,GAAG;AACtC,iBAAO,KAAK,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA,WAC9C,CAAC,OAAO,sBAAsB;AACxC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,wBAAwB;AAAA,QAC3D,WAAA,OAAO,aAAa,OAAO,sBAAsB;AAC3D,iBAAO,KAAK,EAAE,MAAM,qBAAqB,OAAO,wBAAwB;AAAA,QAAA;AAElE,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,YAAY;AAAA,UACxB,UAAU,OAAO;AAAA,UACjB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAoG;AAAA,EACzG,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAChB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordResetRequestForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetRequestForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { CreatePasswordResetRequestErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { useCreateResetPasswordRequestMutation } from '../../hooks'\n\nexport type PasswordResetRequestFormValues = {\n\temail: string\n}\n\nexport type PasswordResetRequestFormErrorCode =\n\t| CreatePasswordResetRequestErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetRequestFormState = FormState\n\nexport type PasswordResetRequestFormError = FormError<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\nexport type PasswordResetRequestFormContextValue = FormContextValue<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\n\nexport interface PasswordResetRequestFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordResetRequestForm = useForm as () => PasswordResetRequestFormContextValue\n\nexport const PasswordResetRequestForm = ({ children, onSuccess }: PasswordResetRequestFormProps) => {\n\n\tconst createResetRequest = useCreateResetPasswordRequestMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetRequestFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await createResetRequest({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [createResetRequest])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.CreatePasswordResetRequestErrorCode, keyof PasswordResetRequestFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n}\n"],"names":["useForm","useCreateResetPasswordRequestMutation","jsx","TenantForm","useMemo","useCallback"],"mappings":";;;;;;;AA8BO,MAAM,8BAA8BA,SAAA;AAEpC,MAAM,2BAA2B,CAAC,EAAE,UAAU,gBAA+C;AAEnG,QAAM,qBAAqBC,sCAAAA;AAE1B,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAeC,cAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,QAAS,CAAA;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,QAAS,CAAA;AAAA,QAClD;AACA,eAAO;MACR;AAAA,MACA,SAASC,MAAA,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,mBAAmB;AAAA,UAC/B,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,kBAAkB,CAAC;AAAA,MAEtB;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAwH;AAAA,EAC7H,kBAAkB;AACnB;;;"}
1
+ {"version":3,"file":"PasswordResetRequestForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetRequestForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { CreatePasswordResetRequestErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { useCreateResetPasswordRequestMutation } from '../../hooks'\n\nexport type PasswordResetRequestFormValues = {\n\temail: string\n}\n\nexport type PasswordResetRequestFormErrorCode =\n\t| CreatePasswordResetRequestErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetRequestFormState = FormState\n\nexport type PasswordResetRequestFormError = FormError<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\nexport type PasswordResetRequestFormContextValue = FormContextValue<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\n\nexport interface PasswordResetRequestFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordResetRequestForm = useForm as () => PasswordResetRequestFormContextValue\n\nexport const PasswordResetRequestForm = ({ children, onSuccess }: PasswordResetRequestFormProps) => {\n\n\tconst createResetRequest = useCreateResetPasswordRequestMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetRequestFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await createResetRequest({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [createResetRequest])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.CreatePasswordResetRequestErrorCode, keyof PasswordResetRequestFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n}\n"],"names":["useForm","useCreateResetPasswordRequestMutation","jsx","TenantForm","useMemo","useCallback"],"mappings":";;;;;;;AA8BO,MAAM,8BAA8BA,SAAAA;AAEpC,MAAM,2BAA2B,CAAC,EAAE,UAAU,gBAA+C;AAEnG,QAAM,qBAAqBC,sCAAAA,sCAAsC;AAEhE,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAeC,cAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QAAA;AAElD,eAAO,CAAC;AAAA,MACT;AAAA,MACA,SAASC,MAAA,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,mBAAmB;AAAA,UAC/B,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,kBAAkB,CAAC;AAAA,MAEtB;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAwH;AAAA,EAC7H,kBAAkB;AACnB;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordResetRequestForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetRequestForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { CreatePasswordResetRequestErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { useCreateResetPasswordRequestMutation } from '../../hooks'\n\nexport type PasswordResetRequestFormValues = {\n\temail: string\n}\n\nexport type PasswordResetRequestFormErrorCode =\n\t| CreatePasswordResetRequestErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetRequestFormState = FormState\n\nexport type PasswordResetRequestFormError = FormError<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\nexport type PasswordResetRequestFormContextValue = FormContextValue<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\n\nexport interface PasswordResetRequestFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordResetRequestForm = useForm as () => PasswordResetRequestFormContextValue\n\nexport const PasswordResetRequestForm = ({ children, onSuccess }: PasswordResetRequestFormProps) => {\n\n\tconst createResetRequest = useCreateResetPasswordRequestMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetRequestFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await createResetRequest({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [createResetRequest])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.CreatePasswordResetRequestErrorCode, keyof PasswordResetRequestFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n}\n"],"names":[],"mappings":";;;;;AA8BO,MAAM,8BAA8B;AAEpC,MAAM,2BAA2B,CAAC,EAAE,UAAU,gBAA+C;AAEnG,QAAM,qBAAqB;AAE1B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe,QAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,QAAS,CAAA;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,QAAS,CAAA;AAAA,QAClD;AACA,eAAO;MACR;AAAA,MACA,SAAS,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,mBAAmB;AAAA,UAC/B,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,kBAAkB,CAAC;AAAA,MAEtB;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAwH;AAAA,EAC7H,kBAAkB;AACnB;"}
1
+ {"version":3,"file":"PasswordResetRequestForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordResetRequestForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { CreatePasswordResetRequestErrorCode } from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { useCreateResetPasswordRequestMutation } from '../../hooks'\n\nexport type PasswordResetRequestFormValues = {\n\temail: string\n}\n\nexport type PasswordResetRequestFormErrorCode =\n\t| CreatePasswordResetRequestErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordResetRequestFormState = FormState\n\nexport type PasswordResetRequestFormError = FormError<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\nexport type PasswordResetRequestFormContextValue = FormContextValue<PasswordResetRequestFormValues, PasswordResetRequestFormErrorCode>\n\n\nexport interface PasswordResetRequestFormProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordResetRequestForm = useForm as () => PasswordResetRequestFormContextValue\n\nexport const PasswordResetRequestForm = ({ children, onSuccess }: PasswordResetRequestFormProps) => {\n\n\tconst createResetRequest = useCreateResetPasswordRequestMutation()\n\treturn (\n\t\t<TenantForm<PasswordResetRequestFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await createResetRequest({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [createResetRequest])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.CreatePasswordResetRequestErrorCode, keyof PasswordResetRequestFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n}\n"],"names":[],"mappings":";;;;;AA8BO,MAAM,8BAA8B;AAEpC,MAAM,2BAA2B,CAAC,EAAE,UAAU,gBAA+C;AAEnG,QAAM,qBAAqB,sCAAsC;AAEhE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe,QAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QAAA;AAElD,eAAO,CAAC;AAAA,MACT;AAAA,MACA,SAAS,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,mBAAmB;AAAA,UAC/B,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,kBAAkB,CAAC;AAAA,MAEtB;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAwH;AAAA,EAC7H,kBAAkB;AACnB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordlessSignInForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { SignInPasswordlessMutationResult, useSignInPasswordlessMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\nimport { useSetSessionToken } from '@contember/react-client'\n\nexport type PasswordlessSignInFormValues = {\n\ttoken: string\n\totpToken: string\n}\n\nexport type PasswordlessSignInFormErrorCode =\n\t| TenantApi.SignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type PasswordlessSignInFormError = FormError<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode>\n\nexport type PasswordlessSignInFormContextValue = FormContextValue<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode, PasswordlessSignInFormState>\n\n\nexport interface PasswordlessSignInFormProps {\n\trequestId: string\n\tvalidationType: TenantApi.PasswordlessValidationType\n\ttoken?: string\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordlessSignInForm = useForm as () => PasswordlessSignInFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const PasswordlessSignInForm = ({ children, onSuccess, requestId, validationType, token, expiration = DEFAULT_LOGIN_EXPIRATION }: PasswordlessSignInFormProps) => {\n\n\tconst signIn = useSignInPasswordlessMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInFormContextValue, SignInPasswordlessMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\ttoken: token ?? '',\n\t\t\t\totpToken: '',\n\t\t\t}), [token])}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tif (!values.token) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'token' }]\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\tconst result = await signIn({\n\t\t\t\t\trequestId,\n\t\t\t\t\texpiration,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t\tmfaOtp: values.otpToken || undefined,\n\t\t\t\t\tvalidationType,\n\t\t\t\t})\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}, [expiration, requestId, signIn, validationType])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInPasswordlessErrorCode, keyof PasswordlessSignInFormValues | undefined> = {\n\tPERSON_DISABLED: undefined,\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n\tINVALID_OTP_TOKEN: 'otpToken',\n\tOTP_REQUIRED: undefined,\n}\n"],"names":["useForm","useSignInPasswordlessMutation","useRedirectToBacklinkCallback","useSetSessionToken","jsx","TenantForm","useMemo","useCallback"],"mappings":";;;;;;;;;AAsCO,MAAM,4BAA4BA,SAAA;AAEzC,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AACA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,yBAAyB,CAAC,EAAE,UAAU,WAAW,WAAW,gBAAgB,OAAO,aAAa,+BAA4D;AAExK,QAAM,SAASC,8BAAAA,8BAA8B,EAAE,QAAS,CAAA;AACxD,QAAM,qBAAqBC,sBAAAA;AAC3B,QAAM,kBAAkBC,YAAAA;AAEvB,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN;AACI,wBAAA,KAAK,OAAO,KAAK;AACd;MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAeC,cAAQ,OAAO;AAAA,QAC7B,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,MAAA,IACP,CAAC,KAAK,CAAC;AAAA,MACX,UAAU,CAAC,EAAE,QAAQ,YAAY;AAC5B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,QAAS,CAAA;AAAA,QACnD;AACA,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,WAAY,CAAA;AAAA,QAAA,WAC3C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,WAAY,CAAA;AAAA,QACrD;AACA,eAAO;MACR;AAAA,MACA,SAASC,MAAA,YAAY,OAAO,EAAE,aAAa;AACpC,cAAA,SAAS,MAAM,OAAO;AAAA,UAC3B;AAAA,UACA;AAAA,UACA,OAAO,OAAO;AAAA,UACd,QAAQ,OAAO,YAAY;AAAA,UAC3B;AAAA,QAAA,CACA;AACD,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAC3C;AAEO,eAAA;AAAA,SACL,CAAC,YAAY,WAAW,QAAQ,cAAc,CAAC;AAAA,MAEjD;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAA8G;AAAA,EACnH,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,cAAc;AACf;;;"}
1
+ {"version":3,"file":"PasswordlessSignInForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { SignInPasswordlessMutationResult, useSignInPasswordlessMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\nimport { useSetSessionToken } from '@contember/react-client'\n\nexport type PasswordlessSignInFormValues = {\n\ttoken: string\n\totpToken: string\n}\n\nexport type PasswordlessSignInFormErrorCode =\n\t| TenantApi.SignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type PasswordlessSignInFormError = FormError<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode>\n\nexport type PasswordlessSignInFormContextValue = FormContextValue<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode, PasswordlessSignInFormState>\n\n\nexport interface PasswordlessSignInFormProps {\n\trequestId: string\n\tvalidationType: TenantApi.PasswordlessValidationType\n\ttoken?: string\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordlessSignInForm = useForm as () => PasswordlessSignInFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const PasswordlessSignInForm = ({ children, onSuccess, requestId, validationType, token, expiration = DEFAULT_LOGIN_EXPIRATION }: PasswordlessSignInFormProps) => {\n\n\tconst signIn = useSignInPasswordlessMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInFormContextValue, SignInPasswordlessMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\ttoken: token ?? '',\n\t\t\t\totpToken: '',\n\t\t\t}), [token])}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tif (!values.token) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'token' }]\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\tconst result = await signIn({\n\t\t\t\t\trequestId,\n\t\t\t\t\texpiration,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t\tmfaOtp: values.otpToken || undefined,\n\t\t\t\t\tvalidationType,\n\t\t\t\t})\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}, [expiration, requestId, signIn, validationType])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInPasswordlessErrorCode, keyof PasswordlessSignInFormValues | undefined> = {\n\tPERSON_DISABLED: undefined,\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n\tINVALID_OTP_TOKEN: 'otpToken',\n\tOTP_REQUIRED: undefined,\n}\n"],"names":["useForm","useSignInPasswordlessMutation","useRedirectToBacklinkCallback","useSetSessionToken","jsx","TenantForm","useMemo","useCallback"],"mappings":";;;;;;;;;AAsCO,MAAM,4BAA4BA,SAAAA;AAEzC,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AACA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,yBAAyB,CAAC,EAAE,UAAU,WAAW,WAAW,gBAAgB,OAAO,aAAa,+BAA4D;AAExK,QAAM,SAASC,8BAAAA,8BAA8B,EAAE,SAAS;AACxD,QAAM,qBAAqBC,sBAAAA,8BAA8B;AACzD,QAAM,kBAAkBC,YAAAA,mBAAmB;AAE1C,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN,oBAAA;AACI,wBAAA,KAAK,OAAO,KAAK;AACd,2BAAA;AAAA,MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAeC,cAAQ,OAAO;AAAA,QAC7B,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,MAAA,IACP,CAAC,KAAK,CAAC;AAAA,MACX,UAAU,CAAC,EAAE,QAAQ,YAAY;AAC5B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QAAA;AAEnD,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA,WAC3C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA;AAErD,eAAO,CAAC;AAAA,MACT;AAAA,MACA,SAASC,MAAA,YAAY,OAAO,EAAE,aAAa;AACpC,cAAA,SAAS,MAAM,OAAO;AAAA,UAC3B;AAAA,UACA;AAAA,UACA,OAAO,OAAO;AAAA,UACd,QAAQ,OAAO,YAAY;AAAA,UAC3B;AAAA,QAAA,CACA;AACD,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAAA;AAGpC,eAAA;AAAA,SACL,CAAC,YAAY,WAAW,QAAQ,cAAc,CAAC;AAAA,MAEjD;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAA8G;AAAA,EACnH,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,cAAc;AACf;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordlessSignInForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { SignInPasswordlessMutationResult, useSignInPasswordlessMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\nimport { useSetSessionToken } from '@contember/react-client'\n\nexport type PasswordlessSignInFormValues = {\n\ttoken: string\n\totpToken: string\n}\n\nexport type PasswordlessSignInFormErrorCode =\n\t| TenantApi.SignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type PasswordlessSignInFormError = FormError<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode>\n\nexport type PasswordlessSignInFormContextValue = FormContextValue<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode, PasswordlessSignInFormState>\n\n\nexport interface PasswordlessSignInFormProps {\n\trequestId: string\n\tvalidationType: TenantApi.PasswordlessValidationType\n\ttoken?: string\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordlessSignInForm = useForm as () => PasswordlessSignInFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const PasswordlessSignInForm = ({ children, onSuccess, requestId, validationType, token, expiration = DEFAULT_LOGIN_EXPIRATION }: PasswordlessSignInFormProps) => {\n\n\tconst signIn = useSignInPasswordlessMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInFormContextValue, SignInPasswordlessMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\ttoken: token ?? '',\n\t\t\t\totpToken: '',\n\t\t\t}), [token])}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tif (!values.token) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'token' }]\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\tconst result = await signIn({\n\t\t\t\t\trequestId,\n\t\t\t\t\texpiration,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t\tmfaOtp: values.otpToken || undefined,\n\t\t\t\t\tvalidationType,\n\t\t\t\t})\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}, [expiration, requestId, signIn, validationType])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInPasswordlessErrorCode, keyof PasswordlessSignInFormValues | undefined> = {\n\tPERSON_DISABLED: undefined,\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n\tINVALID_OTP_TOKEN: 'otpToken',\n\tOTP_REQUIRED: undefined,\n}\n"],"names":[],"mappings":";;;;;;;AAsCO,MAAM,4BAA4B;AAEzC,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AACA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,yBAAyB,CAAC,EAAE,UAAU,WAAW,WAAW,gBAAgB,OAAO,aAAa,+BAA4D;AAExK,QAAM,SAAS,8BAA8B,EAAE,QAAS,CAAA;AACxD,QAAM,qBAAqB;AAC3B,QAAM,kBAAkB;AAEvB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN;AACI,wBAAA,KAAK,OAAO,KAAK;AACd;MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAe,QAAQ,OAAO;AAAA,QAC7B,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,MAAA,IACP,CAAC,KAAK,CAAC;AAAA,MACX,UAAU,CAAC,EAAE,QAAQ,YAAY;AAC5B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,QAAS,CAAA;AAAA,QACnD;AACA,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,WAAY,CAAA;AAAA,QAAA,WAC3C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,WAAY,CAAA;AAAA,QACrD;AACA,eAAO;MACR;AAAA,MACA,SAAS,YAAY,OAAO,EAAE,aAAa;AACpC,cAAA,SAAS,MAAM,OAAO;AAAA,UAC3B;AAAA,UACA;AAAA,UACA,OAAO,OAAO;AAAA,UACd,QAAQ,OAAO,YAAY;AAAA,UAC3B;AAAA,QAAA,CACA;AACD,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAC3C;AAEO,eAAA;AAAA,SACL,CAAC,YAAY,WAAW,QAAQ,cAAc,CAAC;AAAA,MAEjD;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAA8G;AAAA,EACnH,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,cAAc;AACf;"}
1
+ {"version":3,"file":"PasswordlessSignInForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { SignInPasswordlessMutationResult, useSignInPasswordlessMutation } from '../../hooks'\nimport { useRedirectToBacklinkCallback } from '../../internal/hooks/useRedirectToBacklink'\nimport { useSetSessionToken } from '@contember/react-client'\n\nexport type PasswordlessSignInFormValues = {\n\ttoken: string\n\totpToken: string\n}\n\nexport type PasswordlessSignInFormErrorCode =\n\t| TenantApi.SignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInFormState =\n\t| FormState\n\t| 'otp-required'\n\nexport type PasswordlessSignInFormError = FormError<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode>\n\nexport type PasswordlessSignInFormContextValue = FormContextValue<PasswordlessSignInFormValues, PasswordlessSignInFormErrorCode, PasswordlessSignInFormState>\n\n\nexport interface PasswordlessSignInFormProps {\n\trequestId: string\n\tvalidationType: TenantApi.PasswordlessValidationType\n\ttoken?: string\n\texpiration?: number\n\tchildren: ReactElement\n\tonSuccess?: () => void\n}\n\nexport const usePasswordlessSignInForm = useForm as () => PasswordlessSignInFormContextValue\n\nconst headers = {\n\t'X-Contember-Token-Path': 'data.mutation.result.token',\n}\nconst DEFAULT_LOGIN_EXPIRATION = 14 * 24 * 60 // 14 days\n\nexport const PasswordlessSignInForm = ({ children, onSuccess, requestId, validationType, token, expiration = DEFAULT_LOGIN_EXPIRATION }: PasswordlessSignInFormProps) => {\n\n\tconst signIn = useSignInPasswordlessMutation({ headers })\n\tconst redirectToBacklink = useRedirectToBacklinkCallback()\n\tconst setSessionToken = useSetSessionToken()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInFormContextValue, SignInPasswordlessMutationResult>\n\t\t\tonSuccess={args => {\n\t\t\t\tonSuccess?.()\n\t\t\t\tsetSessionToken(args.result.token)\n\t\t\t\tredirectToBacklink()\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\ttoken: token ?? '',\n\t\t\t\totpToken: '',\n\t\t\t}), [token])}\n\t\t\tvalidate={({ values, state }) => {\n\t\t\t\tif (!values.token) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'token' }]\n\t\t\t\t}\n\t\t\t\tif (!values.otpToken && state === 'otp-required') {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'otpToken' }]\n\t\t\t\t} else if (values.otpToken && !values.otpToken.match(/^\\d{6}$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'otpToken' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\tconst result = await signIn({\n\t\t\t\t\trequestId,\n\t\t\t\t\texpiration,\n\t\t\t\t\ttoken: values.token,\n\t\t\t\t\tmfaOtp: values.otpToken || undefined,\n\t\t\t\t\tvalidationType,\n\t\t\t\t})\n\t\t\t\tif (!result.ok && result.error === 'OTP_REQUIRED') {\n\t\t\t\t\treturn { ...result, state: 'otp-required' }\n\t\t\t\t}\n\n\t\t\t\treturn result\n\t\t\t}, [expiration, requestId, signIn, validationType])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.SignInPasswordlessErrorCode, keyof PasswordlessSignInFormValues | undefined> = {\n\tPERSON_DISABLED: undefined,\n\tTOKEN_EXPIRED: 'token',\n\tTOKEN_NOT_FOUND: 'token',\n\tTOKEN_USED: 'token',\n\tTOKEN_INVALID: 'token',\n\tINVALID_OTP_TOKEN: 'otpToken',\n\tOTP_REQUIRED: undefined,\n}\n"],"names":[],"mappings":";;;;;;;AAsCO,MAAM,4BAA4B;AAEzC,MAAM,UAAU;AAAA,EACf,0BAA0B;AAC3B;AACA,MAAM,2BAA2B,KAAK,KAAK;AAE9B,MAAA,yBAAyB,CAAC,EAAE,UAAU,WAAW,WAAW,gBAAgB,OAAO,aAAa,+BAA4D;AAExK,QAAM,SAAS,8BAA8B,EAAE,SAAS;AACxD,QAAM,qBAAqB,8BAA8B;AACzD,QAAM,kBAAkB,mBAAmB;AAE1C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,CAAQ,SAAA;AACN,oBAAA;AACI,wBAAA,KAAK,OAAO,KAAK;AACd,2BAAA;AAAA,MACpB;AAAA,MACA,cAAc;AAAA,MACd,eAAe,QAAQ,OAAO;AAAA,QAC7B,OAAO,SAAS;AAAA,QAChB,UAAU;AAAA,MAAA,IACP,CAAC,KAAK,CAAC;AAAA,MACX,UAAU,CAAC,EAAE,QAAQ,YAAY;AAC5B,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,QAAA;AAEnD,YAAI,CAAC,OAAO,YAAY,UAAU,gBAAgB;AACjD,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,YAAY;AAAA,QAAA,WAC3C,OAAO,YAAY,CAAC,OAAO,SAAS,MAAM,SAAS,GAAG;AAChE,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,YAAY;AAAA,QAAA;AAErD,eAAO,CAAC;AAAA,MACT;AAAA,MACA,SAAS,YAAY,OAAO,EAAE,aAAa;AACpC,cAAA,SAAS,MAAM,OAAO;AAAA,UAC3B;AAAA,UACA;AAAA,UACA,OAAO,OAAO;AAAA,UACd,QAAQ,OAAO,YAAY;AAAA,UAC3B;AAAA,QAAA,CACA;AACD,YAAI,CAAC,OAAO,MAAM,OAAO,UAAU,gBAAgB;AAClD,iBAAO,EAAE,GAAG,QAAQ,OAAO,eAAe;AAAA,QAAA;AAGpC,eAAA;AAAA,SACL,CAAC,YAAY,WAAW,QAAQ,cAAc,CAAC;AAAA,MAEjD;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAA8G;AAAA,EACnH,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,cAAc;AACf;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordlessSignInInitForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInInitForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { InitSignInPasswordlessMutationResult, useInitSignInPasswordlessMutation } from '../../hooks'\nimport { PASSWORDLESS_REQUEST_STORAGE_KEY } from '../../consts'\n\nexport type PasswordlessSignInInitFormValues = {\n\temail: string\n}\n\nexport type PasswordlessSignInInitFormErrorCode =\n\t| TenantApi.InitSignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInInitFormState = FormState\n\nexport type PasswordlessSignInInitFormError = FormError<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\nexport type PasswordlessSignInInitFormContextValue = FormContextValue<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\n\nexport interface PasswordlessSignInInitFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: InitSignInPasswordlessMutationResult }) => void\n}\n\nexport const usePasswordlessSignInInitForm = useForm as () => PasswordlessSignInInitFormContextValue\n\nexport const PasswordlessSignInInitForm = ({ children, onSuccess }: PasswordlessSignInInitFormProps) => {\n\n\tconst initSignIn = useInitSignInPasswordlessMutation()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInInitFormContextValue, InitSignInPasswordlessMutationResult>\n\t\t\tonSuccess={res => {\n\t\t\t\tlocalStorage.setItem(PASSWORDLESS_REQUEST_STORAGE_KEY, res.result.requestId)\n\t\t\t\tonSuccess?.(res)\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await initSignIn({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [initSignIn])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.InitSignInPasswordlessErrorCode, keyof PasswordlessSignInInitFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n\tPASSWORDLESS_DISABLED: undefined,\n}\n"],"names":["useForm","useInitSignInPasswordlessMutation","jsx","TenantForm","PASSWORDLESS_REQUEST_STORAGE_KEY","useMemo","useCallback"],"mappings":";;;;;;;;AA8BO,MAAM,gCAAgCA,SAAA;AAEtC,MAAM,6BAA6B,CAAC,EAAE,UAAU,gBAAiD;AAEvG,QAAM,aAAaC,kCAAAA;AAElB,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,CAAO,QAAA;AACjB,qBAAa,QAAQC,OAAA,kCAAkC,IAAI,OAAO,SAAS;AAC3E,oBAAY,GAAG;AAAA,MAChB;AAAA,MACA,cAAc;AAAA,MACd,eAAeC,cAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,QAAS,CAAA;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,QAAS,CAAA;AAAA,QAClD;AACA,eAAO;MACR;AAAA,MACA,SAASC,MAAA,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,UAAU,CAAC;AAAA,MAEd;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAsH;AAAA,EAC3H,kBAAkB;AAAA,EAClB,uBAAuB;AACxB;;;"}
1
+ {"version":3,"file":"PasswordlessSignInInitForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInInitForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { InitSignInPasswordlessMutationResult, useInitSignInPasswordlessMutation } from '../../hooks'\nimport { PASSWORDLESS_REQUEST_STORAGE_KEY } from '../../consts'\n\nexport type PasswordlessSignInInitFormValues = {\n\temail: string\n}\n\nexport type PasswordlessSignInInitFormErrorCode =\n\t| TenantApi.InitSignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInInitFormState = FormState\n\nexport type PasswordlessSignInInitFormError = FormError<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\nexport type PasswordlessSignInInitFormContextValue = FormContextValue<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\n\nexport interface PasswordlessSignInInitFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: InitSignInPasswordlessMutationResult }) => void\n}\n\nexport const usePasswordlessSignInInitForm = useForm as () => PasswordlessSignInInitFormContextValue\n\nexport const PasswordlessSignInInitForm = ({ children, onSuccess }: PasswordlessSignInInitFormProps) => {\n\n\tconst initSignIn = useInitSignInPasswordlessMutation()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInInitFormContextValue, InitSignInPasswordlessMutationResult>\n\t\t\tonSuccess={res => {\n\t\t\t\tlocalStorage.setItem(PASSWORDLESS_REQUEST_STORAGE_KEY, res.result.requestId)\n\t\t\t\tonSuccess?.(res)\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await initSignIn({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [initSignIn])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.InitSignInPasswordlessErrorCode, keyof PasswordlessSignInInitFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n\tPASSWORDLESS_DISABLED: undefined,\n}\n"],"names":["useForm","useInitSignInPasswordlessMutation","jsx","TenantForm","PASSWORDLESS_REQUEST_STORAGE_KEY","useMemo","useCallback"],"mappings":";;;;;;;;AA8BO,MAAM,gCAAgCA,SAAAA;AAEtC,MAAM,6BAA6B,CAAC,EAAE,UAAU,gBAAiD;AAEvG,QAAM,aAAaC,kCAAAA,kCAAkC;AAEpD,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA,WAAW,CAAO,QAAA;AACjB,qBAAa,QAAQC,OAAAA,kCAAkC,IAAI,OAAO,SAAS;AAC3E,oBAAY,GAAG;AAAA,MAChB;AAAA,MACA,cAAc;AAAA,MACd,eAAeC,cAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QAAA;AAElD,eAAO,CAAC;AAAA,MACT;AAAA,MACA,SAASC,MAAA,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,UAAU,CAAC;AAAA,MAEd;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAsH;AAAA,EAC3H,kBAAkB;AAAA,EAClB,uBAAuB;AACxB;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordlessSignInInitForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInInitForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { InitSignInPasswordlessMutationResult, useInitSignInPasswordlessMutation } from '../../hooks'\nimport { PASSWORDLESS_REQUEST_STORAGE_KEY } from '../../consts'\n\nexport type PasswordlessSignInInitFormValues = {\n\temail: string\n}\n\nexport type PasswordlessSignInInitFormErrorCode =\n\t| TenantApi.InitSignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInInitFormState = FormState\n\nexport type PasswordlessSignInInitFormError = FormError<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\nexport type PasswordlessSignInInitFormContextValue = FormContextValue<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\n\nexport interface PasswordlessSignInInitFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: InitSignInPasswordlessMutationResult }) => void\n}\n\nexport const usePasswordlessSignInInitForm = useForm as () => PasswordlessSignInInitFormContextValue\n\nexport const PasswordlessSignInInitForm = ({ children, onSuccess }: PasswordlessSignInInitFormProps) => {\n\n\tconst initSignIn = useInitSignInPasswordlessMutation()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInInitFormContextValue, InitSignInPasswordlessMutationResult>\n\t\t\tonSuccess={res => {\n\t\t\t\tlocalStorage.setItem(PASSWORDLESS_REQUEST_STORAGE_KEY, res.result.requestId)\n\t\t\t\tonSuccess?.(res)\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await initSignIn({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [initSignIn])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.InitSignInPasswordlessErrorCode, keyof PasswordlessSignInInitFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n\tPASSWORDLESS_DISABLED: undefined,\n}\n"],"names":[],"mappings":";;;;;;AA8BO,MAAM,gCAAgC;AAEtC,MAAM,6BAA6B,CAAC,EAAE,UAAU,gBAAiD;AAEvG,QAAM,aAAa;AAElB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,CAAO,QAAA;AACjB,qBAAa,QAAQ,kCAAkC,IAAI,OAAO,SAAS;AAC3E,oBAAY,GAAG;AAAA,MAChB;AAAA,MACA,cAAc;AAAA,MACd,eAAe,QAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,QAAS,CAAA;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,QAAS,CAAA;AAAA,QAClD;AACA,eAAO;MACR;AAAA,MACA,SAAS,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,UAAU,CAAC;AAAA,MAEd;AAAA,IAAA;AAAA,EAAA;AAIJ;AACA,MAAM,eAAsH;AAAA,EAC3H,kBAAkB;AAAA,EAClB,uBAAuB;AACxB;"}
1
+ {"version":3,"file":"PasswordlessSignInInitForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/PasswordlessSignInInitForm.tsx"],"sourcesContent":["import { ReactElement, useCallback, useMemo } from 'react'\nimport * as TenantApi from '@contember/graphql-client-tenant'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types/forms'\nimport { useForm } from '../../contexts'\nimport { InitSignInPasswordlessMutationResult, useInitSignInPasswordlessMutation } from '../../hooks'\nimport { PASSWORDLESS_REQUEST_STORAGE_KEY } from '../../consts'\n\nexport type PasswordlessSignInInitFormValues = {\n\temail: string\n}\n\nexport type PasswordlessSignInInitFormErrorCode =\n\t| TenantApi.InitSignInPasswordlessErrorCode\n\t| 'FIELD_REQUIRED'\n\t| 'INVALID_VALUE'\n\t| 'UNKNOWN_ERROR'\n\nexport type PasswordlessSignInInitFormState = FormState\n\nexport type PasswordlessSignInInitFormError = FormError<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\nexport type PasswordlessSignInInitFormContextValue = FormContextValue<PasswordlessSignInInitFormValues, PasswordlessSignInInitFormErrorCode>\n\n\nexport interface PasswordlessSignInInitFormProps {\n\tchildren: ReactElement\n\tonSuccess?: (args: { result: InitSignInPasswordlessMutationResult }) => void\n}\n\nexport const usePasswordlessSignInInitForm = useForm as () => PasswordlessSignInInitFormContextValue\n\nexport const PasswordlessSignInInitForm = ({ children, onSuccess }: PasswordlessSignInInitFormProps) => {\n\n\tconst initSignIn = useInitSignInPasswordlessMutation()\n\treturn (\n\t\t<TenantForm<PasswordlessSignInInitFormContextValue, InitSignInPasswordlessMutationResult>\n\t\t\tonSuccess={res => {\n\t\t\t\tlocalStorage.setItem(PASSWORDLESS_REQUEST_STORAGE_KEY, res.result.requestId)\n\t\t\t\tonSuccess?.(res)\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t\tinitialValues={useMemo(() => ({\n\t\t\t\temail: '',\n\t\t\t}), [])}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tif (!values.email) {\n\t\t\t\t\treturn [{ code: 'FIELD_REQUIRED', field: 'email' }]\n\t\t\t\t} else if (!values.email.match(/^.+@.+$/)) {\n\t\t\t\t\treturn [{ code: 'INVALID_VALUE', field: 'email' }]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t}}\n\t\t\texecute={useCallback(async ({ values }) => {\n\t\t\t\treturn await initSignIn({\n\t\t\t\t\temail: values.email,\n\t\t\t\t})\n\t\t\t}, [initSignIn])}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n\n}\nconst errorToField: Record<TenantApi.InitSignInPasswordlessErrorCode, keyof PasswordlessSignInInitFormValues | undefined> = {\n\tPERSON_NOT_FOUND: 'email',\n\tPASSWORDLESS_DISABLED: undefined,\n}\n"],"names":[],"mappings":";;;;;;AA8BO,MAAM,gCAAgC;AAEtC,MAAM,6BAA6B,CAAC,EAAE,UAAU,gBAAiD;AAEvG,QAAM,aAAa,kCAAkC;AAEpD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,CAAO,QAAA;AACjB,qBAAa,QAAQ,kCAAkC,IAAI,OAAO,SAAS;AAC3E,oBAAY,GAAG;AAAA,MAChB;AAAA,MACA,cAAc;AAAA,MACd,eAAe,QAAQ,OAAO;AAAA,QAC7B,OAAO;AAAA,MACR,IAAI,CAAA,CAAE;AAAA,MACN,UAAU,CAAC,EAAE,aAAa;AACrB,YAAA,CAAC,OAAO,OAAO;AAClB,iBAAO,CAAC,EAAE,MAAM,kBAAkB,OAAO,SAAS;AAAA,mBACxC,CAAC,OAAO,MAAM,MAAM,SAAS,GAAG;AAC1C,iBAAO,CAAC,EAAE,MAAM,iBAAiB,OAAO,SAAS;AAAA,QAAA;AAElD,eAAO,CAAC;AAAA,MACT;AAAA,MACA,SAAS,YAAY,OAAO,EAAE,aAAa;AAC1C,eAAO,MAAM,WAAW;AAAA,UACvB,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MAAA,GACC,CAAC,UAAU,CAAC;AAAA,MAEd;AAAA,IAAA;AAAA,EACF;AAGF;AACA,MAAM,eAAsH;AAAA,EAC3H,kBAAkB;AAAA,EAClB,uBAAuB;AACxB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TenantForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/TenantForm.tsx"],"sourcesContent":["import { ComponentType, ReactElement, useCallback, useEffect, useState } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { FormContextValue } from '../../types/forms'\nimport { FormContext } from '../../contexts'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\n\nconst SlotForm = Slot as ComponentType<React.FormHTMLAttributes<HTMLFormElement>>\n\n\ntype ExecuteResult<T extends FormContextValue<any, any, any>, OkResult = undefined> =\n\t| ({ ok: true } & (OkResult extends undefined ? {} : { result: OkResult }))\n\t| { ok: false; error?: T['errors'][number]['code']; developerMessage?: string; state?: T['state'] }\n\nexport interface TenantFormProps<T extends FormContextValue<any, any, any>, OkResult = undefined> {\n\tchildren: ReactElement\n\tloading?: boolean\n\tinitialValues: T['values']\n\terrorMapping?: Partial<Record<T['errors'][number]['code'], keyof T['values']>>\n\tvalidate?: (args: { values: T['values']; state: T['state'] }) => T['errors'] | undefined\n\texecute: (args: { values: T['values']; state: T['state'] }) => Promise<ExecuteResult<T, OkResult>>\n\tonSuccess?: (args: { result: OkResult }) => void\n\tonChange?: (args: { values: T['values']; state: T['state']; submit: () => Promise<void> }) => void\n}\n\nexport const TenantForm = <T extends FormContextValue<any, any, any>, OkResult = undefined>({\n\tchildren,\n\tinitialValues,\n\tloading,\n\terrorMapping,\n\tvalidate: validateIn,\n\texecute: executeIn,\n\tonSuccess: onSuccessIn,\n\tonChange: onChangeIn,\n}: TenantFormProps<T, OkResult>) => {\n\tconst [values, setValues] = useState<T['values']>(initialValues)\n\n\tconst [errors, setErrors] = useState<T['errors']>([])\n\tconst [state, setState] = useState<T['state']>(loading ? 'loading' : 'initial')\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tsetState('loading')\n\t\t}\n\t}, [loading])\n\n\tuseEffect(() => {\n\t\tif (state === 'loading' && !loading) {\n\t\t\tsetValues(initialValues)\n\t\t\tsetState('initial')\n\t\t}\n\t}, [initialValues, loading, state])\n\n\tconst validate = useReferentiallyStableCallback(validateIn || (() => undefined))\n\tconst onSuccess = useReferentiallyStableCallback(onSuccessIn || (() => undefined))\n\tconst execute = useReferentiallyStableCallback(executeIn)\n\n\tconst submit = useReferentiallyStableCallback(async (event?: React.FormEvent) => {\n\t\tevent?.preventDefault()\n\t\tconst errors = validate?.({ values, state }) ?? []\n\t\tsetErrors(errors)\n\n\t\tif (errors.length > 0) {\n\t\t\tsetState('error')\n\t\t\treturn\n\t\t}\n\n\t\tsetState('submitting')\n\n\t\ttry {\n\t\t\tconst response = await execute({ values, state })\n\n\t\t\tif (!response.ok) {\n\t\t\t\tconst error = response.error\n\t\t\t\tsetState(response.state ?? 'error')\n\t\t\t\tsetErrors([{\n\t\t\t\t\tcode: error || 'UNKNOWN_ERROR',\n\t\t\t\t\tdeveloperMessage: response.developerMessage,\n\t\t\t\t\tfield: errorMapping && error && error in errorMapping ? errorMapping[error] : undefined,\n\t\t\t\t}])\n\t\t\t} else {\n\t\t\t\tsetState('success')\n\t\t\t\tsetValues(initialValues)\n\t\t\t\tonSuccess?.({ result: 'result' in response ? response.result : undefined as OkResult })\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tsetState('error')\n\t\t\tsetErrors([{\n\t\t\t\tcode: 'UNKNOWN_ERROR',\n\t\t\t\tdeveloperMessage: typeof e === 'string' ? e : (e && typeof e === 'object' && 'message' in e && typeof e.message === 'string') ? e.message : undefined,\n\t\t\t}])\n\t\t}\n\t})\n\n\n\tconst onChange = useReferentiallyStableCallback(onChangeIn || (() => undefined))\n\tuseEffect(() => {\n\t\tonChange?.({ values, state, submit })\n\t}, [onChange, state, submit, values])\n\n\tconst setValue = useCallback((field: string, value: string) => setValues(values => ({ ...values, [field]: value })), [])\n\n\treturn (\n\t\t<FormContext.Provider value={{\n\t\t\tvalues,\n\t\t\tsetValues,\n\t\t\tstate,\n\t\t\terrors,\n\t\t\tsetValue: setValue,\n\t\t} as unknown as T}>\n\t\t\t<SlotForm onSubmit={submit}>\n\t\t\t\t{children}\n\t\t\t</SlotForm>\n\t\t</FormContext.Provider>\n\t)\n}\n"],"names":["Slot","useState","useEffect","useReferentiallyStableCallback","errors","useCallback","values","jsx","FormContext"],"mappings":";;;;;;;AAMA,MAAM,WAAWA,UAAAA;AAkBV,MAAM,aAAa,CAAkE;AAAA,EAC3F;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AACX,MAAoC;AACnC,QAAM,CAAC,QAAQ,SAAS,IAAIC,eAAsB,aAAa;AAE/D,QAAM,CAAC,QAAQ,SAAS,IAAIA,MAAA,SAAsB,CAAE,CAAA;AACpD,QAAM,CAAC,OAAO,QAAQ,IAAIA,MAAqB,SAAA,UAAU,YAAY,SAAS;AAE9EC,QAAAA,UAAU,MAAM;AACf,QAAI,SAAS;AACZ,eAAS,SAAS;AAAA,IACnB;AAAA,EAAA,GACE,CAAC,OAAO,CAAC;AAEZA,QAAAA,UAAU,MAAM;AACX,QAAA,UAAU,aAAa,CAAC,SAAS;AACpC,gBAAU,aAAa;AACvB,eAAS,SAAS;AAAA,IACnB;AAAA,EACE,GAAA,CAAC,eAAe,SAAS,KAAK,CAAC;AAElC,QAAM,WAAWC,WAAAA,+BAA+B,eAAe,MAAM,OAAU;AAC/E,QAAM,YAAYA,WAAAA,+BAA+B,gBAAgB,MAAM,OAAU;AAC3E,QAAA,UAAUA,0CAA+B,SAAS;AAElD,QAAA,SAASA,0CAA+B,OAAO,UAA4B;AAChF,WAAO,eAAe;AACtB,UAAMC,UAAS,WAAW,EAAE,QAAQ,MAAM,CAAC,KAAK;AAChD,cAAUA,OAAM;AAEZA,QAAAA,QAAO,SAAS,GAAG;AACtB,eAAS,OAAO;AAChB;AAAA,IACD;AAEA,aAAS,YAAY;AAEjB,QAAA;AACH,YAAM,WAAW,MAAM,QAAQ,EAAE,QAAQ,MAAO,CAAA;AAE5C,UAAA,CAAC,SAAS,IAAI;AACjB,cAAM,QAAQ,SAAS;AACd,iBAAA,SAAS,SAAS,OAAO;AAClC,kBAAU,CAAC;AAAA,UACV,MAAM,SAAS;AAAA,UACf,kBAAkB,SAAS;AAAA,UAC3B,OAAO,gBAAgB,SAAS,SAAS,eAAe,aAAa,KAAK,IAAI;AAAA,QAC9E,CAAA,CAAC;AAAA,MAAA,OACI;AACN,iBAAS,SAAS;AAClB,kBAAU,aAAa;AACvB,oBAAY,EAAE,QAAQ,YAAY,WAAW,SAAS,SAAS,QAAuB;AAAA,MACvF;AAAA,aACQ,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,eAAS,OAAO;AAChB,gBAAU,CAAC;AAAA,QACV,MAAM;AAAA,QACN,kBAAkB,OAAO,MAAM,WAAW,IAAK,KAAK,OAAO,MAAM,YAAY,aAAa,KAAK,OAAO,EAAE,YAAY,WAAY,EAAE,UAAU;AAAA,MAC5I,CAAA,CAAC;AAAA,IACH;AAAA,EAAA,CACA;AAGD,QAAM,WAAWD,WAAAA,+BAA+B,eAAe,MAAM,OAAU;AAC/ED,QAAAA,UAAU,MAAM;AACf,eAAW,EAAE,QAAQ,OAAO,OAAQ,CAAA;AAAA,KAClC,CAAC,UAAU,OAAO,QAAQ,MAAM,CAAC;AAEpC,QAAM,WAAWG,MAAAA,YAAY,CAAC,OAAe,UAAkB,UAAU,CAAAC,aAAW,EAAE,GAAGA,SAAQ,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAA,CAAE;AAEvH,SACEC,+BAAAC,SAAAA,YAAY,UAAZ,EAAqB,OAAO;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEA,UAACD,2BAAA,IAAA,UAAA,EAAS,UAAU,QAClB,UACF,EACD,CAAA;AAEF;;"}
1
+ {"version":3,"file":"TenantForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/TenantForm.tsx"],"sourcesContent":["import { ComponentType, ReactElement, useCallback, useEffect, useState } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { FormContextValue } from '../../types/forms'\nimport { FormContext } from '../../contexts'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\n\nconst SlotForm = Slot as ComponentType<React.FormHTMLAttributes<HTMLFormElement>>\n\n\ntype ExecuteResult<T extends FormContextValue<any, any, any>, OkResult = undefined> =\n\t| ({ ok: true } & (OkResult extends undefined ? {} : { result: OkResult }))\n\t| { ok: false; error?: T['errors'][number]['code']; developerMessage?: string; state?: T['state'] }\n\nexport interface TenantFormProps<T extends FormContextValue<any, any, any>, OkResult = undefined> {\n\tchildren: ReactElement\n\tloading?: boolean\n\tinitialValues: T['values']\n\terrorMapping?: Partial<Record<T['errors'][number]['code'], keyof T['values']>>\n\tvalidate?: (args: { values: T['values']; state: T['state'] }) => T['errors'] | undefined\n\texecute: (args: { values: T['values']; state: T['state'] }) => Promise<ExecuteResult<T, OkResult>>\n\tonSuccess?: (args: { result: OkResult }) => void\n\tonChange?: (args: { values: T['values']; state: T['state']; submit: () => Promise<void> }) => void\n}\n\nexport const TenantForm = <T extends FormContextValue<any, any, any>, OkResult = undefined>({\n\tchildren,\n\tinitialValues,\n\tloading,\n\terrorMapping,\n\tvalidate: validateIn,\n\texecute: executeIn,\n\tonSuccess: onSuccessIn,\n\tonChange: onChangeIn,\n}: TenantFormProps<T, OkResult>) => {\n\tconst [values, setValues] = useState<T['values']>(initialValues)\n\n\tconst [errors, setErrors] = useState<T['errors']>([])\n\tconst [state, setState] = useState<T['state']>(loading ? 'loading' : 'initial')\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tsetState('loading')\n\t\t}\n\t}, [loading])\n\n\tuseEffect(() => {\n\t\tif (state === 'loading' && !loading) {\n\t\t\tsetValues(initialValues)\n\t\t\tsetState('initial')\n\t\t}\n\t}, [initialValues, loading, state])\n\n\tconst validate = useReferentiallyStableCallback(validateIn || (() => undefined))\n\tconst onSuccess = useReferentiallyStableCallback(onSuccessIn || (() => undefined))\n\tconst execute = useReferentiallyStableCallback(executeIn)\n\n\tconst submit = useReferentiallyStableCallback(async (event?: React.FormEvent) => {\n\t\tevent?.preventDefault()\n\t\tconst errors = validate?.({ values, state }) ?? []\n\t\tsetErrors(errors)\n\n\t\tif (errors.length > 0) {\n\t\t\tsetState('error')\n\t\t\treturn\n\t\t}\n\n\t\tsetState('submitting')\n\n\t\ttry {\n\t\t\tconst response = await execute({ values, state })\n\n\t\t\tif (!response.ok) {\n\t\t\t\tconst error = response.error\n\t\t\t\tsetState(response.state ?? 'error')\n\t\t\t\tsetErrors([{\n\t\t\t\t\tcode: error || 'UNKNOWN_ERROR',\n\t\t\t\t\tdeveloperMessage: response.developerMessage,\n\t\t\t\t\tfield: errorMapping && error && error in errorMapping ? errorMapping[error] : undefined,\n\t\t\t\t}])\n\t\t\t} else {\n\t\t\t\tsetState('success')\n\t\t\t\tsetValues(initialValues)\n\t\t\t\tonSuccess?.({ result: 'result' in response ? response.result : undefined as OkResult })\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tsetState('error')\n\t\t\tsetErrors([{\n\t\t\t\tcode: 'UNKNOWN_ERROR',\n\t\t\t\tdeveloperMessage: typeof e === 'string' ? e : (e && typeof e === 'object' && 'message' in e && typeof e.message === 'string') ? e.message : undefined,\n\t\t\t}])\n\t\t}\n\t})\n\n\n\tconst onChange = useReferentiallyStableCallback(onChangeIn || (() => undefined))\n\tuseEffect(() => {\n\t\tonChange?.({ values, state, submit })\n\t}, [onChange, state, submit, values])\n\n\tconst setValue = useCallback((field: string, value: string) => setValues(values => ({ ...values, [field]: value })), [])\n\n\treturn (\n\t\t<FormContext.Provider value={{\n\t\t\tvalues,\n\t\t\tsetValues,\n\t\t\tstate,\n\t\t\terrors,\n\t\t\tsetValue: setValue,\n\t\t} as unknown as T}>\n\t\t\t<SlotForm onSubmit={submit}>\n\t\t\t\t{children}\n\t\t\t</SlotForm>\n\t\t</FormContext.Provider>\n\t)\n}\n"],"names":["Slot","useState","useEffect","useReferentiallyStableCallback","errors","useCallback","values","jsx","FormContext"],"mappings":";;;;;;;AAMA,MAAM,WAAWA,UAAA;AAkBV,MAAM,aAAa,CAAkE;AAAA,EAC3F;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AACX,MAAoC;AACnC,QAAM,CAAC,QAAQ,SAAS,IAAIC,MAAAA,SAAsB,aAAa;AAE/D,QAAM,CAAC,QAAQ,SAAS,IAAIA,MAAAA,SAAsB,CAAA,CAAE;AACpD,QAAM,CAAC,OAAO,QAAQ,IAAIA,MAAqB,SAAA,UAAU,YAAY,SAAS;AAE9EC,QAAAA,UAAU,MAAM;AACf,QAAI,SAAS;AACZ,eAAS,SAAS;AAAA,IAAA;AAAA,EACnB,GACE,CAAC,OAAO,CAAC;AAEZA,QAAAA,UAAU,MAAM;AACX,QAAA,UAAU,aAAa,CAAC,SAAS;AACpC,gBAAU,aAAa;AACvB,eAAS,SAAS;AAAA,IAAA;AAAA,EAEjB,GAAA,CAAC,eAAe,SAAS,KAAK,CAAC;AAElC,QAAM,WAAWC,WAAA,+BAA+B,eAAe,MAAM,OAAU;AAC/E,QAAM,YAAYA,WAAA,+BAA+B,gBAAgB,MAAM,OAAU;AAC3E,QAAA,UAAUA,0CAA+B,SAAS;AAElD,QAAA,SAASA,0CAA+B,OAAO,UAA4B;AAChF,WAAO,eAAe;AACtB,UAAMC,UAAS,WAAW,EAAE,QAAQ,MAAM,CAAC,KAAK,CAAC;AACjD,cAAUA,OAAM;AAEZA,QAAAA,QAAO,SAAS,GAAG;AACtB,eAAS,OAAO;AAChB;AAAA,IAAA;AAGD,aAAS,YAAY;AAEjB,QAAA;AACH,YAAM,WAAW,MAAM,QAAQ,EAAE,QAAQ,OAAO;AAE5C,UAAA,CAAC,SAAS,IAAI;AACjB,cAAM,QAAQ,SAAS;AACd,iBAAA,SAAS,SAAS,OAAO;AAClC,kBAAU,CAAC;AAAA,UACV,MAAM,SAAS;AAAA,UACf,kBAAkB,SAAS;AAAA,UAC3B,OAAO,gBAAgB,SAAS,SAAS,eAAe,aAAa,KAAK,IAAI;AAAA,QAAA,CAC9E,CAAC;AAAA,MAAA,OACI;AACN,iBAAS,SAAS;AAClB,kBAAU,aAAa;AACvB,oBAAY,EAAE,QAAQ,YAAY,WAAW,SAAS,SAAS,QAAuB;AAAA,MAAA;AAAA,aAE/E,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,eAAS,OAAO;AAChB,gBAAU,CAAC;AAAA,QACV,MAAM;AAAA,QACN,kBAAkB,OAAO,MAAM,WAAW,IAAK,KAAK,OAAO,MAAM,YAAY,aAAa,KAAK,OAAO,EAAE,YAAY,WAAY,EAAE,UAAU;AAAA,MAAA,CAC5I,CAAC;AAAA,IAAA;AAAA,EACH,CACA;AAGD,QAAM,WAAWD,WAAA,+BAA+B,eAAe,MAAM,OAAU;AAC/ED,QAAAA,UAAU,MAAM;AACf,eAAW,EAAE,QAAQ,OAAO,OAAA,CAAQ;AAAA,KAClC,CAAC,UAAU,OAAO,QAAQ,MAAM,CAAC;AAEpC,QAAM,WAAWG,MAAAA,YAAY,CAAC,OAAe,UAAkB,UAAU,CAAAC,aAAW,EAAE,GAAGA,SAAQ,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAA,CAAE;AAEvH,SACEC,+BAAAC,SAAAA,YAAY,UAAZ,EAAqB,OAAO;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEA,UAACD,2BAAA,IAAA,UAAA,EAAS,UAAU,QAClB,SACF,CAAA,GACD;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TenantForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/TenantForm.tsx"],"sourcesContent":["import { ComponentType, ReactElement, useCallback, useEffect, useState } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { FormContextValue } from '../../types/forms'\nimport { FormContext } from '../../contexts'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\n\nconst SlotForm = Slot as ComponentType<React.FormHTMLAttributes<HTMLFormElement>>\n\n\ntype ExecuteResult<T extends FormContextValue<any, any, any>, OkResult = undefined> =\n\t| ({ ok: true } & (OkResult extends undefined ? {} : { result: OkResult }))\n\t| { ok: false; error?: T['errors'][number]['code']; developerMessage?: string; state?: T['state'] }\n\nexport interface TenantFormProps<T extends FormContextValue<any, any, any>, OkResult = undefined> {\n\tchildren: ReactElement\n\tloading?: boolean\n\tinitialValues: T['values']\n\terrorMapping?: Partial<Record<T['errors'][number]['code'], keyof T['values']>>\n\tvalidate?: (args: { values: T['values']; state: T['state'] }) => T['errors'] | undefined\n\texecute: (args: { values: T['values']; state: T['state'] }) => Promise<ExecuteResult<T, OkResult>>\n\tonSuccess?: (args: { result: OkResult }) => void\n\tonChange?: (args: { values: T['values']; state: T['state']; submit: () => Promise<void> }) => void\n}\n\nexport const TenantForm = <T extends FormContextValue<any, any, any>, OkResult = undefined>({\n\tchildren,\n\tinitialValues,\n\tloading,\n\terrorMapping,\n\tvalidate: validateIn,\n\texecute: executeIn,\n\tonSuccess: onSuccessIn,\n\tonChange: onChangeIn,\n}: TenantFormProps<T, OkResult>) => {\n\tconst [values, setValues] = useState<T['values']>(initialValues)\n\n\tconst [errors, setErrors] = useState<T['errors']>([])\n\tconst [state, setState] = useState<T['state']>(loading ? 'loading' : 'initial')\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tsetState('loading')\n\t\t}\n\t}, [loading])\n\n\tuseEffect(() => {\n\t\tif (state === 'loading' && !loading) {\n\t\t\tsetValues(initialValues)\n\t\t\tsetState('initial')\n\t\t}\n\t}, [initialValues, loading, state])\n\n\tconst validate = useReferentiallyStableCallback(validateIn || (() => undefined))\n\tconst onSuccess = useReferentiallyStableCallback(onSuccessIn || (() => undefined))\n\tconst execute = useReferentiallyStableCallback(executeIn)\n\n\tconst submit = useReferentiallyStableCallback(async (event?: React.FormEvent) => {\n\t\tevent?.preventDefault()\n\t\tconst errors = validate?.({ values, state }) ?? []\n\t\tsetErrors(errors)\n\n\t\tif (errors.length > 0) {\n\t\t\tsetState('error')\n\t\t\treturn\n\t\t}\n\n\t\tsetState('submitting')\n\n\t\ttry {\n\t\t\tconst response = await execute({ values, state })\n\n\t\t\tif (!response.ok) {\n\t\t\t\tconst error = response.error\n\t\t\t\tsetState(response.state ?? 'error')\n\t\t\t\tsetErrors([{\n\t\t\t\t\tcode: error || 'UNKNOWN_ERROR',\n\t\t\t\t\tdeveloperMessage: response.developerMessage,\n\t\t\t\t\tfield: errorMapping && error && error in errorMapping ? errorMapping[error] : undefined,\n\t\t\t\t}])\n\t\t\t} else {\n\t\t\t\tsetState('success')\n\t\t\t\tsetValues(initialValues)\n\t\t\t\tonSuccess?.({ result: 'result' in response ? response.result : undefined as OkResult })\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tsetState('error')\n\t\t\tsetErrors([{\n\t\t\t\tcode: 'UNKNOWN_ERROR',\n\t\t\t\tdeveloperMessage: typeof e === 'string' ? e : (e && typeof e === 'object' && 'message' in e && typeof e.message === 'string') ? e.message : undefined,\n\t\t\t}])\n\t\t}\n\t})\n\n\n\tconst onChange = useReferentiallyStableCallback(onChangeIn || (() => undefined))\n\tuseEffect(() => {\n\t\tonChange?.({ values, state, submit })\n\t}, [onChange, state, submit, values])\n\n\tconst setValue = useCallback((field: string, value: string) => setValues(values => ({ ...values, [field]: value })), [])\n\n\treturn (\n\t\t<FormContext.Provider value={{\n\t\t\tvalues,\n\t\t\tsetValues,\n\t\t\tstate,\n\t\t\terrors,\n\t\t\tsetValue: setValue,\n\t\t} as unknown as T}>\n\t\t\t<SlotForm onSubmit={submit}>\n\t\t\t\t{children}\n\t\t\t</SlotForm>\n\t\t</FormContext.Provider>\n\t)\n}\n"],"names":["errors","values"],"mappings":";;;;;AAMA,MAAM,WAAW;AAkBV,MAAM,aAAa,CAAkE;AAAA,EAC3F;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AACX,MAAoC;AACnC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAsB,aAAa;AAE/D,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAsB,CAAE,CAAA;AACpD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAqB,UAAU,YAAY,SAAS;AAE9E,YAAU,MAAM;AACf,QAAI,SAAS;AACZ,eAAS,SAAS;AAAA,IACnB;AAAA,EAAA,GACE,CAAC,OAAO,CAAC;AAEZ,YAAU,MAAM;AACX,QAAA,UAAU,aAAa,CAAC,SAAS;AACpC,gBAAU,aAAa;AACvB,eAAS,SAAS;AAAA,IACnB;AAAA,EACE,GAAA,CAAC,eAAe,SAAS,KAAK,CAAC;AAElC,QAAM,WAAW,+BAA+B,eAAe,MAAM,OAAU;AAC/E,QAAM,YAAY,+BAA+B,gBAAgB,MAAM,OAAU;AAC3E,QAAA,UAAU,+BAA+B,SAAS;AAElD,QAAA,SAAS,+BAA+B,OAAO,UAA4B;AAChF,WAAO,eAAe;AACtB,UAAMA,UAAS,WAAW,EAAE,QAAQ,MAAM,CAAC,KAAK;AAChD,cAAUA,OAAM;AAEZA,QAAAA,QAAO,SAAS,GAAG;AACtB,eAAS,OAAO;AAChB;AAAA,IACD;AAEA,aAAS,YAAY;AAEjB,QAAA;AACH,YAAM,WAAW,MAAM,QAAQ,EAAE,QAAQ,MAAO,CAAA;AAE5C,UAAA,CAAC,SAAS,IAAI;AACjB,cAAM,QAAQ,SAAS;AACd,iBAAA,SAAS,SAAS,OAAO;AAClC,kBAAU,CAAC;AAAA,UACV,MAAM,SAAS;AAAA,UACf,kBAAkB,SAAS;AAAA,UAC3B,OAAO,gBAAgB,SAAS,SAAS,eAAe,aAAa,KAAK,IAAI;AAAA,QAC9E,CAAA,CAAC;AAAA,MAAA,OACI;AACN,iBAAS,SAAS;AAClB,kBAAU,aAAa;AACvB,oBAAY,EAAE,QAAQ,YAAY,WAAW,SAAS,SAAS,QAAuB;AAAA,MACvF;AAAA,aACQ,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,eAAS,OAAO;AAChB,gBAAU,CAAC;AAAA,QACV,MAAM;AAAA,QACN,kBAAkB,OAAO,MAAM,WAAW,IAAK,KAAK,OAAO,MAAM,YAAY,aAAa,KAAK,OAAO,EAAE,YAAY,WAAY,EAAE,UAAU;AAAA,MAC5I,CAAA,CAAC;AAAA,IACH;AAAA,EAAA,CACA;AAGD,QAAM,WAAW,+BAA+B,eAAe,MAAM,OAAU;AAC/E,YAAU,MAAM;AACf,eAAW,EAAE,QAAQ,OAAO,OAAQ,CAAA;AAAA,KAClC,CAAC,UAAU,OAAO,QAAQ,MAAM,CAAC;AAEpC,QAAM,WAAW,YAAY,CAAC,OAAe,UAAkB,UAAU,CAAAC,aAAW,EAAE,GAAGA,SAAQ,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAA,CAAE;AAEvH,SACE,oBAAA,YAAY,UAAZ,EAAqB,OAAO;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEA,UAAC,oBAAA,UAAA,EAAS,UAAU,QAClB,UACF,EACD,CAAA;AAEF;"}
1
+ {"version":3,"file":"TenantForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/TenantForm.tsx"],"sourcesContent":["import { ComponentType, ReactElement, useCallback, useEffect, useState } from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { FormContextValue } from '../../types/forms'\nimport { FormContext } from '../../contexts'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\n\nconst SlotForm = Slot as ComponentType<React.FormHTMLAttributes<HTMLFormElement>>\n\n\ntype ExecuteResult<T extends FormContextValue<any, any, any>, OkResult = undefined> =\n\t| ({ ok: true } & (OkResult extends undefined ? {} : { result: OkResult }))\n\t| { ok: false; error?: T['errors'][number]['code']; developerMessage?: string; state?: T['state'] }\n\nexport interface TenantFormProps<T extends FormContextValue<any, any, any>, OkResult = undefined> {\n\tchildren: ReactElement\n\tloading?: boolean\n\tinitialValues: T['values']\n\terrorMapping?: Partial<Record<T['errors'][number]['code'], keyof T['values']>>\n\tvalidate?: (args: { values: T['values']; state: T['state'] }) => T['errors'] | undefined\n\texecute: (args: { values: T['values']; state: T['state'] }) => Promise<ExecuteResult<T, OkResult>>\n\tonSuccess?: (args: { result: OkResult }) => void\n\tonChange?: (args: { values: T['values']; state: T['state']; submit: () => Promise<void> }) => void\n}\n\nexport const TenantForm = <T extends FormContextValue<any, any, any>, OkResult = undefined>({\n\tchildren,\n\tinitialValues,\n\tloading,\n\terrorMapping,\n\tvalidate: validateIn,\n\texecute: executeIn,\n\tonSuccess: onSuccessIn,\n\tonChange: onChangeIn,\n}: TenantFormProps<T, OkResult>) => {\n\tconst [values, setValues] = useState<T['values']>(initialValues)\n\n\tconst [errors, setErrors] = useState<T['errors']>([])\n\tconst [state, setState] = useState<T['state']>(loading ? 'loading' : 'initial')\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tsetState('loading')\n\t\t}\n\t}, [loading])\n\n\tuseEffect(() => {\n\t\tif (state === 'loading' && !loading) {\n\t\t\tsetValues(initialValues)\n\t\t\tsetState('initial')\n\t\t}\n\t}, [initialValues, loading, state])\n\n\tconst validate = useReferentiallyStableCallback(validateIn || (() => undefined))\n\tconst onSuccess = useReferentiallyStableCallback(onSuccessIn || (() => undefined))\n\tconst execute = useReferentiallyStableCallback(executeIn)\n\n\tconst submit = useReferentiallyStableCallback(async (event?: React.FormEvent) => {\n\t\tevent?.preventDefault()\n\t\tconst errors = validate?.({ values, state }) ?? []\n\t\tsetErrors(errors)\n\n\t\tif (errors.length > 0) {\n\t\t\tsetState('error')\n\t\t\treturn\n\t\t}\n\n\t\tsetState('submitting')\n\n\t\ttry {\n\t\t\tconst response = await execute({ values, state })\n\n\t\t\tif (!response.ok) {\n\t\t\t\tconst error = response.error\n\t\t\t\tsetState(response.state ?? 'error')\n\t\t\t\tsetErrors([{\n\t\t\t\t\tcode: error || 'UNKNOWN_ERROR',\n\t\t\t\t\tdeveloperMessage: response.developerMessage,\n\t\t\t\t\tfield: errorMapping && error && error in errorMapping ? errorMapping[error] : undefined,\n\t\t\t\t}])\n\t\t\t} else {\n\t\t\t\tsetState('success')\n\t\t\t\tsetValues(initialValues)\n\t\t\t\tonSuccess?.({ result: 'result' in response ? response.result : undefined as OkResult })\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\tsetState('error')\n\t\t\tsetErrors([{\n\t\t\t\tcode: 'UNKNOWN_ERROR',\n\t\t\t\tdeveloperMessage: typeof e === 'string' ? e : (e && typeof e === 'object' && 'message' in e && typeof e.message === 'string') ? e.message : undefined,\n\t\t\t}])\n\t\t}\n\t})\n\n\n\tconst onChange = useReferentiallyStableCallback(onChangeIn || (() => undefined))\n\tuseEffect(() => {\n\t\tonChange?.({ values, state, submit })\n\t}, [onChange, state, submit, values])\n\n\tconst setValue = useCallback((field: string, value: string) => setValues(values => ({ ...values, [field]: value })), [])\n\n\treturn (\n\t\t<FormContext.Provider value={{\n\t\t\tvalues,\n\t\t\tsetValues,\n\t\t\tstate,\n\t\t\terrors,\n\t\t\tsetValue: setValue,\n\t\t} as unknown as T}>\n\t\t\t<SlotForm onSubmit={submit}>\n\t\t\t\t{children}\n\t\t\t</SlotForm>\n\t\t</FormContext.Provider>\n\t)\n}\n"],"names":["errors","values"],"mappings":";;;;;AAMA,MAAM,WAAW;AAkBV,MAAM,aAAa,CAAkE;AAAA,EAC3F;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AACX,MAAoC;AACnC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAsB,aAAa;AAE/D,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAsB,CAAA,CAAE;AACpD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAqB,UAAU,YAAY,SAAS;AAE9E,YAAU,MAAM;AACf,QAAI,SAAS;AACZ,eAAS,SAAS;AAAA,IAAA;AAAA,EACnB,GACE,CAAC,OAAO,CAAC;AAEZ,YAAU,MAAM;AACX,QAAA,UAAU,aAAa,CAAC,SAAS;AACpC,gBAAU,aAAa;AACvB,eAAS,SAAS;AAAA,IAAA;AAAA,EAEjB,GAAA,CAAC,eAAe,SAAS,KAAK,CAAC;AAElC,QAAM,WAAW,+BAA+B,eAAe,MAAM,OAAU;AAC/E,QAAM,YAAY,+BAA+B,gBAAgB,MAAM,OAAU;AAC3E,QAAA,UAAU,+BAA+B,SAAS;AAElD,QAAA,SAAS,+BAA+B,OAAO,UAA4B;AAChF,WAAO,eAAe;AACtB,UAAMA,UAAS,WAAW,EAAE,QAAQ,MAAM,CAAC,KAAK,CAAC;AACjD,cAAUA,OAAM;AAEZA,QAAAA,QAAO,SAAS,GAAG;AACtB,eAAS,OAAO;AAChB;AAAA,IAAA;AAGD,aAAS,YAAY;AAEjB,QAAA;AACH,YAAM,WAAW,MAAM,QAAQ,EAAE,QAAQ,OAAO;AAE5C,UAAA,CAAC,SAAS,IAAI;AACjB,cAAM,QAAQ,SAAS;AACd,iBAAA,SAAS,SAAS,OAAO;AAClC,kBAAU,CAAC;AAAA,UACV,MAAM,SAAS;AAAA,UACf,kBAAkB,SAAS;AAAA,UAC3B,OAAO,gBAAgB,SAAS,SAAS,eAAe,aAAa,KAAK,IAAI;AAAA,QAAA,CAC9E,CAAC;AAAA,MAAA,OACI;AACN,iBAAS,SAAS;AAClB,kBAAU,aAAa;AACvB,oBAAY,EAAE,QAAQ,YAAY,WAAW,SAAS,SAAS,QAAuB;AAAA,MAAA;AAAA,aAE/E,GAAG;AACX,cAAQ,MAAM,CAAC;AACf,eAAS,OAAO;AAChB,gBAAU,CAAC;AAAA,QACV,MAAM;AAAA,QACN,kBAAkB,OAAO,MAAM,WAAW,IAAK,KAAK,OAAO,MAAM,YAAY,aAAa,KAAK,OAAO,EAAE,YAAY,WAAY,EAAE,UAAU;AAAA,MAAA,CAC5I,CAAC;AAAA,IAAA;AAAA,EACH,CACA;AAGD,QAAM,WAAW,+BAA+B,eAAe,MAAM,OAAU;AAC/E,YAAU,MAAM;AACf,eAAW,EAAE,QAAQ,OAAO,OAAA,CAAQ;AAAA,KAClC,CAAC,UAAU,OAAO,QAAQ,MAAM,CAAC;AAEpC,QAAM,WAAW,YAAY,CAAC,OAAe,UAAkB,UAAU,CAAAC,aAAW,EAAE,GAAGA,SAAQ,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAA,CAAE;AAEvH,SACE,oBAAA,YAAY,UAAZ,EAAqB,OAAO;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAEA,UAAC,oBAAA,UAAA,EAAS,UAAU,QAClB,SACF,CAAA,GACD;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateProjectMemberForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/UpdateProjectMemberForm.tsx"],"sourcesContent":["import { ReactElement, useEffect, useState } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { UpdateProjectMemberErrorCode, MembershipInput } from '@contember/graphql-client-tenant'\nimport { useProjectMembershipsQuery, useTenantQueryLoader, useUpdateProjectMemberMutation } from '../../hooks'\n\nexport type UpdateProjectMemberFormValues = {\n\tmemberships: readonly MembershipInput[]\n}\n\nexport type UpdateProjectMemberFormErrorCode =\n\t| UpdateProjectMemberErrorCode\n\t| 'UNKNOWN_ERROR'\n\t| 'FIELD_REQUIRED'\n\nexport type UpdateProjectMemberFormState = FormState\n\nexport type UpdateProjectMemberFormError = FormError<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport type UpdateProjectMemberFormContextValue = FormContextValue<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport interface UpdateProjectMemberFormProps {\n\tchildren: ReactElement\n\tidentityId: string\n\tprojectSlug: string\n\tonSuccess?: (args: { }) => void\n}\n\nexport const useUpdateProjectMemberForm = useForm as () => UpdateProjectMemberFormContextValue\n\nexport const UpdateProjectMemberForm = ({ children, onSuccess, identityId, projectSlug }: UpdateProjectMemberFormProps) => {\n\tconst updateProjectMember = useUpdateProjectMemberMutation()\n\tconst [state] = useTenantQueryLoader(useProjectMembershipsQuery(), { projectSlug, identityId })\n\tconst [memberships, setMemberships] = useState<readonly MembershipInput[]>()\n\n\tuseEffect(() => {\n\t\tsetMemberships(state.state === 'success' ? state.data : undefined)\n\t}, [state])\n\n\treturn (\n\t\t<TenantForm<UpdateProjectMemberFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\tloading={memberships === undefined}\n\t\t\tinitialValues={memberships ? { memberships } : { memberships: [] }}\n\t\t\tonChange={({ values, submit }) => {\n\t\t\t\tsetMemberships(values?.memberships)\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: UpdateProjectMemberFormError[] = []\n\t\t\t\tif (values.memberships.length === 0) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'memberships' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await updateProjectMember({\n\t\t\t\t\tidentityId,\n\t\t\t\t\tprojectSlug,\n\t\t\t\t\tmemberships: values.memberships,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\nconst errorToField: Record<UpdateProjectMemberErrorCode, keyof UpdateProjectMemberFormValues | undefined> = {\n\tINVALID_MEMBERSHIP: 'memberships',\n\tPROJECT_NOT_FOUND: undefined,\n\tROLE_NOT_FOUND: 'memberships',\n\tVARIABLE_EMPTY: 'memberships',\n\tVARIABLE_NOT_FOUND: 'memberships',\n\tNOT_MEMBER: undefined,\n}\n"],"names":["useForm","useUpdateProjectMemberMutation","useTenantQueryLoader","useProjectMembershipsQuery","useState","useEffect","jsx","TenantForm"],"mappings":";;;;;;;;;AA6BO,MAAM,6BAA6BA,SAAA;AAEnC,MAAM,0BAA0B,CAAC,EAAE,UAAU,WAAW,YAAY,kBAAgD;AAC1H,QAAM,sBAAsBC,+BAAAA;AACtB,QAAA,CAAC,KAAK,IAAIC,0CAAqBC,2BAAAA,2BAA8B,GAAA,EAAE,aAAa,WAAA,CAAY;AAC9F,QAAM,CAAC,aAAa,cAAc,IAAIC,MAAqC,SAAA;AAE3EC,QAAAA,UAAU,MAAM;AACf,mBAAe,MAAM,UAAU,YAAY,MAAM,OAAO,MAAS;AAAA,EAAA,GAC/D,CAAC,KAAK,CAAC;AAGT,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,SAAS,gBAAgB;AAAA,MACzB,eAAe,cAAc,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAG;AAAA,MACjE,UAAU,CAAC,EAAE,QAAQ,aAAa;AACjC,uBAAe,QAAQ,WAAW;AAAA,MACnC;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAyC,CAAA;AAC3C,YAAA,OAAO,YAAY,WAAW,GAAG;AACpC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,eAAe;AAAA,QAC7D;AACO,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,oBAAoB;AAAA,UAChC;AAAA,UACA;AAAA,UACA,aAAa,OAAO;AAAA,QAAA,CACpB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,MAEb;AAAA,IAAA;AAAA,EAAA;AAGJ;AAEA,MAAM,eAAsG;AAAA,EAC3G,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,YAAY;AACb;;;"}
1
+ {"version":3,"file":"UpdateProjectMemberForm.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/forms/UpdateProjectMemberForm.tsx"],"sourcesContent":["import { ReactElement, useEffect, useState } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { UpdateProjectMemberErrorCode, MembershipInput } from '@contember/graphql-client-tenant'\nimport { useProjectMembershipsQuery, useTenantQueryLoader, useUpdateProjectMemberMutation } from '../../hooks'\n\nexport type UpdateProjectMemberFormValues = {\n\tmemberships: readonly MembershipInput[]\n}\n\nexport type UpdateProjectMemberFormErrorCode =\n\t| UpdateProjectMemberErrorCode\n\t| 'UNKNOWN_ERROR'\n\t| 'FIELD_REQUIRED'\n\nexport type UpdateProjectMemberFormState = FormState\n\nexport type UpdateProjectMemberFormError = FormError<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport type UpdateProjectMemberFormContextValue = FormContextValue<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport interface UpdateProjectMemberFormProps {\n\tchildren: ReactElement\n\tidentityId: string\n\tprojectSlug: string\n\tonSuccess?: (args: { }) => void\n}\n\nexport const useUpdateProjectMemberForm = useForm as () => UpdateProjectMemberFormContextValue\n\nexport const UpdateProjectMemberForm = ({ children, onSuccess, identityId, projectSlug }: UpdateProjectMemberFormProps) => {\n\tconst updateProjectMember = useUpdateProjectMemberMutation()\n\tconst [state] = useTenantQueryLoader(useProjectMembershipsQuery(), { projectSlug, identityId })\n\tconst [memberships, setMemberships] = useState<readonly MembershipInput[]>()\n\n\tuseEffect(() => {\n\t\tsetMemberships(state.state === 'success' ? state.data : undefined)\n\t}, [state])\n\n\treturn (\n\t\t<TenantForm<UpdateProjectMemberFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\tloading={memberships === undefined}\n\t\t\tinitialValues={memberships ? { memberships } : { memberships: [] }}\n\t\t\tonChange={({ values, submit }) => {\n\t\t\t\tsetMemberships(values?.memberships)\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: UpdateProjectMemberFormError[] = []\n\t\t\t\tif (values.memberships.length === 0) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'memberships' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await updateProjectMember({\n\t\t\t\t\tidentityId,\n\t\t\t\t\tprojectSlug,\n\t\t\t\t\tmemberships: values.memberships,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\nconst errorToField: Record<UpdateProjectMemberErrorCode, keyof UpdateProjectMemberFormValues | undefined> = {\n\tINVALID_MEMBERSHIP: 'memberships',\n\tPROJECT_NOT_FOUND: undefined,\n\tROLE_NOT_FOUND: 'memberships',\n\tVARIABLE_EMPTY: 'memberships',\n\tVARIABLE_NOT_FOUND: 'memberships',\n\tNOT_MEMBER: undefined,\n}\n"],"names":["useForm","useUpdateProjectMemberMutation","useTenantQueryLoader","useProjectMembershipsQuery","useState","useEffect","jsx","TenantForm"],"mappings":";;;;;;;;;AA6BO,MAAM,6BAA6BA,SAAAA;AAEnC,MAAM,0BAA0B,CAAC,EAAE,UAAU,WAAW,YAAY,kBAAgD;AAC1H,QAAM,sBAAsBC,+BAAAA,+BAA+B;AACrD,QAAA,CAAC,KAAK,IAAIC,qBAAA,qBAAqBC,yDAA8B,EAAE,aAAa,YAAY;AAC9F,QAAM,CAAC,aAAa,cAAc,IAAIC,eAAqC;AAE3EC,QAAAA,UAAU,MAAM;AACf,mBAAe,MAAM,UAAU,YAAY,MAAM,OAAO,MAAS;AAAA,EAAA,GAC/D,CAAC,KAAK,CAAC;AAGT,SAAAC,2BAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACA;AAAA,MACA,SAAS,gBAAgB;AAAA,MACzB,eAAe,cAAc,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAG;AAAA,MACjE,UAAU,CAAC,EAAE,QAAQ,aAAa;AACjC,uBAAe,QAAQ,WAAW;AAAA,MACnC;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAyC,CAAC;AAC5C,YAAA,OAAO,YAAY,WAAW,GAAG;AACpC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,eAAe;AAAA,QAAA;AAEtD,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,oBAAoB;AAAA,UAChC;AAAA,UACA;AAAA,UACA,aAAa,OAAO;AAAA,QAAA,CACpB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,MAEb;AAAA,IAAA;AAAA,EACF;AAEF;AAEA,MAAM,eAAsG;AAAA,EAC3G,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,YAAY;AACb;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateProjectMemberForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/UpdateProjectMemberForm.tsx"],"sourcesContent":["import { ReactElement, useEffect, useState } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { UpdateProjectMemberErrorCode, MembershipInput } from '@contember/graphql-client-tenant'\nimport { useProjectMembershipsQuery, useTenantQueryLoader, useUpdateProjectMemberMutation } from '../../hooks'\n\nexport type UpdateProjectMemberFormValues = {\n\tmemberships: readonly MembershipInput[]\n}\n\nexport type UpdateProjectMemberFormErrorCode =\n\t| UpdateProjectMemberErrorCode\n\t| 'UNKNOWN_ERROR'\n\t| 'FIELD_REQUIRED'\n\nexport type UpdateProjectMemberFormState = FormState\n\nexport type UpdateProjectMemberFormError = FormError<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport type UpdateProjectMemberFormContextValue = FormContextValue<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport interface UpdateProjectMemberFormProps {\n\tchildren: ReactElement\n\tidentityId: string\n\tprojectSlug: string\n\tonSuccess?: (args: { }) => void\n}\n\nexport const useUpdateProjectMemberForm = useForm as () => UpdateProjectMemberFormContextValue\n\nexport const UpdateProjectMemberForm = ({ children, onSuccess, identityId, projectSlug }: UpdateProjectMemberFormProps) => {\n\tconst updateProjectMember = useUpdateProjectMemberMutation()\n\tconst [state] = useTenantQueryLoader(useProjectMembershipsQuery(), { projectSlug, identityId })\n\tconst [memberships, setMemberships] = useState<readonly MembershipInput[]>()\n\n\tuseEffect(() => {\n\t\tsetMemberships(state.state === 'success' ? state.data : undefined)\n\t}, [state])\n\n\treturn (\n\t\t<TenantForm<UpdateProjectMemberFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\tloading={memberships === undefined}\n\t\t\tinitialValues={memberships ? { memberships } : { memberships: [] }}\n\t\t\tonChange={({ values, submit }) => {\n\t\t\t\tsetMemberships(values?.memberships)\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: UpdateProjectMemberFormError[] = []\n\t\t\t\tif (values.memberships.length === 0) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'memberships' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await updateProjectMember({\n\t\t\t\t\tidentityId,\n\t\t\t\t\tprojectSlug,\n\t\t\t\t\tmemberships: values.memberships,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\nconst errorToField: Record<UpdateProjectMemberErrorCode, keyof UpdateProjectMemberFormValues | undefined> = {\n\tINVALID_MEMBERSHIP: 'memberships',\n\tPROJECT_NOT_FOUND: undefined,\n\tROLE_NOT_FOUND: 'memberships',\n\tVARIABLE_EMPTY: 'memberships',\n\tVARIABLE_NOT_FOUND: 'memberships',\n\tNOT_MEMBER: undefined,\n}\n"],"names":[],"mappings":";;;;;;;AA6BO,MAAM,6BAA6B;AAEnC,MAAM,0BAA0B,CAAC,EAAE,UAAU,WAAW,YAAY,kBAAgD;AAC1H,QAAM,sBAAsB;AACtB,QAAA,CAAC,KAAK,IAAI,qBAAqB,2BAA8B,GAAA,EAAE,aAAa,WAAA,CAAY;AAC9F,QAAM,CAAC,aAAa,cAAc,IAAI,SAAqC;AAE3E,YAAU,MAAM;AACf,mBAAe,MAAM,UAAU,YAAY,MAAM,OAAO,MAAS;AAAA,EAAA,GAC/D,CAAC,KAAK,CAAC;AAGT,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,SAAS,gBAAgB;AAAA,MACzB,eAAe,cAAc,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAG;AAAA,MACjE,UAAU,CAAC,EAAE,QAAQ,aAAa;AACjC,uBAAe,QAAQ,WAAW;AAAA,MACnC;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAyC,CAAA;AAC3C,YAAA,OAAO,YAAY,WAAW,GAAG;AACpC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,eAAe;AAAA,QAC7D;AACO,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,oBAAoB;AAAA,UAChC;AAAA,UACA;AAAA,UACA,aAAa,OAAO;AAAA,QAAA,CACpB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,MAEb;AAAA,IAAA;AAAA,EAAA;AAGJ;AAEA,MAAM,eAAsG;AAAA,EAC3G,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,YAAY;AACb;"}
1
+ {"version":3,"file":"UpdateProjectMemberForm.js","sources":["../../../../../../packages/react-client-tenant/src/components/forms/UpdateProjectMemberForm.tsx"],"sourcesContent":["import { ReactElement, useEffect, useState } from 'react'\nimport { TenantForm } from './TenantForm'\nimport { FormContextValue, FormError, FormState } from '../../types'\nimport { useForm } from '../../contexts'\nimport { UpdateProjectMemberErrorCode, MembershipInput } from '@contember/graphql-client-tenant'\nimport { useProjectMembershipsQuery, useTenantQueryLoader, useUpdateProjectMemberMutation } from '../../hooks'\n\nexport type UpdateProjectMemberFormValues = {\n\tmemberships: readonly MembershipInput[]\n}\n\nexport type UpdateProjectMemberFormErrorCode =\n\t| UpdateProjectMemberErrorCode\n\t| 'UNKNOWN_ERROR'\n\t| 'FIELD_REQUIRED'\n\nexport type UpdateProjectMemberFormState = FormState\n\nexport type UpdateProjectMemberFormError = FormError<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport type UpdateProjectMemberFormContextValue = FormContextValue<UpdateProjectMemberFormValues, UpdateProjectMemberFormErrorCode>\n\nexport interface UpdateProjectMemberFormProps {\n\tchildren: ReactElement\n\tidentityId: string\n\tprojectSlug: string\n\tonSuccess?: (args: { }) => void\n}\n\nexport const useUpdateProjectMemberForm = useForm as () => UpdateProjectMemberFormContextValue\n\nexport const UpdateProjectMemberForm = ({ children, onSuccess, identityId, projectSlug }: UpdateProjectMemberFormProps) => {\n\tconst updateProjectMember = useUpdateProjectMemberMutation()\n\tconst [state] = useTenantQueryLoader(useProjectMembershipsQuery(), { projectSlug, identityId })\n\tconst [memberships, setMemberships] = useState<readonly MembershipInput[]>()\n\n\tuseEffect(() => {\n\t\tsetMemberships(state.state === 'success' ? state.data : undefined)\n\t}, [state])\n\n\treturn (\n\t\t<TenantForm<UpdateProjectMemberFormContextValue>\n\t\t\tonSuccess={onSuccess}\n\t\t\tloading={memberships === undefined}\n\t\t\tinitialValues={memberships ? { memberships } : { memberships: [] }}\n\t\t\tonChange={({ values, submit }) => {\n\t\t\t\tsetMemberships(values?.memberships)\n\t\t\t}}\n\t\t\tvalidate={({ values }) => {\n\t\t\t\tconst errors: UpdateProjectMemberFormError[] = []\n\t\t\t\tif (values.memberships.length === 0) {\n\t\t\t\t\terrors.push({ code: 'FIELD_REQUIRED', field: 'memberships' })\n\t\t\t\t}\n\t\t\t\treturn errors\n\t\t\t}}\n\t\t\texecute={async ({ values }) => {\n\t\t\t\treturn await updateProjectMember({\n\t\t\t\t\tidentityId,\n\t\t\t\t\tprojectSlug,\n\t\t\t\t\tmemberships: values.memberships,\n\t\t\t\t})\n\t\t\t}}\n\t\t\terrorMapping={errorToField}\n\t\t>\n\t\t\t{children}\n\t\t</TenantForm>\n\t)\n}\n\nconst errorToField: Record<UpdateProjectMemberErrorCode, keyof UpdateProjectMemberFormValues | undefined> = {\n\tINVALID_MEMBERSHIP: 'memberships',\n\tPROJECT_NOT_FOUND: undefined,\n\tROLE_NOT_FOUND: 'memberships',\n\tVARIABLE_EMPTY: 'memberships',\n\tVARIABLE_NOT_FOUND: 'memberships',\n\tNOT_MEMBER: undefined,\n}\n"],"names":[],"mappings":";;;;;;;AA6BO,MAAM,6BAA6B;AAEnC,MAAM,0BAA0B,CAAC,EAAE,UAAU,WAAW,YAAY,kBAAgD;AAC1H,QAAM,sBAAsB,+BAA+B;AACrD,QAAA,CAAC,KAAK,IAAI,qBAAqB,8BAA8B,EAAE,aAAa,YAAY;AAC9F,QAAM,CAAC,aAAa,cAAc,IAAI,SAAqC;AAE3E,YAAU,MAAM;AACf,mBAAe,MAAM,UAAU,YAAY,MAAM,OAAO,MAAS;AAAA,EAAA,GAC/D,CAAC,KAAK,CAAC;AAGT,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,SAAS,gBAAgB;AAAA,MACzB,eAAe,cAAc,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAG;AAAA,MACjE,UAAU,CAAC,EAAE,QAAQ,aAAa;AACjC,uBAAe,QAAQ,WAAW;AAAA,MACnC;AAAA,MACA,UAAU,CAAC,EAAE,aAAa;AACzB,cAAM,SAAyC,CAAC;AAC5C,YAAA,OAAO,YAAY,WAAW,GAAG;AACpC,iBAAO,KAAK,EAAE,MAAM,kBAAkB,OAAO,eAAe;AAAA,QAAA;AAEtD,eAAA;AAAA,MACR;AAAA,MACA,SAAS,OAAO,EAAE,aAAa;AAC9B,eAAO,MAAM,oBAAoB;AAAA,UAChC;AAAA,UACA;AAAA,UACA,aAAa,OAAO;AAAA,QAAA,CACpB;AAAA,MACF;AAAA,MACA,cAAc;AAAA,MAEb;AAAA,IAAA;AAAA,EACF;AAEF;AAEA,MAAM,eAAsG;AAAA,EAC3G,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,YAAY;AACb;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDP.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["useMemo","useIDPAutoInitProvider","useState","useHandleIDPResponse","useInitIDPRedirect","useRef","useEffect","jsx","IDPStateContextProvider","IDPMethodsContextProvider"],"mappings":";;;;;;;;AAcO,MAAM,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,cAAwB;AAC/E,QAAA,mBAAmBA,MAAAA,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,CAAE,CAAA;AAEL,QAAM,WAAWC,eAAAA;AACjB,QAAM,CAAC,OAAO,QAAQ,IAAIC,eAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM;IAChB;AACA,QAAI,UAAU;AACN,aAAA,EAAE,MAAM;IAChB;AACO,WAAA,EAAE,MAAM;EAAU,CACzB;AACDC,uBAAAA,qBAAqB,EAAE,kBAAkB,UAAU,QAAS,CAAA;AAE5D,QAAM,eAAeC,mBAAAA,mBAAmB,EAAE,SAAU,CAAA;AAE9C,QAAA,gBAAgBC,aAAO,IAAI;AACjCC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IACD;AACI,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IACD;AACA,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,SAAA,CAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3BA,QAAAA,UAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IACxB;AACI,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAC5B;AAAA,EACE,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACEC,2BAAAA,IAAAC,SAAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAAD,2BAAA,IAACE,SAA0B,0BAAA,UAA1B,EAAmC,OAAO,EAAE,aAAa,GACxD,UACF,EACD,CAAA;AAGF;;"}
1
+ {"version":3,"file":"IDP.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":["useMemo","useIDPAutoInitProvider","useState","useHandleIDPResponse","useInitIDPRedirect","useRef","useEffect","jsx","IDPStateContextProvider","IDPMethodsContextProvider"],"mappings":";;;;;;;;AAcO,MAAM,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,cAAwB;AAC/E,QAAA,mBAAmBA,MAAAA,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,EAAE;AAEL,QAAM,WAAWC,eAAAA,uBAAuB;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAIC,eAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM,sBAAsB;AAAA,IAAA;AAEtC,QAAI,UAAU;AACN,aAAA,EAAE,MAAM,kBAAkB;AAAA,IAAA;AAE3B,WAAA,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AACDC,uBAAAA,qBAAqB,EAAE,kBAAkB,UAAU,QAAA,CAAS;AAE5D,QAAM,eAAeC,mBAAAA,mBAAmB,EAAE,UAAU;AAE9C,QAAA,gBAAgBC,aAAO,IAAI;AACjCC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IAAA;AAEG,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IAAA;AAED,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,UAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3BA,QAAAA,UAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IAAA;AAEpB,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAAA;AAAA,EAE1B,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACEC,2BAAAA,IAAAC,SAAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAAD,2BAAAA,IAACE,SAAAA,0BAA0B,UAA1B,EAAmC,OAAO,EAAE,aAAa,GACxD,SACF,CAAA,GACD;AAGF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDP.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":[],"mappings":";;;;;;AAcO,MAAM,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,cAAwB;AAC/E,QAAA,mBAAmB,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,CAAE,CAAA;AAEL,QAAM,WAAW;AACjB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM;IAChB;AACA,QAAI,UAAU;AACN,aAAA,EAAE,MAAM;IAChB;AACO,WAAA,EAAE,MAAM;EAAU,CACzB;AACD,uBAAqB,EAAE,kBAAkB,UAAU,QAAS,CAAA;AAE5D,QAAM,eAAe,mBAAmB,EAAE,SAAU,CAAA;AAE9C,QAAA,gBAAgB,OAAO,IAAI;AACjC,YAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IACD;AACI,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IACD;AACA,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,SAAA,CAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3B,YAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IACxB;AACI,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAC5B;AAAA,EACE,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACE,oBAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAA,oBAAC,0BAA0B,UAA1B,EAAmC,OAAO,EAAE,aAAa,GACxD,UACF,EACD,CAAA;AAGF;"}
1
+ {"version":3,"file":"IDP.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDP.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { IDPMethodsContextProvider, IDPStateContextProvider } from '../../contexts'\nimport { IDPInitError, IDPResponseError, IDPStateValue } from '../../types/idp'\nimport { useHandleIDPResponse } from '../../internal/hooks/useHandleIDPResponse'\nimport { useIDPAutoInitProvider } from '../../internal/hooks/useIDPAutoInit'\nimport { useInitIDPRedirect } from '../../internal/hooks/useInitIDPRedirect'\n\nexport interface IDPProps {\n\tchildren: ReactNode\n\tonLogin?: () => void\n\tonInitError?: (error: IDPInitError) => void\n\tonResponseError?: (error: IDPResponseError) => void\n}\n\nexport const IDP = ({ children, onResponseError, onInitError, onLogin }: IDPProps) => {\n\tconst hasOauthResponse = useMemo(() => {\n\t\tconst params = new URLSearchParams(window.location.search)\n\t\treturn params.has('state') && (params.has('code') || params.has('id_token'))\n\t}, [])\n\n\tconst autoInit = useIDPAutoInitProvider()\n\tconst [state, setState] = useState<IDPStateValue>(() => {\n\t\tif (hasOauthResponse) {\n\t\t\treturn { type: 'processing_response' }\n\t\t}\n\t\tif (autoInit) {\n\t\t\treturn { type: 'processing_init' }\n\t\t}\n\t\treturn { type: 'nothing' }\n\t})\n\tuseHandleIDPResponse({ hasOauthResponse, setState, onLogin })\n\n\tconst initRedirect = useInitIDPRedirect({ setState })\n\n\tconst isFirstRender = useRef(true)\n\tuseEffect(() => {\n\t\tif (!autoInit) {\n\t\t\treturn\n\t\t}\n\t\tif (!isFirstRender.current) {\n\t\t\treturn\n\t\t}\n\t\tisFirstRender.current = false\n\t\tinitRedirect({ provider: autoInit })\n\t}, [autoInit, initRedirect])\n\n\tuseEffect(() => {\n\t\tif (state.type === 'init_failed' && onInitError) {\n\t\t\tonInitError(state.error)\n\t\t}\n\t\tif (state.type === 'response_failed' && onResponseError) {\n\t\t\tonResponseError(state.error)\n\t\t}\n\t}, [onInitError, onResponseError, state])\n\n\n\treturn (\n\t\t<IDPStateContextProvider.Provider value={state}>\n\t\t\t<IDPMethodsContextProvider.Provider value={{ initRedirect }}>\n\t\t\t\t{children}\n\t\t\t</IDPMethodsContextProvider.Provider>\n\t\t</IDPStateContextProvider.Provider>\n\t)\n\n}\n"],"names":[],"mappings":";;;;;;AAcO,MAAM,MAAM,CAAC,EAAE,UAAU,iBAAiB,aAAa,cAAwB;AAC/E,QAAA,mBAAmB,QAAQ,MAAM;AACtC,UAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAClD,WAAA,OAAO,IAAI,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU;AAAA,EAC3E,GAAG,EAAE;AAEL,QAAM,WAAW,uBAAuB;AACxC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,MAAM;AACvD,QAAI,kBAAkB;AACd,aAAA,EAAE,MAAM,sBAAsB;AAAA,IAAA;AAEtC,QAAI,UAAU;AACN,aAAA,EAAE,MAAM,kBAAkB;AAAA,IAAA;AAE3B,WAAA,EAAE,MAAM,UAAU;AAAA,EAAA,CACzB;AACD,uBAAqB,EAAE,kBAAkB,UAAU,QAAA,CAAS;AAE5D,QAAM,eAAe,mBAAmB,EAAE,UAAU;AAE9C,QAAA,gBAAgB,OAAO,IAAI;AACjC,YAAU,MAAM;AACf,QAAI,CAAC,UAAU;AACd;AAAA,IAAA;AAEG,QAAA,CAAC,cAAc,SAAS;AAC3B;AAAA,IAAA;AAED,kBAAc,UAAU;AACX,iBAAA,EAAE,UAAU,UAAU;AAAA,EAAA,GACjC,CAAC,UAAU,YAAY,CAAC;AAE3B,YAAU,MAAM;AACX,QAAA,MAAM,SAAS,iBAAiB,aAAa;AAChD,kBAAY,MAAM,KAAK;AAAA,IAAA;AAEpB,QAAA,MAAM,SAAS,qBAAqB,iBAAiB;AACxD,sBAAgB,MAAM,KAAK;AAAA,IAAA;AAAA,EAE1B,GAAA,CAAC,aAAa,iBAAiB,KAAK,CAAC;AAGxC,SACE,oBAAA,wBAAwB,UAAxB,EAAiC,OAAO,OACxC,UAAA,oBAAC,0BAA0B,UAA1B,EAAmC,OAAO,EAAE,aAAa,GACxD,SACF,CAAA,GACD;AAGF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDPInitTrigger.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPInitTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { ComponentType, ReactElement } from 'react'\nimport { useIDPMethods } from '../../contexts'\n\nconst SlotButton = Slot as ComponentType<React.ButtonHTMLAttributes<HTMLButtonElement>>\n\nexport interface IDPInitTriggerProps {\n\tchildren: ReactElement\n\tidentityProvider: string\n}\n\nexport const IDPInitTrigger = ({ identityProvider, ...props }: IDPInitTriggerProps) => {\n\tconst initIdp = useIDPMethods().initRedirect\n\treturn (\n\t\t<SlotButton onClick={() => initIdp({ provider: identityProvider })} {...props} />\n\t)\n}\n"],"names":["Slot","useIDPMethods","jsx"],"mappings":";;;;;AAIA,MAAM,aAAaA,UAAAA;AAOZ,MAAM,iBAAiB,CAAC,EAAE,kBAAkB,GAAG,YAAiC;AAChF,QAAA,UAAUC,uBAAgB,EAAA;AAE/B,SAAAC,+BAAC,YAAW,EAAA,SAAS,MAAM,QAAQ,EAAE,UAAU,iBAAkB,CAAA,GAAK,GAAG,MAAO,CAAA;AAElF;;"}
1
+ {"version":3,"file":"IDPInitTrigger.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPInitTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { ComponentType, ReactElement } from 'react'\nimport { useIDPMethods } from '../../contexts'\n\nconst SlotButton = Slot as ComponentType<React.ButtonHTMLAttributes<HTMLButtonElement>>\n\nexport interface IDPInitTriggerProps {\n\tchildren: ReactElement\n\tidentityProvider: string\n}\n\nexport const IDPInitTrigger = ({ identityProvider, ...props }: IDPInitTriggerProps) => {\n\tconst initIdp = useIDPMethods().initRedirect\n\treturn (\n\t\t<SlotButton onClick={() => initIdp({ provider: identityProvider })} {...props} />\n\t)\n}\n"],"names":["Slot","useIDPMethods","jsx"],"mappings":";;;;;AAIA,MAAM,aAAaA,UAAA;AAOZ,MAAM,iBAAiB,CAAC,EAAE,kBAAkB,GAAG,YAAiC;AAChF,QAAA,UAAUC,yBAAgB;AAE/B,SAAAC,+BAAC,YAAW,EAAA,SAAS,MAAM,QAAQ,EAAE,UAAU,iBAAiB,CAAC,GAAK,GAAG,MAAO,CAAA;AAElF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDPInitTrigger.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPInitTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { ComponentType, ReactElement } from 'react'\nimport { useIDPMethods } from '../../contexts'\n\nconst SlotButton = Slot as ComponentType<React.ButtonHTMLAttributes<HTMLButtonElement>>\n\nexport interface IDPInitTriggerProps {\n\tchildren: ReactElement\n\tidentityProvider: string\n}\n\nexport const IDPInitTrigger = ({ identityProvider, ...props }: IDPInitTriggerProps) => {\n\tconst initIdp = useIDPMethods().initRedirect\n\treturn (\n\t\t<SlotButton onClick={() => initIdp({ provider: identityProvider })} {...props} />\n\t)\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,aAAa;AAOZ,MAAM,iBAAiB,CAAC,EAAE,kBAAkB,GAAG,YAAiC;AAChF,QAAA,UAAU,cAAgB,EAAA;AAE/B,SAAA,oBAAC,YAAW,EAAA,SAAS,MAAM,QAAQ,EAAE,UAAU,iBAAkB,CAAA,GAAK,GAAG,MAAO,CAAA;AAElF;"}
1
+ {"version":3,"file":"IDPInitTrigger.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPInitTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { ComponentType, ReactElement } from 'react'\nimport { useIDPMethods } from '../../contexts'\n\nconst SlotButton = Slot as ComponentType<React.ButtonHTMLAttributes<HTMLButtonElement>>\n\nexport interface IDPInitTriggerProps {\n\tchildren: ReactElement\n\tidentityProvider: string\n}\n\nexport const IDPInitTrigger = ({ identityProvider, ...props }: IDPInitTriggerProps) => {\n\tconst initIdp = useIDPMethods().initRedirect\n\treturn (\n\t\t<SlotButton onClick={() => initIdp({ provider: identityProvider })} {...props} />\n\t)\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,aAAa;AAOZ,MAAM,iBAAiB,CAAC,EAAE,kBAAkB,GAAG,YAAiC;AAChF,QAAA,UAAU,gBAAgB;AAE/B,SAAA,oBAAC,YAAW,EAAA,SAAS,MAAM,QAAQ,EAAE,UAAU,iBAAiB,CAAC,GAAK,GAAG,MAAO,CAAA;AAElF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDPState.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPState.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { IDPStateType } from '../../types'\nimport { useIDPState } from '../../contexts'\n\nexport interface IDPStateProps {\n\tstate: IDPStateType | IDPStateType[]\n\tchildren: ReactNode\n}\n\nexport const IDPState = ({ state, children }: IDPStateProps) => {\n\tconst currentState = useIDPState().type\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? <>{children}</> : null\n}\n"],"names":["useIDPState","jsx","Fragment"],"mappings":";;;;AASO,MAAM,WAAW,CAAC,EAAE,OAAO,eAA8B;AACzD,QAAA,eAAeA,qBAAc,EAAA;AAEnC,SAAO,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAQC,2BAAAA,IAAAC,WAAAA,UAAA,EAAA,SAAA,CAAS,IAAM;AAC7G;;"}
1
+ {"version":3,"file":"IDPState.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPState.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { IDPStateType } from '../../types'\nimport { useIDPState } from '../../contexts'\n\nexport interface IDPStateProps {\n\tstate: IDPStateType | IDPStateType[]\n\tchildren: ReactNode\n}\n\nexport const IDPState = ({ state, children }: IDPStateProps) => {\n\tconst currentState = useIDPState().type\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? <>{children}</> : null\n}\n"],"names":["useIDPState","jsx","Fragment"],"mappings":";;;;AASO,MAAM,WAAW,CAAC,EAAE,OAAO,eAA8B;AACzD,QAAA,eAAeA,uBAAc;AAEnC,SAAO,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAQC,2BAAAA,IAAAC,WAAAA,UAAA,EAAA,SAAA,CAAS,IAAM;AAC7G;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDPState.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPState.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { IDPStateType } from '../../types'\nimport { useIDPState } from '../../contexts'\n\nexport interface IDPStateProps {\n\tstate: IDPStateType | IDPStateType[]\n\tchildren: ReactNode\n}\n\nexport const IDPState = ({ state, children }: IDPStateProps) => {\n\tconst currentState = useIDPState().type\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? <>{children}</> : null\n}\n"],"names":[],"mappings":";;AASO,MAAM,WAAW,CAAC,EAAE,OAAO,eAA8B;AACzD,QAAA,eAAe,YAAc,EAAA;AAEnC,SAAO,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAQ,oBAAA,UAAA,EAAA,SAAA,CAAS,IAAM;AAC7G;"}
1
+ {"version":3,"file":"IDPState.js","sources":["../../../../../../packages/react-client-tenant/src/components/idp/IDPState.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { IDPStateType } from '../../types'\nimport { useIDPState } from '../../contexts'\n\nexport interface IDPStateProps {\n\tstate: IDPStateType | IDPStateType[]\n\tchildren: ReactNode\n}\n\nexport const IDPState = ({ state, children }: IDPStateProps) => {\n\tconst currentState = useIDPState().type\n\n\treturn state === currentState || (Array.isArray(state) && state.includes(currentState)) ? <>{children}</> : null\n}\n"],"names":[],"mappings":";;AASO,MAAM,WAAW,CAAC,EAAE,OAAO,eAA8B;AACzD,QAAA,eAAe,cAAc;AAEnC,SAAO,UAAU,gBAAiB,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,YAAY,IAAQ,oBAAA,UAAA,EAAA,SAAA,CAAS,IAAM;AAC7G;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DisableOtpTrigger.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/triggers/DisableOtpTrigger.tsx"],"sourcesContent":["import { ReactElement, useCallback } from 'react'\nimport { useDisableOtpMutation } from '../../hooks'\nimport { TenantActionTrigger } from './TenantActionTrigger'\nimport { useIdentityMethods } from '../../contexts'\n\nexport interface DisableOtpTriggerProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\tonError?: (e: unknown) => void\n}\n\nexport const DisableOtpTrigger = ({ onSuccess, ...props }: DisableOtpTriggerProps) => {\n\tconst disableOtp = useDisableOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\n\treturn (\n\t\t<TenantActionTrigger\n\t\t\texecute={useCallback(() => disableOtp({}), [disableOtp])}\n\t\t\tonSuccess={() => {\n\t\t\t\trefreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}} {...props}\n\t\t/>\n\t)\n}\n"],"names":["useDisableOtpMutation","useIdentityMethods","jsx","TenantActionTrigger","useCallback"],"mappings":";;;;;;;AAWO,MAAM,oBAAoB,CAAC,EAAE,WAAW,GAAG,YAAoC;AACrF,QAAM,aAAaA,sBAAAA;AACb,QAAA,EAAE,oBAAoBC,SAAAA;AAG3B,SAAAC,2BAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACA,SAASC,kBAAY,MAAM,WAAW,CAAA,CAAE,GAAG,CAAC,UAAU,CAAC;AAAA,MACvD,WAAW,MAAM;AACA;AACJ;MACb;AAAA,MAAI,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;;"}
1
+ {"version":3,"file":"DisableOtpTrigger.cjs","sources":["../../../../../../packages/react-client-tenant/src/components/triggers/DisableOtpTrigger.tsx"],"sourcesContent":["import { ReactElement, useCallback } from 'react'\nimport { useDisableOtpMutation } from '../../hooks'\nimport { TenantActionTrigger } from './TenantActionTrigger'\nimport { useIdentityMethods } from '../../contexts'\n\nexport interface DisableOtpTriggerProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\tonError?: (e: unknown) => void\n}\n\nexport const DisableOtpTrigger = ({ onSuccess, ...props }: DisableOtpTriggerProps) => {\n\tconst disableOtp = useDisableOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\n\treturn (\n\t\t<TenantActionTrigger\n\t\t\texecute={useCallback(() => disableOtp({}), [disableOtp])}\n\t\t\tonSuccess={() => {\n\t\t\t\trefreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}} {...props}\n\t\t/>\n\t)\n}\n"],"names":["useDisableOtpMutation","useIdentityMethods","jsx","TenantActionTrigger","useCallback"],"mappings":";;;;;;;AAWO,MAAM,oBAAoB,CAAC,EAAE,WAAW,GAAG,YAAoC;AACrF,QAAM,aAAaA,sBAAAA,sBAAsB;AACnC,QAAA,EAAE,gBAAgB,IAAIC,4BAAmB;AAG9C,SAAAC,2BAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACA,SAASC,kBAAY,MAAM,WAAW,CAAA,CAAE,GAAG,CAAC,UAAU,CAAC;AAAA,MACvD,WAAW,MAAM;AACA,wBAAA;AACJ,oBAAA;AAAA,MACb;AAAA,MAAI,GAAG;AAAA,IAAA;AAAA,EACR;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DisableOtpTrigger.js","sources":["../../../../../../packages/react-client-tenant/src/components/triggers/DisableOtpTrigger.tsx"],"sourcesContent":["import { ReactElement, useCallback } from 'react'\nimport { useDisableOtpMutation } from '../../hooks'\nimport { TenantActionTrigger } from './TenantActionTrigger'\nimport { useIdentityMethods } from '../../contexts'\n\nexport interface DisableOtpTriggerProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\tonError?: (e: unknown) => void\n}\n\nexport const DisableOtpTrigger = ({ onSuccess, ...props }: DisableOtpTriggerProps) => {\n\tconst disableOtp = useDisableOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\n\treturn (\n\t\t<TenantActionTrigger\n\t\t\texecute={useCallback(() => disableOtp({}), [disableOtp])}\n\t\t\tonSuccess={() => {\n\t\t\t\trefreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}} {...props}\n\t\t/>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAWO,MAAM,oBAAoB,CAAC,EAAE,WAAW,GAAG,YAAoC;AACrF,QAAM,aAAa;AACb,QAAA,EAAE,oBAAoB;AAG3B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,SAAS,YAAY,MAAM,WAAW,CAAA,CAAE,GAAG,CAAC,UAAU,CAAC;AAAA,MACvD,WAAW,MAAM;AACA;AACJ;MACb;AAAA,MAAI,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"DisableOtpTrigger.js","sources":["../../../../../../packages/react-client-tenant/src/components/triggers/DisableOtpTrigger.tsx"],"sourcesContent":["import { ReactElement, useCallback } from 'react'\nimport { useDisableOtpMutation } from '../../hooks'\nimport { TenantActionTrigger } from './TenantActionTrigger'\nimport { useIdentityMethods } from '../../contexts'\n\nexport interface DisableOtpTriggerProps {\n\tchildren: ReactElement\n\tonSuccess?: () => void\n\tonError?: (e: unknown) => void\n}\n\nexport const DisableOtpTrigger = ({ onSuccess, ...props }: DisableOtpTriggerProps) => {\n\tconst disableOtp = useDisableOtpMutation()\n\tconst { refreshIdentity } = useIdentityMethods()\n\n\treturn (\n\t\t<TenantActionTrigger\n\t\t\texecute={useCallback(() => disableOtp({}), [disableOtp])}\n\t\t\tonSuccess={() => {\n\t\t\t\trefreshIdentity()\n\t\t\t\tonSuccess?.()\n\t\t\t}} {...props}\n\t\t/>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAWO,MAAM,oBAAoB,CAAC,EAAE,WAAW,GAAG,YAAoC;AACrF,QAAM,aAAa,sBAAsB;AACnC,QAAA,EAAE,gBAAgB,IAAI,mBAAmB;AAG9C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,SAAS,YAAY,MAAM,WAAW,CAAA,CAAE,GAAG,CAAC,UAAU,CAAC;AAAA,MACvD,WAAW,MAAM;AACA,wBAAA;AACJ,oBAAA;AAAA,MACb;AAAA,MAAI,GAAG;AAAA,IAAA;AAAA,EACR;AAEF;"}