@dragonmastery/dragoncore-vue 0.0.29 → 0.0.30
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.
- package/dist/{ChangePasswordPage-C7rqJfii.js → ChangePasswordPage-D1LGJ02W.js} +1 -1
- package/dist/{ChangePasswordPage-nr0B06HB.js → ChangePasswordPage-Dy8lFUcI.js} +1 -1
- package/dist/{ChangePasswordPage-nr0B06HB.js.map → ChangePasswordPage-Dy8lFUcI.js.map} +1 -1
- package/dist/{ConsentFlowStep-DstxorHZ.js → ConsentFlowStep-DsVhXa91.js} +2 -2
- package/dist/{ConsentFlowStep-DstxorHZ.js.map → ConsentFlowStep-DsVhXa91.js.map} +1 -1
- package/dist/{ConsentRequired-ELUidmNv.js → ConsentRequired-B3eLxJgx.js} +3 -3
- package/dist/{ConsentRequired-ELUidmNv.js.map → ConsentRequired-B3eLxJgx.js.map} +1 -1
- package/dist/CreateTeamForm-5V_ks5Ie.js +12 -0
- package/dist/{CreateTeamForm-DNkueBzR.js → CreateTeamForm-B7MsOsiV.js} +4 -4
- package/dist/{CreateTeamForm-DNkueBzR.js.map → CreateTeamForm-B7MsOsiV.js.map} +1 -1
- package/dist/{CreateTeamMemberForm-CSF-tD6B.js → CreateTeamMemberForm-CayF2tIJ.js} +5 -5
- package/dist/{CreateTeamMemberForm-ITp4XFn9.js → CreateTeamMemberForm-DeUyXnVa.js} +4 -4
- package/dist/{CreateTeamMemberForm-ITp4XFn9.js.map → CreateTeamMemberForm-DeUyXnVa.js.map} +1 -1
- package/dist/{CreditBalanceDashboard-CLQ8NZnY.js → CreditBalanceDashboard-CoIEyZWh.js} +2 -2
- package/dist/{CreditBalanceDashboard-CLQ8NZnY.js.map → CreditBalanceDashboard-CoIEyZWh.js.map} +1 -1
- package/dist/{CreditBalanceDashboard-jdvZa-ZT.js → CreditBalanceDashboard-D_TsFlTp.js} +5 -5
- package/dist/{CreditManagement-Dus4O1BY.js → CreditManagement-CCyU_yja.js} +2 -2
- package/dist/{CreditManagement-Dus4O1BY.js.map → CreditManagement-CCyU_yja.js.map} +1 -1
- package/dist/{CreditManagement-DvGikLLe.js → CreditManagement-CdkqQM7F.js} +5 -5
- package/dist/{CreditTransactionHistory-BZZGQxTV.js → CreditTransactionHistory-UPg9uDNy.js} +3 -3
- package/dist/{CreditTransactionHistory-BZZGQxTV.js.map → CreditTransactionHistory-UPg9uDNy.js.map} +1 -1
- package/dist/{CustomerCreateSupportTicketForm-C3CgjqXg.js → CustomerCreateSupportTicketForm-CiTTUqtW.js} +5 -5
- package/dist/{CustomerCreateSupportTicketForm-CeG8IKA1.js → CustomerCreateSupportTicketForm-DFH1JtlA.js} +3 -3
- package/dist/{CustomerCreateSupportTicketForm-CeG8IKA1.js.map → CustomerCreateSupportTicketForm-DFH1JtlA.js.map} +1 -1
- package/dist/{CustomerSupportTicketDetailPage-CUkf9swo.js → CustomerSupportTicketDetailPage-DAwiE2t6.js} +5 -5
- package/dist/{CustomerSupportTicketDetailPage-CUkf9swo.js.map → CustomerSupportTicketDetailPage-DAwiE2t6.js.map} +1 -1
- package/dist/CustomerSupportTicketList-CKZl8jxx.js +64 -0
- package/dist/{CustomerSupportTicketParent-D19kei4H.js → CustomerSupportTicketParent-D3Gj4Hel.js} +2 -2
- package/dist/{CustomerSupportTicketParent-BaKfkSlU.js → CustomerSupportTicketParent-rl4Ym8oa.js} +3 -3
- package/dist/{CustomerSupportTicketParent-BaKfkSlU.js.map → CustomerSupportTicketParent-rl4Ym8oa.js.map} +1 -1
- package/dist/{CustomerSupportTicketSuccess-Cc75m_p-.js → CustomerSupportTicketSuccess-BEhFZgtn.js} +2 -2
- package/dist/{CustomerSupportTicketSuccess-Cc75m_p-.js.map → CustomerSupportTicketSuccess-BEhFZgtn.js.map} +1 -1
- package/dist/{CustomerSupportTicketSuccess-ca10puM-.js → CustomerSupportTicketSuccess-BJO2xsQR.js} +4 -4
- package/dist/{DefaultReferralTeamPage-fO3tmwOb.js → DefaultReferralTeamPage-D3UIrIZK.js} +2 -2
- package/dist/{DefaultReferralTeamPage-fO3tmwOb.js.map → DefaultReferralTeamPage-D3UIrIZK.js.map} +1 -1
- package/dist/EditTeamForm-Bf4rSgQg.js +12 -0
- package/dist/{EditTeamForm-DdvKHlNj.js → EditTeamForm-C1_-p3lZ.js} +4 -4
- package/dist/{EditTeamForm-DdvKHlNj.js.map → EditTeamForm-C1_-p3lZ.js.map} +1 -1
- package/dist/{EditTeamMemberForm-CIqEjFF8.js → EditTeamMemberForm-Bh6zVNyJ.js} +3 -3
- package/dist/{EditTeamMemberForm-Fyf8Zxfh.js → EditTeamMemberForm-D9cofrUM.js} +3 -3
- package/dist/{EditTeamMemberForm-Fyf8Zxfh.js.map → EditTeamMemberForm-D9cofrUM.js.map} +1 -1
- package/dist/{EditUserPage-D3AWaHT2.js → EditUserPage-CQgp-08o.js} +1 -1
- package/dist/{EditUserPage-BBzGmOrx.js → EditUserPage-CwsO8naT.js} +2 -2
- package/dist/{EditUserPage-BBzGmOrx.js.map → EditUserPage-CwsO8naT.js.map} +1 -1
- package/dist/{ExternalLinkIcon-FidcmNOa.js → ExternalLinkIcon-BKVV5Gjm.js} +1 -1
- package/dist/{ExternalLinkIcon-FidcmNOa.js.map → ExternalLinkIcon-BKVV5Gjm.js.map} +1 -1
- package/dist/{FieldsetSection-CH1jAwcc.js → FieldsetSection-Br_sygWW.js} +1 -1
- package/dist/{FieldsetSection-CH1jAwcc.js.map → FieldsetSection-Br_sygWW.js.map} +1 -1
- package/dist/{RecordVersionViewer-NLn1gVys.js → RecordVersionViewer-DKIdX_BX.js} +1 -1
- package/dist/{RecordVersionViewer-NLn1gVys.js.map → RecordVersionViewer-DKIdX_BX.js.map} +1 -1
- package/dist/{SavedFiltersPage-B9aQYpwf.js → SavedFiltersPage-Cz01ZeHx.js} +45 -45
- package/dist/{SavedFiltersPage-B9aQYpwf.js.map → SavedFiltersPage-Cz01ZeHx.js.map} +1 -1
- package/dist/{Signup-EykiX-bQ.js → Signup-CkhRQErA.js} +4 -12
- package/dist/Signup-CkhRQErA.js.map +1 -0
- package/dist/{Signup-Ceh7XSea.js → Signup-cOvXCtJj.js} +2 -2
- package/dist/{SignupConsentFlow-CRtiMpcS.js → SignupConsentFlow-CKMFsnf5.js} +10 -7
- package/dist/SignupConsentFlow-CKMFsnf5.js.map +1 -0
- package/dist/{SignupRequirementsPage-CohJluxQ.js → SignupRequirementsPage-33z--rhH.js} +4 -4
- package/dist/{SignupRequirementsPage-CohJluxQ.js.map → SignupRequirementsPage-33z--rhH.js.map} +1 -1
- package/dist/{StaffCreateSupportTicketForm-ANtaO4pe.js → StaffCreateSupportTicketForm-BtR-Aowv.js} +4 -4
- package/dist/{StaffCreateSupportTicketForm-ANtaO4pe.js.map → StaffCreateSupportTicketForm-BtR-Aowv.js.map} +1 -1
- package/dist/{StaffCreateSupportTicketForm-CtU12OGq.js → StaffCreateSupportTicketForm-D7ctCaXe.js} +5 -5
- package/dist/{StaffSupportTicketDetailPage-B63QXyum.js → StaffSupportTicketDetailPage-LqnNfU34.js} +7 -7
- package/dist/{StaffSupportTicketDetailPage-B63QXyum.js.map → StaffSupportTicketDetailPage-LqnNfU34.js.map} +1 -1
- package/dist/StaffSupportTicketList-GyzlONKe.js +64 -0
- package/dist/{StaffSupportTicketParent-yoC-_Lku.js → StaffSupportTicketParent-DPvdLUii.js} +3 -3
- package/dist/{StaffSupportTicketParent-yoC-_Lku.js.map → StaffSupportTicketParent-DPvdLUii.js.map} +1 -1
- package/dist/{StaffSupportTicketParent-ByUwsYGx.js → StaffSupportTicketParent-Dyybqx74.js} +2 -2
- package/dist/{StaffSupportTicketSuccess-CB4Oa_2J.js → StaffSupportTicketSuccess-B3N-RMoT.js} +2 -2
- package/dist/{StaffSupportTicketSuccess-CB4Oa_2J.js.map → StaffSupportTicketSuccess-B3N-RMoT.js.map} +1 -1
- package/dist/{StaffSupportTicketSuccess-BMh5amWI.js → StaffSupportTicketSuccess-DvonYilY.js} +4 -4
- package/dist/{SupportStaffPage-CkFLlle4.js → SupportStaffPage-geoITTqt.js} +3 -3
- package/dist/{SupportStaffPage-CkFLlle4.js.map → SupportStaffPage-geoITTqt.js.map} +1 -1
- package/dist/{SupportTicketDevLifecycleBadge-BYKZjEv6.js → SupportTicketDevLifecycleBadge-D8-Cv1Np.js} +1 -1
- package/dist/{SupportTicketDevLifecycleBadge-BYKZjEv6.js.map → SupportTicketDevLifecycleBadge-D8-Cv1Np.js.map} +1 -1
- package/dist/TeamAttachmentsTab-ChP4DaUP.js +64 -0
- package/dist/{TeamHistoryTab-p3hDxCc3.js → TeamHistoryTab-CxzA4u_G.js} +3 -3
- package/dist/{TeamHistoryTab-p3hDxCc3.js.map → TeamHistoryTab-CxzA4u_G.js.map} +1 -1
- package/dist/TeamHistoryTab-wRpRizDE.js +6 -0
- package/dist/{TeamList-B4gWPzce.js → TeamList-_SsqJicG.js} +3 -3
- package/dist/{TeamList-B4gWPzce.js.map → TeamList-_SsqJicG.js.map} +1 -1
- package/dist/TeamList-cp8Pa2xg.js +8 -0
- package/dist/TeamMemberList-B16SuLwM.js +7 -0
- package/dist/{TeamMemberList-D0-dM5kI.js → TeamMemberList-BYUANoBg.js} +3 -3
- package/dist/{TeamMemberList-D0-dM5kI.js.map → TeamMemberList-BYUANoBg.js.map} +1 -1
- package/dist/{TeamMemberParent-C9OEziOK.js → TeamMemberParent-BJl8nBmP.js} +4 -4
- package/dist/{TeamMemberParent-CJGWXjuM.js → TeamMemberParent-DmYcHU3n.js} +3 -3
- package/dist/{TeamMemberParent-CJGWXjuM.js.map → TeamMemberParent-DmYcHU3n.js.map} +1 -1
- package/dist/{TeamNotesTab-BnkgZd-5.js → TeamNotesTab-BQN9niw-.js} +1 -1
- package/dist/{TeamNotesTab-DPw9YEwK.js → TeamNotesTab-Cego-QT3.js} +2 -2
- package/dist/{TeamNotesTab-DPw9YEwK.js.map → TeamNotesTab-Cego-QT3.js.map} +1 -1
- package/dist/{TeamParent-KQmJgJ9x.js → TeamParent-BUnqP-dr.js} +3 -3
- package/dist/{TeamParent-KQmJgJ9x.js.map → TeamParent-BUnqP-dr.js.map} +1 -1
- package/dist/TeamParent-BseZ6Zoi.js +11 -0
- package/dist/{TimelineNoteInput-DXZhcUkH.js → TimelineNoteInput-BBZv3X4p.js} +2 -2
- package/dist/{TimelineNoteInput-DXZhcUkH.js.map → TimelineNoteInput-BBZv3X4p.js.map} +1 -1
- package/dist/{TimelineSystemEvent-Ch1sZiyO.js → TimelineSystemEvent-D5fkhkZT.js} +1 -1
- package/dist/{TimelineSystemEvent-Ch1sZiyO.js.map → TimelineSystemEvent-D5fkhkZT.js.map} +1 -1
- package/dist/UserListPage-BABli3QG.js +5 -0
- package/dist/{UserListPage-A0_eNpQ1.js → UserListPage-CDMSZpXK.js} +2 -2
- package/dist/{UserListPage-A0_eNpQ1.js.map → UserListPage-CDMSZpXK.js.map} +1 -1
- package/dist/{UserProfilePage-FNLYK9kj.js → UserProfilePage-BYitd7QV.js} +1 -1
- package/dist/{UserProfilePage-FNLYK9kj.js.map → UserProfilePage-BYitd7QV.js.map} +1 -1
- package/dist/{UserProfilePage-BWK97ODt.js → UserProfilePage-Dmxp7oqP.js} +1 -1
- package/dist/{VerifyEmail-BYYsE-M_.js → VerifyEmail-CLDngljq.js} +2 -2
- package/dist/{VerifyEmail-BVwHQpbw.js → VerifyEmail-CWUhRA1o.js} +2 -2
- package/dist/{VerifyEmail-BVwHQpbw.js.map → VerifyEmail-CWUhRA1o.js.map} +1 -1
- package/dist/ViewTeam-rLNxVgS2.js +8 -0
- package/dist/{ViewTeam-BV7SjH8R.js → ViewTeam-ttqX2In8.js} +4 -4
- package/dist/{ViewTeam-BV7SjH8R.js.map → ViewTeam-ttqX2In8.js.map} +1 -1
- package/dist/ViewTeamMember-B5U8kZBw.js +7 -0
- package/dist/{ViewTeamMember-Cf5yXdv6.js → ViewTeamMember-DqWZ3F_h.js} +4 -4
- package/dist/{ViewTeamMember-Cf5yXdv6.js.map → ViewTeamMember-DqWZ3F_h.js.map} +1 -1
- package/dist/{ZiniaContainer-BV6sojLa.js → ZiniaContainer-BPIfQOc7.js} +1 -1
- package/dist/{ZiniaContainer-BV6sojLa.js.map → ZiniaContainer-BPIfQOc7.js.map} +1 -1
- package/dist/{convertToLocalDateTime-C13-PrSA.js → convertToLocalDateTime-BKBxm2Rc.js} +1 -1
- package/dist/{convertToLocalDateTime-C13-PrSA.js.map → convertToLocalDateTime-BKBxm2Rc.js.map} +1 -1
- package/dist/{customerSupportTicketRoutes-_HjQcEAD.js → customerSupportTicketRoutes-C-DKBy5g.js} +8 -8
- package/dist/{customerSupportTicketRoutes-_HjQcEAD.js.map → customerSupportTicketRoutes-C-DKBy5g.js.map} +1 -1
- package/dist/{displayIdFormatter-Cr-QaEk1.js → displayIdFormatter-Ca4Al9iB.js} +1 -1
- package/dist/{displayIdFormatter-Cr-QaEk1.js.map → displayIdFormatter-Ca4Al9iB.js.map} +1 -1
- package/dist/{extractRpcErrorMessage-CAaeVysa.js → extractRpcErrorMessage-Df8-CJGV.js} +1 -1
- package/dist/{extractRpcErrorMessage-CAaeVysa.js.map → extractRpcErrorMessage-Df8-CJGV.js.map} +1 -1
- package/dist/index.d.ts +763 -753
- package/dist/index.js +48 -47
- package/dist/{saved_filter-C6YHkEMV.js → saved_filter-C2N9l_a9.js} +3 -3
- package/dist/{saved_filter-C6YHkEMV.js.map → saved_filter-C2N9l_a9.js.map} +1 -1
- package/dist/{signupConsentStorage-foqtLkIk.js → signupConsentStorage-pWSoHuhO.js} +10 -2
- package/dist/signupConsentStorage-pWSoHuhO.js.map +1 -0
- package/dist/{src-BIX3mMjo.js → src-C8B9TJiH.js} +31 -26
- package/dist/src-C8B9TJiH.js.map +1 -0
- package/dist/{staffSupportTicketRoutes-WPaItK5S.js → staffSupportTicketRoutes-CyMecWpC.js} +8 -8
- package/dist/{staffSupportTicketRoutes-WPaItK5S.js.map → staffSupportTicketRoutes-CyMecWpC.js.map} +1 -1
- package/dist/{teamMemberMetadata-DX0W-B7p.js → teamMemberMetadata-C4urCwBU.js} +1 -1
- package/dist/{teamMemberMetadata-DX0W-B7p.js.map → teamMemberMetadata-C4urCwBU.js.map} +1 -1
- package/dist/{teamMetadata-26Mwjb2i.js → teamMetadata-NTjPt89L.js} +1 -1
- package/dist/{teamMetadata-26Mwjb2i.js.map → teamMetadata-NTjPt89L.js.map} +1 -1
- package/dist/{teamRoutes-CQWRPy3J.js → teamRoutes-CFDsHPkd.js} +12 -12
- package/dist/{teamRoutes-CQWRPy3J.js.map → teamRoutes-CFDsHPkd.js.map} +1 -1
- package/dist/{team_memberRoutes-Cxgte_vj.js → team_memberRoutes-BgjY9Kwq.js} +7 -7
- package/dist/{team_memberRoutes-Cxgte_vj.js.map → team_memberRoutes-BgjY9Kwq.js.map} +1 -1
- package/dist/{useBreadcrumbs-DIqU5AAp.js → useBreadcrumbs-CPWXm0hm.js} +1 -1
- package/dist/{useBreadcrumbs-DIqU5AAp.js.map → useBreadcrumbs-CPWXm0hm.js.map} +1 -1
- package/dist/{useEmailVerificationChannel-C4bvvG2b.js → useEmailVerificationChannel-QuMSgzzM.js} +1 -1
- package/dist/{useEmailVerificationChannel-C4bvvG2b.js.map → useEmailVerificationChannel-QuMSgzzM.js.map} +1 -1
- package/dist/{userAuthorized-klLUHGxT.js → userAuthorized-3RiCDXxr.js} +1 -1
- package/dist/{userAuthorized-klLUHGxT.js.map → userAuthorized-3RiCDXxr.js.map} +1 -1
- package/package.json +2 -2
- package/dist/CreateTeamForm-CCfgSWUA.js +0 -12
- package/dist/CustomerSupportTicketList-D1pcZzcX.js +0 -64
- package/dist/EditTeamForm-BzTAypZT.js +0 -12
- package/dist/Signup-EykiX-bQ.js.map +0 -1
- package/dist/SignupConsentFlow-CRtiMpcS.js.map +0 -1
- package/dist/StaffSupportTicketList-CqK8PVq4.js +0 -64
- package/dist/TeamAttachmentsTab-BG_K7uwG.js +0 -64
- package/dist/TeamHistoryTab-BSEOYC_5.js +0 -6
- package/dist/TeamList-iAH9mOdd.js +0 -8
- package/dist/TeamMemberList-uwSe9zdv.js +0 -7
- package/dist/TeamParent-D_IbzH8B.js +0 -11
- package/dist/UserListPage-CjpxiETO.js +0 -5
- package/dist/ViewTeam-BvLIv9Dd.js +0 -8
- package/dist/ViewTeamMember-DtQCZU-X.js +0 -7
- package/dist/signupConsentStorage-foqtLkIk.js.map +0 -1
- package/dist/src-BIX3mMjo.js.map +0 -1
- /package/dist/{Appearance-CHCv4Fd1.js → Appearance-BhzkZJOL.js} +0 -0
- /package/dist/{TeamMembersTab-CeOJAhhR.js → TeamMembersTab-D7y2nV__.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Signup-EykiX-bQ.js","names":["payload: SignupInitiateInputDto"],"sources":["../src/slices/auth/signupExtensibilityKeys.ts","../src/slices/auth/utils/isEmailVerificationRequiredError.ts","../src/slices/auth/features/signup/signupSchema.ts","../src/slices/auth/features/signup/Signup.vue"],"sourcesContent":["import type { InjectionKey } from 'vue';\n\n/** Injection keys for signup extensibility. Consumer can provide these to supply metadata/headers from their app. */\nexport const SIGNUP_EXTENSIBILITY_KEYS = {\n /** Returns metadata to merge into signupInitiate payload (e.g. { referral_tag: route.query.ref }). */\n getSignupMetadata: Symbol('getSignupMetadata') as InjectionKey<\n () => Record<string, unknown>\n >,\n /** Returns headers to send with signup requests (e.g. { 'X-Referral-Tag': route.query.ref }). */\n getSignupHeaders: Symbol('getSignupHeaders') as InjectionKey<\n () => Record<string, string>\n >,\n};\n","/**\n * Detects if an error indicates that email verification is required before login.\n * Used in signup flow when auto-login after signup fails due to unverified email.\n */\nexport function isEmailVerificationRequiredError(error: unknown): boolean {\n if (!error || typeof error !== 'object') return false;\n const e = error as {\n error_type?: string;\n error_name?: string;\n name?: string;\n message?: string;\n };\n if (\n e.error_type === 'EmailVerificationRequiredError' ||\n e.error_name === 'EmailVerificationRequiredError' ||\n e.name === 'EmailVerificationRequiredError'\n ) {\n return true;\n }\n const msg = typeof e.message === 'string' ? e.message : '';\n return msg.includes('Please verify your email before logging in');\n}\n","import { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { signupInitiateSchema } from '@dragonmastery/dragoncore-shared';\nimport { z } from 'zod';\n\n// Define the signup form type (signupInitiate: email + passwords only)\nexport type SignupForm = z.infer<typeof signupInitiateSchema>;\n\n// Enhance the schema with metadata\nexport const signupSchemaWithMetadata = withMetadata(signupInitiateSchema, 'signupInitiateSchema', {\n email: {\n inputType: 'email',\n placeholder: 'you@example.com',\n helpText: 'Enter the email address you used to register',\n autocomplete: 'email',\n className: 'login-field',\n autofocus: true,\n },\n 'passwords.password': {\n inputType: 'password',\n placeholder: '••••••••',\n helpText: 'Must be at least 8 characters',\n autocomplete: 'current-password',\n className: 'login-field',\n },\n 'passwords.password_confirm': {\n inputType: 'password',\n placeholder: '••••••••',\n helpText: 'Must be at least 8 characters',\n autocomplete: 'current-password',\n className: 'login-field',\n },\n});\n","<template>\n <div class=\"max-w-md mx-auto bg-base-200 p-6 rounded-xl shadow-md container\">\n <h1 class=\"text-2xl font-bold mb-6 text-center\">Sign Up</h1>\n\n <div\n v-if=\"awaitingVerification\"\n class=\"space-y-4 text-center\"\n >\n <p class=\"text-base-content/80\">\n We sent a verification link to your email address. Click the link to verify your account,\n then you can continue.\n </p>\n <p class=\"text-sm text-base-content/60\">\n If you opened the link in another tab, we'll redirect you automatically when verification\n completes.\n </p>\n </div>\n\n <div v-else-if=\"declinedMessage\" class=\"mb-4\">\n <div class=\"alert alert-warning\">\n <span>{{ declinedMessage }}</span>\n </div>\n </div>\n\n <ZiniaForm\n v-if=\"!awaitingVerification\"\n @handle-submit=\"handleSubmit\"\n @success=\"handleSuccess\"\n @error=\"handleError\"\n >\n <zinia.EmailField />\n <zinia.PasswordsPasswordField />\n <zinia.PasswordsPasswordConfirmField />\n\n <div\n v-if=\"showConsentSection\"\n class=\"mb-6 p-4 rounded-lg bg-base-100 border border-base-300\"\n >\n <p class=\"font-medium mb-2\">{{ signupConsentBeforeText }}</p>\n <ul class=\"list-disc list-inside space-y-1 text-sm text-base-content/80\">\n <li\n v-for=\"link in legalLinks\"\n :key=\"link.path\"\n >\n <AppLink\n :to=\"link.path\"\n class=\"link link-accent\"\n >\n {{ link.label }}\n </AppLink>\n </li>\n </ul>\n <p\n v-if=\"signupConsentAfterText\"\n class=\"mt-2 text-sm text-base-content/70\"\n >\n {{ signupConsentAfterText }}\n </p>\n </div>\n\n <ZiniaSubmitButton submitText=\"Sign Up\" submittingText=\"Signing up...\" />\n\n <div class=\"text-center mt-2\">\n <p>\n Already have an account?\n <AppLink class=\"link-accent link\" :to=\"loginLink\">Login</AppLink>\n </p>\n </div>\n </ZiniaForm>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type {\n SignupInitiateInputDto,\n SignupInitiateResponseDto,\n} from '@dragonmastery/dragoncore-shared';\nimport type { UserDetailsTokenPayload } from '../../../../lib/models/userSession';\nimport AppLink from '../../../../components/AppLink.vue';\nimport { setSignupConsentFlowData } from '../../signupConsentStorage';\nimport { SIGNUP_EXTENSIBILITY_KEYS } from '../../signupExtensibilityKeys';\nimport { useEnv } from '../../../../composables/useEnv';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useUserSessionStore } from '../../../../composables/useUserSessionStore';\nimport { getValidReturnUrl, withReturnUrl } from '../../../../utils/useReturnUrl';\nimport { useEmailVerificationChannel } from '../../useEmailVerificationChannel';\nimport { isEmailVerificationRequiredError } from '../../utils/isEmailVerificationRequiredError';\nimport { useForm } from '@dragonmastery/zinia-forms-core';\nimport { jwtDecode } from 'jwt-decode';\nimport { computed, inject, ref } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\nimport { signupSchemaWithMetadata } from './signupSchema';\n\nconst REDIRECTED_TO_CONSENTS = Symbol('redirected-to-consents');\n\n// Create a type-safe form using our schema with metadata\nconst { form, zinia, ZiniaForm, ZiniaSubmitButton } = useForm(signupSchemaWithMetadata, {\n storeName: 'signup-form',\n persistToLocalStorage: false,\n renderStyle: 'daisy_ui',\n});\n\nconst sessionStore = useUserSessionStore();\nconst route = useRoute();\nconst router = useRouter();\nconst { emailVerificationMode } = useEnv();\n\nconst returnUrl = computed(() => route.query.returnUrl as string | undefined);\nconst loginLink = computed(() => withReturnUrl('/auth/login', returnUrl.value));\nconst awaitingVerification = ref(false);\n\nconst getSignupMetadata = inject(SIGNUP_EXTENSIBILITY_KEYS.getSignupMetadata);\nconst signupConsentBeforeText = inject<string>(\n 'signupConsentBeforeText',\n 'By signing up you agree to these terms:',\n);\nconst signupConsentAfterText = inject<string>(\n 'signupConsentAfterText',\n \"After you click Sign Up, we'll show you each document to review and accept.\",\n);\n\n// Legal routes - auto-collected from router (meta.legal: true) for the consent preview\nconst legalLinks = computed(() => {\n const routes = router.getRoutes();\n return routes\n .filter((r) => r.meta?.legal === true)\n .map((r) => {\n const resolved = router.resolve({ name: r.name as string });\n return {\n path: resolved.path,\n label: (r.meta?.title as string) ?? (r.name as string) ?? r.path,\n };\n })\n .sort((a, b) => a.path.localeCompare(b.path));\n});\n\nconst showConsentSection = computed(() => legalLinks.value.length > 0);\n\n// Show declined message when returning from consent flow\nconst declinedMessage = computed(() => {\n const declined = route.query.declined;\n if (declined === '1' || declined === 'true') {\n return 'You declined the consent. Your account was not created.';\n }\n return null;\n});\n\nconst { mutate: signupInitiateMutate } = useMutation<\n import('@dragonmastery/dragoncore-shared').DragoncoreApi,\n SignupInitiateInputDto,\n SignupInitiateResponseDto\n>(\n (api, input: SignupInitiateInputDto) => api.users.signupInitiate(input),\n { skipAuthCheck: true, credentials: 'include' },\n);\n\n// Handle form submission\nconst handleSubmit = async (data: SignupInitiateInputDto) => {\n const metadata = {\n ...(getSignupMetadata?.() ?? {}),\n ...(data.metadata ?? {}),\n };\n const payload: SignupInitiateInputDto = {\n ...data,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n };\n const result = await signupInitiateMutate(payload);\n if (!result) throw new Error('Signup failed');\n\n if (result.created) {\n if (!result.session?.access_token || !result.session?.user_details_token) {\n throw new Error('Failed to get session after signup');\n }\n return {\n access_token: result.session.access_token,\n user_details_token: result.session.user_details_token,\n };\n }\n\n setSignupConsentFlowData({\n token: result.signup_consent_token,\n consents: result.consents,\n metadata: payload.metadata,\n });\n const basePath = withReturnUrl('/auth/signup-consents', returnUrl.value);\n const sep = basePath.includes('?') ? '&' : '?';\n await router.push(`${basePath}${sep}token=${encodeURIComponent(result.signup_consent_token)}`);\n return REDIRECTED_TO_CONSENTS;\n};\n\n// Handle success (not called when we redirect to consent flow)\nconst handleSuccess = async (data: { access_token: string; user_details_token: string } | symbol) => {\n if (data === REDIRECTED_TO_CONSENTS) return;\n\n const payload = data as { access_token: string; user_details_token: string };\n sessionStore.setSession(payload.user_details_token);\n sessionStore.setAccessToken(payload.access_token);\n\n form.reset();\n\n const defaultRedirect = getValidReturnUrl(route, '/');\n const redirectTo =\n emailVerificationMode !== 'disabled'\n ? (() => {\n try {\n const tokenPayload = jwtDecode<UserDetailsTokenPayload>(payload.user_details_token);\n const emailVerified = tokenPayload.details?.user?.email_verified ?? true;\n return emailVerified ? defaultRedirect : withReturnUrl('/auth/verify-email', returnUrl.value);\n } catch {\n return defaultRedirect;\n }\n })()\n : defaultRedirect;\n\n await router.push(redirectTo);\n const wentToVerify = typeof redirectTo === 'string' && redirectTo.startsWith('/auth/verify-email');\n toast.success(\n !wentToVerify\n ? 'Registration successful! You are now logged in.'\n : 'Registration successful! Please check your email to verify your account.',\n );\n};\n\n// Handle error\nconst handleError = (error: unknown) => {\n if (isEmailVerificationRequiredError(error)) {\n return;\n }\n const message = error instanceof Error ? error.message : 'Registration failed';\n toast.error(message);\n};\n\nuseEmailVerificationChannel(\n awaitingVerification,\n (targetUrl) => router.push(targetUrl),\n () => getValidReturnUrl(route, '/'),\n);\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignupConsentFlow-CRtiMpcS.js","names":["acceptancesSoFar: Record<string, boolean>"],"sources":["../src/slices/auth/features/signup_consents/SignupConsentFlow.vue"],"sourcesContent":["<template>\n <div class=\"w-full max-w-md mx-auto mb-8 sm:mb-10 bg-base-200 px-3 py-4 sm:px-6 sm:py-6 rounded-xl shadow-md container min-w-0\">\n <div v-if=\"loading\" class=\"text-center\">\n <p class=\"text-base-content/80\">Loading...</p>\n </div>\n\n <div v-else-if=\"!token || !consents.length\" class=\"text-center\">\n <p class=\"text-base-content/80\">Invalid or expired signup link. Please start over.</p>\n <AppLink :to=\"signupLink\" class=\"btn btn-primary btn-sm mt-4\">Back to sign up</AppLink>\n </div>\n\n <div v-else-if=\"currentConfig\" class=\"space-y-6\">\n <ConsentFlowStep\n :config=\"currentConfig\"\n :current-step=\"currentStep\"\n :total-steps=\"totalSteps\"\n :submitting=\"submitting\"\n :submit-error=\"submitError\"\n :declining=\"declining\"\n accept-label=\"Accept and continue\"\n submit-accept-label=\"Submitting...\"\n decline-label=\"Decline\"\n decline-submitting-label=\"Returning...\"\n intro-text=\"Please read the full document before accepting. Scroll to the bottom when you've finished reading. You can decline at any time; if you decline, your account will not be created and you will return to sign up.\"\n @accept=\"handleAccept\"\n @decline=\"handleDecline\"\n >\n <template #error-recovery>\n <span>{{ submitError }}</span>\n <p class=\"text-sm opacity-90\">\n You can try again below or go back to sign up.\n </p>\n <button\n type=\"button\"\n class=\"btn btn-ghost btn-sm mt-1\"\n :disabled=\"goingBack || submitting\"\n @click=\"goBackToSignup\"\n >\n {{ goingBack ? 'Returning...' : 'Back to sign up' }}\n </button>\n </template>\n </ConsentFlowStep>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport AppLink from '../../../../components/AppLink.vue';\nimport ConsentFlowStep from '../shared/ConsentFlowStep.vue';\nimport type { SignupConsentFlowData } from '../../signupConsentStorage';\nimport {\n clearSignupConsentFlowData,\n getSignupConsentFlowData,\n} from '../../signupConsentStorage';\nimport { computed, nextTick, ref } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { toast } from 'vue3-toastify';\nimport { useEnv } from '../../../../composables/useEnv';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useUserSessionStore } from '../../../../composables/useUserSessionStore';\nimport {\n getValidReturnUrl,\n setEmailVerificationReturnUrl,\n withReturnUrl,\n} from '../../../../utils/useReturnUrl';\n\nconst sessionStore = useUserSessionStore();\nconst router = useRouter();\nconst route = useRoute();\nconst { emailVerificationMode } = useEnv();\n\nconst returnUrl = computed(() => route.query.returnUrl as string | undefined);\nconst signupLink = computed(() => withReturnUrl('/auth/signup', returnUrl.value));\n\nconst token = computed(() => (route.query.token as string) ?? '');\nconst storedData = ref<SignupConsentFlowData | null>(null);\nconst loading = ref(true);\n\n// Load consents from sessionStorage (must match token from URL)\nconst consents = computed(() => {\n const t = token.value;\n const data = storedData.value;\n if (!t || !data || data.token !== t) return [];\n return data.consents;\n});\n\n// Fallback: if no stored data, fetch consents with token (e.g. user opened link in new tab)\nconst { mutate: fetchConsentsForToken } = useMutation(\n (api, _t: string) => api.users.getSignupConsentsForToken(),\n {\n skipAuthCheck: true,\n credentials: 'include',\n customAuthToken: (t) => t,\n },\n);\n\nasync function loadConsents() {\n loading.value = true;\n const t = token.value;\n if (!t) {\n loading.value = false;\n return;\n }\n const data = getSignupConsentFlowData();\n if (data && data.token === t) {\n storedData.value = data;\n loading.value = false;\n return;\n }\n try {\n const reqs = await fetchConsentsForToken(t);\n if (reqs && Array.isArray(reqs) && reqs.length > 0) {\n storedData.value = { token: t, consents: reqs };\n }\n } catch {\n // Token invalid/expired - consents stay empty, user sees \"Invalid or expired\" message\n }\n loading.value = false;\n}\n\nloadConsents();\n\nconst currentStep = ref(1);\nconst totalSteps = computed(() => consents.value.length);\nconst currentConfig = computed(\n () => consents.value[currentStep.value - 1] ?? null,\n);\n\nconst declining = ref(false);\nconst goingBack = ref(false);\nconst submitting = ref(false);\nconst submitError = ref<string | null>(null);\n\nfunction getErrorMessage(error: unknown): string {\n if (error instanceof Error && error.message) return error.message;\n if (error && typeof error === 'object' && 'message' in error && typeof (error as { message: unknown }).message === 'string') {\n return (error as { message: string }).message;\n }\n return 'Registration failed. Please try again.';\n}\n\nconst { mutate: signupCompleteMutate } = useMutation(\n (api, input: {\n token: string;\n acceptances: Record<string, boolean>;\n metadata?: Record<string, unknown>;\n }) =>\n api.users.signupComplete({\n acceptances: input.acceptances,\n metadata: input.metadata,\n }),\n {\n skipAuthCheck: true,\n credentials: 'include',\n customAuthToken: (input) => input.token,\n },\n);\n\nasync function handleAccept() {\n const config = currentConfig.value;\n if (!config || !token.value || !consents.value.length) return;\n\n submitError.value = null;\n\n const acceptancesSoFar: Record<string, boolean> = {};\n for (let i = 0; i < currentStep.value; i++) {\n const c = consents.value[i];\n if (c) acceptancesSoFar[c.type] = true;\n }\n\n if (currentStep.value >= totalSteps.value) {\n submitting.value = true;\n try {\n await completeSignup(acceptancesSoFar);\n } catch (err) {\n submitError.value = getErrorMessage(err);\n } finally {\n submitting.value = false;\n }\n return;\n }\n\n currentStep.value++;\n nextTick();\n}\n\nasync function completeSignup(acceptances: Record<string, boolean>) {\n const t = token.value;\n const data = storedData.value;\n if (!t) return;\n\n const session = await signupCompleteMutate({\n token: t,\n acceptances,\n metadata: data?.metadata,\n });\n if (!session?.access_token || !session?.user_details_token) {\n throw new Error('Signup failed');\n }\n\n clearSignupConsentFlowData();\n\n sessionStore.setSession(session.user_details_token);\n sessionStore.setAccessToken(session.access_token);\n\n if (emailVerificationMode !== 'disabled') {\n if (emailVerificationMode === 'strict') {\n const targetUrl = getValidReturnUrl(route, '/');\n setEmailVerificationReturnUrl(targetUrl);\n }\n window.scrollTo(0, 0);\n const verifyPath = withReturnUrl('/auth/verify-email', returnUrl.value);\n await router.push(verifyPath);\n return;\n }\n\n window.scrollTo(0, 0);\n const defaultRedirect = getValidReturnUrl(route, '/');\n await router.push(defaultRedirect);\n toast.success('Registration successful! You are now logged in.');\n}\n\nasync function handleDecline() {\n declining.value = true;\n try {\n clearSignupConsentFlowData();\n const signupPath = withReturnUrl('/auth/signup', returnUrl.value);\n await router.push({ path: signupPath, query: { ...route.query, declined: '1' } });\n } finally {\n declining.value = false;\n }\n}\n\nasync function goBackToSignup() {\n goingBack.value = true;\n try {\n clearSignupConsentFlowData();\n const signupPath = withReturnUrl('/auth/signup', returnUrl.value);\n const { declined: _d, token: _t, ...rest } = route.query;\n await router.push({ path: signupPath, query: rest });\n } finally {\n goingBack.value = false;\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
-
import "./useQueryCache-alzaRWEb.js";
|
|
4
|
-
import "./useMutation-BLNuJoYl.js";
|
|
5
|
-
import "./useQuery-BzUGEOj0.js";
|
|
6
|
-
import { p as StaffSupportTicketList_default } from "./src-BIX3mMjo.js";
|
|
7
|
-
import "./AppLink-FcNGKgvG.js";
|
|
8
|
-
import "./saved_filter-C6YHkEMV.js";
|
|
9
|
-
import "./ConfirmDialog-DjthOYU6.js";
|
|
10
|
-
import "./InlineAttachments-DAn_QknY.js";
|
|
11
|
-
import "./TeamMembersTab-BigqpBDH.js";
|
|
12
|
-
import "./Appearance-shr0Aql0.js";
|
|
13
|
-
import "./useBreadcrumbs-DIqU5AAp.js";
|
|
14
|
-
import "./ExternalLinkIcon-FidcmNOa.js";
|
|
15
|
-
import "./FieldsetSection-CH1jAwcc.js";
|
|
16
|
-
import "./RecordVersionViewer-NLn1gVys.js";
|
|
17
|
-
import "./ZiniaContainer-BV6sojLa.js";
|
|
18
|
-
import "./userAuthorized-klLUHGxT.js";
|
|
19
|
-
import "./UserProfilePage-FNLYK9kj.js";
|
|
20
|
-
import "./ChangePasswordPage-nr0B06HB.js";
|
|
21
|
-
import "./teamMetadata-26Mwjb2i.js";
|
|
22
|
-
import "./team_memberRoutes-Cxgte_vj.js";
|
|
23
|
-
import "./teamRoutes-CQWRPy3J.js";
|
|
24
|
-
import "./CreateTeamForm-DNkueBzR.js";
|
|
25
|
-
import "./EditTeamForm-DdvKHlNj.js";
|
|
26
|
-
import "./TeamHistoryTab-p3hDxCc3.js";
|
|
27
|
-
import "./TeamList-B4gWPzce.js";
|
|
28
|
-
import "./TeamNotesTab-DPw9YEwK.js";
|
|
29
|
-
import "./TeamParent-KQmJgJ9x.js";
|
|
30
|
-
import "./ViewTeam-BV7SjH8R.js";
|
|
31
|
-
import "./teamMemberMetadata-DX0W-B7p.js";
|
|
32
|
-
import "./CreateTeamMemberForm-ITp4XFn9.js";
|
|
33
|
-
import "./EditTeamMemberForm-Fyf8Zxfh.js";
|
|
34
|
-
import "./TeamMemberList-D0-dM5kI.js";
|
|
35
|
-
import "./TeamMemberParent-CJGWXjuM.js";
|
|
36
|
-
import "./ViewTeamMember-Cf5yXdv6.js";
|
|
37
|
-
import "./customerSupportTicketRoutes-_HjQcEAD.js";
|
|
38
|
-
import "./staffSupportTicketRoutes-WPaItK5S.js";
|
|
39
|
-
import "./TimelineSystemEvent-Ch1sZiyO.js";
|
|
40
|
-
import "./CustomerCreateSupportTicketForm-CeG8IKA1.js";
|
|
41
|
-
import "./CustomerSupportTicketParent-BaKfkSlU.js";
|
|
42
|
-
import "./CustomerSupportTicketSuccess-Cc75m_p-.js";
|
|
43
|
-
import "./StaffCreateSupportTicketForm-ANtaO4pe.js";
|
|
44
|
-
import "./SupportTicketDevLifecycleBadge-BYKZjEv6.js";
|
|
45
|
-
import "./StaffSupportTicketParent-yoC-_Lku.js";
|
|
46
|
-
import "./StaffSupportTicketSuccess-CB4Oa_2J.js";
|
|
47
|
-
import "./Signup-EykiX-bQ.js";
|
|
48
|
-
import "./LoginForm-CSMHsZrq.js";
|
|
49
|
-
import "./useEmailVerificationChannel-C4bvvG2b.js";
|
|
50
|
-
import "./ForgotPassword-Dd-E3_o1.js";
|
|
51
|
-
import "./ResetPassword-CyizBRob.js";
|
|
52
|
-
import "./Logout-Bdktl4NZ.js";
|
|
53
|
-
import "./mfaSchema-C6PatIbY.js";
|
|
54
|
-
import "./MfaSetup-Bjc3v0hs.js";
|
|
55
|
-
import "./MfaVerify-uJlPz8xg.js";
|
|
56
|
-
import "./VerifyEmail-BVwHQpbw.js";
|
|
57
|
-
import "./UserListPage-A0_eNpQ1.js";
|
|
58
|
-
import "./CreateUserPage-1WiLNGr_.js";
|
|
59
|
-
import "./EditUserPage-BBzGmOrx.js";
|
|
60
|
-
import "./CreditTransactionHistory-BZZGQxTV.js";
|
|
61
|
-
import "./CreditBalanceDashboard-CLQ8NZnY.js";
|
|
62
|
-
import "./CreditManagement-Dus4O1BY.js";
|
|
63
|
-
|
|
64
|
-
export { StaffSupportTicketList_default as default };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
-
import "./useQueryCache-alzaRWEb.js";
|
|
4
|
-
import "./useMutation-BLNuJoYl.js";
|
|
5
|
-
import "./useQuery-BzUGEOj0.js";
|
|
6
|
-
import { O as TeamAttachmentsTab_default } from "./src-BIX3mMjo.js";
|
|
7
|
-
import "./AppLink-FcNGKgvG.js";
|
|
8
|
-
import "./saved_filter-C6YHkEMV.js";
|
|
9
|
-
import "./ConfirmDialog-DjthOYU6.js";
|
|
10
|
-
import "./InlineAttachments-DAn_QknY.js";
|
|
11
|
-
import "./TeamMembersTab-BigqpBDH.js";
|
|
12
|
-
import "./Appearance-shr0Aql0.js";
|
|
13
|
-
import "./useBreadcrumbs-DIqU5AAp.js";
|
|
14
|
-
import "./ExternalLinkIcon-FidcmNOa.js";
|
|
15
|
-
import "./FieldsetSection-CH1jAwcc.js";
|
|
16
|
-
import "./RecordVersionViewer-NLn1gVys.js";
|
|
17
|
-
import "./ZiniaContainer-BV6sojLa.js";
|
|
18
|
-
import "./userAuthorized-klLUHGxT.js";
|
|
19
|
-
import "./UserProfilePage-FNLYK9kj.js";
|
|
20
|
-
import "./ChangePasswordPage-nr0B06HB.js";
|
|
21
|
-
import "./teamMetadata-26Mwjb2i.js";
|
|
22
|
-
import "./team_memberRoutes-Cxgte_vj.js";
|
|
23
|
-
import "./teamRoutes-CQWRPy3J.js";
|
|
24
|
-
import "./CreateTeamForm-DNkueBzR.js";
|
|
25
|
-
import "./EditTeamForm-DdvKHlNj.js";
|
|
26
|
-
import "./TeamHistoryTab-p3hDxCc3.js";
|
|
27
|
-
import "./TeamList-B4gWPzce.js";
|
|
28
|
-
import "./TeamNotesTab-DPw9YEwK.js";
|
|
29
|
-
import "./TeamParent-KQmJgJ9x.js";
|
|
30
|
-
import "./ViewTeam-BV7SjH8R.js";
|
|
31
|
-
import "./teamMemberMetadata-DX0W-B7p.js";
|
|
32
|
-
import "./CreateTeamMemberForm-ITp4XFn9.js";
|
|
33
|
-
import "./EditTeamMemberForm-Fyf8Zxfh.js";
|
|
34
|
-
import "./TeamMemberList-D0-dM5kI.js";
|
|
35
|
-
import "./TeamMemberParent-CJGWXjuM.js";
|
|
36
|
-
import "./ViewTeamMember-Cf5yXdv6.js";
|
|
37
|
-
import "./customerSupportTicketRoutes-_HjQcEAD.js";
|
|
38
|
-
import "./staffSupportTicketRoutes-WPaItK5S.js";
|
|
39
|
-
import "./TimelineSystemEvent-Ch1sZiyO.js";
|
|
40
|
-
import "./CustomerCreateSupportTicketForm-CeG8IKA1.js";
|
|
41
|
-
import "./CustomerSupportTicketParent-BaKfkSlU.js";
|
|
42
|
-
import "./CustomerSupportTicketSuccess-Cc75m_p-.js";
|
|
43
|
-
import "./StaffCreateSupportTicketForm-ANtaO4pe.js";
|
|
44
|
-
import "./SupportTicketDevLifecycleBadge-BYKZjEv6.js";
|
|
45
|
-
import "./StaffSupportTicketParent-yoC-_Lku.js";
|
|
46
|
-
import "./StaffSupportTicketSuccess-CB4Oa_2J.js";
|
|
47
|
-
import "./Signup-EykiX-bQ.js";
|
|
48
|
-
import "./LoginForm-CSMHsZrq.js";
|
|
49
|
-
import "./useEmailVerificationChannel-C4bvvG2b.js";
|
|
50
|
-
import "./ForgotPassword-Dd-E3_o1.js";
|
|
51
|
-
import "./ResetPassword-CyizBRob.js";
|
|
52
|
-
import "./Logout-Bdktl4NZ.js";
|
|
53
|
-
import "./mfaSchema-C6PatIbY.js";
|
|
54
|
-
import "./MfaSetup-Bjc3v0hs.js";
|
|
55
|
-
import "./MfaVerify-uJlPz8xg.js";
|
|
56
|
-
import "./VerifyEmail-BVwHQpbw.js";
|
|
57
|
-
import "./UserListPage-A0_eNpQ1.js";
|
|
58
|
-
import "./CreateUserPage-1WiLNGr_.js";
|
|
59
|
-
import "./EditUserPage-BBzGmOrx.js";
|
|
60
|
-
import "./CreditTransactionHistory-BZZGQxTV.js";
|
|
61
|
-
import "./CreditBalanceDashboard-CLQ8NZnY.js";
|
|
62
|
-
import "./CreditManagement-Dus4O1BY.js";
|
|
63
|
-
|
|
64
|
-
export { TeamAttachmentsTab_default as default };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
-
import "./userAuthorized-klLUHGxT.js";
|
|
4
|
-
import "./team_memberRoutes-Cxgte_vj.js";
|
|
5
|
-
import "./teamRoutes-CQWRPy3J.js";
|
|
6
|
-
import { t as TeamList_default } from "./TeamList-B4gWPzce.js";
|
|
7
|
-
|
|
8
|
-
export { TeamList_default as default };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
-
import "./userAuthorized-klLUHGxT.js";
|
|
4
|
-
import "./team_memberRoutes-Cxgte_vj.js";
|
|
5
|
-
import { t as TeamMemberList_default } from "./TeamMemberList-D0-dM5kI.js";
|
|
6
|
-
|
|
7
|
-
export { TeamMemberList_default as default };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
-
import "./useQueryCache-alzaRWEb.js";
|
|
4
|
-
import "./useQuery-BzUGEOj0.js";
|
|
5
|
-
import "./useBreadcrumbs-DIqU5AAp.js";
|
|
6
|
-
import "./userAuthorized-klLUHGxT.js";
|
|
7
|
-
import "./team_memberRoutes-Cxgte_vj.js";
|
|
8
|
-
import "./teamRoutes-CQWRPy3J.js";
|
|
9
|
-
import { t as TeamParent_default } from "./TeamParent-KQmJgJ9x.js";
|
|
10
|
-
|
|
11
|
-
export { TeamParent_default as default };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./ZiniaContainer-BV6sojLa.js";
|
|
3
|
-
import "./userAuthorized-klLUHGxT.js";
|
|
4
|
-
import "./team_memberRoutes-Cxgte_vj.js";
|
|
5
|
-
import "./teamRoutes-CQWRPy3J.js";
|
|
6
|
-
import { t as ViewTeam_default } from "./ViewTeam-BV7SjH8R.js";
|
|
7
|
-
|
|
8
|
-
export { ViewTeam_default as default };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./ZiniaContainer-BV6sojLa.js";
|
|
3
|
-
import "./userAuthorized-klLUHGxT.js";
|
|
4
|
-
import "./team_memberRoutes-Cxgte_vj.js";
|
|
5
|
-
import { t as ViewTeamMember_default } from "./ViewTeamMember-Cf5yXdv6.js";
|
|
6
|
-
|
|
7
|
-
export { ViewTeamMember_default as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signupConsentStorage-foqtLkIk.js","names":[],"sources":["../src/slices/auth/signupConsentStorage.ts"],"sourcesContent":["import type { SignupRequirementsDto } from '@dragonmastery/dragoncore-shared';\n\nconst STORAGE_KEY = 'dragoncore-signup-consent-flow';\n\nexport interface SignupConsentFlowData {\n token: string;\n consents: SignupRequirementsDto;\n /** Metadata from signupInitiate, persisted for signupComplete (e.g. referral_tag). */\n metadata?: Record<string, unknown>;\n}\n\nexport function setSignupConsentFlowData(data: SignupConsentFlowData): void {\n try {\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n } catch {\n // Ignore storage errors\n }\n}\n\nexport function getSignupConsentFlowData(): SignupConsentFlowData | null {\n try {\n const raw = sessionStorage.getItem(STORAGE_KEY);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as SignupConsentFlowData;\n if (!parsed?.token || !Array.isArray(parsed.consents)) return null;\n return parsed;\n } catch {\n return null;\n }\n}\n\nexport function clearSignupConsentFlowData(): void {\n try {\n sessionStorage.removeItem(STORAGE_KEY);\n } catch {\n // Ignore\n }\n}\n"],"mappings":";AAEA,MAAM,cAAc;AASpB,SAAgB,yBAAyB,MAAmC;AAC1E,KAAI;AACF,iBAAe,QAAQ,aAAa,KAAK,UAAU,KAAK,CAAC;SACnD;;AAKV,SAAgB,2BAAyD;AACvE,KAAI;EACF,MAAM,MAAM,eAAe,QAAQ,YAAY;AAC/C,MAAI,CAAC,IAAK,QAAO;EACjB,MAAM,SAAS,KAAK,MAAM,IAAI;AAC9B,MAAI,CAAC,QAAQ,SAAS,CAAC,MAAM,QAAQ,OAAO,SAAS,CAAE,QAAO;AAC9D,SAAO;SACD;AACN,SAAO;;;AAIX,SAAgB,6BAAmC;AACjD,KAAI;AACF,iBAAe,WAAW,YAAY;SAChC"}
|