@dragonmastery/dragoncore-vue 0.0.21 → 0.0.23
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--3XwluwE.js → ChangePasswordPage-C633yQiU.js} +2 -2
- package/dist/{ChangePasswordPage--3XwluwE.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/ConsentRequired-BPjsZoPY.js +211 -0
- package/dist/ConsentRequired-BPjsZoPY.js.map +1 -0
- package/dist/CreateTeamForm-CeaC41VY.js +142 -0
- package/dist/CreateTeamForm-CeaC41VY.js.map +1 -0
- package/dist/CreateTeamForm-DfgCaUwX.js +12 -0
- package/dist/CreateTeamMemberForm-Bv9gNG4z.js +140 -0
- package/dist/CreateTeamMemberForm-Bv9gNG4z.js.map +1 -0
- package/dist/CreateTeamMemberForm-CnHfpob_.js +12 -0
- package/dist/CreateUserPage-C9uOeYDJ.js +7 -0
- package/dist/{CreateUserPage-DLwXeLAq.js → CreateUserPage-CqKcY7_X.js} +2 -2
- package/dist/{CreateUserPage-DLwXeLAq.js.map → CreateUserPage-CqKcY7_X.js.map} +1 -1
- package/dist/CreditBalanceDashboard-0HiJE_OS.js +13 -0
- package/dist/CreditBalanceDashboard-k_orNn4h.js +28 -0
- package/dist/CreditBalanceDashboard-k_orNn4h.js.map +1 -0
- package/dist/CreditManagement-BVBZQDI4.js +356 -0
- package/dist/CreditManagement-BVBZQDI4.js.map +1 -0
- package/dist/CreditManagement-DXdIN-0d.js +13 -0
- package/dist/CreditTransactionHistory-DSu-6aDi.js +229 -0
- package/dist/CreditTransactionHistory-DSu-6aDi.js.map +1 -0
- package/dist/CustomerCreateSupportTicketForm-BsjX8Pja.js +14 -0
- package/dist/CustomerCreateSupportTicketForm-kf8YIGjx.js +158 -0
- package/dist/CustomerCreateSupportTicketForm-kf8YIGjx.js.map +1 -0
- package/dist/{CustomerSupportTicketDetailPage-BdyaKG1v.js → CustomerSupportTicketDetailPage-C_-YoAaP.js} +12 -9
- package/dist/{CustomerSupportTicketDetailPage-BdyaKG1v.js.map → CustomerSupportTicketDetailPage-C_-YoAaP.js.map} +1 -1
- package/dist/CustomerSupportTicketList-DdACn3ug.js +63 -0
- package/dist/{CustomerSupportTicketParent-HIxwSVdu.js → CustomerSupportTicketParent-BpBuYCrP.js} +4 -4
- package/dist/{CustomerSupportTicketParent-HIxwSVdu.js.map → CustomerSupportTicketParent-BpBuYCrP.js.map} +1 -1
- package/dist/CustomerSupportTicketParent-Djy7pNqO.js +8 -0
- package/dist/CustomerSupportTicketSuccess-DsFzpJFU.js +12 -0
- package/dist/CustomerSupportTicketSuccess-cumNSGdx.js +54 -0
- package/dist/CustomerSupportTicketSuccess-cumNSGdx.js.map +1 -0
- package/dist/EditTeamForm-BE3iX2x3.js +12 -0
- package/dist/EditTeamForm-BxRN338L.js +163 -0
- package/dist/EditTeamForm-BxRN338L.js.map +1 -0
- package/dist/EditTeamMemberForm-D7D1Zddh.js +9 -0
- package/dist/{EditTeamMemberForm-CaS2GLjV.js → EditTeamMemberForm-DfgJr5Cy.js} +7 -72
- package/dist/EditTeamMemberForm-DfgJr5Cy.js.map +1 -0
- package/dist/EditUserPage-C0K7EGjM.js +8 -0
- package/dist/{EditUserPage-DURc5rmi.js → EditUserPage-CI_jtU8P.js} +4 -4
- package/dist/{EditUserPage-DURc5rmi.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-OjIPi9s9.js → ForgotPassword-Ckb9Z-wb.js} +4 -4
- package/dist/{ForgotPassword-OjIPi9s9.js.map → ForgotPassword-Ckb9Z-wb.js.map} +1 -1
- package/dist/ForgotPassword-tJVSg7PB.js +8 -0
- package/dist/{TimelineSystemEvent-BHzFr46C.js → InlineAttachments-DAn_QknY.js} +60 -661
- package/dist/InlineAttachments-DAn_QknY.js.map +1 -0
- package/dist/{LoginForm-9UFnA-fO.js → LoginForm-CMN2T1fA.js} +5 -5
- package/dist/{LoginForm-9UFnA-fO.js.map → LoginForm-CMN2T1fA.js.map} +1 -1
- package/dist/LoginForm-QFJ8NHww.js +8 -0
- package/dist/{Logout-YgTgOFUH.js → Logout-CFLYHlLr.js} +5 -5
- package/dist/{Logout-YgTgOFUH.js.map → Logout-CFLYHlLr.js.map} +1 -1
- package/dist/Logout-CjDBff3W.js +8 -0
- package/dist/MfaSetup-BZcoxJx-.js +9 -0
- package/dist/{MfaSetup-RtFMY_dj.js → MfaSetup-XqoAwBXx.js} +5 -5
- package/dist/{MfaSetup-RtFMY_dj.js.map → MfaSetup-XqoAwBXx.js.map} +1 -1
- package/dist/{MfaVerify-Cvhe8bEM.js → MfaVerify-C-A75TFZ.js} +6 -6
- package/dist/{MfaVerify-Cvhe8bEM.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-BE4mXK9q.js → ResetPassword-Cd-Yxp8E.js} +4 -4
- package/dist/{ResetPassword-BE4mXK9q.js.map → ResetPassword-Cd-Yxp8E.js.map} +1 -1
- package/dist/ResetPassword-D6to3G6a.js +8 -0
- package/dist/{SavedFiltersPage-DQt6uc8m.js → SavedFiltersPage-DM5DvAFa.js} +62 -34
- package/dist/{SavedFiltersPage-DQt6uc8m.js.map → SavedFiltersPage-DM5DvAFa.js.map} +1 -1
- package/dist/{Signup-9TjMMnU4.js → Signup-2pqvJiVt.js} +57 -57
- package/dist/Signup-2pqvJiVt.js.map +1 -0
- package/dist/Signup-XdImA1os.js +9 -0
- package/dist/{SignupConsentFlow-QUZGKjdB.js → SignupConsentFlow-X3kXuviv.js} +106 -70
- package/dist/SignupConsentFlow-X3kXuviv.js.map +1 -0
- package/dist/{SignupRequirementsPage-DfbYmpQD.js → SignupRequirementsPage-Cf-ElkEq.js} +9 -8
- package/dist/{SignupRequirementsPage-DfbYmpQD.js.map → SignupRequirementsPage-Cf-ElkEq.js.map} +1 -1
- package/dist/StaffCreateSupportTicketForm-BlUP2XXy.js +14 -0
- package/dist/StaffCreateSupportTicketForm-D2nn4rTU.js +255 -0
- package/dist/StaffCreateSupportTicketForm-D2nn4rTU.js.map +1 -0
- package/dist/{StaffSupportTicketDetailPage-DQdfh6H1.js → StaffSupportTicketDetailPage-MFtm06BE.js} +14 -11
- package/dist/{StaffSupportTicketDetailPage-DQdfh6H1.js.map → StaffSupportTicketDetailPage-MFtm06BE.js.map} +1 -1
- package/dist/StaffSupportTicketList-LfLx0pYP.js +63 -0
- package/dist/StaffSupportTicketParent-B7mEN1oD.js +8 -0
- package/dist/{StaffSupportTicketParent-CilR4RGM.js → StaffSupportTicketParent-BvPwgOqH.js} +4 -4
- package/dist/{StaffSupportTicketParent-CilR4RGM.js.map → StaffSupportTicketParent-BvPwgOqH.js.map} +1 -1
- package/dist/StaffSupportTicketSuccess-BMCOP3ko.js +12 -0
- package/dist/StaffSupportTicketSuccess-Ca2WrcRg.js +54 -0
- package/dist/StaffSupportTicketSuccess-Ca2WrcRg.js.map +1 -0
- package/dist/{SupportStaffPage-KKugAnFm.js → SupportStaffPage-B69-kuvg.js} +8 -7
- package/dist/{SupportStaffPage-KKugAnFm.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-smItdkrD.js → SupportTicketMaintenancePage-Bptja-xb.js} +5 -4
- package/dist/{SupportTicketMaintenancePage-smItdkrD.js.map → SupportTicketMaintenancePage-Bptja-xb.js.map} +1 -1
- package/dist/TeamAttachmentsTab-Dk3LxX3n.js +63 -0
- package/dist/TeamHistoryTab-CRONdHcL.js +6 -0
- package/dist/{TeamHistoryTab-D5biUPmq.js → TeamHistoryTab-DM8KBEG1.js} +7 -19
- package/dist/TeamHistoryTab-DM8KBEG1.js.map +1 -0
- package/dist/TeamList-DYm_vQ2z.js +8 -0
- package/dist/TeamList-qdwlMuJv.js +141 -0
- package/dist/TeamList-qdwlMuJv.js.map +1 -0
- package/dist/TeamMemberList-4LRLT_7Z.js +7 -0
- package/dist/TeamMemberList-DyI1U1t_.js +166 -0
- package/dist/TeamMemberList-DyI1U1t_.js.map +1 -0
- package/dist/TeamMemberParent-B63pRfI6.js +10 -0
- package/dist/TeamMemberParent-D9Fxu7GD.js +83 -0
- package/dist/TeamMemberParent-D9Fxu7GD.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-BzGZZ1h8.js → TeamNotesTab-BgxleidZ.js} +6 -5
- package/dist/{TeamNotesTab-BzGZZ1h8.js.map → TeamNotesTab-BgxleidZ.js.map} +1 -1
- package/dist/TeamNotesTab-o7glfjoY.js +8 -0
- package/dist/TeamParent-BwXqA3rj.js +83 -0
- package/dist/TeamParent-BwXqA3rj.js.map +1 -0
- package/dist/TeamParent-CFOmyKPz.js +11 -0
- package/dist/{TimelineNoteInput-0p-M4Qie.js → TimelineNoteInput-DXaodm43.js} +3 -2
- package/dist/{TimelineNoteInput-0p-M4Qie.js.map → TimelineNoteInput-DXaodm43.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-DUE5gJTo.js → UserListPage-DtA8tLff.js} +4 -3
- package/dist/{UserListPage-DUE5gJTo.js.map → UserListPage-DtA8tLff.js.map} +1 -1
- package/dist/UserProfilePage-DRbCAr9H.js +8 -0
- package/dist/{UserProfilePage-C3b93Keh.js → UserProfilePage-g4-VEDXo.js} +4 -4
- package/dist/{UserProfilePage-C3b93Keh.js.map → UserProfilePage-g4-VEDXo.js.map} +1 -1
- package/dist/{VerifyEmail-DlOmWGG-.js → VerifyEmail-CM5ehFB8.js} +7 -7
- package/dist/{VerifyEmail-DlOmWGG-.js.map → VerifyEmail-CM5ehFB8.js.map} +1 -1
- package/dist/VerifyEmail-DMHczC9f.js +10 -0
- package/dist/ViewTeam-CXyABxE6.js +8 -0
- package/dist/ViewTeam-DSbKV60o.js +220 -0
- package/dist/ViewTeam-DSbKV60o.js.map +1 -0
- package/dist/ViewTeamMember-BB0nvPOe.js +167 -0
- package/dist/ViewTeamMember-BB0nvPOe.js.map +1 -0
- package/dist/ViewTeamMember-jrOnBaDh.js +7 -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-C7OxGAGl.js +142 -0
- package/dist/customerSupportTicketRoutes-C7OxGAGl.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 +793 -834
- 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-CfzH0BzK.js +1210 -0
- package/dist/saved_filter-CfzH0BzK.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-DVe_0RO9.js +4654 -0
- package/dist/src-DVe_0RO9.js.map +1 -0
- package/dist/staffSupportTicketRoutes-CWutoQWp.js +135 -0
- package/dist/staffSupportTicketRoutes-CWutoQWp.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-KFgnsdDP.js +192 -0
- package/dist/teamRoutes-KFgnsdDP.js.map +1 -0
- package/dist/team_memberRoutes-Cjpw_ql6.js +84 -0
- package/dist/team_memberRoutes-Cjpw_ql6.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-BNi926Ho.js → useEmailVerificationChannel-B51z65PN.js} +3 -3
- package/dist/{useEmailVerificationChannel-BNi926Ho.js.map → useEmailVerificationChannel-B51z65PN.js.map} +1 -1
- package/dist/{useMutation-BTsyHKyn.js → useMutation-BLNuJoYl.js} +6 -3
- package/dist/useMutation-BLNuJoYl.js.map +1 -0
- package/dist/{useQuery-BggIE52P.js → useQuery-BzUGEOj0.js} +4 -3
- package/dist/{useQuery-BggIE52P.js.map → useQuery-BzUGEOj0.js.map} +1 -1
- package/dist/{useQueryCache-Bjm-S8v5.js → useQueryCache-alzaRWEb.js} +2 -2
- package/dist/{useQueryCache-Bjm-S8v5.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-rmHf7bYx.js → useRpcAuth-CJtq1dqM.js} +25 -194
- 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-CpDPmEml.js +0 -6
- package/dist/ConsentRequired-C4IRMA0c.js +0 -213
- package/dist/ConsentRequired-C4IRMA0c.js.map +0 -1
- package/dist/CreateTeamForm-B4cIuYAf.js +0 -35
- package/dist/CreateTeamMemberForm-Chrw1y00.js +0 -35
- package/dist/CreateUserPage-WruMs7WP.js +0 -6
- package/dist/CreditBalanceDashboard-CkcsrZ_e.js +0 -35
- package/dist/CreditManagement-Ddvu9dMw.js +0 -35
- package/dist/CustomerCreateSupportTicketForm-BKperKGS.js +0 -35
- package/dist/CustomerSupportTicketList-DcbrjDa9.js +0 -35
- package/dist/CustomerSupportTicketParent-BeNzUwuP.js +0 -7
- package/dist/CustomerSupportTicketSuccess-CC967u3y.js +0 -35
- package/dist/EditTeamForm-B5Tee5wL.js +0 -35
- package/dist/EditTeamMemberForm-CaS2GLjV.js.map +0 -1
- package/dist/EditTeamMemberForm-OtcS8QWt.js +0 -6
- package/dist/EditUserPage-T4DQlKhf.js +0 -7
- package/dist/ForgotPassword-CUifhmqP.js +0 -7
- package/dist/LoginForm-Bg7GoZEA.js +0 -7
- package/dist/Logout-Bs92csWH.js +0 -7
- package/dist/MfaSetup-BACX5XP-.js +0 -8
- package/dist/MfaVerify-ak4iSdQ2.js +0 -8
- package/dist/ResetPassword-pY1uhTdl.js +0 -7
- package/dist/Signup-9TjMMnU4.js.map +0 -1
- package/dist/Signup-Bq-G3D-s.js +0 -9
- package/dist/SignupConsentFlow-QUZGKjdB.js.map +0 -1
- package/dist/StaffCreateSupportTicketForm-D0ZuisDk.js +0 -35
- package/dist/StaffSupportTicketList-CiqC05XB.js +0 -35
- package/dist/StaffSupportTicketParent-DkV329NI.js +0 -7
- package/dist/StaffSupportTicketSuccess-CUYnimaI.js +0 -35
- package/dist/TeamAttachmentsTab-DUtCD1Yi.js +0 -35
- package/dist/TeamHistoryTab-BsUoH4VK.js +0 -4
- package/dist/TeamHistoryTab-D5biUPmq.js.map +0 -1
- package/dist/TeamList-BkPIqZ8V.js +0 -35
- package/dist/TeamMemberList-1mxUGCNa.js +0 -35
- package/dist/TeamMemberParent-DzeBIElY.js +0 -35
- package/dist/TeamMembersTab-CBB2Yl_I.js +0 -3
- package/dist/TeamNotesTab-ClHl2nXd.js +0 -7
- package/dist/TeamParent-DJa9UZTP.js +0 -35
- package/dist/TimelineSystemEvent-BHzFr46C.js.map +0 -1
- package/dist/UserListPage-BTLE4J0s.js +0 -4
- package/dist/UserProfilePage-CVTORtSx.js +0 -7
- package/dist/VerifyEmail-DCP4DWIw.js +0 -9
- package/dist/ViewTeam-DVfnLMhV.js +0 -35
- package/dist/ViewTeamMember-L4v3gCIn.js +0 -35
- package/dist/convertToLocalDateTime-CFhtN6PI.js.map +0 -1
- package/dist/src-QZJyMfGX.js +0 -8951
- package/dist/src-QZJyMfGX.js.map +0 -1
- package/dist/useMutation-BTsyHKyn.js.map +0 -1
- package/dist/useRpcAuth-rmHf7bYx.js.map +0 -1
- package/dist/useSignupPendingData-BWHwUHhL.js +0 -47
- package/dist/useSignupPendingData-BWHwUHhL.js.map +0 -1
|
@@ -1,118 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as useMutation } from "./useMutation-
|
|
3
|
-
import { t as useQuery } from "./useQuery-
|
|
4
|
-
import {
|
|
1
|
+
import { d as useEnv, o as useUserSessionStore } from "./useRpcAuth-CJtq1dqM.js";
|
|
2
|
+
import { t as useMutation } from "./useMutation-BLNuJoYl.js";
|
|
3
|
+
import { t as useQuery } from "./useQuery-BzUGEOj0.js";
|
|
4
|
+
import { t as ConfirmDialog_default } from "./ConfirmDialog-DjthOYU6.js";
|
|
5
|
+
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, ref, renderList, toDisplayString, unref, watch, withModifiers } from "vue";
|
|
5
6
|
|
|
6
|
-
//#region src/components/ConfirmDialog.vue
|
|
7
|
-
const _hoisted_1$7 = { class: "font-bold text-lg mb-4" };
|
|
8
|
-
const _hoisted_2$4 = { class: "py-4" };
|
|
9
|
-
const _hoisted_3$4 = { class: "modal-action" };
|
|
10
|
-
const _hoisted_4$4 = ["disabled"];
|
|
11
|
-
const _hoisted_5$4 = ["disabled"];
|
|
12
|
-
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
13
|
-
__name: "ConfirmDialog",
|
|
14
|
-
props: {
|
|
15
|
-
modelValue: { type: Boolean },
|
|
16
|
-
title: { default: "Confirm" },
|
|
17
|
-
message: { default: "Are you sure?" },
|
|
18
|
-
confirmText: { default: "Confirm" },
|
|
19
|
-
cancelText: { default: "Cancel" },
|
|
20
|
-
processingText: { default: "Processing..." },
|
|
21
|
-
confirmButtonClass: { default: "btn-primary" },
|
|
22
|
-
isProcessing: {
|
|
23
|
-
type: Boolean,
|
|
24
|
-
default: false
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
emits: [
|
|
28
|
-
"update:modelValue",
|
|
29
|
-
"confirm",
|
|
30
|
-
"cancel"
|
|
31
|
-
],
|
|
32
|
-
setup(__props, { emit: __emit }) {
|
|
33
|
-
const props = __props;
|
|
34
|
-
const emit = __emit;
|
|
35
|
-
const dialogRef = ref(null);
|
|
36
|
-
const isOpen = ref(props.modelValue);
|
|
37
|
-
watch(() => props.modelValue, (newValue) => {
|
|
38
|
-
isOpen.value = newValue;
|
|
39
|
-
if (newValue && dialogRef.value) dialogRef.value.showModal();
|
|
40
|
-
else if (dialogRef.value) dialogRef.value.close();
|
|
41
|
-
}, { immediate: true });
|
|
42
|
-
watch(isOpen, (newValue) => {
|
|
43
|
-
if (newValue && dialogRef.value) dialogRef.value.showModal();
|
|
44
|
-
else if (dialogRef.value) dialogRef.value.close();
|
|
45
|
-
});
|
|
46
|
-
const handleConfirm = () => {
|
|
47
|
-
emit("confirm");
|
|
48
|
-
};
|
|
49
|
-
const handleCancel = () => {
|
|
50
|
-
isOpen.value = false;
|
|
51
|
-
emit("update:modelValue", false);
|
|
52
|
-
emit("cancel");
|
|
53
|
-
};
|
|
54
|
-
const handleBackdropClick = (event) => {
|
|
55
|
-
if (event.target === dialogRef.value) handleCancel();
|
|
56
|
-
};
|
|
57
|
-
return (_ctx, _cache) => {
|
|
58
|
-
return openBlock(), createElementBlock("dialog", {
|
|
59
|
-
ref_key: "dialogRef",
|
|
60
|
-
ref: dialogRef,
|
|
61
|
-
class: normalizeClass(["modal", { "modal-open": isOpen.value }]),
|
|
62
|
-
onClick: handleBackdropClick
|
|
63
|
-
}, [createElementVNode("div", {
|
|
64
|
-
class: "modal-box",
|
|
65
|
-
onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"]))
|
|
66
|
-
}, [
|
|
67
|
-
createElementVNode("h3", _hoisted_1$7, toDisplayString(__props.title), 1),
|
|
68
|
-
createElementVNode("div", _hoisted_2$4, [renderSlot(_ctx.$slots, "message", {}, () => [createElementVNode("p", null, toDisplayString(__props.message), 1)])]),
|
|
69
|
-
createElementVNode("div", _hoisted_3$4, [createElementVNode("button", {
|
|
70
|
-
class: "btn btn-outline",
|
|
71
|
-
onClick: withModifiers(handleCancel, ["prevent"]),
|
|
72
|
-
disabled: __props.isProcessing,
|
|
73
|
-
type: "button"
|
|
74
|
-
}, toDisplayString(__props.cancelText), 9, _hoisted_4$4), createElementVNode("button", {
|
|
75
|
-
class: normalizeClass(["btn", __props.confirmButtonClass]),
|
|
76
|
-
onClick: withModifiers(handleConfirm, ["prevent"]),
|
|
77
|
-
disabled: __props.isProcessing,
|
|
78
|
-
type: "button"
|
|
79
|
-
}, toDisplayString(__props.isProcessing ? __props.processingText : __props.confirmText), 11, _hoisted_5$4)])
|
|
80
|
-
])], 2);
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
var ConfirmDialog_default = _sfc_main$7;
|
|
85
|
-
|
|
86
|
-
//#endregion
|
|
87
7
|
//#region src/components/ImageModal.vue
|
|
88
|
-
const _hoisted_1$
|
|
89
|
-
const _hoisted_2$
|
|
90
|
-
const _hoisted_3$
|
|
91
|
-
const _hoisted_4$
|
|
92
|
-
const _hoisted_5$
|
|
8
|
+
const _hoisted_1$1 = { class: "modal-box w-full max-w-full h-full max-h-full p-0 flex flex-col bg-base-100" };
|
|
9
|
+
const _hoisted_2$1 = { class: "flex items-center justify-between p-3 sm:p-4 border-b border-base-300 flex-shrink-0 bg-base-100/95 backdrop-blur" };
|
|
10
|
+
const _hoisted_3$1 = { class: "flex-1 min-w-0 mr-2" };
|
|
11
|
+
const _hoisted_4$1 = { class: "font-semibold text-sm sm:text-base truncate" };
|
|
12
|
+
const _hoisted_5$1 = {
|
|
93
13
|
key: 0,
|
|
94
14
|
class: "text-xs text-base-content/60 mt-0.5"
|
|
95
15
|
};
|
|
96
|
-
const _hoisted_6$
|
|
97
|
-
const _hoisted_7$
|
|
16
|
+
const _hoisted_6$1 = { class: "flex items-center gap-1 sm:gap-2 flex-shrink-0" };
|
|
17
|
+
const _hoisted_7$1 = {
|
|
98
18
|
key: 0,
|
|
99
19
|
class: "absolute inset-0 flex items-center justify-center"
|
|
100
20
|
};
|
|
101
|
-
const _hoisted_8$
|
|
21
|
+
const _hoisted_8$1 = {
|
|
102
22
|
key: 1,
|
|
103
23
|
class: "absolute inset-0 flex flex-col items-center justify-center p-4 text-center"
|
|
104
24
|
};
|
|
105
|
-
const _hoisted_9$
|
|
106
|
-
const _hoisted_10$
|
|
107
|
-
const _hoisted_11$
|
|
108
|
-
const _hoisted_12$
|
|
25
|
+
const _hoisted_9$1 = ["src", "alt"];
|
|
26
|
+
const _hoisted_10$1 = ["disabled"];
|
|
27
|
+
const _hoisted_11$1 = ["disabled"];
|
|
28
|
+
const _hoisted_12$1 = {
|
|
109
29
|
method: "dialog",
|
|
110
30
|
class: "modal-backdrop"
|
|
111
31
|
};
|
|
112
32
|
const minScale = .5;
|
|
113
33
|
const maxScale = 5;
|
|
114
34
|
const zoomStep = .05;
|
|
115
|
-
const _sfc_main$
|
|
35
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
116
36
|
__name: "ImageModal",
|
|
117
37
|
props: {
|
|
118
38
|
isOpen: { type: Boolean },
|
|
@@ -542,9 +462,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
542
462
|
class: normalizeClass(["modal", { "modal-open": isOpen.value }]),
|
|
543
463
|
onClick: handleBackdropClick,
|
|
544
464
|
onKeydown: handleKeydown
|
|
545
|
-
}, [createElementVNode("div", _hoisted_1$
|
|
465
|
+
}, [createElementVNode("div", _hoisted_1$1, [
|
|
546
466
|
createCommentVNode(" Header "),
|
|
547
|
-
createElementVNode("div", _hoisted_2$
|
|
467
|
+
createElementVNode("div", _hoisted_2$1, [createElementVNode("div", _hoisted_3$1, [createElementVNode("h3", _hoisted_4$1, toDisplayString(__props.imageName), 1), __props.imageIndex !== null && __props.totalImages !== null ? (openBlock(), createElementBlock("p", _hoisted_5$1, toDisplayString(__props.imageIndex + 1) + " / " + toDisplayString(__props.totalImages), 1)) : createCommentVNode("v-if", true)]), createElementVNode("div", _hoisted_6$1, [
|
|
548
468
|
createCommentVNode(" Navigation buttons (if multiple images) "),
|
|
549
469
|
showNavigation.value && __props.imageIndex !== null && __props.imageIndex > 0 ? (openBlock(), createElementBlock("button", {
|
|
550
470
|
key: 0,
|
|
@@ -631,9 +551,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
631
551
|
class: "flex-1 flex items-center justify-center overflow-hidden bg-base-200 relative"
|
|
632
552
|
}, [
|
|
633
553
|
createCommentVNode(" Loading state "),
|
|
634
|
-
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_7$
|
|
554
|
+
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_7$1, [..._cache[8] || (_cache[8] = [createElementVNode("span", { class: "loading loading-spinner loading-lg" }, null, -1)])])) : createCommentVNode("v-if", true),
|
|
635
555
|
createCommentVNode(" Error state "),
|
|
636
|
-
hasError.value ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
556
|
+
hasError.value ? (openBlock(), createElementBlock("div", _hoisted_8$1, [..._cache[9] || (_cache[9] = [createElementVNode("svg", {
|
|
637
557
|
xmlns: "http://www.w3.org/2000/svg",
|
|
638
558
|
class: "h-12 w-12 text-error mb-2",
|
|
639
559
|
fill: "none",
|
|
@@ -660,7 +580,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
660
580
|
onTouchstart: withModifiers(handleImageTouchStart, ["stop"]),
|
|
661
581
|
onTouchmove: withModifiers(handleImageTouchMove, ["stop"]),
|
|
662
582
|
onTouchend: withModifiers(handleImageTouchEnd, ["stop"])
|
|
663
|
-
}, null, 46, _hoisted_9$
|
|
583
|
+
}, null, 46, _hoisted_9$1)) : createCommentVNode("v-if", true),
|
|
664
584
|
createCommentVNode(" Zoom controls "),
|
|
665
585
|
__props.imageSrc && !hasError.value ? (openBlock(), createElementBlock("div", {
|
|
666
586
|
key: 3,
|
|
@@ -688,7 +608,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
688
608
|
"stroke-linejoin": "round",
|
|
689
609
|
"stroke-width": "2",
|
|
690
610
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7"
|
|
691
|
-
})], -1)])], 8, _hoisted_10$
|
|
611
|
+
})], -1)])], 8, _hoisted_10$1),
|
|
692
612
|
createElementVNode("button", {
|
|
693
613
|
onClick: withModifiers(resetZoom, ["prevent"]),
|
|
694
614
|
class: "text-xs flex items-center px-2 text-base-content/70 hover:text-base-content hover:bg-base-200 rounded transition-colors cursor-pointer",
|
|
@@ -714,7 +634,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
714
634
|
"stroke-linejoin": "round",
|
|
715
635
|
"stroke-width": "2",
|
|
716
636
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7"
|
|
717
|
-
})], -1)])], 8, _hoisted_11$
|
|
637
|
+
})], -1)])], 8, _hoisted_11$1),
|
|
718
638
|
createElementVNode("button", {
|
|
719
639
|
onClick: withModifiers(rotateImage, ["prevent"]),
|
|
720
640
|
class: "btn btn-sm btn-circle btn-ghost",
|
|
@@ -737,100 +657,53 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
737
657
|
})], -1)])])
|
|
738
658
|
], 32)) : createCommentVNode("v-if", true)
|
|
739
659
|
], 512)
|
|
740
|
-
]), createElementVNode("form", _hoisted_12$
|
|
660
|
+
]), createElementVNode("form", _hoisted_12$1, [createElementVNode("button", {
|
|
741
661
|
type: "button",
|
|
742
662
|
onClick: withModifiers(handleClose, ["prevent"])
|
|
743
663
|
}, "close")])], 34);
|
|
744
664
|
};
|
|
745
665
|
}
|
|
746
666
|
});
|
|
747
|
-
var ImageModal_default = _sfc_main$
|
|
748
|
-
|
|
749
|
-
//#endregion
|
|
750
|
-
//#region src/slices/support_ticket/utils/creditValueFormatter.ts
|
|
751
|
-
/**
|
|
752
|
-
* Helper function to check if credit value is empty
|
|
753
|
-
*/
|
|
754
|
-
function isCreditValueEmpty(value) {
|
|
755
|
-
return value === null || value === void 0 || value.trim() === "";
|
|
756
|
-
}
|
|
757
|
-
/**
|
|
758
|
-
* Core credit formatting logic
|
|
759
|
-
*/
|
|
760
|
-
function formatCreditValueCore(creditValue) {
|
|
761
|
-
if (isCreditValueEmpty(creditValue)) return "TBD";
|
|
762
|
-
const trimmed = creditValue.trim();
|
|
763
|
-
if (parseFloat(trimmed) === 0) return "0";
|
|
764
|
-
return trimmed.replace(/\.?0+$/, "");
|
|
765
|
-
}
|
|
766
|
-
/**
|
|
767
|
-
* Formats credit value for staff views (includes internal ticket logic)
|
|
768
|
-
*
|
|
769
|
-
* @param creditValue - The credit value from the database
|
|
770
|
-
* @param approvalStatus - The approval status to determine display logic
|
|
771
|
-
* @returns Formatted string for display
|
|
772
|
-
*
|
|
773
|
-
* @example
|
|
774
|
-
* formatStaffCreditValue("5.50", "PENDING") // "5.5"
|
|
775
|
-
* formatStaffCreditValue("10", "INTERNAL") // "N/A"
|
|
776
|
-
*/
|
|
777
|
-
function formatStaffCreditValue(creditValue, approvalStatus) {
|
|
778
|
-
if (approvalStatus === "INTERNAL") return "N/A";
|
|
779
|
-
return formatCreditValueCore(creditValue);
|
|
780
|
-
}
|
|
781
|
-
/**
|
|
782
|
-
* Formats credit value for customer views (status-based logic)
|
|
783
|
-
*
|
|
784
|
-
* @param creditValue - The credit value from the database
|
|
785
|
-
* @param status - The computed status from the customer query
|
|
786
|
-
* @returns Formatted string for display
|
|
787
|
-
*
|
|
788
|
-
* @example
|
|
789
|
-
* formatCustomerCreditValue("5.50", "PENDING") // "5.5"
|
|
790
|
-
* formatCustomerCreditValue("5.50", "FOLLOWUP") // "5.5"
|
|
791
|
-
*/
|
|
792
|
-
function formatCustomerCreditValue(creditValue) {
|
|
793
|
-
return formatCreditValueCore(creditValue);
|
|
794
|
-
}
|
|
667
|
+
var ImageModal_default = _sfc_main$1;
|
|
795
668
|
|
|
796
669
|
//#endregion
|
|
797
670
|
//#region src/slices/support_ticket/shared/InlineAttachments.vue
|
|
798
|
-
const _hoisted_1
|
|
799
|
-
const _hoisted_2
|
|
671
|
+
const _hoisted_1 = { class: "mt-4 sm:mt-6" };
|
|
672
|
+
const _hoisted_2 = {
|
|
800
673
|
key: 0,
|
|
801
674
|
class: "grid grid-cols-2 gap-2 sm:gap-4 mb-4"
|
|
802
675
|
};
|
|
803
|
-
const _hoisted_3
|
|
676
|
+
const _hoisted_3 = {
|
|
804
677
|
key: 0,
|
|
805
678
|
class: "hidden sm:block text-xs text-base-content/50"
|
|
806
679
|
};
|
|
807
|
-
const _hoisted_4
|
|
680
|
+
const _hoisted_4 = {
|
|
808
681
|
key: 1,
|
|
809
682
|
class: "mb-4 space-y-2"
|
|
810
683
|
};
|
|
811
|
-
const _hoisted_5
|
|
812
|
-
const _hoisted_6
|
|
813
|
-
const _hoisted_7
|
|
684
|
+
const _hoisted_5 = { class: "flex-1 min-w-0" };
|
|
685
|
+
const _hoisted_6 = { class: "text-xs sm:text-sm font-medium truncate" };
|
|
686
|
+
const _hoisted_7 = {
|
|
814
687
|
key: 0,
|
|
815
688
|
class: "w-full bg-base-300 rounded-full h-1.5 mt-1"
|
|
816
689
|
};
|
|
817
|
-
const _hoisted_8
|
|
690
|
+
const _hoisted_8 = {
|
|
818
691
|
key: 1,
|
|
819
692
|
class: "text-xs text-error mt-1 break-words"
|
|
820
693
|
};
|
|
821
|
-
const _hoisted_9
|
|
822
|
-
const _hoisted_10
|
|
823
|
-
const _hoisted_11
|
|
824
|
-
const _hoisted_12
|
|
694
|
+
const _hoisted_9 = { class: "flex gap-2 sm:gap-1" };
|
|
695
|
+
const _hoisted_10 = ["onClick"];
|
|
696
|
+
const _hoisted_11 = ["onClick"];
|
|
697
|
+
const _hoisted_12 = {
|
|
825
698
|
key: 2,
|
|
826
699
|
class: "space-y-2"
|
|
827
700
|
};
|
|
828
|
-
const _hoisted_13
|
|
701
|
+
const _hoisted_13 = {
|
|
829
702
|
key: 0,
|
|
830
703
|
class: "flex justify-center py-4"
|
|
831
704
|
};
|
|
832
|
-
const _hoisted_14
|
|
833
|
-
const _hoisted_15
|
|
705
|
+
const _hoisted_14 = ["onClick"];
|
|
706
|
+
const _hoisted_15 = { class: "flex items-center gap-2 sm:gap-3 flex-1 min-w-0 w-full sm:w-auto" };
|
|
834
707
|
const _hoisted_16 = { class: "flex-shrink-0" };
|
|
835
708
|
const _hoisted_17 = {
|
|
836
709
|
key: 0,
|
|
@@ -851,7 +724,7 @@ const _hoisted_26 = {
|
|
|
851
724
|
key: 3,
|
|
852
725
|
class: "text-center py-8 text-base-content/50"
|
|
853
726
|
};
|
|
854
|
-
const _sfc_main
|
|
727
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
855
728
|
__name: "InlineAttachments",
|
|
856
729
|
props: {
|
|
857
730
|
recordId: {},
|
|
@@ -1204,7 +1077,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1204
1077
|
});
|
|
1205
1078
|
}, { immediate: true });
|
|
1206
1079
|
return (_ctx, _cache) => {
|
|
1207
|
-
return openBlock(), createElementBlock("div", _hoisted_1
|
|
1080
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
1208
1081
|
createElementVNode("input", {
|
|
1209
1082
|
ref_key: "fileInput",
|
|
1210
1083
|
ref: fileInput,
|
|
@@ -1214,7 +1087,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1214
1087
|
onChange: handleFileSelect
|
|
1215
1088
|
}, null, 544),
|
|
1216
1089
|
createCommentVNode(" Drag & Drop and Paste: compact button-like on mobile, expanded on desktop "),
|
|
1217
|
-
__props.canUpload ? (openBlock(), createElementBlock("div", _hoisted_2
|
|
1090
|
+
__props.canUpload ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
1218
1091
|
createCommentVNode(" Drag & Drop Zone "),
|
|
1219
1092
|
createElementVNode("div", {
|
|
1220
1093
|
class: normalizeClass(["flex flex-col items-center justify-center gap-1 sm:gap-2 py-2.5 px-2 sm:py-6 sm:px-4 rounded-lg border-2 border-dashed transition-colors cursor-pointer touch-manipulation text-center", {
|
|
@@ -1240,7 +1113,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1240
1113
|
})], -1)),
|
|
1241
1114
|
_cache[5] || (_cache[5] = createElementVNode("span", { class: "text-xs sm:text-lg font-medium" }, "Browse", -1)),
|
|
1242
1115
|
_cache[6] || (_cache[6] = createElementVNode("span", { class: "hidden sm:inline text-xs text-base-content/70" }, "Drag and drop or click", -1)),
|
|
1243
|
-
!__props.recordId ? (openBlock(), createElementBlock("p", _hoisted_3
|
|
1116
|
+
!__props.recordId ? (openBlock(), createElementBlock("p", _hoisted_3, " Queued until ticket is created ")) : createCommentVNode("v-if", true)
|
|
1244
1117
|
], 34),
|
|
1245
1118
|
createCommentVNode(" Paste zone - collapse handles visibility via CSS, so no unmount during animation "),
|
|
1246
1119
|
createElementVNode("div", {
|
|
@@ -1267,36 +1140,36 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1267
1140
|
])], 32)
|
|
1268
1141
|
])) : createCommentVNode("v-if", true),
|
|
1269
1142
|
createCommentVNode(" Upload Queue "),
|
|
1270
|
-
uploadQueue.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_4
|
|
1143
|
+
uploadQueue.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_4, [(openBlock(true), createElementBlock(Fragment, null, renderList(uploadQueue.value, (item) => {
|
|
1271
1144
|
return openBlock(), createElementBlock("div", {
|
|
1272
1145
|
key: item.id,
|
|
1273
1146
|
class: "flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-3 p-2 sm:p-3 bg-base-200 rounded-lg"
|
|
1274
|
-
}, [createElementVNode("div", _hoisted_5
|
|
1275
|
-
createElementVNode("div", _hoisted_6
|
|
1276
|
-
item.status === "uploading" ? (openBlock(), createElementBlock("div", _hoisted_7
|
|
1147
|
+
}, [createElementVNode("div", _hoisted_5, [
|
|
1148
|
+
createElementVNode("div", _hoisted_6, toDisplayString(item.file.name), 1),
|
|
1149
|
+
item.status === "uploading" ? (openBlock(), createElementBlock("div", _hoisted_7, [createElementVNode("div", {
|
|
1277
1150
|
class: "bg-primary h-1.5 rounded-full transition-all",
|
|
1278
1151
|
style: normalizeStyle({ width: `${item.progress}%` })
|
|
1279
1152
|
}, null, 4)])) : createCommentVNode("v-if", true),
|
|
1280
|
-
item.status === "error" ? (openBlock(), createElementBlock("div", _hoisted_8
|
|
1281
|
-
]), createElementVNode("div", _hoisted_9
|
|
1153
|
+
item.status === "error" ? (openBlock(), createElementBlock("div", _hoisted_8, toDisplayString(item.errorMessage), 1)) : createCommentVNode("v-if", true)
|
|
1154
|
+
]), createElementVNode("div", _hoisted_9, [item.status === "error" ? (openBlock(), createElementBlock("button", {
|
|
1282
1155
|
key: 0,
|
|
1283
1156
|
onClick: withModifiers(($event) => retryUpload(item), ["prevent"]),
|
|
1284
1157
|
class: "btn btn-xs btn-ghost flex-1 sm:flex-none",
|
|
1285
1158
|
type: "button"
|
|
1286
|
-
}, " Retry ", 8, _hoisted_10
|
|
1159
|
+
}, " Retry ", 8, _hoisted_10)) : createCommentVNode("v-if", true), item.status !== "uploading" ? (openBlock(), createElementBlock("button", {
|
|
1287
1160
|
key: 1,
|
|
1288
1161
|
onClick: withModifiers(($event) => removeFromQueue(item.id), ["prevent"]),
|
|
1289
1162
|
class: "btn btn-xs btn-ghost text-error flex-1 sm:flex-none",
|
|
1290
1163
|
type: "button"
|
|
1291
|
-
}, " Remove ", 8, _hoisted_11
|
|
1164
|
+
}, " Remove ", 8, _hoisted_11)) : createCommentVNode("v-if", true)])]);
|
|
1292
1165
|
}), 128))])) : createCommentVNode("v-if", true),
|
|
1293
1166
|
createCommentVNode(" Attachments List "),
|
|
1294
|
-
(attachments.value.length > 0 || unref(attachmentsLoading)) && __props.recordId ? (openBlock(), createElementBlock("div", _hoisted_12
|
|
1167
|
+
(attachments.value.length > 0 || unref(attachmentsLoading)) && __props.recordId ? (openBlock(), createElementBlock("div", _hoisted_12, [unref(attachmentsLoading) ? (openBlock(), createElementBlock("div", _hoisted_13, [..._cache[8] || (_cache[8] = [createElementVNode("span", { class: "loading loading-spinner loading-sm" }, null, -1)])])) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(attachments.value, (file) => {
|
|
1295
1168
|
return openBlock(), createElementBlock("div", {
|
|
1296
1169
|
key: file.id,
|
|
1297
1170
|
class: normalizeClass(["flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-3 p-2 sm:p-3 bg-base-100 border border-base-300 rounded-lg hover:bg-base-200 transition-colors", { "cursor-pointer": isImage(file.type) }]),
|
|
1298
1171
|
onClick: withModifiers(($event) => isImage(file.type) && viewImage(file), ["prevent"])
|
|
1299
|
-
}, [createElementVNode("div", _hoisted_15
|
|
1172
|
+
}, [createElementVNode("div", _hoisted_15, [createElementVNode("div", _hoisted_16, [createCommentVNode(" Image thumbnail preview "), isImage(file.type) ? (openBlock(), createElementBlock("div", _hoisted_17, [getImageUrlSync(file.id) ? (openBlock(), createElementBlock("img", {
|
|
1300
1173
|
key: 0,
|
|
1301
1174
|
src: getImageUrlSync(file.id),
|
|
1302
1175
|
alt: file.name,
|
|
@@ -1364,7 +1237,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1364
1237
|
"stroke-width": "2",
|
|
1365
1238
|
d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
|
|
1366
1239
|
})], -1)])], 8, _hoisted_25)) : createCommentVNode("v-if", true)
|
|
1367
|
-
])], 10, _hoisted_14
|
|
1240
|
+
])], 10, _hoisted_14);
|
|
1368
1241
|
}), 128))])) : !unref(attachmentsLoading) && __props.recordId ? (openBlock(), createElementBlock("div", _hoisted_26, [..._cache[13] || (_cache[13] = [createElementVNode("svg", {
|
|
1369
1242
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1370
1243
|
class: "h-12 w-12 mx-auto mb-2 opacity-50",
|
|
@@ -1416,482 +1289,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1416
1289
|
};
|
|
1417
1290
|
}
|
|
1418
1291
|
});
|
|
1419
|
-
var InlineAttachments_default = _sfc_main
|
|
1420
|
-
|
|
1421
|
-
//#endregion
|
|
1422
|
-
//#region src/slices/support_ticket/shared/SupportTicketPriorityBadge.vue
|
|
1423
|
-
const _hoisted_1$4 = ["aria-label"];
|
|
1424
|
-
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
1425
|
-
__name: "SupportTicketPriorityBadge",
|
|
1426
|
-
props: {
|
|
1427
|
-
priority: {},
|
|
1428
|
-
size: { default: "md" },
|
|
1429
|
-
variant: { default: "default" }
|
|
1430
|
-
},
|
|
1431
|
-
setup(__props) {
|
|
1432
|
-
/**
|
|
1433
|
-
* SupportTicketPriorityBadge - A reusable Vue component for displaying support ticket priority
|
|
1434
|
-
* as color-coded badges with consistent DaisyUI styling and accessibility features.
|
|
1435
|
-
*
|
|
1436
|
-
* @example
|
|
1437
|
-
* <SupportTicketPriorityBadge :priority="'HIGH'" size="md" />
|
|
1438
|
-
* <SupportTicketPriorityBadge :priority="'CRITICAL'" size="sm" variant="outline" />
|
|
1439
|
-
*/
|
|
1440
|
-
const props = __props;
|
|
1441
|
-
/**
|
|
1442
|
-
* Configuration for each priority badge
|
|
1443
|
-
*/
|
|
1444
|
-
const priorityConfig = {
|
|
1445
|
-
LOW: {
|
|
1446
|
-
color: "badge-neutral",
|
|
1447
|
-
text: "Low",
|
|
1448
|
-
ariaLabel: "Priority: Low priority"
|
|
1449
|
-
},
|
|
1450
|
-
MEDIUM: {
|
|
1451
|
-
color: "badge-neutral",
|
|
1452
|
-
text: "Medium",
|
|
1453
|
-
ariaLabel: "Priority: Medium priority"
|
|
1454
|
-
},
|
|
1455
|
-
HIGH: {
|
|
1456
|
-
color: "badge-neutral",
|
|
1457
|
-
text: "High",
|
|
1458
|
-
ariaLabel: "Priority: High priority"
|
|
1459
|
-
},
|
|
1460
|
-
CRITICAL: {
|
|
1461
|
-
color: "badge-neutral",
|
|
1462
|
-
text: "Critical",
|
|
1463
|
-
ariaLabel: "Priority: Critical priority"
|
|
1464
|
-
}
|
|
1465
|
-
};
|
|
1466
|
-
const getPriorityConfig = (priority) => {
|
|
1467
|
-
const config$1 = priorityConfig[priority];
|
|
1468
|
-
if (!config$1) return {
|
|
1469
|
-
color: "badge-neutral",
|
|
1470
|
-
text: priority || "Unknown",
|
|
1471
|
-
ariaLabel: `Priority: ${priority || "Unknown priority"}`
|
|
1472
|
-
};
|
|
1473
|
-
return config$1;
|
|
1474
|
-
};
|
|
1475
|
-
const config = computed(() => getPriorityConfig(props.priority));
|
|
1476
|
-
const badgeClasses = computed(() => {
|
|
1477
|
-
const baseClasses = ["badge", "text-xs"];
|
|
1478
|
-
baseClasses.push(config.value.color);
|
|
1479
|
-
if (props.size === "sm") baseClasses.push("badge-sm", "text-xs");
|
|
1480
|
-
else if (props.size === "lg") baseClasses.push("badge-lg", "text-sm");
|
|
1481
|
-
else baseClasses.push("text-xs", "sm:text-sm");
|
|
1482
|
-
if (props.variant === "outline") baseClasses.push("badge-outline");
|
|
1483
|
-
return baseClasses.join(" ");
|
|
1484
|
-
});
|
|
1485
|
-
const displayText = computed(() => config.value.text);
|
|
1486
|
-
const ariaLabel = computed(() => config.value.ariaLabel);
|
|
1487
|
-
return (_ctx, _cache) => {
|
|
1488
|
-
return openBlock(), createElementBlock("div", {
|
|
1489
|
-
class: normalizeClass(badgeClasses.value),
|
|
1490
|
-
"aria-label": ariaLabel.value,
|
|
1491
|
-
role: "status"
|
|
1492
|
-
}, toDisplayString(displayText.value), 11, _hoisted_1$4);
|
|
1493
|
-
};
|
|
1494
|
-
}
|
|
1495
|
-
});
|
|
1496
|
-
var SupportTicketPriorityBadge_default = _sfc_main$4;
|
|
1497
|
-
|
|
1498
|
-
//#endregion
|
|
1499
|
-
//#region src/slices/support_ticket/shared/SupportTicketTypeBadge.vue
|
|
1500
|
-
const _hoisted_1$3 = ["aria-label"];
|
|
1501
|
-
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
1502
|
-
__name: "SupportTicketTypeBadge",
|
|
1503
|
-
props: {
|
|
1504
|
-
type: {},
|
|
1505
|
-
size: { default: "md" },
|
|
1506
|
-
variant: { default: "default" }
|
|
1507
|
-
},
|
|
1508
|
-
setup(__props) {
|
|
1509
|
-
/**
|
|
1510
|
-
* SupportTicketTypeBadge - A reusable Vue component for displaying support ticket type
|
|
1511
|
-
* as color-coded badges with consistent DaisyUI styling and accessibility features.
|
|
1512
|
-
*
|
|
1513
|
-
* @example
|
|
1514
|
-
* <SupportTicketTypeBadge :type="'BUG'" size="md" />
|
|
1515
|
-
* <SupportTicketTypeBadge :type="'FEATURE_REQUEST'" size="sm" variant="outline" />
|
|
1516
|
-
*/
|
|
1517
|
-
const props = __props;
|
|
1518
|
-
/**
|
|
1519
|
-
* Configuration for each type badge
|
|
1520
|
-
*/
|
|
1521
|
-
const typeConfig = {
|
|
1522
|
-
BUG: {
|
|
1523
|
-
color: "badge-neutral",
|
|
1524
|
-
text: "Bug",
|
|
1525
|
-
ariaLabel: "Type: Bug report requiring fix"
|
|
1526
|
-
},
|
|
1527
|
-
FEATURE_REQUEST: {
|
|
1528
|
-
color: "badge-neutral",
|
|
1529
|
-
text: "Feature",
|
|
1530
|
-
ariaLabel: "Type: New feature request"
|
|
1531
|
-
},
|
|
1532
|
-
IMPROVEMENT: {
|
|
1533
|
-
color: "badge-neutral",
|
|
1534
|
-
text: "Improvement",
|
|
1535
|
-
ariaLabel: "Type: Enhancement to existing feature"
|
|
1536
|
-
},
|
|
1537
|
-
OPERATIONAL: {
|
|
1538
|
-
color: "badge-neutral",
|
|
1539
|
-
text: "Ops",
|
|
1540
|
-
ariaLabel: "Type: Operational/admin work"
|
|
1541
|
-
}
|
|
1542
|
-
};
|
|
1543
|
-
const getTypeConfig = (type) => {
|
|
1544
|
-
const config$1 = typeConfig[type];
|
|
1545
|
-
if (!config$1) return {
|
|
1546
|
-
color: "badge-neutral",
|
|
1547
|
-
text: type || "Unknown",
|
|
1548
|
-
ariaLabel: `Type: ${type || "Unknown type"}`
|
|
1549
|
-
};
|
|
1550
|
-
return config$1;
|
|
1551
|
-
};
|
|
1552
|
-
const config = computed(() => getTypeConfig(props.type));
|
|
1553
|
-
const badgeClasses = computed(() => {
|
|
1554
|
-
const baseClasses = ["badge", "text-xs"];
|
|
1555
|
-
baseClasses.push(config.value.color);
|
|
1556
|
-
if (props.size === "sm") baseClasses.push("badge-sm", "text-xs");
|
|
1557
|
-
else if (props.size === "lg") baseClasses.push("badge-lg", "text-sm");
|
|
1558
|
-
else baseClasses.push("text-xs", "sm:text-sm");
|
|
1559
|
-
if (props.variant === "outline") baseClasses.push("badge-outline");
|
|
1560
|
-
return baseClasses.join(" ");
|
|
1561
|
-
});
|
|
1562
|
-
const displayText = computed(() => config.value.text);
|
|
1563
|
-
const ariaLabel = computed(() => config.value.ariaLabel);
|
|
1564
|
-
return (_ctx, _cache) => {
|
|
1565
|
-
return openBlock(), createElementBlock("div", {
|
|
1566
|
-
class: normalizeClass(badgeClasses.value),
|
|
1567
|
-
"aria-label": ariaLabel.value,
|
|
1568
|
-
role: "status"
|
|
1569
|
-
}, toDisplayString(displayText.value), 11, _hoisted_1$3);
|
|
1570
|
-
};
|
|
1571
|
-
}
|
|
1572
|
-
});
|
|
1573
|
-
var SupportTicketTypeBadge_default = _sfc_main$3;
|
|
1574
|
-
|
|
1575
|
-
//#endregion
|
|
1576
|
-
//#region src/slices/support_ticket/shared/SupportTicketApprovalBadge.vue
|
|
1577
|
-
const _hoisted_1$2 = ["aria-label"];
|
|
1578
|
-
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
1579
|
-
__name: "SupportTicketApprovalBadge",
|
|
1580
|
-
props: {
|
|
1581
|
-
approvalStatus: {},
|
|
1582
|
-
size: { default: "md" },
|
|
1583
|
-
variant: { default: "default" }
|
|
1584
|
-
},
|
|
1585
|
-
setup(__props) {
|
|
1586
|
-
/**
|
|
1587
|
-
* SupportTicketApprovalBadge - A reusable Vue component for displaying support ticket approval status
|
|
1588
|
-
* as color-coded badges with consistent DaisyUI styling and accessibility features.
|
|
1589
|
-
*
|
|
1590
|
-
* @example
|
|
1591
|
-
* <SupportTicketApprovalBadge :approvalStatus="'PENDING'" size="md" />
|
|
1592
|
-
* <SupportTicketApprovalBadge :approvalStatus="'APPROVED'" size="sm" variant="outline" />
|
|
1593
|
-
*/
|
|
1594
|
-
const props = __props;
|
|
1595
|
-
/**
|
|
1596
|
-
* Configuration for each approval status badge
|
|
1597
|
-
*/
|
|
1598
|
-
const approvalConfig = {
|
|
1599
|
-
PENDING: {
|
|
1600
|
-
color: "badge-warning",
|
|
1601
|
-
text: "Pending",
|
|
1602
|
-
ariaLabel: "Approval: Awaiting staff decision"
|
|
1603
|
-
},
|
|
1604
|
-
APPROVED: {
|
|
1605
|
-
color: "badge-success",
|
|
1606
|
-
text: "Approved",
|
|
1607
|
-
ariaLabel: "Approval: Approved by staff"
|
|
1608
|
-
},
|
|
1609
|
-
REJECTED: {
|
|
1610
|
-
color: "badge-error",
|
|
1611
|
-
text: "Rejected",
|
|
1612
|
-
ariaLabel: "Approval: Rejected by staff"
|
|
1613
|
-
},
|
|
1614
|
-
INTERNAL: {
|
|
1615
|
-
color: "badge-info",
|
|
1616
|
-
text: "Internal",
|
|
1617
|
-
ariaLabel: "Approval: Internal staff ticket"
|
|
1618
|
-
}
|
|
1619
|
-
};
|
|
1620
|
-
const getApprovalConfig = (approvalStatus) => {
|
|
1621
|
-
const config$1 = approvalConfig[approvalStatus];
|
|
1622
|
-
if (!config$1) return {
|
|
1623
|
-
color: "badge-neutral",
|
|
1624
|
-
text: approvalStatus || "Unknown",
|
|
1625
|
-
ariaLabel: `Approval: ${approvalStatus || "Unknown status"}`
|
|
1626
|
-
};
|
|
1627
|
-
return config$1;
|
|
1628
|
-
};
|
|
1629
|
-
const config = computed(() => getApprovalConfig(props.approvalStatus));
|
|
1630
|
-
const badgeClasses = computed(() => {
|
|
1631
|
-
const baseClasses = ["badge", "text-xs"];
|
|
1632
|
-
baseClasses.push(config.value.color);
|
|
1633
|
-
if (props.size === "sm") baseClasses.push("badge-sm", "text-xs");
|
|
1634
|
-
else if (props.size === "lg") baseClasses.push("badge-lg", "text-sm");
|
|
1635
|
-
else baseClasses.push("text-xs", "sm:text-sm");
|
|
1636
|
-
if (props.variant === "outline") baseClasses.push("badge-outline");
|
|
1637
|
-
return baseClasses.join(" ");
|
|
1638
|
-
});
|
|
1639
|
-
const displayText = computed(() => config.value.text);
|
|
1640
|
-
const ariaLabel = computed(() => config.value.ariaLabel);
|
|
1641
|
-
return (_ctx, _cache) => {
|
|
1642
|
-
return openBlock(), createElementBlock("div", {
|
|
1643
|
-
class: normalizeClass(badgeClasses.value),
|
|
1644
|
-
"aria-label": ariaLabel.value,
|
|
1645
|
-
role: "status"
|
|
1646
|
-
}, toDisplayString(displayText.value), 11, _hoisted_1$2);
|
|
1647
|
-
};
|
|
1648
|
-
}
|
|
1649
|
-
});
|
|
1650
|
-
var SupportTicketApprovalBadge_default = _sfc_main$2;
|
|
1651
|
-
|
|
1652
|
-
//#endregion
|
|
1653
|
-
//#region src/slices/support_ticket/utils/formatTicketDate.ts
|
|
1654
|
-
/**
|
|
1655
|
-
* Takes an ISO date string and returns:
|
|
1656
|
-
* - formatted: "Jan 15, 2025"
|
|
1657
|
-
* - relative: "3 days ago" / "2 hours ago" / "just now"
|
|
1658
|
-
* - localTime: "2:30 PM" (user's local time)
|
|
1659
|
-
*/
|
|
1660
|
-
function formatTicketDate(isoString) {
|
|
1661
|
-
const date = new Date(isoString);
|
|
1662
|
-
if (isNaN(date.getTime())) return {
|
|
1663
|
-
formatted: isoString,
|
|
1664
|
-
relative: "",
|
|
1665
|
-
localTime: ""
|
|
1666
|
-
};
|
|
1667
|
-
const formatted = date.toLocaleDateString(void 0, {
|
|
1668
|
-
year: "numeric",
|
|
1669
|
-
month: "short",
|
|
1670
|
-
day: "numeric"
|
|
1671
|
-
});
|
|
1672
|
-
const localTime = date.toLocaleTimeString(void 0, {
|
|
1673
|
-
hour: "numeric",
|
|
1674
|
-
minute: "2-digit"
|
|
1675
|
-
});
|
|
1676
|
-
const diffMs = (/* @__PURE__ */ new Date()).getTime() - date.getTime();
|
|
1677
|
-
const diffSec = Math.floor(diffMs / 1e3);
|
|
1678
|
-
const diffMin = Math.floor(diffSec / 60);
|
|
1679
|
-
const diffHour = Math.floor(diffMin / 60);
|
|
1680
|
-
const diffDay = Math.floor(diffHour / 24);
|
|
1681
|
-
let relative;
|
|
1682
|
-
if (Math.abs(diffSec) < 60) relative = "just now";
|
|
1683
|
-
else if (diffSec < 0) {
|
|
1684
|
-
const sec = Math.abs(diffSec);
|
|
1685
|
-
const min = Math.floor(sec / 60);
|
|
1686
|
-
const hr = Math.floor(min / 60);
|
|
1687
|
-
const day = Math.floor(hr / 24);
|
|
1688
|
-
if (min < 60) relative = `in ${min} minute${min === 1 ? "" : "s"}`;
|
|
1689
|
-
else if (hr < 24) relative = `in ${hr} hour${hr === 1 ? "" : "s"}`;
|
|
1690
|
-
else relative = `in ${day} day${day === 1 ? "" : "s"}`;
|
|
1691
|
-
} else if (diffMin < 60) relative = diffMin === 1 ? "1 minute ago" : `${diffMin} minutes ago`;
|
|
1692
|
-
else if (diffHour < 24) relative = diffHour === 1 ? "1 hour ago" : `${diffHour} hours ago`;
|
|
1693
|
-
else if (diffDay < 30) relative = diffDay === 1 ? "1 day ago" : `${diffDay} days ago`;
|
|
1694
|
-
else {
|
|
1695
|
-
const diffWeeks = Math.floor(diffDay / 7);
|
|
1696
|
-
const diffMonths = Math.floor(diffDay / 30);
|
|
1697
|
-
if (diffWeeks < 4) relative = diffWeeks === 1 ? "1 week ago" : `${diffWeeks} weeks ago`;
|
|
1698
|
-
else if (diffMonths < 12) relative = diffMonths === 1 ? "1 month ago" : `${diffMonths} months ago`;
|
|
1699
|
-
else {
|
|
1700
|
-
const diffYears = Math.floor(diffMonths / 12);
|
|
1701
|
-
relative = diffYears === 1 ? "1 year ago" : `${diffYears} years ago`;
|
|
1702
|
-
}
|
|
1703
|
-
}
|
|
1704
|
-
return {
|
|
1705
|
-
formatted,
|
|
1706
|
-
relative,
|
|
1707
|
-
localTime
|
|
1708
|
-
};
|
|
1709
|
-
}
|
|
1710
|
-
|
|
1711
|
-
//#endregion
|
|
1712
|
-
//#region src/slices/support_ticket/shared/TimelineItem.vue
|
|
1713
|
-
const _hoisted_1$1 = { class: "flex items-center gap-2 mb-3 flex-wrap" };
|
|
1714
|
-
const _hoisted_2$1 = {
|
|
1715
|
-
key: 0,
|
|
1716
|
-
class: "badge badge-warning badge-sm gap-1 shrink-0",
|
|
1717
|
-
"aria-label": "Internal note"
|
|
1718
|
-
};
|
|
1719
|
-
const _hoisted_3$1 = {
|
|
1720
|
-
key: 1,
|
|
1721
|
-
class: "w-6 h-6 rounded-full bg-primary text-primary-content text-xs flex items-center justify-center shrink-0",
|
|
1722
|
-
"aria-hidden": "true"
|
|
1723
|
-
};
|
|
1724
|
-
const _hoisted_4$1 = { class: "font-semibold text-sm" };
|
|
1725
|
-
const _hoisted_5$1 = { class: "text-base-content/50 text-sm" };
|
|
1726
|
-
const _hoisted_6$1 = { class: "text-sm text-base-content break-words whitespace-pre-wrap" };
|
|
1727
|
-
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
1728
|
-
__name: "TimelineItem",
|
|
1729
|
-
props: {
|
|
1730
|
-
authorName: {},
|
|
1731
|
-
createdAt: {},
|
|
1732
|
-
variant: {}
|
|
1733
|
-
},
|
|
1734
|
-
setup(__props) {
|
|
1735
|
-
const props = __props;
|
|
1736
|
-
const authorInitial = computed(() => {
|
|
1737
|
-
return (props.authorName?.trim() || "?").charAt(0).toUpperCase();
|
|
1738
|
-
});
|
|
1739
|
-
const relativeTime = computed(() => {
|
|
1740
|
-
return props.createdAt ? formatTicketDate(props.createdAt).relative : "";
|
|
1741
|
-
});
|
|
1742
|
-
return (_ctx, _cache) => {
|
|
1743
|
-
return openBlock(), createElementBlock("div", { class: normalizeClass(["card card-bordered p-4 w-full", __props.variant === "internal" ? "bg-warning/10 border-warning/30" : "bg-base-100"]) }, [createElementVNode("div", _hoisted_1$1, [
|
|
1744
|
-
__props.variant === "internal" ? (openBlock(), createElementBlock("span", _hoisted_2$1, [..._cache[0] || (_cache[0] = [createElementVNode("svg", {
|
|
1745
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1746
|
-
fill: "none",
|
|
1747
|
-
viewBox: "0 0 24 24",
|
|
1748
|
-
"stroke-width": "1.5",
|
|
1749
|
-
stroke: "currentColor",
|
|
1750
|
-
class: "w-3.5 h-3.5"
|
|
1751
|
-
}, [createElementVNode("path", {
|
|
1752
|
-
"stroke-linecap": "round",
|
|
1753
|
-
"stroke-linejoin": "round",
|
|
1754
|
-
d: "M16.5 10.5V6.75a4.5 4.5 0 10-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H6.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z"
|
|
1755
|
-
})], -1), createTextVNode(" Internal ", -1)])])) : (openBlock(), createElementBlock("span", _hoisted_3$1, toDisplayString(authorInitial.value), 1)),
|
|
1756
|
-
createElementVNode("span", _hoisted_4$1, toDisplayString(__props.authorName), 1),
|
|
1757
|
-
createElementVNode("span", _hoisted_5$1, "· " + toDisplayString(relativeTime.value), 1)
|
|
1758
|
-
]), createElementVNode("div", _hoisted_6$1, [renderSlot(_ctx.$slots, "default")])], 2);
|
|
1759
|
-
};
|
|
1760
|
-
}
|
|
1761
|
-
});
|
|
1762
|
-
var TimelineItem_default = _sfc_main$1;
|
|
1763
|
-
|
|
1764
|
-
//#endregion
|
|
1765
|
-
//#region src/slices/support_ticket/shared/TimelineSystemEvent.vue
|
|
1766
|
-
const _hoisted_1 = { class: "py-2 flex items-start gap-2 text-sm" };
|
|
1767
|
-
const _hoisted_2 = { class: "flex-1 min-w-0 space-y-0.5" };
|
|
1768
|
-
const _hoisted_3 = { class: "flex flex-wrap items-baseline gap-x-2 gap-y-1" };
|
|
1769
|
-
const _hoisted_4 = { class: "text-base-content/60 font-medium" };
|
|
1770
|
-
const _hoisted_5 = { class: "font-semibold text-base-content" };
|
|
1771
|
-
const _hoisted_6 = { class: "badge badge-sm badge-outline border-base-content/20 text-base-content/80 font-normal px-1.5 py-0 capitalize" };
|
|
1772
|
-
const _hoisted_7 = { class: "text-base-content/70" };
|
|
1773
|
-
const _hoisted_8 = { class: "text-base-content/70" };
|
|
1774
|
-
const _hoisted_9 = { class: "line-through text-base-content/50" };
|
|
1775
|
-
const _hoisted_10 = {
|
|
1776
|
-
key: 0,
|
|
1777
|
-
class: "mt-1.5 ml-6 list-disc list-inside text-base-content/70 text-sm space-y-0.5"
|
|
1778
|
-
};
|
|
1779
|
-
const _hoisted_11 = { class: "italic text-base-content/60" };
|
|
1780
|
-
const _hoisted_12 = { class: "line-through text-base-content/50 ml-1" };
|
|
1781
|
-
const _hoisted_13 = {
|
|
1782
|
-
key: 1,
|
|
1783
|
-
class: "ml-1"
|
|
1784
|
-
};
|
|
1785
|
-
const _hoisted_14 = { class: "text-base-content/40 text-xs" };
|
|
1786
|
-
const _hoisted_15 = ["title"];
|
|
1787
|
-
const RECENT_THRESHOLD_HOURS = 18;
|
|
1788
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1789
|
-
__name: "TimelineSystemEvent",
|
|
1790
|
-
props: {
|
|
1791
|
-
author: {},
|
|
1792
|
-
message: {},
|
|
1793
|
-
timestamp: {},
|
|
1794
|
-
action: {},
|
|
1795
|
-
type: {},
|
|
1796
|
-
details: {},
|
|
1797
|
-
oldValue: {},
|
|
1798
|
-
newValue: {},
|
|
1799
|
-
changes: {}
|
|
1800
|
-
},
|
|
1801
|
-
setup(__props) {
|
|
1802
|
-
const props = __props;
|
|
1803
|
-
const showFull = ref(false);
|
|
1804
|
-
const displayAction = computed(() => props.action ?? props.message);
|
|
1805
|
-
const displayDetails = computed(() => {
|
|
1806
|
-
if (props.details) return props.details;
|
|
1807
|
-
if (props.oldValue != null && props.newValue != null) return `${props.oldValue} → ${props.newValue}`;
|
|
1808
|
-
return props.newValue ?? null;
|
|
1809
|
-
});
|
|
1810
|
-
const hasChangeDetails = computed(() => props.oldValue != null && props.newValue != null || props.details != null || props.newValue != null);
|
|
1811
|
-
const detailsPrefix = computed(() => {
|
|
1812
|
-
if (!props.details || props.oldValue == null && props.newValue == null) return null;
|
|
1813
|
-
if (props.details.includes(" · ")) {
|
|
1814
|
-
const parts = props.details.split(" · ");
|
|
1815
|
-
return parts.length > 1 ? parts[0] : null;
|
|
1816
|
-
}
|
|
1817
|
-
return props.details;
|
|
1818
|
-
});
|
|
1819
|
-
/** Use relative time when within ~18 hours, otherwise full date and time */
|
|
1820
|
-
const shortTime = computed(() => {
|
|
1821
|
-
if (!props.timestamp) return "";
|
|
1822
|
-
const { relative, formatted, localTime } = formatTicketDate(props.timestamp);
|
|
1823
|
-
const dateTime = [formatted, localTime].filter(Boolean).join(", ");
|
|
1824
|
-
if (!relative && !dateTime) return "";
|
|
1825
|
-
const date = new Date(props.timestamp);
|
|
1826
|
-
const hoursAgo = (Date.now() - date.getTime()) / (1e3 * 60 * 60);
|
|
1827
|
-
return hoursAgo >= 0 && hoursAgo < RECENT_THRESHOLD_HOURS ? relative : dateTime;
|
|
1828
|
-
});
|
|
1829
|
-
const fullDateTime = computed(() => {
|
|
1830
|
-
if (!props.timestamp) return "";
|
|
1831
|
-
const { formatted, localTime } = formatTicketDate(props.timestamp);
|
|
1832
|
-
return [formatted, localTime].filter(Boolean).join(", ");
|
|
1833
|
-
});
|
|
1834
|
-
const displayTime = computed(() => showFull.value ? fullDateTime.value : shortTime.value);
|
|
1835
|
-
return (_ctx, _cache) => {
|
|
1836
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [_cache[7] || (_cache[7] = createElementVNode("svg", {
|
|
1837
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1838
|
-
fill: "none",
|
|
1839
|
-
viewBox: "0 0 24 24",
|
|
1840
|
-
"stroke-width": "1.5",
|
|
1841
|
-
stroke: "currentColor",
|
|
1842
|
-
class: "w-4 h-4 text-base-content/30 shrink-0 mt-0.5",
|
|
1843
|
-
"aria-hidden": "true"
|
|
1844
|
-
}, [createElementVNode("path", {
|
|
1845
|
-
"stroke-linecap": "round",
|
|
1846
|
-
"stroke-linejoin": "round",
|
|
1847
|
-
d: "M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124a6.57 6.57 0 01.22-.128c.332-.183.582-.495.644-.869l.214-1.281z"
|
|
1848
|
-
}), createElementVNode("path", {
|
|
1849
|
-
"stroke-linecap": "round",
|
|
1850
|
-
"stroke-linejoin": "round",
|
|
1851
|
-
d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
|
|
1852
|
-
})], -1)), createElementVNode("div", _hoisted_2, [
|
|
1853
|
-
createElementVNode("div", _hoisted_3, [
|
|
1854
|
-
createElementVNode("span", _hoisted_4, toDisplayString(__props.author), 1),
|
|
1855
|
-
_cache[5] || (_cache[5] = createElementVNode("span", {
|
|
1856
|
-
class: "text-base-content/40 text-xs",
|
|
1857
|
-
"aria-hidden": "true"
|
|
1858
|
-
}, "·", -1)),
|
|
1859
|
-
createElementVNode("span", _hoisted_5, toDisplayString(displayAction.value), 1),
|
|
1860
|
-
__props.type ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[1] || (_cache[1] = createElementVNode("span", {
|
|
1861
|
-
class: "text-base-content/40 text-xs",
|
|
1862
|
-
"aria-hidden": "true"
|
|
1863
|
-
}, "·", -1)), createElementVNode("span", _hoisted_6, toDisplayString(__props.type), 1)], 64)) : createCommentVNode("v-if", true),
|
|
1864
|
-
__props.changes && __props.changes.length > 1 ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [__props.details ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[2] || (_cache[2] = createElementVNode("span", {
|
|
1865
|
-
class: "text-base-content/40 text-xs",
|
|
1866
|
-
"aria-hidden": "true"
|
|
1867
|
-
}, "·", -1)), createElementVNode("span", _hoisted_7, toDisplayString(__props.details), 1)], 64)) : createCommentVNode("v-if", true)], 64)) : hasChangeDetails.value ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [_cache[4] || (_cache[4] = createElementVNode("span", {
|
|
1868
|
-
class: "text-base-content/40 text-xs",
|
|
1869
|
-
"aria-hidden": "true"
|
|
1870
|
-
}, "·", -1)), createElementVNode("span", _hoisted_8, [detailsPrefix.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(detailsPrefix.value), 1)], 64)) : createCommentVNode("v-if", true), __props.oldValue != null && __props.newValue != null ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
1871
|
-
createElementVNode("span", _hoisted_9, toDisplayString(__props.oldValue), 1),
|
|
1872
|
-
_cache[3] || (_cache[3] = createElementVNode("span", { class: "mx-1 text-base-content/40" }, "→", -1)),
|
|
1873
|
-
createElementVNode("span", null, toDisplayString(__props.newValue), 1)
|
|
1874
|
-
], 64)) : displayDetails.value ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [createTextVNode(toDisplayString(displayDetails.value), 1)], 64)) : createCommentVNode("v-if", true)])], 64)) : createCommentVNode("v-if", true)
|
|
1875
|
-
]),
|
|
1876
|
-
__props.changes && __props.changes.length > 1 ? (openBlock(), createElementBlock("ul", _hoisted_10, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.changes, (change, i) => {
|
|
1877
|
-
return openBlock(), createElementBlock("li", { key: i }, [createElementVNode("span", _hoisted_11, toDisplayString(change.action) + ":", 1), change.oldValue != null && change.newValue != null ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
1878
|
-
createElementVNode("span", _hoisted_12, toDisplayString(change.oldValue), 1),
|
|
1879
|
-
_cache[6] || (_cache[6] = createElementVNode("span", { class: "mx-1 text-base-content/40" }, "→", -1)),
|
|
1880
|
-
createElementVNode("span", null, toDisplayString(change.newValue), 1)
|
|
1881
|
-
], 64)) : change.newValue != null ? (openBlock(), createElementBlock("span", _hoisted_13, toDisplayString(change.newValue), 1)) : createCommentVNode("v-if", true)]);
|
|
1882
|
-
}), 128))])) : createCommentVNode("v-if", true),
|
|
1883
|
-
createElementVNode("div", _hoisted_14, [createElementVNode("button", {
|
|
1884
|
-
type: "button",
|
|
1885
|
-
class: "cursor-pointer hover:text-base-content/60 hover:underline focus:outline-none focus:underline",
|
|
1886
|
-
title: fullDateTime.value,
|
|
1887
|
-
onClick: _cache[0] || (_cache[0] = ($event) => showFull.value = !showFull.value)
|
|
1888
|
-
}, toDisplayString(displayTime.value), 9, _hoisted_15)])
|
|
1889
|
-
])]);
|
|
1890
|
-
};
|
|
1891
|
-
}
|
|
1892
|
-
});
|
|
1893
|
-
var TimelineSystemEvent_default = _sfc_main;
|
|
1292
|
+
var InlineAttachments_default = _sfc_main;
|
|
1894
1293
|
|
|
1895
1294
|
//#endregion
|
|
1896
|
-
export {
|
|
1897
|
-
//# sourceMappingURL=
|
|
1295
|
+
export { ImageModal_default as n, InlineAttachments_default as t };
|
|
1296
|
+
//# sourceMappingURL=InlineAttachments-DAn_QknY.js.map
|