@dragonmastery/dragoncore-vue 0.0.22 → 0.0.24
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/{AppLink-CHMMrSFI.js → AppLink-FcNGKgvG.js} +1 -1
- package/dist/{AppLink-CHMMrSFI.js.map → AppLink-FcNGKgvG.js.map} +1 -1
- package/dist/Appearance-Ch4zfWZ3.js +3 -0
- package/dist/{Appearance-DxWTyx1M.js → Appearance-shr0Aql0.js} +1 -1
- package/dist/{Appearance-DxWTyx1M.js.map → Appearance-shr0Aql0.js.map} +1 -1
- package/dist/{ChangePasswordPage-ePeFkv_6.js → ChangePasswordPage-C633yQiU.js} +2 -2
- package/dist/{ChangePasswordPage-ePeFkv_6.js.map → ChangePasswordPage-C633yQiU.js.map} +1 -1
- package/dist/ChangePasswordPage-CYuCCosx.js +7 -0
- package/dist/ConfirmDialog-DjthOYU6.js +85 -0
- package/dist/ConfirmDialog-DjthOYU6.js.map +1 -0
- package/dist/ConsentFlowStep-DbQpQQA-.js +149 -0
- package/dist/ConsentFlowStep-DbQpQQA-.js.map +1 -0
- package/dist/ConsentRequired-BiCKEVBG.js +113 -0
- package/dist/ConsentRequired-BiCKEVBG.js.map +1 -0
- package/dist/CreateTeamForm-BnC_JPEK.js +12 -0
- package/dist/CreateTeamForm-CvMUbK5X.js +142 -0
- package/dist/CreateTeamForm-CvMUbK5X.js.map +1 -0
- package/dist/CreateTeamMemberForm-DUVHzzF0.js +140 -0
- package/dist/CreateTeamMemberForm-DUVHzzF0.js.map +1 -0
- package/dist/CreateTeamMemberForm-QpDhqvfb.js +12 -0
- package/dist/CreateUserPage-C9uOeYDJ.js +7 -0
- package/dist/{CreateUserPage-Cdv-3U5M.js → CreateUserPage-CqKcY7_X.js} +2 -2
- package/dist/{CreateUserPage-Cdv-3U5M.js.map → CreateUserPage-CqKcY7_X.js.map} +1 -1
- package/dist/CreditBalanceDashboard-CS4fV6MP.js +13 -0
- package/dist/CreditBalanceDashboard-CSUKpYSo.js +28 -0
- package/dist/CreditBalanceDashboard-CSUKpYSo.js.map +1 -0
- package/dist/CreditManagement-BdRd_TLz.js +356 -0
- package/dist/CreditManagement-BdRd_TLz.js.map +1 -0
- package/dist/CreditManagement-Buuew7-f.js +13 -0
- package/dist/CreditTransactionHistory-cYyRFOdS.js +229 -0
- package/dist/CreditTransactionHistory-cYyRFOdS.js.map +1 -0
- package/dist/CustomerCreateSupportTicketForm-BDNs8cKo.js +158 -0
- package/dist/CustomerCreateSupportTicketForm-BDNs8cKo.js.map +1 -0
- package/dist/CustomerCreateSupportTicketForm-Dk6lwDGL.js +14 -0
- package/dist/{CustomerSupportTicketDetailPage-UGqVoV4j.js → CustomerSupportTicketDetailPage-DGfUzPl8.js} +12 -9
- package/dist/{CustomerSupportTicketDetailPage-UGqVoV4j.js.map → CustomerSupportTicketDetailPage-DGfUzPl8.js.map} +1 -1
- package/dist/CustomerSupportTicketList-DoWnrEwj.js +63 -0
- package/dist/{CustomerSupportTicketParent-C2XdM5f7.js → CustomerSupportTicketParent-BpBuYCrP.js} +4 -4
- package/dist/{CustomerSupportTicketParent-C2XdM5f7.js.map → CustomerSupportTicketParent-BpBuYCrP.js.map} +1 -1
- package/dist/CustomerSupportTicketParent-Djy7pNqO.js +8 -0
- package/dist/CustomerSupportTicketSuccess-BKQ07Y8H.js +12 -0
- package/dist/CustomerSupportTicketSuccess-DZ6_1jL9.js +54 -0
- package/dist/CustomerSupportTicketSuccess-DZ6_1jL9.js.map +1 -0
- package/dist/EditTeamForm-CPJBjZa2.js +163 -0
- package/dist/EditTeamForm-CPJBjZa2.js.map +1 -0
- package/dist/EditTeamForm-DS_zV1Mk.js +12 -0
- package/dist/EditTeamMemberForm-D7D1Zddh.js +9 -0
- package/dist/{EditTeamMemberForm-BgjNP8MZ.js → EditTeamMemberForm-DfgJr5Cy.js} +7 -72
- package/dist/EditTeamMemberForm-DfgJr5Cy.js.map +1 -0
- package/dist/EditUserPage-C0K7EGjM.js +8 -0
- package/dist/{EditUserPage-uLPhRW5x.js → EditUserPage-CI_jtU8P.js} +4 -4
- package/dist/{EditUserPage-uLPhRW5x.js.map → EditUserPage-CI_jtU8P.js.map} +1 -1
- package/dist/EnhancedRefreshTokenHandler-C6tZCcfX.js +189 -0
- package/dist/EnhancedRefreshTokenHandler-C6tZCcfX.js.map +1 -0
- package/dist/FieldsetSection-Cd4B8Ad7.js +27 -0
- package/dist/FieldsetSection-Cd4B8Ad7.js.map +1 -0
- package/dist/{ForgotPassword-B8JG_n9D.js → ForgotPassword-Ckb9Z-wb.js} +4 -4
- package/dist/{ForgotPassword-B8JG_n9D.js.map → ForgotPassword-Ckb9Z-wb.js.map} +1 -1
- package/dist/ForgotPassword-tJVSg7PB.js +8 -0
- package/dist/{TimelineSystemEvent-BGG9WkQw.js → InlineAttachments-DAn_QknY.js} +60 -661
- package/dist/InlineAttachments-DAn_QknY.js.map +1 -0
- package/dist/{LoginForm-C-_lBDyl.js → LoginForm-CMN2T1fA.js} +5 -5
- package/dist/{LoginForm-C-_lBDyl.js.map → LoginForm-CMN2T1fA.js.map} +1 -1
- package/dist/LoginForm-QFJ8NHww.js +8 -0
- package/dist/{Logout-CIAoXyOg.js → Logout-CFLYHlLr.js} +5 -5
- package/dist/{Logout-CIAoXyOg.js.map → Logout-CFLYHlLr.js.map} +1 -1
- package/dist/Logout-CjDBff3W.js +8 -0
- package/dist/{MfaSetup-9qdTKQ0m.js → MfaSetup-85i4HlNJ.js} +7 -7
- package/dist/{MfaSetup-9qdTKQ0m.js.map → MfaSetup-85i4HlNJ.js.map} +1 -1
- package/dist/MfaSetup-C5mBMKsa.js +9 -0
- package/dist/{MfaVerify-Cgta1nE9.js → MfaVerify-C-A75TFZ.js} +6 -6
- package/dist/{MfaVerify-Cgta1nE9.js.map → MfaVerify-C-A75TFZ.js.map} +1 -1
- package/dist/MfaVerify-Dy2aV5Gk.js +9 -0
- package/dist/{RecordVersionViewer-BWZ78vvE.js → RecordVersionViewer-D2j10HdK.js} +1 -1
- package/dist/{RecordVersionViewer-BWZ78vvE.js.map → RecordVersionViewer-D2j10HdK.js.map} +1 -1
- package/dist/{ResetPassword-DHUfERyS.js → ResetPassword-Cd-Yxp8E.js} +4 -4
- package/dist/{ResetPassword-DHUfERyS.js.map → ResetPassword-Cd-Yxp8E.js.map} +1 -1
- package/dist/ResetPassword-D6to3G6a.js +8 -0
- package/dist/{SavedFiltersPage-CjFv4fI_.js → SavedFiltersPage-DPJA7feS.js} +62 -34
- package/dist/{SavedFiltersPage-CjFv4fI_.js.map → SavedFiltersPage-DPJA7feS.js.map} +1 -1
- package/dist/{Signup-DfG7Xmkx.js → Signup-2pqvJiVt.js} +57 -57
- package/dist/Signup-2pqvJiVt.js.map +1 -0
- package/dist/Signup-XdImA1os.js +9 -0
- package/dist/SignupConsentFlow-dyQSp9iU.js +214 -0
- package/dist/SignupConsentFlow-dyQSp9iU.js.map +1 -0
- package/dist/{SignupRequirementsPage-Sm3vgkhC.js → SignupRequirementsPage-Cf-ElkEq.js} +9 -8
- package/dist/{SignupRequirementsPage-Sm3vgkhC.js.map → SignupRequirementsPage-Cf-ElkEq.js.map} +1 -1
- package/dist/StaffCreateSupportTicketForm-BgaZJWpj.js +255 -0
- package/dist/StaffCreateSupportTicketForm-BgaZJWpj.js.map +1 -0
- package/dist/StaffCreateSupportTicketForm-C_i7mz26.js +14 -0
- package/dist/{StaffSupportTicketDetailPage-ePkLJU12.js → StaffSupportTicketDetailPage-DoZClE4Y.js} +17 -14
- package/dist/StaffSupportTicketDetailPage-DoZClE4Y.js.map +1 -0
- package/dist/StaffSupportTicketList-DejFCAh7.js +63 -0
- package/dist/StaffSupportTicketParent-B7mEN1oD.js +8 -0
- package/dist/{StaffSupportTicketParent-Bz-SH6-k.js → StaffSupportTicketParent-BvPwgOqH.js} +4 -4
- package/dist/{StaffSupportTicketParent-Bz-SH6-k.js.map → StaffSupportTicketParent-BvPwgOqH.js.map} +1 -1
- package/dist/StaffSupportTicketSuccess-Bt9FWXmM.js +12 -0
- package/dist/StaffSupportTicketSuccess-CUu2MNXF.js +54 -0
- package/dist/StaffSupportTicketSuccess-CUu2MNXF.js.map +1 -0
- package/dist/{SupportStaffPage-0X1VMovT.js → SupportStaffPage-B69-kuvg.js} +8 -7
- package/dist/{SupportStaffPage-0X1VMovT.js.map → SupportStaffPage-B69-kuvg.js.map} +1 -1
- package/dist/{SupportTicketDevLifecycleBadge-EMrQHfyG.js → SupportTicketDevLifecycleBadge-BoAjMb08.js} +1 -1
- package/dist/{SupportTicketDevLifecycleBadge-EMrQHfyG.js.map → SupportTicketDevLifecycleBadge-BoAjMb08.js.map} +1 -1
- package/dist/{SupportTicketMaintenancePage-CLDqc4Pb.js → SupportTicketMaintenancePage-Bptja-xb.js} +5 -4
- package/dist/{SupportTicketMaintenancePage-CLDqc4Pb.js.map → SupportTicketMaintenancePage-Bptja-xb.js.map} +1 -1
- package/dist/TeamAttachmentsTab-D4iYMMF3.js +63 -0
- package/dist/TeamHistoryTab-CRONdHcL.js +6 -0
- package/dist/{TeamHistoryTab-D0zW5wjj.js → TeamHistoryTab-DM8KBEG1.js} +7 -19
- package/dist/TeamHistoryTab-DM8KBEG1.js.map +1 -0
- package/dist/TeamList-BZN0Ek6v.js +141 -0
- package/dist/TeamList-BZN0Ek6v.js.map +1 -0
- package/dist/TeamList-DXtr4j1y.js +8 -0
- package/dist/TeamMemberList-JfyklWlt.js +7 -0
- package/dist/TeamMemberList-TTAPf2GN.js +166 -0
- package/dist/TeamMemberList-TTAPf2GN.js.map +1 -0
- package/dist/TeamMemberParent-a2xQB08R.js +10 -0
- package/dist/TeamMemberParent-xv56jEhd.js +83 -0
- package/dist/TeamMemberParent-xv56jEhd.js.map +1 -0
- package/dist/TeamMembersTab-BGcdyEE8.js +3 -0
- package/dist/{TeamMembersTab-4gmnP9sD.js → TeamMembersTab-BigqpBDH.js} +1 -1
- package/dist/{TeamMembersTab-4gmnP9sD.js.map → TeamMembersTab-BigqpBDH.js.map} +1 -1
- package/dist/{TeamNotesTab-DImzeVPk.js → TeamNotesTab-BgxleidZ.js} +6 -5
- package/dist/{TeamNotesTab-DImzeVPk.js.map → TeamNotesTab-BgxleidZ.js.map} +1 -1
- package/dist/TeamNotesTab-o7glfjoY.js +8 -0
- package/dist/TeamParent-7_XO4IOH.js +83 -0
- package/dist/TeamParent-7_XO4IOH.js.map +1 -0
- package/dist/TeamParent-Cf6RWFHo.js +11 -0
- package/dist/{TimelineNoteInput-Cpnwnx7B.js → TimelineNoteInput-D6LOdKZW.js} +3 -2
- package/dist/{TimelineNoteInput-Cpnwnx7B.js.map → TimelineNoteInput-D6LOdKZW.js.map} +1 -1
- package/dist/TimelineSystemEvent-zCMUx5Zz.js +525 -0
- package/dist/TimelineSystemEvent-zCMUx5Zz.js.map +1 -0
- package/dist/UserListPage-Bmwg0an5.js +5 -0
- package/dist/{UserListPage-DpkOdR1U.js → UserListPage-DtA8tLff.js} +4 -3
- package/dist/{UserListPage-DpkOdR1U.js.map → UserListPage-DtA8tLff.js.map} +1 -1
- package/dist/UserProfilePage-DRbCAr9H.js +8 -0
- package/dist/{UserProfilePage-CWRgwGQH.js → UserProfilePage-g4-VEDXo.js} +4 -4
- package/dist/{UserProfilePage-CWRgwGQH.js.map → UserProfilePage-g4-VEDXo.js.map} +1 -1
- package/dist/{VerifyEmail-DXZ4T5eN.js → VerifyEmail-CM5ehFB8.js} +7 -7
- package/dist/{VerifyEmail-DXZ4T5eN.js.map → VerifyEmail-CM5ehFB8.js.map} +1 -1
- package/dist/VerifyEmail-DMHczC9f.js +10 -0
- package/dist/ViewTeam-CbV0w4J_.js +220 -0
- package/dist/ViewTeam-CbV0w4J_.js.map +1 -0
- package/dist/ViewTeam-LAQmZPzc.js +8 -0
- package/dist/ViewTeamMember-DtWqc_q5.js +7 -0
- package/dist/ViewTeamMember-y3txJoRR.js +167 -0
- package/dist/ViewTeamMember-y3txJoRR.js.map +1 -0
- package/dist/ZiniaContainer-CjVhCnGB.js +18 -0
- package/dist/ZiniaContainer-CjVhCnGB.js.map +1 -0
- package/dist/{convertToLocalDateTime-CFhtN6PI.js → convertToLocalDateTime-BF25N4xd.js} +1 -2
- package/dist/convertToLocalDateTime-BF25N4xd.js.map +1 -0
- package/dist/customerSupportTicketRoutes-DYG3Vlzz.js +142 -0
- package/dist/customerSupportTicketRoutes-DYG3Vlzz.js.map +1 -0
- package/dist/{displayIdFormatter-Dz900Awr.js → displayIdFormatter-B-_WQHOr.js} +1 -1
- package/dist/{displayIdFormatter-Dz900Awr.js.map → displayIdFormatter-B-_WQHOr.js.map} +1 -1
- package/dist/{extractRpcErrorMessage-Di8E8-Wh.js → extractRpcErrorMessage-diUBl6Ij.js} +1 -1
- package/dist/{extractRpcErrorMessage-Di8E8-Wh.js.map → extractRpcErrorMessage-diUBl6Ij.js.map} +1 -1
- package/dist/index.d.ts +859 -900
- package/dist/index.js +66 -38
- package/dist/{mfaSchema-BnRWf0ma.js → mfaSchema-Ukqzdyck.js} +1 -1
- package/dist/{mfaSchema-BnRWf0ma.js.map → mfaSchema-Ukqzdyck.js.map} +1 -1
- package/dist/saved_filter-fHzm4pk5.js +1210 -0
- package/dist/saved_filter-fHzm4pk5.js.map +1 -0
- package/dist/signupConsentStorage-DS9vCUuC.js +27 -0
- package/dist/signupConsentStorage-DS9vCUuC.js.map +1 -0
- package/dist/{src-CEBiyg_f.css → src-C6ZmNSSU.css} +1 -1
- package/dist/{src-CEBiyg_f.css.map → src-C6ZmNSSU.css.map} +1 -1
- package/dist/src-DgC3Izwe.js +4655 -0
- package/dist/src-DgC3Izwe.js.map +1 -0
- package/dist/staffSupportTicketRoutes-Crk6BFEE.js +135 -0
- package/dist/staffSupportTicketRoutes-Crk6BFEE.js.map +1 -0
- package/dist/teamMemberMetadata-CQnbVepq.js +49 -0
- package/dist/teamMemberMetadata-CQnbVepq.js.map +1 -0
- package/dist/teamMetadata-DlvwO5V0.js +53 -0
- package/dist/teamMetadata-DlvwO5V0.js.map +1 -0
- package/dist/teamRoutes-_-DGwLZW.js +192 -0
- package/dist/teamRoutes-_-DGwLZW.js.map +1 -0
- package/dist/team_memberRoutes-B7Zzuuz8.js +84 -0
- package/dist/team_memberRoutes-B7Zzuuz8.js.map +1 -0
- package/dist/{useBreadcrumbs-qB6ghsAf.js → useBreadcrumbs-DIqU5AAp.js} +1 -1
- package/dist/{useBreadcrumbs-qB6ghsAf.js.map → useBreadcrumbs-DIqU5AAp.js.map} +1 -1
- package/dist/{useEmailVerificationChannel-BiiuuTUM.js → useEmailVerificationChannel-B51z65PN.js} +3 -3
- package/dist/{useEmailVerificationChannel-BiiuuTUM.js.map → useEmailVerificationChannel-B51z65PN.js.map} +1 -1
- package/dist/{useMutation-BMZJLpgx.js → useMutation-BLNuJoYl.js} +6 -3
- package/dist/useMutation-BLNuJoYl.js.map +1 -0
- package/dist/{useQuery-qpXzBuVg.js → useQuery-BzUGEOj0.js} +4 -3
- package/dist/{useQuery-qpXzBuVg.js.map → useQuery-BzUGEOj0.js.map} +1 -1
- package/dist/{useQueryCache-DkRwK5Gz.js → useQueryCache-alzaRWEb.js} +2 -2
- package/dist/{useQueryCache-DkRwK5Gz.js.map → useQueryCache-alzaRWEb.js.map} +1 -1
- package/dist/{useReturnUrl-qFeazn-G.js → useReturnUrl-B5V3SJf5.js} +1 -1
- package/dist/{useReturnUrl-qFeazn-G.js.map → useReturnUrl-B5V3SJf5.js.map} +1 -1
- package/dist/{useRpcAuth-x5Gn5gR0.js → useRpcAuth-CJtq1dqM.js} +9 -192
- package/dist/useRpcAuth-CJtq1dqM.js.map +1 -0
- package/dist/userAuthorized-C09FHWGL.js +185 -0
- package/dist/userAuthorized-C09FHWGL.js.map +1 -0
- package/package.json +3 -3
- package/dist/Appearance-D5pwxuf4.js +0 -3
- package/dist/ChangePasswordPage-DVBkBcm9.js +0 -6
- package/dist/ConsentRequired-e7DEOGNg.js +0 -213
- package/dist/ConsentRequired-e7DEOGNg.js.map +0 -1
- package/dist/CreateTeamForm-CV9Y00tD.js +0 -35
- package/dist/CreateTeamMemberForm-BX1vUcdg.js +0 -35
- package/dist/CreateUserPage-DQoEX-Er.js +0 -6
- package/dist/CreditBalanceDashboard-BZAnEjSz.js +0 -35
- package/dist/CreditManagement-C4-_c175.js +0 -35
- package/dist/CustomerCreateSupportTicketForm-3tIJKMnJ.js +0 -35
- package/dist/CustomerSupportTicketList-CFQEoXtm.js +0 -35
- package/dist/CustomerSupportTicketParent-Tnov1dEg.js +0 -7
- package/dist/CustomerSupportTicketSuccess-DLszUCsg.js +0 -35
- package/dist/EditTeamForm-Ww04P2M0.js +0 -35
- package/dist/EditTeamMemberForm-BgjNP8MZ.js.map +0 -1
- package/dist/EditTeamMemberForm-COfY-2FQ.js +0 -6
- package/dist/EditUserPage-BJHs3raG.js +0 -7
- package/dist/ForgotPassword-CzMPARbz.js +0 -7
- package/dist/LoginForm-DdzRn8nU.js +0 -7
- package/dist/Logout-3_Ns09Vy.js +0 -7
- package/dist/MfaSetup-BE_NP70B.js +0 -8
- package/dist/MfaVerify-CyiJ9A3L.js +0 -8
- package/dist/ResetPassword-DXHunZVp.js +0 -7
- package/dist/Signup-Cy1puoqh.js +0 -9
- package/dist/Signup-DfG7Xmkx.js.map +0 -1
- package/dist/SignupConsentFlow-YGWhF7tj.js +0 -269
- package/dist/SignupConsentFlow-YGWhF7tj.js.map +0 -1
- package/dist/StaffCreateSupportTicketForm-C5tRPz95.js +0 -35
- package/dist/StaffSupportTicketDetailPage-ePkLJU12.js.map +0 -1
- package/dist/StaffSupportTicketList-BbiPTm54.js +0 -35
- package/dist/StaffSupportTicketParent-D2onnMqe.js +0 -7
- package/dist/StaffSupportTicketSuccess-DLVRTvr1.js +0 -35
- package/dist/TeamAttachmentsTab-B-xXmvOy.js +0 -35
- package/dist/TeamHistoryTab-Bb7mq4Dc.js +0 -4
- package/dist/TeamHistoryTab-D0zW5wjj.js.map +0 -1
- package/dist/TeamList-B-cFoclM.js +0 -35
- package/dist/TeamMemberList-D3GNHlXH.js +0 -35
- package/dist/TeamMemberParent-BKfPMX05.js +0 -35
- package/dist/TeamMembersTab-CBB2Yl_I.js +0 -3
- package/dist/TeamNotesTab-BbODx7wS.js +0 -7
- package/dist/TeamParent-5lokhztw.js +0 -35
- package/dist/TimelineSystemEvent-BGG9WkQw.js.map +0 -1
- package/dist/UserListPage-4hZll_PC.js +0 -4
- package/dist/UserProfilePage-qFrg3PiC.js +0 -7
- package/dist/VerifyEmail-C5EO8OFo.js +0 -9
- package/dist/ViewTeam-Die0SWa_.js +0 -35
- package/dist/ViewTeamMember-_sqrqGit.js +0 -35
- package/dist/convertToLocalDateTime-CFhtN6PI.js.map +0 -1
- package/dist/src-_IeDZXH6.js +0 -8951
- package/dist/src-_IeDZXH6.js.map +0 -1
- package/dist/useMutation-BMZJLpgx.js.map +0 -1
- package/dist/useRpcAuth-x5Gn5gR0.js.map +0 -1
- package/dist/useSignupPendingData-BWHwUHhL.js +0 -47
- package/dist/useSignupPendingData-BWHwUHhL.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportTicketDevLifecycleBadge-
|
|
1
|
+
{"version":3,"file":"SupportTicketDevLifecycleBadge-BoAjMb08.js","names":["devLifecycleConfig: Record<SupportTicketDevLifecycle, DevLifecycleBadgeConfig>"],"sources":["../src/slices/support_ticket/shared/SupportTicketDevLifecycleBadge.vue"],"sourcesContent":["<template>\n <div :class=\"badgeClasses\" :aria-label=\"ariaLabel\" role=\"status\">\n {{ displayText }}\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * SupportTicketDevLifecycleBadge - A reusable Vue component for displaying support ticket dev lifecycle\n * as color-coded badges with consistent DaisyUI styling and accessibility features.\n *\n * @example\n * <SupportTicketDevLifecycleBadge :devLifecycle=\"'DEVELOPMENT'\" size=\"md\" />\n * <SupportTicketDevLifecycleBadge :devLifecycle=\"'TESTING'\" size=\"sm\" variant=\"outline\" />\n */\nimport type { SupportTicketDevLifecycle } from '@dragonmastery/dragoncore-shared';\nimport { computed } from 'vue';\n\n/**\n * Props for the SupportTicketDevLifecycleBadge component\n */\ninterface Props {\n /** The support ticket dev lifecycle to display */\n devLifecycle: SupportTicketDevLifecycle;\n /** Size of the badge - defaults to 'md' */\n size?: 'sm' | 'md' | 'lg';\n /** Visual variant of the badge - defaults to 'default' */\n variant?: 'default' | 'outline';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n size: 'md',\n variant: 'default',\n});\n\n/**\n * Configuration for each dev lifecycle badge\n */\ninterface DevLifecycleBadgeConfig {\n /** DaisyUI badge color class */\n color: string;\n /** Display text for the badge */\n text: string;\n /** Accessibility label for screen readers */\n ariaLabel: string;\n}\n\nconst devLifecycleConfig: Record<SupportTicketDevLifecycle, DevLifecycleBadgeConfig> = {\n PENDING: {\n color: 'badge-neutral',\n text: 'Pending',\n ariaLabel: 'Dev Stage: Pending',\n },\n BACKLOG: {\n color: 'badge-info',\n text: 'Backlog',\n ariaLabel: 'Dev Stage: In backlog',\n },\n PLANNING: {\n color: 'badge-info',\n text: 'Planning',\n ariaLabel: 'Dev Stage: Planning phase',\n },\n DEVELOPMENT: {\n color: 'badge-secondary',\n text: 'Dev',\n ariaLabel: 'Dev Stage: In development',\n },\n CODE_REVIEW: {\n color: 'badge-secondary',\n text: 'Review',\n ariaLabel: 'Dev Stage: Code review',\n },\n TESTING: {\n color: 'badge-warning',\n text: 'Testing',\n ariaLabel: 'Dev Stage: Testing phase',\n },\n STAGING: {\n color: 'badge-warning',\n text: 'Staging',\n ariaLabel: 'Dev Stage: On staging',\n },\n PO_APPROVAL: {\n color: 'badge-warning',\n text: 'PO Review',\n ariaLabel: 'Dev Stage: Awaiting PO approval',\n },\n VERIFICATION: {\n color: 'badge-warning',\n text: 'Verification',\n ariaLabel: 'Dev Stage: Awaiting customer verification and comment',\n },\n DEPLOYED: {\n color: 'badge-success',\n text: 'Live',\n ariaLabel: 'Dev Stage: Deployed to production',\n },\n CANCELLED: {\n color: 'badge-error',\n text: 'Cancelled',\n ariaLabel: 'Dev Stage: Cancelled',\n },\n};\n\nconst getDevLifecycleConfig = (\n devLifecycle: SupportTicketDevLifecycle,\n): DevLifecycleBadgeConfig => {\n const config = devLifecycleConfig[devLifecycle];\n if (!config) {\n return {\n color: 'badge-neutral',\n text: devLifecycle || 'Unknown',\n ariaLabel: `Dev Stage: ${devLifecycle || 'Unknown stage'}`,\n };\n }\n return config;\n};\n\nconst config = computed(() => getDevLifecycleConfig(props.devLifecycle));\n\nconst badgeClasses = computed(() => {\n const baseClasses = ['badge', 'text-xs'];\n\n // Add color class\n baseClasses.push(config.value.color);\n\n // Add size class with responsive text sizing\n if (props.size === 'sm') {\n baseClasses.push('badge-sm', 'text-xs');\n } else if (props.size === 'lg') {\n baseClasses.push('badge-lg', 'text-sm');\n } else {\n // md size - responsive text\n baseClasses.push('text-xs', 'sm:text-sm');\n }\n\n // Add variant class\n if (props.variant === 'outline') {\n baseClasses.push('badge-outline');\n }\n\n return baseClasses.join(' ');\n});\n\nconst displayText = computed(() => config.value.text);\nconst ariaLabel = computed(() => config.value.ariaLabel);\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EA8BA,MAAM,QAAQ;;;;EAiBd,MAAMA,qBAAiF;GACrF,SAAS;IACP,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,SAAS;IACP,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,UAAU;IACR,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,aAAa;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,aAAa;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,SAAS;IACP,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,SAAS;IACP,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,aAAa;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,cAAc;IACZ,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,UAAU;IACR,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACD,WAAW;IACT,OAAO;IACP,MAAM;IACN,WAAW;IACZ;GACF;EAED,MAAM,yBACJ,iBAC4B;GAC5B,MAAM,WAAS,mBAAmB;AAClC,OAAI,CAAC,SACH,QAAO;IACL,OAAO;IACP,MAAM,gBAAgB;IACtB,WAAW,cAAc,gBAAgB;IAC1C;AAEH,UAAO;;EAGT,MAAM,SAAS,eAAe,sBAAsB,MAAM,aAAa,CAAC;EAExE,MAAM,eAAe,eAAe;GAClC,MAAM,cAAc,CAAC,SAAS,UAAU;AAGxC,eAAY,KAAK,OAAO,MAAM,MAAM;AAGpC,OAAI,MAAM,SAAS,KACjB,aAAY,KAAK,YAAY,UAAU;YAC9B,MAAM,SAAS,KACxB,aAAY,KAAK,YAAY,UAAU;OAGvC,aAAY,KAAK,WAAW,aAAa;AAI3C,OAAI,MAAM,YAAY,UACpB,aAAY,KAAK,gBAAgB;AAGnC,UAAO,YAAY,KAAK,IAAI;IAC5B;EAEF,MAAM,cAAc,eAAe,OAAO,MAAM,KAAK;EACrD,MAAM,YAAY,eAAe,OAAO,MAAM,UAAU;;uBAjJtD,mBAEM,OAAA;IAFA,OAAK,eAAE,aAAA,MAAY;IAAG,cAAY,UAAA;IAAW,MAAK;sBACnD,YAAA,MAAW,EAAA,IAAA,WAAA"}
|
package/dist/{SupportTicketMaintenancePage-CLDqc4Pb.js → SupportTicketMaintenancePage-Bptja-xb.js}
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import "./useRpcAuth-
|
|
2
|
-
import "./
|
|
3
|
-
import
|
|
1
|
+
import "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
+
import "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
+
import "./useQueryCache-alzaRWEb.js";
|
|
4
|
+
import { t as useMutation } from "./useMutation-BLNuJoYl.js";
|
|
4
5
|
import { createElementBlock, createElementVNode, defineComponent, openBlock, unref } from "vue";
|
|
5
6
|
import { toast } from "vue3-toastify";
|
|
6
7
|
|
|
@@ -53,4 +54,4 @@ var SupportTicketMaintenancePage_default = _sfc_main;
|
|
|
53
54
|
|
|
54
55
|
//#endregion
|
|
55
56
|
export { SupportTicketMaintenancePage_default as default };
|
|
56
|
-
//# sourceMappingURL=SupportTicketMaintenancePage-
|
|
57
|
+
//# sourceMappingURL=SupportTicketMaintenancePage-Bptja-xb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportTicketMaintenancePage-
|
|
1
|
+
{"version":3,"file":"SupportTicketMaintenancePage-Bptja-xb.js","names":[],"sources":["../src/slices/admin/features/support_ticket_maintenance/SupportTicketMaintenancePage.vue"],"sourcesContent":["<template>\n <div class=\"mt-2\">\n <div class=\"flex justify-between items-center mb-4\">\n <h1 class=\"text-2xl font-bold\">Support Ticket Maintenance</h1>\n </div>\n\n <p class=\"text-base-content/70 mb-4\">\n Admin utilities for fixing support ticket data issues.\n </p>\n\n <div class=\"card bg-base-200\">\n <div class=\"card-body\">\n <h2 class=\"card-title text-lg\">Fix User IDs</h2>\n <p class=\"text-sm text-base-content/70 mb-4\">\n Some support tickets may have email addresses stored in user ID fields (e.g. updated_by, created_by)\n instead of user IDs. This tool scans for such tickets and replaces emails with the correct user IDs\n where a matching user exists.\n </p>\n <button\n type=\"button\"\n class=\"btn btn-primary btn-sm w-fit\"\n :disabled=\"isFixingUserIds\"\n @click=\"handleFixUserIds\"\n >\n <span v-if=\"isFixingUserIds\" class=\"loading loading-spinner loading-sm\"></span>\n <span v-else>Fix User IDs</span>\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useMutation } from '../../../../composables/useMutation';\nimport { toast } from 'vue3-toastify';\n\nconst { mutate: fixUserIds, loading: isFixingUserIds } = useMutation(\n (api) => api.supportTickets.staffFixSupportTicketUserIds(),\n {\n invalidate: /^support-ticket/,\n onSuccess: (result) => {\n toast.success(\n `Fixed ${result.ticketsFixed} ticket(s). Scanned: ${result.ticketsScanned}, skipped (no match): ${result.ticketsSkipped}`,\n );\n },\n onError: (err) => {\n toast.error(err?.message ?? 'Failed to fix user IDs');\n },\n },\n);\n\nasync function handleFixUserIds() {\n try {\n await fixUserIds(undefined);\n } catch {\n // Error handled by onError\n }\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,EAAE,QAAQ,YAAY,SAAS,oBAAoB,aACtD,QAAQ,IAAI,eAAe,8BAA8B,EAC1D;GACE,YAAY;GACZ,YAAY,WAAW;AACrB,UAAM,QACJ,SAAS,OAAO,aAAa,uBAAuB,OAAO,eAAe,wBAAwB,OAAO,iBAC1G;;GAEH,UAAU,QAAQ;AAChB,UAAM,MAAM,KAAK,WAAW,yBAAyB;;GAExD,CACF;EAED,eAAe,mBAAmB;AAChC,OAAI;AACF,UAAM,WAAW,OAAU;WACrB;;;uBArDR,mBA4BM,OA5BN,YA4BM;8BA3BJ,mBAEM,OAAA,EAFD,OAAM,0CAAwC,EAAA,CACjD,mBAA8D,MAAA,EAA1D,OAAM,sBAAoB,EAAC,6BAA0B,CAAA;8BAG3D,mBAEI,KAAA,EAFD,OAAM,6BAA2B,EAAC,4DAErC,GAAA;IAEA,mBAkBM,OAlBN,YAkBM,CAjBJ,mBAgBM,OAhBN,YAgBM;+BAfJ,mBAAgD,MAAA,EAA5C,OAAM,sBAAoB,EAAC,gBAAY,GAAA;+BAC3C,mBAII,KAAA,EAJD,OAAM,qCAAmC,EAAC,4OAI7C,GAAA;KACA,mBAQS,UAAA;MAPP,MAAK;MACL,OAAM;MACL,UAAU,MAAA,gBAAe;MACzB,SAAO;SAEI,MAAA,gBAAe,IAAA,WAAA,EAA3B,mBAA+E,QAA/E,WAA+E,KAAA,WAAA,EAC/E,mBAAgC,QAAA,YAAnB,eAAY,EAAA,EAAA,GAAA,WAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
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,24 +1,12 @@
|
|
|
1
|
-
import { r as executeWithAuth
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { r as executeWithAuth } from "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
+
import { r as getRefreshTokenHandler } from "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
+
import { t as ZiniaContainer_default } from "./ZiniaContainer-CjVhCnGB.js";
|
|
4
|
+
import { t as formatSystemTimestamp } from "./convertToLocalDateTime-BF25N4xd.js";
|
|
5
|
+
import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, renderList, toDisplayString, unref, withCtx } from "vue";
|
|
4
6
|
import { useRoute } from "vue-router";
|
|
5
7
|
import { recordVersionSchema } from "@dragonmastery/dragoncore-shared";
|
|
6
8
|
import { useCursorDataTable, withMetadata } from "@dragonmastery/zinia-forms-core";
|
|
7
9
|
|
|
8
|
-
//#region src/components/ui/ZiniaContainer.vue
|
|
9
|
-
const _hoisted_1$1 = { class: "p-0 md:p-4 max-w-4xl mx-auto bg-base-200 card" };
|
|
10
|
-
const _hoisted_2$1 = { class: "card-body p-4" };
|
|
11
|
-
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
12
|
-
__name: "ZiniaContainer",
|
|
13
|
-
setup(__props) {
|
|
14
|
-
return (_ctx, _cache) => {
|
|
15
|
-
return openBlock(), createElementBlock("div", _hoisted_1$1, [createElementVNode("div", _hoisted_2$1, [renderSlot(_ctx.$slots, "default")])]);
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
var ZiniaContainer_default = _sfc_main$2;
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
10
|
//#region src/slices/team/recordVersionRowSchema.ts
|
|
23
11
|
const recordVersionRowSchemaWithMetadata = withMetadata(recordVersionSchema, "recordVersionRowSchema", {});
|
|
24
12
|
|
|
@@ -228,5 +216,5 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
228
216
|
var TeamHistoryTab_default = _sfc_main;
|
|
229
217
|
|
|
230
218
|
//#endregion
|
|
231
|
-
export { recordVersionRowSchemaWithMetadata as n,
|
|
232
|
-
//# sourceMappingURL=TeamHistoryTab-
|
|
219
|
+
export { recordVersionRowSchemaWithMetadata as n, TeamHistoryTab_default as t };
|
|
220
|
+
//# sourceMappingURL=TeamHistoryTab-DM8KBEG1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeamHistoryTab-DM8KBEG1.js","names":["fields: Array<{ name: string; value: any }>","changes: Array<{ field: string; oldValue: any; newValue: any }>"],"sources":["../src/slices/team/recordVersionRowSchema.ts","../src/slices/team/components/TeamHistoryTab.vue","../src/slices/team/TeamHistoryTab.vue"],"sourcesContent":["import { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { recordVersionSchema } from '@dragonmastery/dragoncore-shared';\nimport { z } from 'zod';\n\nexport const recordVersionRowSchemaWithMetadata = withMetadata(\n recordVersionSchema,\n 'recordVersionRowSchema',\n {},\n);\n\nexport type RecordVersionRow = z.infer<typeof recordVersionSchema>;\n","<template>\n <div class=\"mt-2\">\n <ZiniaContainer>\n <ZiniaDataTable>\n <!-- Custom cell templates -->\n <template #cell-operation=\"{ row }\">\n <div class=\"space-y-3\">\n <!-- Operation Badge -->\n <div class=\"flex flex-col sm:flex-row sm:items-center gap-2\">\n <div class=\"flex items-center gap-2\">\n <span\n class=\"badge badge-xs\"\n :class=\"{\n 'badge-success': row.operation === 'insert',\n 'badge-warning': row.operation === 'update',\n 'badge-error': row.operation === 'delete',\n }\"\n >\n {{ formatOperation(row.operation) }}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center gap-1 sm:gap-2 text-xs\">\n <span class=\"text-base-content/70\">\n {{ formatSystemTimestamp(row.recorded_at) }}\n </span>\n <span class=\"text-base-content/60\">\n by {{ row.auth_username || 'Unknown' }}\n </span>\n <button class=\"btn btn-primary btn-xs\" @click=\"toggleDetails(row.id)\">\n {{ expandedItems.has(row.id) ? 'Hide Details' : 'View Details' }}\n </button>\n </div>\n </div>\n\n <!-- Details based on operation type -->\n <div v-if=\"expandedItems.has(row.id)\" class=\"mt-3\">\n <div v-if=\"row.operation === 'insert'\">\n <h4 class=\"font-medium text-sm text-base-content/80 mb-2\">Created Record</h4>\n <div class=\"bg-base-200 rounded-lg p-3 text-sm\">\n <div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2\">\n <div\n v-for=\"field in getCreatedFields(row.record)\"\n :key=\"field.name\"\n class=\"flex flex-col\"\n >\n <span class=\"text-xs font-medium text-base-content/70 mb-1\">\n {{ formatFieldName(field.name) }}\n </span>\n <span class=\"text-xs font-mono text-base-content\">\n <span\n v-if=\"field.value === null || field.value === undefined\"\n class=\"text-base-content/50 italic\"\n >No value</span\n >\n <span v-else>{{ formatFieldValue(field.name, field.value) }}</span>\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div v-else-if=\"row.operation === 'update'\">\n <h4 class=\"font-medium text-sm text-base-content/80 mb-2\">Changes Made</h4>\n <div class=\"space-y-2\">\n <div\n v-for=\"change in getChangedFields(row.record, row.old_record)\"\n :key=\"change.field\"\n class=\"border border-base-300 rounded p-2 bg-base-50\"\n >\n <div class=\"flex items-center justify-between mb-1\">\n <h5 class=\"font-medium text-xs text-base-content\">\n {{ formatFieldName(change.field) }}\n </h5>\n <span class=\"badge badge-xs badge-warning\">Updated</span>\n </div>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-2\">\n <div>\n <div class=\"text-xs font-medium text-base-content/70 mb-1\">\n Previous\n </div>\n <div class=\"bg-error/10 border border-error/20 rounded p-1 text-xs\">\n <span\n v-if=\"change.oldValue === null\"\n class=\"text-base-content/50 italic\"\n >No value</span\n >\n <span v-else class=\"font-mono\">{{\n formatFieldValue(change.field, change.oldValue)\n }}</span>\n </div>\n </div>\n <div>\n <div class=\"text-xs font-medium text-base-content/70 mb-1\">New</div>\n <div\n class=\"bg-success/10 border border-success/20 rounded p-1 text-xs\"\n >\n <span\n v-if=\"change.newValue === null\"\n class=\"text-base-content/50 italic\"\n >No value</span\n >\n <span v-else class=\"font-mono\">{{\n formatFieldValue(change.field, change.newValue)\n }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div v-else-if=\"row.operation === 'delete'\">\n <h4 class=\"font-medium text-sm text-base-content/80 mb-2\">Deleted Record</h4>\n <div class=\"bg-error/10 rounded p-2 text-xs font-mono\">\n <pre class=\"whitespace-pre-wrap\">{{ formatRecordData(row.old_record) }}</pre>\n </div>\n </div>\n </div>\n </div>\n </template>\n </ZiniaDataTable>\n </ZiniaContainer>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useCursorDataTable } from '@dragonmastery/zinia-forms-core';\nimport { ref } from 'vue';\nimport { useRoute } from 'vue-router';\nimport ZiniaContainer from '../../../components/ui/ZiniaContainer.vue';\nimport { executeWithAuth } from '../../../composables/useRpcAuth';\nimport { getRefreshTokenHandler } from '../../../utils/EnhancedRefreshTokenHandler';\nimport { formatSystemTimestamp } from '../../../utils/convertToLocalDateTime';\nimport { recordVersionRowSchemaWithMetadata } from '../recordVersionRowSchema';\n\n// Get team ID from route\nconst route = useRoute();\nconst team_id = route.params.id as string;\n\n// Expanded items state\nconst expandedItems = ref(new Set<string>());\n\n// Data table configuration\nconst { ZiniaDataTable } = useCursorDataTable(recordVersionRowSchemaWithMetadata, {\n fetchData: async ({ cursor, pageSize, sort, filters }) => {\n // Build query variables for breadcrumb pagination\n const input = {\n record_id: team_id,\n record_type: 'team' as const,\n filters: {\n first: pageSize,\n ...(cursor ? { after: cursor } : {}),\n sortBy: sort?.field || 'recorded_at',\n sortDirection: (sort?.direction || 'desc') as 'asc' | 'desc',\n ...filters,\n },\n };\n\n // Call RPC endpoint\n const result = await executeWithAuth(\n async (api) => {\n return await api.recordVersions.listRecordVersionsPaginated(\n input.record_id,\n input.record_type,\n input.filters,\n );\n },\n { refreshTokenHandler: getRefreshTokenHandler() },\n );\n\n // Return paginated data with bidirectional navigation\n return {\n data: result.items || [],\n hasNextPage: result.pageInfo?.hasNextPage ?? false,\n hasPreviousPage: result.pageInfo?.hasPreviousPage ?? false,\n prevPageCursor: result.pageInfo?.prevPageCursor ?? undefined,\n nextPageCursor: result.pageInfo?.nextPageCursor ?? undefined,\n };\n },\n\n // Column configuration - only show operation column since everything is consolidated there\n columns: {\n operation: {\n label: '',\n field: 'operation',\n },\n },\n\n // Pagination settings\n pagination: {\n pageSize: 25,\n },\n});\n\n// Methods\nconst toggleDetails = (itemId: string) => {\n if (expandedItems.value.has(itemId)) {\n expandedItems.value.delete(itemId);\n } else {\n expandedItems.value.add(itemId);\n }\n};\n\nconst formatOperation = (operation: string) => {\n switch (operation) {\n case 'insert':\n return 'Created';\n case 'update':\n return 'Updated';\n case 'delete':\n return 'Deleted';\n default:\n return operation;\n }\n};\n\nconst formatRecordData = (recordData: string | null | undefined) => {\n if (!recordData) return 'No data';\n try {\n return JSON.stringify(JSON.parse(recordData), null, 2);\n } catch {\n return recordData;\n }\n};\n\nfunction getCreatedFields(record: string | null | undefined) {\n if (!record) return [];\n\n try {\n const createdData = JSON.parse(record);\n const fields: Array<{ name: string; value: any }> = [];\n\n for (const [name, value] of Object.entries(createdData)) {\n fields.push({ name, value });\n }\n\n return fields;\n } catch (error) {\n console.error('Error parsing record data:', error);\n return [];\n }\n}\n\nfunction getChangedFields(\n record: string | null | undefined,\n oldRecord: string | null | undefined,\n) {\n if (!record || !oldRecord) return [];\n\n try {\n const changedFields = JSON.parse(record);\n const oldData = JSON.parse(oldRecord);\n\n const changes: Array<{ field: string; oldValue: any; newValue: any }> = [];\n\n for (const [field, newValue] of Object.entries(changedFields)) {\n const oldValue = oldData[field];\n changes.push({ field, oldValue, newValue });\n }\n\n return changes;\n } catch (error) {\n console.error('Error parsing record data:', error);\n return [];\n }\n}\n\nfunction formatFieldName(fieldName: string): string {\n // Convert snake_case to Title Case\n return fieldName\n .split('_')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\nfunction formatFieldValue(fieldName: string, value: any): string {\n if (value === null || value === undefined) {\n return 'No value';\n }\n\n // Format dates\n if (fieldName.includes('_at') || fieldName.includes('At')) {\n try {\n return formatSystemTimestamp(value);\n } catch {\n return String(value);\n }\n }\n\n // Format booleans\n if (typeof value === 'boolean') {\n return value ? 'Yes' : 'No';\n }\n\n // Format enums/status fields\n if (fieldName.includes('status') || fieldName.includes('Status')) {\n return String(value).replace(/_/g, ' ').toUpperCase();\n }\n\n return String(value);\n}\n</script>\n","<template>\n <TeamHistoryTabComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport TeamHistoryTabComponent from './components/TeamHistoryTab.vue';\n</script>\n"],"mappings":";;;;;;;;;;AAIA,MAAa,qCAAqC,aAChD,qBACA,0BACA,EAAE,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECiID,MAAM,UADQ,UAAU,CACF,OAAO;EAG7B,MAAM,gBAAgB,oBAAI,IAAI,KAAa,CAAC;EAG5C,MAAM,EAAE,mBAAmB,mBAAmB,oCAAoC;GAChF,WAAW,OAAO,EAAE,QAAQ,UAAU,MAAM,cAAc;IAExD,MAAM,QAAQ;KACZ,WAAW;KACX,aAAa;KACb,SAAS;MACP,OAAO;MACP,GAAI,SAAS,EAAE,OAAO,QAAQ,GAAG,EAAE;MACnC,QAAQ,MAAM,SAAS;MACvB,eAAgB,MAAM,aAAa;MACnC,GAAG;MACJ;KACF;IAGD,MAAM,SAAS,MAAM,gBACnB,OAAO,QAAQ;AACb,YAAO,MAAM,IAAI,eAAe,4BAC9B,MAAM,WACN,MAAM,aACN,MAAM,QACP;OAEH,EAAE,qBAAqB,wBAAwB,EAAE,CAClD;AAGD,WAAO;KACL,MAAM,OAAO,SAAS,EAAE;KACxB,aAAa,OAAO,UAAU,eAAe;KAC7C,iBAAiB,OAAO,UAAU,mBAAmB;KACrD,gBAAgB,OAAO,UAAU,kBAAkB;KACnD,gBAAgB,OAAO,UAAU,kBAAkB;KACpD;;GAIH,SAAS,EACP,WAAW;IACT,OAAO;IACP,OAAO;IACR,EACF;GAGD,YAAY,EACV,UAAU,IACX;GACF,CAAC;EAGF,MAAM,iBAAiB,WAAmB;AACxC,OAAI,cAAc,MAAM,IAAI,OAAO,CACjC,eAAc,MAAM,OAAO,OAAO;OAElC,eAAc,MAAM,IAAI,OAAO;;EAInC,MAAM,mBAAmB,cAAsB;AAC7C,WAAQ,WAAR;IACE,KAAK,SACH,QAAO;IACT,KAAK,SACH,QAAO;IACT,KAAK,SACH,QAAO;IACT,QACE,QAAO;;;EAIb,MAAM,oBAAoB,eAA0C;AAClE,OAAI,CAAC,WAAY,QAAO;AACxB,OAAI;AACF,WAAO,KAAK,UAAU,KAAK,MAAM,WAAW,EAAE,MAAM,EAAE;WAChD;AACN,WAAO;;;EAIX,SAAS,iBAAiB,QAAmC;AAC3D,OAAI,CAAC,OAAQ,QAAO,EAAE;AAEtB,OAAI;IACF,MAAM,cAAc,KAAK,MAAM,OAAO;IACtC,MAAMA,SAA8C,EAAE;AAEtD,SAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,YAAY,CACrD,QAAO,KAAK;KAAE;KAAM;KAAO,CAAC;AAG9B,WAAO;YACA,OAAO;AACd,YAAQ,MAAM,8BAA8B,MAAM;AAClD,WAAO,EAAE;;;EAIb,SAAS,iBACP,QACA,WACA;AACA,OAAI,CAAC,UAAU,CAAC,UAAW,QAAO,EAAE;AAEpC,OAAI;IACF,MAAM,gBAAgB,KAAK,MAAM,OAAO;IACxC,MAAM,UAAU,KAAK,MAAM,UAAU;IAErC,MAAMC,UAAkE,EAAE;AAE1E,SAAK,MAAM,CAAC,OAAO,aAAa,OAAO,QAAQ,cAAc,EAAE;KAC7D,MAAM,WAAW,QAAQ;AACzB,aAAQ,KAAK;MAAE;MAAO;MAAU;MAAU,CAAC;;AAG7C,WAAO;YACA,OAAO;AACd,YAAQ,MAAM,8BAA8B,MAAM;AAClD,WAAO,EAAE;;;EAIb,SAAS,gBAAgB,WAA2B;AAElD,UAAO,UACJ,MAAM,IAAG,CACT,KAAK,SAAS,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE,CAAA,CAC1D,KAAK,IAAI;;EAGd,SAAS,iBAAiB,WAAmB,OAAoB;AAC/D,OAAI,UAAU,QAAQ,UAAU,OAC9B,QAAO;AAIT,OAAI,UAAU,SAAS,MAAM,IAAI,UAAU,SAAS,KAAK,CACvD,KAAI;AACF,WAAO,sBAAsB,MAAM;WAC7B;AACN,WAAO,OAAO,MAAM;;AAKxB,OAAI,OAAO,UAAU,UACnB,QAAO,QAAQ,QAAQ;AAIzB,OAAI,UAAU,SAAS,SAAS,IAAI,UAAU,SAAS,SAAS,CAC9D,QAAO,OAAO,MAAM,CAAC,QAAQ,MAAM,IAAI,CAAC,aAAa;AAGvD,UAAO,OAAO,MAAM;;;uBA1SpB,mBAyHM,OAzHN,YAyHM,CAxHJ,YAuHiB,wBAAA,MAAA;2BADE,CArHjB,YAqHiB,MAAA,eAAA,EAAA,MAAA;KAnHJ,kBAAc,SAiHjB,EAjHqB,UAAG,CAC9B,mBAgHM,OAhHN,YAgHM;MA/GJ,mBAAA,oBAAwB;MACxB,mBAwBM,OAxBN,YAwBM,CAvBJ,mBAWM,OAXN,YAWM,CAVJ,mBASO,QAAA,EARL,OAAK,eAAA,CAAC,kBAAgB;wBACyB,IAAI,cAAS;wBAAoD,IAAI,cAAS;sBAAkD,IAAI,cAAS;6BAMzL,gBAAgB,IAAI,UAAS,CAAA,EAAA,EAAA,CAAA,CAAA,EAGpC,mBAUM,OAVN,YAUM;OATJ,mBAEO,QAFP,YAEO,gBADF,MAAA,sBAAqB,CAAC,IAAI,YAAW,CAAA,EAAA,EAAA;OAE1C,mBAEO,QAFP,YAAmC,SAC9B,gBAAG,IAAI,iBAAa,UAAA,EAAA,EAAA;OAEzB,mBAES,UAAA;QAFD,OAAM;QAA0B,UAAK,WAAE,cAAc,IAAI,GAAE;0BAC9D,cAAA,MAAc,IAAI,IAAI,GAAE,GAAA,iBAAA,eAAA,EAAA,GAAA,WAAA;;MAKjC,mBAAA,oCAAwC;MAC7B,cAAA,MAAc,IAAI,IAAI,GAAE,IAAA,WAAA,EAAnC,mBAkFM,OAlFN,YAkFM,CAjFO,IAAI,cAAS,YAAA,WAAA,EAAxB,mBAuBM,OAAA,aAAA,CAAA,OAAA,OAAA,OAAA,KAtBJ,mBAA6E,MAAA,EAAzE,OAAM,iDAA+C,EAAC,kBAAc,GAAA,GACxE,mBAoBM,OApBN,aAoBM,CAnBJ,mBAkBM,OAlBN,aAkBM,EAAA,UAAA,KAAA,EAjBJ,mBAgBM,UAAA,MAAA,WAfY,iBAAiB,IAAI,OAAM,GAApC,UAAK;2BADd,mBAgBM,OAAA;QAdH,KAAK,MAAM;QACZ,OAAM;WAEN,mBAEO,QAFP,aAEO,gBADF,gBAAgB,MAAM,KAAI,CAAA,EAAA,EAAA,EAE/B,mBAOO,QAPP,aAOO,CALG,MAAM,UAAK,QAAa,MAAM,UAAU,UAAA,WAAA,EADhD,mBAIC,QAJD,aAGG,WAAQ,KAAA,WAAA,EAEX,mBAAmE,QAAA,aAAA,gBAAnD,iBAAiB,MAAM,MAAM,MAAM,MAAK,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;yBAOlD,IAAI,cAAS,YAAA,WAAA,EAA7B,mBAgDM,OAAA,aAAA,CAAA,OAAA,OAAA,OAAA,KA/CJ,mBAA2E,MAAA,EAAvE,OAAM,iDAA+C,EAAC,gBAAY,GAAA,GACtE,mBA6CM,OA7CN,aA6CM,EAAA,UAAA,KAAA,EA5CJ,mBA2CM,UAAA,MAAA,WA1Ca,iBAAiB,IAAI,QAAQ,IAAI,WAAU,GAArD,WAAM;2BADf,mBA2CM,OAAA;QAzCH,KAAK,OAAO;QACb,OAAM;WAEN,mBAKM,OALN,aAKM,CAJJ,mBAEK,MAFL,aAEK,gBADA,gBAAgB,OAAO,MAAK,CAAA,EAAA,EAAA,EAAA,OAAA,OAAA,OAAA,KAEjC,mBAAyD,QAAA,EAAnD,OAAM,gCAA8B,EAAC,WAAO,GAAA,EAAA,CAAA,EAEpD,mBA+BM,OA/BN,aA+BM,CA9BJ,mBAcM,OAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KAbJ,mBAEM,OAAA,EAFD,OAAM,iDAA+C,EAAC,cAE3D,GAAA,GACA,mBASM,OATN,aASM,CAPI,OAAO,aAAQ,QAAA,WAAA,EADvB,mBAIC,QAJD,aAGG,WAAQ,KAAA,WAAA,EAEX,mBAES,QAFT,aAES,gBADP,iBAAiB,OAAO,OAAO,OAAO,SAAQ,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAIpD,mBAcM,OAAA,MAAA,CAAA,OAAA,OAAA,OAAA,KAbJ,mBAAoE,OAAA,EAA/D,OAAM,iDAA+C,EAAC,OAAG,GAAA,GAC9D,mBAWM,OAXN,aAWM,CAPI,OAAO,aAAQ,QAAA,WAAA,EADvB,mBAIC,QAJD,aAGG,WAAQ,KAAA,WAAA,EAEX,mBAES,QAFT,aAES,gBADP,iBAAiB,OAAO,OAAO,OAAO,SAAQ,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;uBAS5C,IAAI,cAAS,YAAA,WAAA,EAA7B,mBAKM,OAAA,aAAA,CAAA,OAAA,OAAA,OAAA,KAJJ,mBAA6E,MAAA,EAAzE,OAAM,iDAA+C,EAAC,kBAAc,GAAA,GACxE,mBAEM,OAFN,aAEM,CADJ,mBAA6E,OAA7E,aAA6E,gBAAzC,iBAAiB,IAAI,WAAU,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,QAAA,KAAA,CAAA,CAAA,IAAA,mBAAA,QAAA,KAAA;;;;;;;;;;;;;;;;;uBCjHnF,YAA2B,yBAAA"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { r as executeWithAuth } from "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
+
import { r as getRefreshTokenHandler } from "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
+
import { t as formatSystemTimestamp } from "./convertToLocalDateTime-BF25N4xd.js";
|
|
4
|
+
import { t as teamPaths } from "./teamRoutes-_-DGwLZW.js";
|
|
5
|
+
import { createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, resolveComponent, toDisplayString, unref, withCtx } from "vue";
|
|
6
|
+
import { TeamReadSchema } from "@dragonmastery/dragoncore-shared";
|
|
7
|
+
import { ActionIcons, useCursorDataTable, withMetadata } from "@dragonmastery/zinia-forms-core";
|
|
8
|
+
|
|
9
|
+
//#region src/slices/team/TeamRowSchema.ts
|
|
10
|
+
/**
|
|
11
|
+
* Reuse the existing TeamReadSchema from the validation library
|
|
12
|
+
* for the data table rows - don't recreate it!
|
|
13
|
+
*/
|
|
14
|
+
const teamRowSchemaWithMetadata = withMetadata(TeamReadSchema, "teamRow", {});
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/slices/team/TeamList.vue
|
|
18
|
+
const _hoisted_1 = { class: "flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-4" };
|
|
19
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
20
|
+
__name: "TeamList",
|
|
21
|
+
setup(__props) {
|
|
22
|
+
const currentPaginationToken = ref();
|
|
23
|
+
const { ZiniaDataTable } = useCursorDataTable(teamRowSchemaWithMetadata, {
|
|
24
|
+
fetchData: async ({ cursor, pageSize, sort, filters, search }) => {
|
|
25
|
+
const variables = {
|
|
26
|
+
first: pageSize,
|
|
27
|
+
sortBy: sort?.field ? sort.field : "created_at",
|
|
28
|
+
sortDirection: sort?.direction === "asc" ? "asc" : "desc",
|
|
29
|
+
...cursor ? { after: cursor } : {},
|
|
30
|
+
...currentPaginationToken.value ? { paginationToken: currentPaginationToken.value } : {},
|
|
31
|
+
...search ? { search } : {},
|
|
32
|
+
...filters
|
|
33
|
+
};
|
|
34
|
+
const result = await executeWithAuth(async (api) => {
|
|
35
|
+
return await api.teams.listTeams(variables);
|
|
36
|
+
}, { refreshTokenHandler: getRefreshTokenHandler() });
|
|
37
|
+
currentPaginationToken.value = result?.pageInfo?.paginationToken;
|
|
38
|
+
return {
|
|
39
|
+
data: result.items || [],
|
|
40
|
+
hasNextPage: result.pageInfo?.hasNextPage ?? false,
|
|
41
|
+
hasPreviousPage: result.pageInfo?.hasPreviousPage ?? false,
|
|
42
|
+
prevPageCursor: result.pageInfo?.prevPageCursor ?? void 0,
|
|
43
|
+
nextPageCursor: result.pageInfo?.nextPageCursor ?? void 0
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
columns: {
|
|
47
|
+
display_name: {
|
|
48
|
+
label: "Name",
|
|
49
|
+
field: "display_name",
|
|
50
|
+
sortable: true
|
|
51
|
+
},
|
|
52
|
+
unique_name: {
|
|
53
|
+
label: "Unique Name",
|
|
54
|
+
field: "unique_name",
|
|
55
|
+
sortable: true
|
|
56
|
+
},
|
|
57
|
+
contact_email: {
|
|
58
|
+
label: "Contact Email",
|
|
59
|
+
field: "contact_email",
|
|
60
|
+
sortable: true,
|
|
61
|
+
filterable: true
|
|
62
|
+
},
|
|
63
|
+
address_city: {
|
|
64
|
+
label: "City",
|
|
65
|
+
field: "address_city",
|
|
66
|
+
sortable: true,
|
|
67
|
+
filterable: true
|
|
68
|
+
},
|
|
69
|
+
archived_at: {
|
|
70
|
+
label: "Status",
|
|
71
|
+
field: "archived_at",
|
|
72
|
+
sortable: true
|
|
73
|
+
},
|
|
74
|
+
created_at: {
|
|
75
|
+
label: "Created",
|
|
76
|
+
field: "created_at",
|
|
77
|
+
sortable: true
|
|
78
|
+
},
|
|
79
|
+
updated_at: {
|
|
80
|
+
label: "Updated",
|
|
81
|
+
field: "updated_at",
|
|
82
|
+
sortable: true
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
actions: { items: [{
|
|
86
|
+
key: "view",
|
|
87
|
+
icon: ActionIcons.edit,
|
|
88
|
+
size: "xs",
|
|
89
|
+
variant: "primary",
|
|
90
|
+
type: "link",
|
|
91
|
+
href: (row) => `/teams/${row.id}`
|
|
92
|
+
}] },
|
|
93
|
+
search: { searchableFields: [
|
|
94
|
+
"display_name",
|
|
95
|
+
"unique_name",
|
|
96
|
+
"legal_name"
|
|
97
|
+
] },
|
|
98
|
+
pagination: { pageSize: 25 }
|
|
99
|
+
});
|
|
100
|
+
return (_ctx, _cache) => {
|
|
101
|
+
const _component_router_link = resolveComponent("router-link");
|
|
102
|
+
return openBlock(), createElementBlock("div", null, [createElementVNode("div", _hoisted_1, [_cache[1] || (_cache[1] = createElementVNode("h1", { class: "text-xl sm:text-2xl font-bold" }, "Teams", -1)), createVNode(_component_router_link, {
|
|
103
|
+
to: { name: unref(teamPaths).create.name },
|
|
104
|
+
class: "btn btn-primary btn-sm sm:btn-md"
|
|
105
|
+
}, {
|
|
106
|
+
default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Create ", -1)])]),
|
|
107
|
+
_: 1
|
|
108
|
+
}, 8, ["to"])]), createVNode(unref(ZiniaDataTable), null, {
|
|
109
|
+
"cell-display_name": withCtx(({ row }) => [createVNode(_component_router_link, {
|
|
110
|
+
to: {
|
|
111
|
+
name: unref(teamPaths).view.name,
|
|
112
|
+
params: { id: row.id }
|
|
113
|
+
},
|
|
114
|
+
class: "link link-primary"
|
|
115
|
+
}, {
|
|
116
|
+
default: withCtx(() => [createTextVNode(toDisplayString(row.display_name), 1)]),
|
|
117
|
+
_: 2
|
|
118
|
+
}, 1032, ["to"])]),
|
|
119
|
+
"cell-archived_at": withCtx(({ row }) => [createTextVNode(toDisplayString(row.archived_at ? "Archived" : "Active"), 1)]),
|
|
120
|
+
"cell-created_at": withCtx(({ row }) => [createTextVNode(toDisplayString(unref(formatSystemTimestamp)(row.created_at)), 1)]),
|
|
121
|
+
"cell-updated_at": withCtx(({ row }) => [createTextVNode(toDisplayString(unref(formatSystemTimestamp)(row.updated_at)), 1)]),
|
|
122
|
+
"cell-actions": withCtx(({ row }) => [createVNode(_component_router_link, {
|
|
123
|
+
to: {
|
|
124
|
+
name: unref(teamPaths).view.name,
|
|
125
|
+
params: { id: row.id }
|
|
126
|
+
},
|
|
127
|
+
class: "btn btn-sm btn-primary"
|
|
128
|
+
}, {
|
|
129
|
+
default: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode(" View ", -1)])]),
|
|
130
|
+
_: 1
|
|
131
|
+
}, 8, ["to"])]),
|
|
132
|
+
_: 1
|
|
133
|
+
})]);
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
var TeamList_default = _sfc_main;
|
|
138
|
+
|
|
139
|
+
//#endregion
|
|
140
|
+
export { teamRowSchemaWithMetadata as n, TeamList_default as t };
|
|
141
|
+
//# sourceMappingURL=TeamList-BZN0Ek6v.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeamList-BZN0Ek6v.js","names":["variables: TeamFiltersDto"],"sources":["../src/slices/team/TeamRowSchema.ts","../src/slices/team/TeamList.vue"],"sourcesContent":["import { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { TeamReadSchema } from '@dragonmastery/dragoncore-shared';\n\n/**\n * Reuse the existing TeamReadSchema from the validation library\n * for the data table rows - don't recreate it!\n */\nexport const teamRowSchemaWithMetadata = withMetadata(TeamReadSchema, 'teamRow', {});\n\nexport type TeamRow = typeof TeamReadSchema._type;\n","<template>\n <div>\n <div class=\"flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-4\">\n <h1 class=\"text-xl sm:text-2xl font-bold\">Teams</h1>\n <router-link\n :to=\"{ name: teamPaths.create.name }\"\n class=\"btn btn-primary btn-sm sm:btn-md\"\n >\n Create\n </router-link>\n </div>\n <ZiniaDataTable>\n <template #cell-display_name=\"{ row }\">\n <router-link\n :to=\"{ name: teamPaths.view.name, params: { id: row.id } }\"\n class=\"link link-primary\"\n >\n {{ row.display_name }}\n </router-link>\n </template>\n <template #cell-archived_at=\"{ row }\">\n {{ row.archived_at ? 'Archived' : 'Active' }}\n </template>\n <template #cell-created_at=\"{ row }\">\n {{ formatSystemTimestamp(row.created_at) }}\n </template>\n <template #cell-updated_at=\"{ row }\">\n {{ formatSystemTimestamp(row.updated_at) }}\n </template>\n <template #cell-actions=\"{ row }\">\n <router-link\n :to=\"{\n name: teamPaths.view.name,\n params: { id: row.id },\n }\"\n class=\"btn btn-sm btn-primary\"\n >\n View\n </router-link>\n </template>\n </ZiniaDataTable>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { TeamFiltersDto } from '@dragonmastery/dragoncore-shared';\nimport { ActionIcons, useCursorDataTable } from '@dragonmastery/zinia-forms-core';\nimport { ref } from 'vue';\nimport { executeWithAuth } from '../../composables/useRpcAuth';\nimport { getRefreshTokenHandler } from '../../utils/EnhancedRefreshTokenHandler';\nimport { formatSystemTimestamp } from '../../utils/convertToLocalDateTime';\nimport { teamRowSchemaWithMetadata, type TeamRow } from './TeamRowSchema';\nimport { teamPaths } from './teamRoutes';\n\n// Store pagination token for breadcrumb state\nconst currentPaginationToken = ref<string | undefined | null>();\n\n// Set up data table with cursor breadcrumb pagination\nconst { ZiniaDataTable } = useCursorDataTable(teamRowSchemaWithMetadata, {\n fetchData: async ({ cursor, pageSize, sort, filters, search }) => {\n const variables: TeamFiltersDto = {\n first: pageSize,\n sortBy: sort?.field ? (sort.field as string) : 'created_at',\n sortDirection: (sort?.direction === 'asc' ? 'asc' : 'desc') as 'asc' | 'desc',\n ...(cursor ? { after: cursor } : {}),\n ...(currentPaginationToken.value\n ? { paginationToken: currentPaginationToken.value }\n : {}),\n ...(search ? { search } : {}),\n ...filters,\n };\n\n const result = await executeWithAuth(\n async (api) => {\n return await api.teams.listTeams(variables);\n },\n { refreshTokenHandler: getRefreshTokenHandler() },\n );\n\n // Store the new pagination token for next request\n currentPaginationToken.value = result?.pageInfo?.paginationToken;\n\n return {\n data: result.items || [],\n hasNextPage: result.pageInfo?.hasNextPage ?? false,\n hasPreviousPage: result.pageInfo?.hasPreviousPage ?? false,\n prevPageCursor: result.pageInfo?.prevPageCursor ?? undefined,\n nextPageCursor: result.pageInfo?.nextPageCursor ?? undefined,\n };\n },\n columns: {\n display_name: {\n label: 'Name',\n field: 'display_name',\n sortable: true,\n },\n unique_name: {\n label: 'Unique Name',\n field: 'unique_name',\n sortable: true,\n },\n contact_email: {\n label: 'Contact Email',\n field: 'contact_email',\n sortable: true,\n filterable: true,\n },\n address_city: {\n label: 'City',\n field: 'address_city',\n sortable: true,\n filterable: true,\n },\n archived_at: {\n label: 'Status',\n field: 'archived_at',\n sortable: true,\n },\n created_at: {\n label: 'Created',\n field: 'created_at',\n sortable: true,\n },\n updated_at: {\n label: 'Updated',\n field: 'updated_at',\n sortable: true,\n },\n },\n actions: {\n items: [\n {\n key: 'view',\n icon: ActionIcons.edit,\n size: 'xs',\n variant: 'primary',\n type: 'link',\n href: (row: TeamRow) => `/teams/${row.id}`,\n },\n ],\n },\n search: {\n searchableFields: ['display_name', 'unique_name', 'legal_name'],\n },\n pagination: { pageSize: 25 },\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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 };
|
|
@@ -0,0 +1,7 @@
|
|
|
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 };
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { r as executeWithAuth } from "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
+
import { r as getRefreshTokenHandler } from "./EnhancedRefreshTokenHandler-C6tZCcfX.js";
|
|
3
|
+
import { t as formatSystemTimestamp } from "./convertToLocalDateTime-BF25N4xd.js";
|
|
4
|
+
import { t as teamMemberPaths } from "./team_memberRoutes-B7Zzuuz8.js";
|
|
5
|
+
import { createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, resolveComponent, toDisplayString, unref, withCtx } from "vue";
|
|
6
|
+
import { useRoute } from "vue-router";
|
|
7
|
+
import { OPERATORS, TeamMemberReadSchema } from "@dragonmastery/dragoncore-shared";
|
|
8
|
+
import { ActionIcons, useCursorDataTable, withMetadata } from "@dragonmastery/zinia-forms-core";
|
|
9
|
+
|
|
10
|
+
//#region src/slices/team/team_member/teamMemberRowSchema.ts
|
|
11
|
+
/**
|
|
12
|
+
* Reuse the existing TeamMemberReadSchema from the validation library
|
|
13
|
+
* for the data table rows - don't recreate it!
|
|
14
|
+
*/
|
|
15
|
+
const teamMemberRowSchemaWithMetadata = withMetadata(TeamMemberReadSchema, "teamMemberRow", {});
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/slices/team/team_member/TeamMemberList.vue
|
|
19
|
+
const _hoisted_1 = { class: "flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-4" };
|
|
20
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
21
|
+
__name: "TeamMemberList",
|
|
22
|
+
setup(__props) {
|
|
23
|
+
const team_id = useRoute().params.id;
|
|
24
|
+
const currentPaginationToken = ref();
|
|
25
|
+
const { ZiniaDataTable } = useCursorDataTable(teamMemberRowSchemaWithMetadata, {
|
|
26
|
+
fetchData: async ({ cursor, pageSize, sort, filters, search }) => {
|
|
27
|
+
const variables = {
|
|
28
|
+
team_id: {
|
|
29
|
+
operator: OPERATORS.EQUALS,
|
|
30
|
+
value: team_id
|
|
31
|
+
},
|
|
32
|
+
first: pageSize,
|
|
33
|
+
sortBy: sort?.field ? sort.field : "created_at",
|
|
34
|
+
sortDirection: sort?.direction === "asc" ? "asc" : "desc",
|
|
35
|
+
...cursor ? { after: cursor } : {},
|
|
36
|
+
...currentPaginationToken.value ? { paginationToken: currentPaginationToken.value } : {},
|
|
37
|
+
...search ? { search: typeof search === "string" ? {
|
|
38
|
+
query: search,
|
|
39
|
+
searchableFields: [
|
|
40
|
+
"display_name",
|
|
41
|
+
"role",
|
|
42
|
+
"email_address"
|
|
43
|
+
]
|
|
44
|
+
} : search } : {},
|
|
45
|
+
...filters
|
|
46
|
+
};
|
|
47
|
+
const result = await executeWithAuth(async (api) => {
|
|
48
|
+
return await api.teamMembers.listTeamMembers(variables);
|
|
49
|
+
}, { refreshTokenHandler: getRefreshTokenHandler() });
|
|
50
|
+
currentPaginationToken.value = result?.pageInfo?.paginationToken;
|
|
51
|
+
return {
|
|
52
|
+
data: result.items || [],
|
|
53
|
+
hasNextPage: result.pageInfo?.hasNextPage ?? false,
|
|
54
|
+
hasPreviousPage: result.pageInfo?.hasPreviousPage ?? false,
|
|
55
|
+
prevPageCursor: result.pageInfo?.prevPageCursor ?? void 0,
|
|
56
|
+
nextPageCursor: result.pageInfo?.nextPageCursor ?? void 0
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
columns: {
|
|
60
|
+
email_address: {
|
|
61
|
+
label: "Email",
|
|
62
|
+
field: "email_address",
|
|
63
|
+
sortable: true,
|
|
64
|
+
filterable: true
|
|
65
|
+
},
|
|
66
|
+
role: {
|
|
67
|
+
label: "Role",
|
|
68
|
+
field: "role",
|
|
69
|
+
sortable: true,
|
|
70
|
+
filterable: true
|
|
71
|
+
},
|
|
72
|
+
display_name: {
|
|
73
|
+
label: "Name",
|
|
74
|
+
field: "display_name",
|
|
75
|
+
sortable: true
|
|
76
|
+
},
|
|
77
|
+
business_phone: {
|
|
78
|
+
label: "Business Phone",
|
|
79
|
+
field: "business_phone",
|
|
80
|
+
sortable: true,
|
|
81
|
+
filterable: true
|
|
82
|
+
},
|
|
83
|
+
mobile_phone: {
|
|
84
|
+
label: "Mobile Phone",
|
|
85
|
+
field: "mobile_phone",
|
|
86
|
+
sortable: true,
|
|
87
|
+
filterable: true
|
|
88
|
+
},
|
|
89
|
+
created_at: {
|
|
90
|
+
label: "Created",
|
|
91
|
+
field: "created_at",
|
|
92
|
+
sortable: true
|
|
93
|
+
},
|
|
94
|
+
updated_at: {
|
|
95
|
+
label: "Updated",
|
|
96
|
+
field: "updated_at",
|
|
97
|
+
sortable: true
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
actions: { items: [{
|
|
101
|
+
key: "view",
|
|
102
|
+
icon: ActionIcons.edit,
|
|
103
|
+
size: "xs",
|
|
104
|
+
variant: "primary",
|
|
105
|
+
type: "link",
|
|
106
|
+
href: (row) => `/teams/${team_id}/members/${row.id}`
|
|
107
|
+
}] },
|
|
108
|
+
search: { searchableFields: [
|
|
109
|
+
"display_name",
|
|
110
|
+
"role",
|
|
111
|
+
"email_address"
|
|
112
|
+
] },
|
|
113
|
+
pagination: { pageSize: 25 }
|
|
114
|
+
});
|
|
115
|
+
return (_ctx, _cache) => {
|
|
116
|
+
const _component_router_link = resolveComponent("router-link");
|
|
117
|
+
return openBlock(), createElementBlock("div", null, [createElementVNode("div", _hoisted_1, [_cache[1] || (_cache[1] = createElementVNode("h1", { class: "text-xl sm:text-2xl font-bold" }, "Team Members", -1)), createVNode(_component_router_link, {
|
|
118
|
+
to: {
|
|
119
|
+
name: unref(teamMemberPaths).create.name,
|
|
120
|
+
params: { id: unref(team_id) }
|
|
121
|
+
},
|
|
122
|
+
class: "btn btn-primary btn-sm sm:btn-md"
|
|
123
|
+
}, {
|
|
124
|
+
default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Create ", -1)])]),
|
|
125
|
+
_: 1
|
|
126
|
+
}, 8, ["to"])]), createVNode(unref(ZiniaDataTable), null, {
|
|
127
|
+
"cell-display_name": withCtx(({ row }) => [createTextVNode(toDisplayString(row.display_name || "N/A"), 1)]),
|
|
128
|
+
"cell-email_address": withCtx(({ row }) => [createVNode(_component_router_link, {
|
|
129
|
+
to: {
|
|
130
|
+
name: unref(teamMemberPaths).view.name,
|
|
131
|
+
params: {
|
|
132
|
+
id: unref(team_id),
|
|
133
|
+
member_id: row.id
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
class: "link link-primary"
|
|
137
|
+
}, {
|
|
138
|
+
default: withCtx(() => [createTextVNode(toDisplayString(row.email_address || "N/A"), 1)]),
|
|
139
|
+
_: 2
|
|
140
|
+
}, 1032, ["to"])]),
|
|
141
|
+
"cell-role": withCtx(({ row }) => [createTextVNode(toDisplayString(row.role || "N/A"), 1)]),
|
|
142
|
+
"cell-created_at": withCtx(({ row }) => [createTextVNode(toDisplayString(unref(formatSystemTimestamp)(row.created_at)), 1)]),
|
|
143
|
+
"cell-updated_at": withCtx(({ row }) => [createTextVNode(toDisplayString(unref(formatSystemTimestamp)(row.updated_at)), 1)]),
|
|
144
|
+
"cell-actions": withCtx(({ row }) => [createVNode(_component_router_link, {
|
|
145
|
+
to: {
|
|
146
|
+
name: unref(teamMemberPaths).view.name,
|
|
147
|
+
params: {
|
|
148
|
+
id: unref(team_id),
|
|
149
|
+
member_id: row.id
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
class: "btn btn-sm btn-primary"
|
|
153
|
+
}, {
|
|
154
|
+
default: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode(" View ", -1)])]),
|
|
155
|
+
_: 1
|
|
156
|
+
}, 8, ["to"])]),
|
|
157
|
+
_: 1
|
|
158
|
+
})]);
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
var TeamMemberList_default = _sfc_main;
|
|
163
|
+
|
|
164
|
+
//#endregion
|
|
165
|
+
export { teamMemberRowSchemaWithMetadata as n, TeamMemberList_default as t };
|
|
166
|
+
//# sourceMappingURL=TeamMemberList-TTAPf2GN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeamMemberList-TTAPf2GN.js","names":["variables: any"],"sources":["../src/slices/team/team_member/teamMemberRowSchema.ts","../src/slices/team/team_member/TeamMemberList.vue"],"sourcesContent":["import { withMetadata } from '@dragonmastery/zinia-forms-core';\nimport { TeamMemberReadSchema } from '@dragonmastery/dragoncore-shared';\n\n/**\n * Reuse the existing TeamMemberReadSchema from the validation library\n * for the data table rows - don't recreate it!\n */\nexport const teamMemberRowSchemaWithMetadata = withMetadata(\n TeamMemberReadSchema,\n 'teamMemberRow',\n {},\n);\n\nexport type TeamMemberRow = typeof TeamMemberReadSchema._type;\n","<template>\n <div>\n <div class=\"flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-4\">\n <h1 class=\"text-xl sm:text-2xl font-bold\">Team Members</h1>\n <router-link\n :to=\"{\n name: teamMemberPaths.create.name,\n params: { id: team_id },\n }\"\n class=\"btn btn-primary btn-sm sm:btn-md\"\n >\n Create\n </router-link>\n </div>\n <ZiniaDataTable>\n <template #cell-display_name=\"{ row }\">\n {{ row.display_name || 'N/A' }}\n </template>\n <template #cell-email_address=\"{ row }\">\n <router-link\n :to=\"{\n name: teamMemberPaths.view.name,\n params: { id: team_id, member_id: row.id },\n }\"\n class=\"link link-primary\"\n >\n {{ row.email_address || 'N/A' }}\n </router-link>\n </template>\n <template #cell-role=\"{ row }\">\n {{ row.role || 'N/A' }}\n </template>\n <template #cell-created_at=\"{ row }\">\n {{ formatSystemTimestamp(row.created_at) }}\n </template>\n <template #cell-updated_at=\"{ row }\">\n {{ formatSystemTimestamp(row.updated_at) }}\n </template>\n <template #cell-actions=\"{ row }\">\n <router-link\n :to=\"{\n name: teamMemberPaths.view.name,\n params: { id: team_id, member_id: row.id },\n }\"\n class=\"btn btn-sm btn-primary\"\n >\n View\n </router-link>\n </template>\n </ZiniaDataTable>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { executeWithAuth } from '../../../composables/useRpcAuth';\nimport { getRefreshTokenHandler } from '../../../utils/EnhancedRefreshTokenHandler';\nimport { formatSystemTimestamp } from '../../../utils/convertToLocalDateTime';\nimport { OPERATORS } from '@dragonmastery/dragoncore-shared';\nimport { ActionIcons, useCursorDataTable } from '@dragonmastery/zinia-forms-core';\nimport { ref } from 'vue';\nimport { useRoute } from 'vue-router';\nimport { teamMemberRowSchemaWithMetadata, type TeamMemberRow } from './teamMemberRowSchema';\nimport { teamMemberPaths } from './team_memberRoutes';\n\nconst route = useRoute();\nconst team_id = route.params.id as string;\n\n// Store pagination token for breadcrumb state\nconst currentPaginationToken = ref<string | undefined | null>();\n\n// Set up data table with cursor breadcrumb pagination\nconst { ZiniaDataTable } = useCursorDataTable(teamMemberRowSchemaWithMetadata, {\n fetchData: async ({ cursor, pageSize, sort, filters, search }) => {\n const variables: any = {\n team_id: {\n operator: OPERATORS.EQUALS,\n value: team_id,\n },\n first: pageSize,\n sortBy: sort?.field ? (sort.field as string) : 'created_at',\n sortDirection: (sort?.direction === 'asc' ? 'asc' : 'desc') as 'asc' | 'desc',\n ...(cursor ? { after: cursor } : {}),\n ...(currentPaginationToken.value\n ? { paginationToken: currentPaginationToken.value }\n : {}),\n ...(search\n ? {\n search:\n typeof search === 'string'\n ? {\n query: search,\n searchableFields: ['display_name', 'role', 'email_address'],\n }\n : search,\n }\n : {}),\n ...filters,\n };\n\n const result = await executeWithAuth(\n async (api) => {\n return await api.teamMembers.listTeamMembers(variables);\n },\n { refreshTokenHandler: getRefreshTokenHandler() },\n );\n\n // Store the new pagination token for next request\n currentPaginationToken.value = result?.pageInfo?.paginationToken;\n\n return {\n data: result.items || [],\n hasNextPage: result.pageInfo?.hasNextPage ?? false,\n hasPreviousPage: result.pageInfo?.hasPreviousPage ?? false,\n prevPageCursor: result.pageInfo?.prevPageCursor ?? undefined,\n nextPageCursor: result.pageInfo?.nextPageCursor ?? undefined,\n };\n },\n columns: {\n email_address: {\n label: 'Email',\n field: 'email_address',\n sortable: true,\n filterable: true,\n },\n role: {\n label: 'Role',\n field: 'role',\n sortable: true,\n filterable: true,\n },\n display_name: {\n label: 'Name',\n field: 'display_name',\n sortable: true,\n },\n business_phone: {\n label: 'Business Phone',\n field: 'business_phone',\n sortable: true,\n filterable: true,\n },\n mobile_phone: {\n label: 'Mobile Phone',\n field: 'mobile_phone',\n sortable: true,\n filterable: true,\n },\n created_at: {\n label: 'Created',\n field: 'created_at',\n sortable: true,\n },\n updated_at: {\n label: 'Updated',\n field: 'updated_at',\n sortable: true,\n },\n },\n actions: {\n items: [\n {\n key: 'view',\n icon: ActionIcons.edit,\n size: 'xs',\n variant: 'primary',\n type: 'link',\n href: (row: TeamMemberRow) => `/teams/${team_id}/members/${row.id}`,\n },\n ],\n },\n search: {\n searchableFields: ['display_name', 'role', 'email_address'],\n },\n pagination: { pageSize: 25 },\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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 { t as TeamMemberParent_default } from "./TeamMemberParent-xv56jEhd.js";
|
|
9
|
+
|
|
10
|
+
export { TeamMemberParent_default as default };
|