@dragonmastery/dragoncore-vue 0.0.24 → 0.0.26
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-CYuCCosx.js → ChangePasswordPage-C7rqJfii.js} +1 -1
- package/dist/{ChangePasswordPage-C633yQiU.js → ChangePasswordPage-nr0B06HB.js} +1 -1
- package/dist/{ChangePasswordPage-C633yQiU.js.map → ChangePasswordPage-nr0B06HB.js.map} +1 -1
- package/dist/{ConsentFlowStep-DbQpQQA-.js → ConsentFlowStep-Dwg2HpnI.js} +21 -13
- package/dist/ConsentFlowStep-Dwg2HpnI.js.map +1 -0
- package/dist/{ConsentRequired-BiCKEVBG.js → ConsentRequired-Cp9QGWiV.js} +3 -2
- package/dist/{ConsentRequired-BiCKEVBG.js.map → ConsentRequired-Cp9QGWiV.js.map} +1 -1
- package/dist/CreateTeamForm-C-ktK6hn.js +12 -0
- package/dist/{CreateTeamForm-CvMUbK5X.js → CreateTeamForm-CZRTmCOx.js} +4 -4
- package/dist/{CreateTeamForm-CvMUbK5X.js.map → CreateTeamForm-CZRTmCOx.js.map} +1 -1
- package/dist/{CreateTeamMemberForm-QpDhqvfb.js → CreateTeamMemberForm-CSF-tD6B.js} +5 -5
- package/dist/{CreateTeamMemberForm-DUVHzzF0.js → CreateTeamMemberForm-ITp4XFn9.js} +4 -4
- package/dist/{CreateTeamMemberForm-DUVHzzF0.js.map → CreateTeamMemberForm-ITp4XFn9.js.map} +1 -1
- package/dist/{CreateUserPage-CqKcY7_X.js → CreateUserPage-1WiLNGr_.js} +1 -1
- package/dist/{CreateUserPage-CqKcY7_X.js.map → CreateUserPage-1WiLNGr_.js.map} +1 -1
- package/dist/{CreateUserPage-C9uOeYDJ.js → CreateUserPage-DNi45YF4.js} +1 -1
- package/dist/{CreditBalanceDashboard-CSUKpYSo.js → CreditBalanceDashboard-BHLCoCbK.js} +2 -2
- package/dist/{CreditBalanceDashboard-CSUKpYSo.js.map → CreditBalanceDashboard-BHLCoCbK.js.map} +1 -1
- package/dist/{CreditBalanceDashboard-CS4fV6MP.js → CreditBalanceDashboard-Bzxo_Rhr.js} +5 -5
- package/dist/{CreditManagement-BdRd_TLz.js → CreditManagement-C_Va9qmV.js} +2 -2
- package/dist/{CreditManagement-BdRd_TLz.js.map → CreditManagement-C_Va9qmV.js.map} +1 -1
- package/dist/{CreditManagement-Buuew7-f.js → CreditManagement-Ds6bCB1y.js} +5 -5
- package/dist/{CreditTransactionHistory-cYyRFOdS.js → CreditTransactionHistory-JVPQPiLB.js} +3 -3
- package/dist/{CreditTransactionHistory-cYyRFOdS.js.map → CreditTransactionHistory-JVPQPiLB.js.map} +1 -1
- package/dist/{CustomerCreateSupportTicketForm-Dk6lwDGL.js → CustomerCreateSupportTicketForm-BI5LQ9sF.js} +5 -5
- package/dist/{CustomerCreateSupportTicketForm-BDNs8cKo.js → CustomerCreateSupportTicketForm-BfEiv6I8.js} +3 -3
- package/dist/{CustomerCreateSupportTicketForm-BDNs8cKo.js.map → CustomerCreateSupportTicketForm-BfEiv6I8.js.map} +1 -1
- package/dist/{CustomerSupportTicketDetailPage-DGfUzPl8.js → CustomerSupportTicketDetailPage-CI0UmP2U.js} +5 -5
- package/dist/{CustomerSupportTicketDetailPage-DGfUzPl8.js.map → CustomerSupportTicketDetailPage-CI0UmP2U.js.map} +1 -1
- package/dist/CustomerSupportTicketList-Bf9ImaIe.js +64 -0
- package/dist/{CustomerSupportTicketParent-BpBuYCrP.js → CustomerSupportTicketParent-BaKfkSlU.js} +2 -2
- package/dist/{CustomerSupportTicketParent-BpBuYCrP.js.map → CustomerSupportTicketParent-BaKfkSlU.js.map} +1 -1
- package/dist/{CustomerSupportTicketParent-Djy7pNqO.js → CustomerSupportTicketParent-D19kei4H.js} +1 -1
- package/dist/{CustomerSupportTicketSuccess-DZ6_1jL9.js → CustomerSupportTicketSuccess-CmXVwmtE.js} +2 -2
- package/dist/{CustomerSupportTicketSuccess-DZ6_1jL9.js.map → CustomerSupportTicketSuccess-CmXVwmtE.js.map} +1 -1
- package/dist/{CustomerSupportTicketSuccess-BKQ07Y8H.js → CustomerSupportTicketSuccess-QgmDYuA_.js} +4 -4
- package/dist/EditTeamForm-BLqalA9l.js +12 -0
- package/dist/{EditTeamForm-CPJBjZa2.js → EditTeamForm-DYvHGBRF.js} +4 -4
- package/dist/{EditTeamForm-CPJBjZa2.js.map → EditTeamForm-DYvHGBRF.js.map} +1 -1
- package/dist/{EditTeamMemberForm-D7D1Zddh.js → EditTeamMemberForm-CIqEjFF8.js} +3 -3
- package/dist/{EditTeamMemberForm-DfgJr5Cy.js → EditTeamMemberForm-Fyf8Zxfh.js} +3 -3
- package/dist/{EditTeamMemberForm-DfgJr5Cy.js.map → EditTeamMemberForm-Fyf8Zxfh.js.map} +1 -1
- package/dist/{EditUserPage-CI_jtU8P.js → EditUserPage-BBzGmOrx.js} +2 -2
- package/dist/{EditUserPage-CI_jtU8P.js.map → EditUserPage-BBzGmOrx.js.map} +1 -1
- package/dist/{TeamNotesTab-o7glfjoY.js → EditUserPage-D3AWaHT2.js} +2 -2
- package/dist/ExternalLinkIcon-FidcmNOa.js +34 -0
- package/dist/ExternalLinkIcon-FidcmNOa.js.map +1 -0
- package/dist/{FieldsetSection-Cd4B8Ad7.js → FieldsetSection-CH1jAwcc.js} +1 -1
- package/dist/{FieldsetSection-Cd4B8Ad7.js.map → FieldsetSection-CH1jAwcc.js.map} +1 -1
- package/dist/{ForgotPassword-tJVSg7PB.js → ForgotPassword-BhmO5Lfd.js} +1 -1
- package/dist/{ForgotPassword-Ckb9Z-wb.js → ForgotPassword-Dd-E3_o1.js} +1 -1
- package/dist/{ForgotPassword-Ckb9Z-wb.js.map → ForgotPassword-Dd-E3_o1.js.map} +1 -1
- package/dist/{LoginForm-QFJ8NHww.js → LoginForm-By2I6TuV.js} +1 -1
- package/dist/{LoginForm-CMN2T1fA.js → LoginForm-DPmrJ_wm.js} +1 -1
- package/dist/{LoginForm-CMN2T1fA.js.map → LoginForm-DPmrJ_wm.js.map} +1 -1
- package/dist/{Logout-CFLYHlLr.js → Logout-Bdktl4NZ.js} +2 -2
- package/dist/Logout-Bdktl4NZ.js.map +1 -0
- package/dist/{Logout-CjDBff3W.js → Logout-CmKJK14I.js} +1 -1
- package/dist/{MfaSetup-85i4HlNJ.js → MfaSetup-Bjc3v0hs.js} +2 -2
- package/dist/{MfaSetup-85i4HlNJ.js.map → MfaSetup-Bjc3v0hs.js.map} +1 -1
- package/dist/{MfaSetup-C5mBMKsa.js → MfaSetup-BtfQXhLn.js} +2 -2
- package/dist/{MfaVerify-Dy2aV5Gk.js → MfaVerify-SUfSRf4m.js} +2 -2
- package/dist/{MfaVerify-C-A75TFZ.js → MfaVerify-uJlPz8xg.js} +2 -2
- package/dist/{MfaVerify-C-A75TFZ.js.map → MfaVerify-uJlPz8xg.js.map} +1 -1
- package/dist/{RecordVersionViewer-D2j10HdK.js → RecordVersionViewer-NLn1gVys.js} +1 -1
- package/dist/{RecordVersionViewer-D2j10HdK.js.map → RecordVersionViewer-NLn1gVys.js.map} +1 -1
- package/dist/{ResetPassword-Cd-Yxp8E.js → ResetPassword-CyizBRob.js} +1 -1
- package/dist/{ResetPassword-Cd-Yxp8E.js.map → ResetPassword-CyizBRob.js.map} +1 -1
- package/dist/{ResetPassword-D6to3G6a.js → ResetPassword-Dz2N3pH4.js} +1 -1
- package/dist/{SavedFiltersPage-DPJA7feS.js → SavedFiltersPage-bB4jbQgI.js} +52 -51
- package/dist/{SavedFiltersPage-DPJA7feS.js.map → SavedFiltersPage-bB4jbQgI.js.map} +1 -1
- package/dist/{Signup-2pqvJiVt.js → Signup-BCVZZCR_.js} +3 -3
- package/dist/{Signup-2pqvJiVt.js.map → Signup-BCVZZCR_.js.map} +1 -1
- package/dist/Signup-CJrY4IK-.js +9 -0
- package/dist/{SignupConsentFlow-dyQSp9iU.js → SignupConsentFlow-Dd3QAkVF.js} +4 -3
- package/dist/{SignupConsentFlow-dyQSp9iU.js.map → SignupConsentFlow-Dd3QAkVF.js.map} +1 -1
- package/dist/{SignupRequirementsPage-Cf-ElkEq.js → SignupRequirementsPage-DUQ63ZuW.js} +6 -6
- package/dist/SignupRequirementsPage-DUQ63ZuW.js.map +1 -0
- package/dist/{StaffCreateSupportTicketForm-C_i7mz26.js → StaffCreateSupportTicketForm-ByvHC20-.js} +5 -5
- package/dist/{StaffCreateSupportTicketForm-BgaZJWpj.js → StaffCreateSupportTicketForm-LuHzqt2w.js} +4 -4
- package/dist/{StaffCreateSupportTicketForm-BgaZJWpj.js.map → StaffCreateSupportTicketForm-LuHzqt2w.js.map} +1 -1
- package/dist/{StaffSupportTicketDetailPage-DoZClE4Y.js → StaffSupportTicketDetailPage--idGVu5P.js} +7 -7
- package/dist/{StaffSupportTicketDetailPage-DoZClE4Y.js.map → StaffSupportTicketDetailPage--idGVu5P.js.map} +1 -1
- package/dist/StaffSupportTicketList-irgGqZUp.js +64 -0
- package/dist/{StaffSupportTicketParent-B7mEN1oD.js → StaffSupportTicketParent-ByUwsYGx.js} +1 -1
- package/dist/{StaffSupportTicketParent-BvPwgOqH.js → StaffSupportTicketParent-yoC-_Lku.js} +2 -2
- package/dist/{StaffSupportTicketParent-BvPwgOqH.js.map → StaffSupportTicketParent-yoC-_Lku.js.map} +1 -1
- package/dist/{StaffSupportTicketSuccess-CUu2MNXF.js → StaffSupportTicketSuccess-BoQZY9Qt.js} +2 -2
- package/dist/{StaffSupportTicketSuccess-CUu2MNXF.js.map → StaffSupportTicketSuccess-BoQZY9Qt.js.map} +1 -1
- package/dist/{StaffSupportTicketSuccess-Bt9FWXmM.js → StaffSupportTicketSuccess-C6PI7mxk.js} +4 -4
- package/dist/{SupportStaffPage-B69-kuvg.js → SupportStaffPage-c2ouJwJk.js} +3 -3
- package/dist/{SupportStaffPage-B69-kuvg.js.map → SupportStaffPage-c2ouJwJk.js.map} +1 -1
- package/dist/{SupportTicketDevLifecycleBadge-BoAjMb08.js → SupportTicketDevLifecycleBadge-BYKZjEv6.js} +1 -1
- package/dist/{SupportTicketDevLifecycleBadge-BoAjMb08.js.map → SupportTicketDevLifecycleBadge-BYKZjEv6.js.map} +1 -1
- package/dist/{SupportTicketMaintenancePage-Bptja-xb.js → SupportTicketMaintenancePage-B07avInx.js} +1 -1
- package/dist/{SupportTicketMaintenancePage-Bptja-xb.js.map → SupportTicketMaintenancePage-B07avInx.js.map} +1 -1
- package/dist/TeamAttachmentsTab-B9fDWDrw.js +64 -0
- package/dist/TeamHistoryTab-BSEOYC_5.js +6 -0
- package/dist/{TeamHistoryTab-DM8KBEG1.js → TeamHistoryTab-p3hDxCc3.js} +3 -3
- package/dist/{TeamHistoryTab-DM8KBEG1.js.map → TeamHistoryTab-p3hDxCc3.js.map} +1 -1
- package/dist/{TeamList-BZN0Ek6v.js → TeamList-CBJOtPQR.js} +3 -3
- package/dist/{TeamList-BZN0Ek6v.js.map → TeamList-CBJOtPQR.js.map} +1 -1
- package/dist/TeamList-lMtyRe75.js +8 -0
- package/dist/{TeamMemberList-TTAPf2GN.js → TeamMemberList-D0-dM5kI.js} +3 -3
- package/dist/{TeamMemberList-TTAPf2GN.js.map → TeamMemberList-D0-dM5kI.js.map} +1 -1
- package/dist/TeamMemberList-uwSe9zdv.js +7 -0
- package/dist/{TeamMemberParent-a2xQB08R.js → TeamMemberParent-C9OEziOK.js} +3 -3
- package/dist/{TeamMemberParent-xv56jEhd.js → TeamMemberParent-CJGWXjuM.js} +2 -2
- package/dist/{TeamMemberParent-xv56jEhd.js.map → TeamMemberParent-CJGWXjuM.js.map} +1 -1
- package/dist/{EditUserPage-C0K7EGjM.js → TeamNotesTab-BnkgZd-5.js} +2 -2
- package/dist/{TeamNotesTab-BgxleidZ.js → TeamNotesTab-DPw9YEwK.js} +2 -2
- package/dist/{TeamNotesTab-BgxleidZ.js.map → TeamNotesTab-DPw9YEwK.js.map} +1 -1
- package/dist/{TeamParent-7_XO4IOH.js → TeamParent-CYKznys5.js} +2 -2
- package/dist/{TeamParent-7_XO4IOH.js.map → TeamParent-CYKznys5.js.map} +1 -1
- package/dist/TeamParent-Ckbc8M17.js +11 -0
- package/dist/{TimelineNoteInput-D6LOdKZW.js → TimelineNoteInput--q4ENAgu.js} +2 -2
- package/dist/{TimelineNoteInput-D6LOdKZW.js.map → TimelineNoteInput--q4ENAgu.js.map} +1 -1
- package/dist/{TimelineSystemEvent-zCMUx5Zz.js → TimelineSystemEvent-Ch1sZiyO.js} +1 -1
- package/dist/{TimelineSystemEvent-zCMUx5Zz.js.map → TimelineSystemEvent-Ch1sZiyO.js.map} +1 -1
- package/dist/{UserListPage-DtA8tLff.js → UserListPage-A0_eNpQ1.js} +2 -2
- package/dist/{UserListPage-DtA8tLff.js.map → UserListPage-A0_eNpQ1.js.map} +1 -1
- package/dist/UserListPage-CjpxiETO.js +5 -0
- package/dist/{UserProfilePage-DRbCAr9H.js → UserProfilePage-BWK97ODt.js} +1 -1
- package/dist/{UserProfilePage-g4-VEDXo.js → UserProfilePage-FNLYK9kj.js} +1 -1
- package/dist/{UserProfilePage-g4-VEDXo.js.map → UserProfilePage-FNLYK9kj.js.map} +1 -1
- package/dist/{VerifyEmail-CM5ehFB8.js → VerifyEmail-CEbvnWLl.js} +2 -2
- package/dist/{VerifyEmail-CM5ehFB8.js.map → VerifyEmail-CEbvnWLl.js.map} +1 -1
- package/dist/{VerifyEmail-DMHczC9f.js → VerifyEmail-DdUKxJnk.js} +2 -2
- package/dist/{ViewTeam-CbV0w4J_.js → ViewTeam-BgZzH7lK.js} +4 -4
- package/dist/{ViewTeam-CbV0w4J_.js.map → ViewTeam-BgZzH7lK.js.map} +1 -1
- package/dist/ViewTeam-zP_Jah0c.js +8 -0
- package/dist/{ViewTeamMember-y3txJoRR.js → ViewTeamMember-Cf5yXdv6.js} +4 -4
- package/dist/{ViewTeamMember-y3txJoRR.js.map → ViewTeamMember-Cf5yXdv6.js.map} +1 -1
- package/dist/ViewTeamMember-DtQCZU-X.js +7 -0
- package/dist/{ZiniaContainer-CjVhCnGB.js → ZiniaContainer-BV6sojLa.js} +1 -1
- package/dist/{ZiniaContainer-CjVhCnGB.js.map → ZiniaContainer-BV6sojLa.js.map} +1 -1
- package/dist/{convertToLocalDateTime-BF25N4xd.js → convertToLocalDateTime-C13-PrSA.js} +1 -1
- package/dist/{convertToLocalDateTime-BF25N4xd.js.map → convertToLocalDateTime-C13-PrSA.js.map} +1 -1
- package/dist/{customerSupportTicketRoutes-DYG3Vlzz.js → customerSupportTicketRoutes-DZ6mSNIQ.js} +8 -8
- package/dist/{customerSupportTicketRoutes-DYG3Vlzz.js.map → customerSupportTicketRoutes-DZ6mSNIQ.js.map} +1 -1
- package/dist/{displayIdFormatter-B-_WQHOr.js → displayIdFormatter-Cr-QaEk1.js} +1 -1
- package/dist/{displayIdFormatter-B-_WQHOr.js.map → displayIdFormatter-Cr-QaEk1.js.map} +1 -1
- package/dist/{extractRpcErrorMessage-diUBl6Ij.js → extractRpcErrorMessage-CAaeVysa.js} +1 -1
- package/dist/{extractRpcErrorMessage-diUBl6Ij.js.map → extractRpcErrorMessage-CAaeVysa.js.map} +1 -1
- package/dist/index.d.ts +115 -100
- package/dist/index.js +55 -54
- package/dist/{mfaSchema-Ukqzdyck.js → mfaSchema-C6PatIbY.js} +1 -1
- package/dist/{mfaSchema-Ukqzdyck.js.map → mfaSchema-C6PatIbY.js.map} +1 -1
- package/dist/{saved_filter-fHzm4pk5.js → saved_filter-B0MGrzy2.js} +3 -3
- package/dist/{saved_filter-fHzm4pk5.js.map → saved_filter-B0MGrzy2.js.map} +1 -1
- package/dist/{signupConsentStorage-DS9vCUuC.js → signupConsentStorage-Ct4ZuKi-.js} +1 -1
- package/dist/{signupConsentStorage-DS9vCUuC.js.map → signupConsentStorage-Ct4ZuKi-.js.map} +1 -1
- package/dist/{src-DgC3Izwe.js → src-Bx44Vnfl.js} +31 -31
- package/dist/{src-DgC3Izwe.js.map → src-Bx44Vnfl.js.map} +1 -1
- package/dist/{staffSupportTicketRoutes-Crk6BFEE.js → staffSupportTicketRoutes-CKdCYj3S.js} +8 -8
- package/dist/{staffSupportTicketRoutes-Crk6BFEE.js.map → staffSupportTicketRoutes-CKdCYj3S.js.map} +1 -1
- package/dist/{teamMemberMetadata-CQnbVepq.js → teamMemberMetadata-DX0W-B7p.js} +1 -1
- package/dist/{teamMemberMetadata-CQnbVepq.js.map → teamMemberMetadata-DX0W-B7p.js.map} +1 -1
- package/dist/{teamMetadata-DlvwO5V0.js → teamMetadata-26Mwjb2i.js} +1 -1
- package/dist/{teamMetadata-DlvwO5V0.js.map → teamMetadata-26Mwjb2i.js.map} +1 -1
- package/dist/{teamRoutes-_-DGwLZW.js → teamRoutes-BYpld9yI.js} +12 -12
- package/dist/{teamRoutes-_-DGwLZW.js.map → teamRoutes-BYpld9yI.js.map} +1 -1
- package/dist/{team_memberRoutes-B7Zzuuz8.js → team_memberRoutes-Cxgte_vj.js} +7 -7
- package/dist/{team_memberRoutes-B7Zzuuz8.js.map → team_memberRoutes-Cxgte_vj.js.map} +1 -1
- package/dist/{useEmailVerificationChannel-B51z65PN.js → useEmailVerificationChannel-QuMSgzzM.js} +1 -1
- package/dist/{useEmailVerificationChannel-B51z65PN.js.map → useEmailVerificationChannel-QuMSgzzM.js.map} +1 -1
- package/dist/{userAuthorized-C09FHWGL.js → userAuthorized-klLUHGxT.js} +5 -1
- package/dist/userAuthorized-klLUHGxT.js.map +1 -0
- package/package.json +2 -2
- package/dist/ConsentFlowStep-DbQpQQA-.js.map +0 -1
- package/dist/CreateTeamForm-BnC_JPEK.js +0 -12
- package/dist/CustomerSupportTicketList-DoWnrEwj.js +0 -63
- package/dist/EditTeamForm-DS_zV1Mk.js +0 -12
- package/dist/Logout-CFLYHlLr.js.map +0 -1
- package/dist/Signup-XdImA1os.js +0 -9
- package/dist/SignupRequirementsPage-Cf-ElkEq.js.map +0 -1
- package/dist/StaffSupportTicketList-DejFCAh7.js +0 -63
- package/dist/TeamAttachmentsTab-D4iYMMF3.js +0 -63
- package/dist/TeamHistoryTab-CRONdHcL.js +0 -6
- package/dist/TeamList-DXtr4j1y.js +0 -8
- package/dist/TeamMemberList-JfyklWlt.js +0 -7
- package/dist/TeamParent-Cf6RWFHo.js +0 -11
- package/dist/UserListPage-Bmwg0an5.js +0 -5
- package/dist/ViewTeam-LAQmZPzc.js +0 -8
- package/dist/ViewTeamMember-DtWqc_q5.js +0 -7
- package/dist/userAuthorized-C09FHWGL.js.map +0 -1
- /package/dist/{Appearance-Ch4zfWZ3.js → Appearance-CHCv4Fd1.js} +0 -0
- /package/dist/{TeamMembersTab-BGcdyEE8.js → TeamMembersTab-CeOJAhhR.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignupRequirementsPage-Cf-ElkEq.js","names":["consentItemFieldMetadata: {\n [K in PathsOf<typeof SignupConsentItemFormSchema>]: SchemaFieldMetadata;\n}","config: SignupRequirementsDto"],"sources":["../src/slices/admin/features/signup_requirements/signupRequirementsFormMetadata.ts","../src/slices/admin/features/signup_requirements/SignupRequirementsPage.vue"],"sourcesContent":["import {\n SignupConsentItemFormSchema,\n type SignupConsentItemFormDto,\n} from '@dragonmastery/dragoncore-shared';\nimport {\n withMetadata,\n type PathsOf,\n type SchemaFieldMetadata,\n} from '@dragonmastery/zinia-forms-core';\nimport { z } from 'zod';\n\n/** Field metadata for consent item form — keys must match schema paths */\nexport const consentItemFieldMetadata: {\n [K in PathsOf<typeof SignupConsentItemFormSchema>]: SchemaFieldMetadata;\n} = {\n type: {\n label: 'Type',\n helpText: 'Type (e.g. terms_of_service, privacy_policy)',\n placeholder: 'terms_of_service',\n },\n version: {\n label: 'Version',\n helpText: 'Version (e.g. 2025.1)',\n placeholder: '2025.1',\n },\n label: {\n label: 'Label',\n placeholder: 'Terms of Service',\n },\n effective_at: {\n label: 'Effective at',\n inputType: 'datetime-local',\n helpText:\n 'When this version becomes enforceable for existing users. Set to now for immediate effect.',\n },\n url: {\n label: 'URL',\n helpText: 'URL (link to document)',\n placeholder: 'https://example.com/terms',\n },\n required: {\n label: 'Required',\n helpText: 'User must accept to sign up',\n inputType: 'checkbox' as const,\n },\n content: {\n label: 'Content',\n helpText: 'Optional, Markdown — when set, shown in scroll box; user must scroll to bottom',\n placeholder: '# Terms of Service\\n\\nYour markdown content here...',\n inputType: 'textarea',\n },\n};\n\n/** Item schema with metadata - used as array element (like followupCreateMetadata in tracker) */\nexport const signupConsentItemFormMetadata = withMetadata(\n SignupConsentItemFormSchema,\n 'signupConsentItemForm',\n consentItemFieldMetadata,\n);\n\n/** Full form schema with items array using metadata-wrapped item schema */\nexport const signupRequirementsFormMetadata = withMetadata(\n z.object({\n items: z.array(signupConsentItemFormMetadata).default([]),\n }),\n 'signupRequirementsForm',\n {},\n);\n\nexport function createEmptyConsentItem(): SignupConsentItemFormDto {\n const now = new Date();\n const pad = (n: number) => String(n).padStart(2, '0');\n const effectiveAt = `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}T${pad(now.getHours())}:${pad(now.getMinutes())}`;\n return {\n type: '',\n required: true,\n url: '',\n label: '',\n version: '1',\n effective_at: effectiveAt,\n content: '',\n };\n}\n","<template>\n <div class=\"mt-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h1 class=\"text-2xl font-bold\">Signup Requirements</h1>\n </div>\n\n <p class=\"text-base-content/70 mb-4\">\n Configure consent checkboxes shown on signup and consent-required flows. Each item can be\n required or optional. When <strong>content</strong> is provided, terms are shown in a\n scroll box (Markdown supported) and the user must scroll to bottom before accepting. When\n content is omitted, only a link is shown.\n </p>\n\n <div v-if=\"isLoading\" class=\"flex justify-center py-8\">\n <span class=\"loading loading-spinner loading-lg\"></span>\n </div>\n\n <div v-else class=\"space-y-6\">\n <ZiniaForm\n @handle-submit=\"handleSubmit\"\n @success=\"handleSuccess\"\n @error=\"handleError\"\n title=\"\"\n subtitle=\"\"\n >\n <zinia.ItemsField label=\"Consent Items\" :create-item=\"createEmptyConsentItem\">\n <template #itemPreview=\"{ item }\">\n <div class=\"font-medium text-sm\">\n {{ item.label || item.type || 'Item' }}\n <span v-if=\"item.type\" class=\"text-base-content/60\">({{ item.type }})</span>\n </div>\n </template>\n <template #itemRenderer=\"{ fields }\">\n <div class=\"space-y-3\">\n <div class=\"grid grid-cols-1 md:grid-cols-3 gap-3\">\n <ziniaGeneric.TextField\n :name=\"fields.type\"\n :label=\"consentItemFieldMetadata.type.label\"\n :placeholder=\"consentItemFieldMetadata.type.placeholder\"\n required\n />\n <ziniaGeneric.TextField\n :name=\"fields.version\"\n :label=\"consentItemFieldMetadata.version.label\"\n :placeholder=\"consentItemFieldMetadata.version.placeholder\"\n required\n />\n <ziniaGeneric.TextField\n :name=\"fields.label\"\n :label=\"consentItemFieldMetadata.label.label\"\n :placeholder=\"consentItemFieldMetadata.label.placeholder\"\n required\n />\n </div>\n <ziniaGeneric.DateField\n :name=\"fields.effective_at\"\n :label=\"consentItemFieldMetadata.effective_at.label\"\n :formatter=\"formatToISODatetime\"\n required\n />\n <ziniaGeneric.TextField\n :name=\"fields.url\"\n :label=\"consentItemFieldMetadata.url.label\"\n :placeholder=\"consentItemFieldMetadata.url.placeholder\"\n type=\"url\"\n />\n <ziniaGeneric.CheckboxField\n :name=\"fields.required\"\n :label=\"consentItemFieldMetadata.required.label\"\n />\n <ziniaGeneric.TextareaField\n :name=\"fields.content\"\n :label=\"consentItemFieldMetadata.content.label\"\n :placeholder=\"consentItemFieldMetadata.content.placeholder\"\n :rows=\"5\"\n class=\"font-mono text-sm\"\n />\n </div>\n </template>\n </zinia.ItemsField>\n\n <div v-if=\"form.submitError\" class=\"alert alert-error mt-2\">\n <span>{{ form.submitError }}</span>\n </div>\n\n <div class=\"mt-4 flex justify-end\">\n <ZiniaSubmitButton\n submitText=\"Save\"\n submittingText=\"Saving...\"\n :disabled=\"!hasChanges\"\n />\n </div>\n </ZiniaForm>\n\n <!-- Version History -->\n <div class=\"card bg-base-200\">\n <div class=\"card-body\">\n <h2 class=\"card-title text-lg\">Version History</h2>\n <p class=\"text-sm text-base-content/70\">\n Past changes to signup requirements. Each save creates a new version.\n </p>\n <RecordVersionList\n :versions=\"versionHistoryItems\"\n :loading=\"versionHistoryLoading\"\n :error=\"versionHistoryError\"\n :has-next-page=\"versionHistoryPageInfo?.hasNextPage ?? false\"\n :loading-more=\"versionHistoryLoadingMore\"\n :config=\"versionListConfig\"\n exclude-latest\n @retry=\"refetchVersionHistory\"\n @load-more=\"loadMoreVersions\"\n />\n <dialog ref=\"versionModalRef\" class=\"modal\">\n <div class=\"modal-box max-w-4xl max-h-[90vh] overflow-auto\">\n <RecordVersionViewer\n v-if=\"selectedVersion\"\n :version=\"selectedVersion\"\n :record-data=\"selectedVersionRecordData\"\n :config=\"versionViewerConfig\"\n >\n <template #content=\"{ recordData }\">\n <div v-if=\"recordData?.items?.length\" class=\"space-y-4\">\n <h3 class=\"font-semibold\">Consent items at this version</h3>\n <div\n v-for=\"(item, idx) in recordData.items\"\n :key=\"idx\"\n class=\"border border-base-300 rounded p-3 text-sm space-y-1\"\n >\n <div><strong>Type:</strong> {{ item.type }}</div>\n <div><strong>Version:</strong> {{ item.version }}</div>\n <div><strong>Label:</strong> {{ item.label }}</div>\n <div><strong>Effective at:</strong> {{ item.effective_at }}</div>\n <div><strong>Required:</strong> {{ item.required ? 'Yes' : 'No' }}</div>\n <div v-if=\"item.url\"><strong>URL:</strong> {{ item.url }}</div>\n </div>\n </div>\n <pre v-else class=\"text-xs bg-base-200 p-3 rounded overflow-auto max-h-96\">{{\n JSON.stringify(recordData, null, 2)\n }}</pre>\n </template>\n </RecordVersionViewer>\n </div>\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button type=\"button\" @click=\"closeVersionModal\">close</button>\n </form>\n </dialog>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { SignupRequirementsDto } from '@dragonmastery/dragoncore-shared';\nimport { RecordConst } from '@dragonmastery/dragoncore-shared';\nimport { useForm } from '@dragonmastery/zinia-forms-core';\nimport { computed, ref } from 'vue';\nimport { toast } from 'vue3-toastify';\nimport RecordVersionList from '../../../../components/ui/RecordVersionList.vue';\nimport RecordVersionViewer from '../../../../components/ui/RecordVersionViewer.vue';\nimport { useMutation } from '../../../../composables/useMutation';\nimport { useQuery } from '../../../../composables/useQuery';\nimport { formatToISODatetime } from '../../../../utils/convertToLocalDateTime';\nimport { extractRpcErrorMessage } from '../../../../utils/extractRpcErrorMessage';\nimport {\n consentItemFieldMetadata,\n createEmptyConsentItem,\n signupRequirementsFormMetadata,\n} from './signupRequirementsFormMetadata';\n\nconst {\n data: _signupRequirements,\n loading: isLoading,\n refetch,\n} = useQuery((api) => api.appSettings.getSignupRequirements(), {\n // cacheKey: 'admin-signup-requirements',\n // staleTime: 30 * 1000,\n});\n\nconst { form, zinia, ziniaGeneric, ZiniaForm, ZiniaSubmitButton } = useForm(\n signupRequirementsFormMetadata,\n {\n storeName: 'admin-signup-requirements-form',\n persistToLocalStorage: false,\n renderStyle: 'daisy_ui',\n // wait for signup requirements to load\n fetchData: async () => {\n while (isLoading.value) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n }\n return { items: _signupRequirements.value ?? [] };\n },\n },\n);\n\nconst initialSnapshot = ref<string>('');\n\nconst hasChanges = computed(() => {\n const current = form.values?.items ?? [];\n return JSON.stringify(current) !== initialSnapshot.value;\n});\n\nconst { mutate: updateSignupRequirements } = useMutation(\n (api, config: SignupRequirementsDto) => api.appSettings.updateSignupRequirements(config),\n { invalidate: /admin-signup-requirements/ },\n);\n\nasync function handleSubmit(formData: {\n items: Array<{\n type: string;\n required: boolean;\n url: string;\n label: string;\n version: string;\n effective_at: string;\n content?: string | null;\n }>;\n}) {\n const config: SignupRequirementsDto = formData.items.map((c) => ({\n type: c.type.trim() || 'unknown',\n required: c.required,\n url: c.url.trim(),\n label: c.label.trim() || c.type.trim() || 'Consent',\n version: c.version.trim() || '1',\n effective_at:\n (c.effective_at?.trim()\n ? formatToISODatetime(c.effective_at.trim())\n : formatToISODatetime(new Date().toISOString())) ?? new Date().toISOString(),\n content: c.content?.trim() ? c.content.trim() : undefined,\n }));\n await updateSignupRequirements(config);\n}\n\nasync function handleSuccess() {\n toast.success('Signup requirements saved');\n initialSnapshot.value = JSON.stringify(form.values?.items ?? []);\n await refetch();\n await refetchVersionHistory();\n}\n\nfunction handleError(error: Error | unknown) {\n const message = error instanceof Error ? error.message : 'An unknown error occurred';\n form.setSubmitError(extractRpcErrorMessage(error, message));\n toast.error(form.submitError ?? 'Failed to save signup requirements');\n}\n\n// Version history\nconst VERSION_HISTORY_KEY = 'admin-signup-requirements-history';\n\nconst {\n data: versionHistoryData,\n loading: versionHistoryLoading,\n error: versionHistoryError,\n refetch: refetchVersionHistory,\n} = useQuery(\n async (api) =>\n api.recordVersions.listRecordVersionsPaginated(\n 'signup_requirements',\n RecordConst.APP_SETTING,\n {\n first: 50,\n sortBy: 'recorded_at',\n sortDirection: 'desc',\n },\n ),\n {\n cacheKey: VERSION_HISTORY_KEY,\n staleTime: 60 * 1000,\n },\n);\n\nconst versionHistoryItems = computed(() => versionHistoryData.value?.items ?? []);\nconst versionHistoryPageInfo = computed(() => versionHistoryData.value?.pageInfo);\nconst versionHistoryLoadingMore = ref(false);\n\nfunction loadMoreVersions() {\n // Pagination: could add cursor-based load more if needed\n}\n\nconst versionListConfig = {\n recordDisplayName: 'signup requirements',\n noVersionsText: 'No previous versions. Save changes to create the first version.',\n viewAction: (version: { id: string }) => openVersionModal(version),\n viewActionText: 'View',\n};\n\nconst versionModalRef = ref<HTMLDialogElement | null>(null);\nconst selectedVersion = ref<{\n id: string;\n operation: string;\n recorded_at: string;\n auth_username?: string | null;\n record?: unknown;\n old_record?: unknown;\n} | null>(null);\n\nconst selectedVersionRecordData = computed(() => {\n if (!selectedVersion.value) return null;\n const v = selectedVersion.value;\n const record = v.record;\n if (Array.isArray(record)) return { items: record };\n if (typeof record === 'object' && record !== null) return record;\n if (typeof record === 'string') {\n try {\n const parsed = JSON.parse(record);\n return Array.isArray(parsed) ? { items: parsed } : parsed;\n } catch {\n return { raw: record };\n }\n }\n return null;\n});\n\nconst versionViewerConfig = {\n recordDisplayName: 'signup requirements',\n title: 'Signup Requirements Version',\n onBack: () => closeVersionModal(),\n excludeFields: ['raw'],\n};\n\nfunction openVersionModal(version: { id: string; record?: unknown; old_record?: unknown }) {\n selectedVersion.value = version as typeof selectedVersion.value;\n versionModalRef.value?.showModal();\n}\n\nfunction closeVersionModal() {\n selectedVersion.value = null;\n versionModalRef.value?.close();\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -1,63 +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 { f as StaffSupportTicketList_default } from "./src-DgC3Izwe.js";
|
|
7
|
-
import "./AppLink-FcNGKgvG.js";
|
|
8
|
-
import "./saved_filter-fHzm4pk5.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 "./FieldsetSection-Cd4B8Ad7.js";
|
|
15
|
-
import "./RecordVersionViewer-D2j10HdK.js";
|
|
16
|
-
import "./ZiniaContainer-CjVhCnGB.js";
|
|
17
|
-
import "./userAuthorized-C09FHWGL.js";
|
|
18
|
-
import "./UserProfilePage-g4-VEDXo.js";
|
|
19
|
-
import "./ChangePasswordPage-C633yQiU.js";
|
|
20
|
-
import "./teamMetadata-DlvwO5V0.js";
|
|
21
|
-
import "./team_memberRoutes-B7Zzuuz8.js";
|
|
22
|
-
import "./teamRoutes-_-DGwLZW.js";
|
|
23
|
-
import "./CreateTeamForm-CvMUbK5X.js";
|
|
24
|
-
import "./EditTeamForm-CPJBjZa2.js";
|
|
25
|
-
import "./TeamHistoryTab-DM8KBEG1.js";
|
|
26
|
-
import "./TeamList-BZN0Ek6v.js";
|
|
27
|
-
import "./TeamNotesTab-BgxleidZ.js";
|
|
28
|
-
import "./TeamParent-7_XO4IOH.js";
|
|
29
|
-
import "./ViewTeam-CbV0w4J_.js";
|
|
30
|
-
import "./teamMemberMetadata-CQnbVepq.js";
|
|
31
|
-
import "./CreateTeamMemberForm-DUVHzzF0.js";
|
|
32
|
-
import "./EditTeamMemberForm-DfgJr5Cy.js";
|
|
33
|
-
import "./TeamMemberList-TTAPf2GN.js";
|
|
34
|
-
import "./TeamMemberParent-xv56jEhd.js";
|
|
35
|
-
import "./ViewTeamMember-y3txJoRR.js";
|
|
36
|
-
import "./customerSupportTicketRoutes-DYG3Vlzz.js";
|
|
37
|
-
import "./staffSupportTicketRoutes-Crk6BFEE.js";
|
|
38
|
-
import "./TimelineSystemEvent-zCMUx5Zz.js";
|
|
39
|
-
import "./CustomerCreateSupportTicketForm-BDNs8cKo.js";
|
|
40
|
-
import "./CustomerSupportTicketParent-BpBuYCrP.js";
|
|
41
|
-
import "./CustomerSupportTicketSuccess-DZ6_1jL9.js";
|
|
42
|
-
import "./StaffCreateSupportTicketForm-BgaZJWpj.js";
|
|
43
|
-
import "./SupportTicketDevLifecycleBadge-BoAjMb08.js";
|
|
44
|
-
import "./StaffSupportTicketParent-BvPwgOqH.js";
|
|
45
|
-
import "./StaffSupportTicketSuccess-CUu2MNXF.js";
|
|
46
|
-
import "./LoginForm-CMN2T1fA.js";
|
|
47
|
-
import "./useEmailVerificationChannel-B51z65PN.js";
|
|
48
|
-
import "./Signup-2pqvJiVt.js";
|
|
49
|
-
import "./ForgotPassword-Ckb9Z-wb.js";
|
|
50
|
-
import "./ResetPassword-Cd-Yxp8E.js";
|
|
51
|
-
import "./Logout-CFLYHlLr.js";
|
|
52
|
-
import "./mfaSchema-Ukqzdyck.js";
|
|
53
|
-
import "./MfaSetup-85i4HlNJ.js";
|
|
54
|
-
import "./MfaVerify-C-A75TFZ.js";
|
|
55
|
-
import "./VerifyEmail-CM5ehFB8.js";
|
|
56
|
-
import "./UserListPage-DtA8tLff.js";
|
|
57
|
-
import "./CreateUserPage-CqKcY7_X.js";
|
|
58
|
-
import "./EditUserPage-CI_jtU8P.js";
|
|
59
|
-
import "./CreditTransactionHistory-cYyRFOdS.js";
|
|
60
|
-
import "./CreditBalanceDashboard-CSUKpYSo.js";
|
|
61
|
-
import "./CreditManagement-BdRd_TLz.js";
|
|
62
|
-
|
|
63
|
-
export { StaffSupportTicketList_default as default };
|
|
@@ -1,63 +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 { D as TeamAttachmentsTab_default } from "./src-DgC3Izwe.js";
|
|
7
|
-
import "./AppLink-FcNGKgvG.js";
|
|
8
|
-
import "./saved_filter-fHzm4pk5.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 "./FieldsetSection-Cd4B8Ad7.js";
|
|
15
|
-
import "./RecordVersionViewer-D2j10HdK.js";
|
|
16
|
-
import "./ZiniaContainer-CjVhCnGB.js";
|
|
17
|
-
import "./userAuthorized-C09FHWGL.js";
|
|
18
|
-
import "./UserProfilePage-g4-VEDXo.js";
|
|
19
|
-
import "./ChangePasswordPage-C633yQiU.js";
|
|
20
|
-
import "./teamMetadata-DlvwO5V0.js";
|
|
21
|
-
import "./team_memberRoutes-B7Zzuuz8.js";
|
|
22
|
-
import "./teamRoutes-_-DGwLZW.js";
|
|
23
|
-
import "./CreateTeamForm-CvMUbK5X.js";
|
|
24
|
-
import "./EditTeamForm-CPJBjZa2.js";
|
|
25
|
-
import "./TeamHistoryTab-DM8KBEG1.js";
|
|
26
|
-
import "./TeamList-BZN0Ek6v.js";
|
|
27
|
-
import "./TeamNotesTab-BgxleidZ.js";
|
|
28
|
-
import "./TeamParent-7_XO4IOH.js";
|
|
29
|
-
import "./ViewTeam-CbV0w4J_.js";
|
|
30
|
-
import "./teamMemberMetadata-CQnbVepq.js";
|
|
31
|
-
import "./CreateTeamMemberForm-DUVHzzF0.js";
|
|
32
|
-
import "./EditTeamMemberForm-DfgJr5Cy.js";
|
|
33
|
-
import "./TeamMemberList-TTAPf2GN.js";
|
|
34
|
-
import "./TeamMemberParent-xv56jEhd.js";
|
|
35
|
-
import "./ViewTeamMember-y3txJoRR.js";
|
|
36
|
-
import "./customerSupportTicketRoutes-DYG3Vlzz.js";
|
|
37
|
-
import "./staffSupportTicketRoutes-Crk6BFEE.js";
|
|
38
|
-
import "./TimelineSystemEvent-zCMUx5Zz.js";
|
|
39
|
-
import "./CustomerCreateSupportTicketForm-BDNs8cKo.js";
|
|
40
|
-
import "./CustomerSupportTicketParent-BpBuYCrP.js";
|
|
41
|
-
import "./CustomerSupportTicketSuccess-DZ6_1jL9.js";
|
|
42
|
-
import "./StaffCreateSupportTicketForm-BgaZJWpj.js";
|
|
43
|
-
import "./SupportTicketDevLifecycleBadge-BoAjMb08.js";
|
|
44
|
-
import "./StaffSupportTicketParent-BvPwgOqH.js";
|
|
45
|
-
import "./StaffSupportTicketSuccess-CUu2MNXF.js";
|
|
46
|
-
import "./LoginForm-CMN2T1fA.js";
|
|
47
|
-
import "./useEmailVerificationChannel-B51z65PN.js";
|
|
48
|
-
import "./Signup-2pqvJiVt.js";
|
|
49
|
-
import "./ForgotPassword-Ckb9Z-wb.js";
|
|
50
|
-
import "./ResetPassword-Cd-Yxp8E.js";
|
|
51
|
-
import "./Logout-CFLYHlLr.js";
|
|
52
|
-
import "./mfaSchema-Ukqzdyck.js";
|
|
53
|
-
import "./MfaSetup-85i4HlNJ.js";
|
|
54
|
-
import "./MfaVerify-C-A75TFZ.js";
|
|
55
|
-
import "./VerifyEmail-CM5ehFB8.js";
|
|
56
|
-
import "./UserListPage-DtA8tLff.js";
|
|
57
|
-
import "./CreateUserPage-CqKcY7_X.js";
|
|
58
|
-
import "./EditUserPage-CI_jtU8P.js";
|
|
59
|
-
import "./CreditTransactionHistory-cYyRFOdS.js";
|
|
60
|
-
import "./CreditBalanceDashboard-CSUKpYSo.js";
|
|
61
|
-
import "./CreditManagement-BdRd_TLz.js";
|
|
62
|
-
|
|
63
|
-
export { TeamAttachmentsTab_default as default };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
-
import "./userAuthorized-C09FHWGL.js";
|
|
4
|
-
import "./team_memberRoutes-B7Zzuuz8.js";
|
|
5
|
-
import "./teamRoutes-_-DGwLZW.js";
|
|
6
|
-
import { t as TeamList_default } from "./TeamList-BZN0Ek6v.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-C09FHWGL.js";
|
|
4
|
-
import "./team_memberRoutes-B7Zzuuz8.js";
|
|
5
|
-
import { t as TeamMemberList_default } from "./TeamMemberList-TTAPf2GN.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-C09FHWGL.js";
|
|
7
|
-
import "./team_memberRoutes-B7Zzuuz8.js";
|
|
8
|
-
import "./teamRoutes-_-DGwLZW.js";
|
|
9
|
-
import { t as TeamParent_default } from "./TeamParent-7_XO4IOH.js";
|
|
10
|
-
|
|
11
|
-
export { TeamParent_default as default };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./ZiniaContainer-CjVhCnGB.js";
|
|
3
|
-
import "./userAuthorized-C09FHWGL.js";
|
|
4
|
-
import "./team_memberRoutes-B7Zzuuz8.js";
|
|
5
|
-
import "./teamRoutes-_-DGwLZW.js";
|
|
6
|
-
import { t as ViewTeam_default } from "./ViewTeam-CbV0w4J_.js";
|
|
7
|
-
|
|
8
|
-
export { ViewTeam_default as default };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
-
import "./ZiniaContainer-CjVhCnGB.js";
|
|
3
|
-
import "./userAuthorized-C09FHWGL.js";
|
|
4
|
-
import "./team_memberRoutes-B7Zzuuz8.js";
|
|
5
|
-
import { t as ViewTeamMember_default } from "./ViewTeamMember-y3txJoRR.js";
|
|
6
|
-
|
|
7
|
-
export { ViewTeamMember_default as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userAuthorized-C09FHWGL.js","names":[],"sources":["../src/middleware/userAuthorized.ts"],"sourcesContent":["import type { UserTypeValues } from '@dragonmastery/dragoncore-shared';\nimport type { NavigationGuard, RouteLocationRaw } from 'vue-router';\nimport { createAppBatch } from '../composables/useRpcAuth';\nimport { useEnv } from '../composables/useEnv';\nimport { useUserSessionStore } from '../composables/useUserSessionStore';\nimport { logger } from '../utils/logger';\n\nexport interface UserAuthorizedOptions {\n /**\n * List of user types allowed to access this route\n * Same pattern as `visible_to` in route meta\n */\n allowedUserTypes: UserTypeValues[];\n\n /**\n * Where to redirect if user is not authorized\n * Can be a route name, path, or route object\n */\n redirectTo?: RouteLocationRaw;\n\n /**\n * Login path for redirecting unauthenticated users\n * Only used if requireAuth is true\n */\n loginPath?: string;\n\n /**\n * Whether to also check authentication (token refresh, etc.)\n * Default: true\n */\n requireAuth?: boolean;\n}\n\n/**\n * Creates a navigation guard that checks both authentication and authorization\n * based on allowed user types.\n *\n * @example\n * // Only staff and super_admin can access\n * const staffOnly = createUserAuthorizedGuard({\n * allowedUserTypes: ['staff', 'super_admin'],\n * redirectTo: { name: 'Home' }\n * });\n *\n * @example\n * // All authenticated users can access\n * const authenticated = createUserAuthorizedGuard({\n * allowedUserTypes: ['consumer', 'lead', 'staff', 'super_admin'],\n * redirectTo: { name: 'Home' }\n * });\n */\nexport function createUserAuthorizedGuard(options: UserAuthorizedOptions): NavigationGuard {\n const {\n allowedUserTypes,\n redirectTo = { name: 'Home' },\n loginPath = '/auth/login',\n requireAuth = true,\n } = options;\n\n return async (to, _from, next) => {\n const userSession = useUserSessionStore();\n const env = useEnv();\n\n // Step 1: Check authentication if required\n if (requireAuth) {\n const hasAccessToken = !!userSession.accessToken;\n\n if (hasAccessToken) {\n const { accessTokenExpired, refreshTokenExpired } = userSession.isTokenExpired();\n\n if (!accessTokenExpired) {\n // Token is valid, proceed to authorization check\n } else if (refreshTokenExpired) {\n // Refresh token expired, redirect to login\n logger.warn('[UserAuthorized] Refresh token expired, redirecting to login');\n userSession.clearSession();\n const returnUrl = to.fullPath;\n next({\n path: loginPath,\n query: { returnUrl },\n });\n return;\n } else {\n // Access token expired, try refresh\n logger.debug('[UserAuthorized] Access token expired, attempting refresh');\n const refreshSuccessful = await userSession.refreshToken();\n\n if (!refreshSuccessful) {\n logger.error('[UserAuthorized] Token refresh failed, redirecting to login');\n userSession.clearSession();\n const returnUrl = to.fullPath;\n next({\n path: loginPath,\n query: { returnUrl },\n });\n return;\n }\n }\n } else {\n // No access token, try refresh token flow\n logger.debug('[UserAuthorized] No access token, attempting refresh token flow');\n const refreshSuccessful = await userSession.refreshToken();\n\n if (!refreshSuccessful) {\n logger.debug('[UserAuthorized] No valid session found, redirecting to login');\n userSession.clearSession();\n const returnUrl = to.fullPath;\n next({\n path: loginPath,\n query: { returnUrl },\n });\n return;\n }\n }\n }\n\n // Step 2: Check consent status\n // Call getPendingConsents for fresh data - backend returns [] when CONSENT_FEATURE_ENABLED is false\n if (to.path !== '/auth/consent-required') {\n try {\n const batch = createAppBatch();\n const pending = await batch.users.getPendingConsents();\n if (pending && pending.length > 0) {\n logger.debug('[UserAuthorized] Pending consents found, redirecting to consent-required');\n next({\n path: '/auth/consent-required',\n query: { returnUrl: to.fullPath, ...to.query },\n });\n return;\n }\n } catch (err) {\n logger.warn('[UserAuthorized] Failed to check pending consents, continuing', { err });\n // On auth/network error, let user proceed; they may hit CONSENT_REQUIRED on next API call\n }\n }\n\n // Step 2.5: In strict mode, block unverified users from app entirely\n if (\n !to.path.startsWith('/auth/') &&\n env.emailVerificationMode === 'strict'\n ) {\n const emailVerified = userSession.currentSession?.user?.email_verified ?? true;\n if (!emailVerified) {\n logger.debug('[UserAuthorized] Strict mode: unverified user, redirecting to verify-email');\n next({ path: '/auth/verify-email', query: { returnUrl: to.fullPath } });\n return;\n }\n }\n\n // Step 3: Check authorization (user type)\n const userType = userSession.currentSession?.user.user_type;\n\n if (!userType) {\n logger.warn('[UserAuthorized] No user type found, redirecting');\n next(redirectTo);\n return;\n }\n\n if (allowedUserTypes.includes(userType)) {\n logger.debug(`[UserAuthorized] User type '${userType}' is authorized`);\n next();\n } else {\n logger.warn(\n `[UserAuthorized] User type '${userType}' is not authorized. Allowed: ${allowedUserTypes.join(', ')}`,\n );\n next(redirectTo);\n }\n };\n}\n\n/**\n * Pre-built guard: Staff and super admin only\n * Redirects non-staff users to the provided redirect path\n */\nexport function createStaffOnlyGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['staff', 'super_admin'],\n redirectTo: options?.redirectTo ?? { name: 'Home' },\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-built guard: Super admin only\n * Redirects non-super-admin users to the provided redirect path\n */\nexport function createSuperAdminOnlyGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['super_admin'],\n redirectTo: options?.redirectTo ?? '/notfound',\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-built guard: All authenticated users\n * Any logged-in user can access (consumer, lead, staff, or super_admin)\n */\nexport function createAuthenticatedGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['consumer', 'lead', 'staff', 'super_admin'],\n redirectTo: options?.redirectTo ?? { name: 'Home' },\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-built guard: Lead, staff, and super admin\n * Consumers are not allowed\n */\nexport function createLeadOrStaffOnlyGuard(options?: {\n redirectTo?: RouteLocationRaw;\n loginPath?: string;\n}): NavigationGuard {\n return createUserAuthorizedGuard({\n allowedUserTypes: ['lead', 'staff', 'super_admin'],\n redirectTo: options?.redirectTo ?? { name: 'Home' },\n loginPath: options?.loginPath,\n });\n}\n\n/**\n * Pre-configured guards with sensible defaults\n * Apps can use these directly or override with create*Guard functions\n */\n\n/**\n * Pre-configured: All authenticated users\n * Default redirect: Home, Default login: /auth/login\n */\nexport const userAuthenticated = createAuthenticatedGuard();\n\n/**\n * Pre-configured: Staff and super admin only\n * Default redirect: Home, Default login: /auth/login\n */\nexport const staffOnly = createStaffOnlyGuard();\n\n/**\n * Pre-configured: Super admin only\n * Default redirect: /notfound, Default login: /auth/login\n */\nexport const userIsSuperAdmin = createSuperAdminOnlyGuard();\n\n/**\n * Pre-configured: Lead, staff, and super admin\n * Default redirect: Home, Default login: /auth/login\n */\nexport const leadOrStaffOnly = createLeadOrStaffOnlyGuard();\n"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|