@dragonmastery/dragoncore-vue 0.0.4 → 0.0.6
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/{CreateTeamForm-zVlGgmL9.js → CreateTeamForm-O_viMOrD.js} +5 -5
- package/dist/{CreateTeamMemberForm-DkCbsJDn.js → CreateTeamMemberForm-BzwDug0x.js} +5 -5
- package/dist/{CreditBalanceDashboard-BTW4IK66.js → CreditBalanceDashboard-CBaQsjyo.js} +5 -5
- package/dist/{CreditManagement-0JxmCIAd.js → CreditManagement-Bal5mbQC.js} +5 -5
- package/dist/CustomerCreateSupportTicketForm-CpnbsCqr.js +27 -0
- package/dist/{CustomerSupportTicketDetailPage-DQa_Zvfe.js → CustomerSupportTicketDetailPage-DZQCplSM.js} +197 -183
- package/dist/CustomerSupportTicketDetailPage-DZQCplSM.js.map +1 -0
- package/dist/CustomerSupportTicketList-CKf8Kyzu.js +27 -0
- package/dist/{CustomerSupportTicketParent-BOYIren9.js → CustomerSupportTicketParent-BnmTFigo.js} +1 -1
- package/dist/{CustomerSupportTicketParent-sT8hpgrA.js → CustomerSupportTicketParent-BzY4pmBk.js} +2 -2
- package/dist/{CustomerSupportTicketParent-sT8hpgrA.js.map → CustomerSupportTicketParent-BzY4pmBk.js.map} +1 -1
- package/dist/CustomerSupportTicketSuccess-B-1n0gP-.js +27 -0
- package/dist/{EditTeamForm-BM90JTjr.js → EditTeamForm-CKnK07nF.js} +5 -5
- package/dist/{ResetPassword-DAn7dYAp.js → ResetPassword-Q8vhelQz.js} +5 -5
- package/dist/{SavedFiltersPage-BNasEKOY.js → SavedFiltersPage-DhhcU1R1.js} +51 -23
- package/dist/SavedFiltersPage-DhhcU1R1.js.map +1 -0
- package/dist/StaffCreateSupportTicketForm-D5ne_W9A.js +27 -0
- package/dist/{StaffSupportTicketDetailPage-D49ibqrO.js → StaffSupportTicketDetailPage-DY07Ez0R.js} +176 -132
- package/dist/StaffSupportTicketDetailPage-DY07Ez0R.js.map +1 -0
- package/dist/StaffSupportTicketList-xD3FaXkS.js +27 -0
- package/dist/{StaffSupportTicketParent-CxrPxXSH.js → StaffSupportTicketParent-CWWhaM37.js} +2 -2
- package/dist/{StaffSupportTicketParent-CxrPxXSH.js.map → StaffSupportTicketParent-CWWhaM37.js.map} +1 -1
- package/dist/{StaffSupportTicketParent-C7Mm7W_0.js → StaffSupportTicketParent-Dp1G85wc.js} +1 -1
- package/dist/StaffSupportTicketSuccess-D1nBsbcC.js +27 -0
- package/dist/{SupportTicketDevLifecycleBadge-Cl4y47Sy.js → SupportTicketDevLifecycleBadge-Ba-Rm6QW.js} +1 -1
- package/dist/{SupportTicketDevLifecycleBadge-Cl4y47Sy.js.map → SupportTicketDevLifecycleBadge-Ba-Rm6QW.js.map} +1 -1
- package/dist/{TeamAttachmentsTab-BoOIuTU1.js → TeamAttachmentsTab-DaCRkUsF.js} +5 -5
- package/dist/{ViewTeam-Bb1WH_Us.js → TeamList-BaZfSOG4.js} +6 -6
- package/dist/{TeamMemberList-CQTxcWNS.js → TeamMemberList-DOG48Y0Q.js} +5 -5
- package/dist/{TeamMemberParent-Bt0kbyKQ.js → TeamMemberParent-CTrhsG1K.js} +5 -5
- package/dist/{TeamParent-BvLiiJq6.js → TeamParent-myjqz30R.js} +5 -5
- package/dist/{TimelineNoteInput-BRsQ2QTz.js → TimelineNoteInput-BVqF4MtZ.js} +31 -8
- package/dist/TimelineNoteInput-BVqF4MtZ.js.map +1 -0
- package/dist/{TimelineSystemEvent-B69B3eeL.js → TimelineSystemEvent-D58zN850.js} +288 -205
- package/dist/TimelineSystemEvent-D58zN850.js.map +1 -0
- package/dist/{TeamList-TpS3BhPd.js → ViewTeam-DRQuV1A3.js} +6 -6
- package/dist/{ViewTeamMember-CBTAnAhS.js → ViewTeamMember-DjbxMkB4.js} +5 -5
- package/dist/{displayIdFormatter-BoKcrgF5.js → displayIdFormatter-B1ZKgofu.js} +1 -1
- package/dist/{displayIdFormatter-BoKcrgF5.js.map → displayIdFormatter-B1ZKgofu.js.map} +1 -1
- package/dist/index.d.ts +962 -938
- package/dist/index.js +6 -6
- package/dist/{src-ChwBeNHB.js → src-wQ7pAFHx.js} +1488 -1416
- package/dist/src-wQ7pAFHx.js.map +1 -0
- package/package.json +2 -2
- package/dist/CustomerCreateSupportTicketForm-CQcv4vrX.js +0 -27
- package/dist/CustomerSupportTicketDetailPage-DQa_Zvfe.js.map +0 -1
- package/dist/CustomerSupportTicketList-CMPRQ_7O.js +0 -27
- package/dist/CustomerSupportTicketSuccess-CnRWm6gX.js +0 -27
- package/dist/SavedFiltersPage-BNasEKOY.js.map +0 -1
- package/dist/StaffCreateSupportTicketForm-DoHCw60c.js +0 -27
- package/dist/StaffSupportTicketDetailPage-D49ibqrO.js.map +0 -1
- package/dist/StaffSupportTicketList-BgCIa_9v.js +0 -27
- package/dist/StaffSupportTicketSuccess-DZF2WpZc.js +0 -27
- package/dist/TimelineNoteInput-BRsQ2QTz.js.map +0 -1
- package/dist/TimelineSystemEvent-B69B3eeL.js.map +0 -1
- package/dist/src-ChwBeNHB.js.map +0 -1
|
@@ -98,14 +98,14 @@ const _hoisted_7$2 = {
|
|
|
98
98
|
key: 0,
|
|
99
99
|
class: "absolute inset-0 flex items-center justify-center"
|
|
100
100
|
};
|
|
101
|
-
const _hoisted_8$
|
|
101
|
+
const _hoisted_8$2 = {
|
|
102
102
|
key: 1,
|
|
103
103
|
class: "absolute inset-0 flex flex-col items-center justify-center p-4 text-center"
|
|
104
104
|
};
|
|
105
|
-
const _hoisted_9$
|
|
106
|
-
const _hoisted_10$
|
|
107
|
-
const _hoisted_11$
|
|
108
|
-
const _hoisted_12$
|
|
105
|
+
const _hoisted_9$2 = ["src", "alt"];
|
|
106
|
+
const _hoisted_10$2 = ["disabled"];
|
|
107
|
+
const _hoisted_11$2 = ["disabled"];
|
|
108
|
+
const _hoisted_12$2 = {
|
|
109
109
|
method: "dialog",
|
|
110
110
|
class: "modal-backdrop"
|
|
111
111
|
};
|
|
@@ -633,7 +633,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
633
633
|
createCommentVNode(" Loading state "),
|
|
634
634
|
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_7$2, [..._cache[8] || (_cache[8] = [createElementVNode("span", { class: "loading loading-spinner loading-lg" }, null, -1)])])) : createCommentVNode("v-if", true),
|
|
635
635
|
createCommentVNode(" Error state "),
|
|
636
|
-
hasError.value ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
636
|
+
hasError.value ? (openBlock(), createElementBlock("div", _hoisted_8$2, [..._cache[9] || (_cache[9] = [createElementVNode("svg", {
|
|
637
637
|
xmlns: "http://www.w3.org/2000/svg",
|
|
638
638
|
class: "h-12 w-12 text-error mb-2",
|
|
639
639
|
fill: "none",
|
|
@@ -660,7 +660,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
660
660
|
onTouchstart: withModifiers(handleImageTouchStart, ["stop"]),
|
|
661
661
|
onTouchmove: withModifiers(handleImageTouchMove, ["stop"]),
|
|
662
662
|
onTouchend: withModifiers(handleImageTouchEnd, ["stop"])
|
|
663
|
-
}, null, 46, _hoisted_9$
|
|
663
|
+
}, null, 46, _hoisted_9$2)) : createCommentVNode("v-if", true),
|
|
664
664
|
createCommentVNode(" Zoom controls "),
|
|
665
665
|
__props.imageSrc && !hasError.value ? (openBlock(), createElementBlock("div", {
|
|
666
666
|
key: 3,
|
|
@@ -688,7 +688,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
688
688
|
"stroke-linejoin": "round",
|
|
689
689
|
"stroke-width": "2",
|
|
690
690
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7"
|
|
691
|
-
})], -1)])], 8, _hoisted_10$
|
|
691
|
+
})], -1)])], 8, _hoisted_10$2),
|
|
692
692
|
createElementVNode("button", {
|
|
693
693
|
onClick: withModifiers(resetZoom, ["prevent"]),
|
|
694
694
|
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 +714,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
714
714
|
"stroke-linejoin": "round",
|
|
715
715
|
"stroke-width": "2",
|
|
716
716
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7"
|
|
717
|
-
})], -1)])], 8, _hoisted_11$
|
|
717
|
+
})], -1)])], 8, _hoisted_11$2),
|
|
718
718
|
createElementVNode("button", {
|
|
719
719
|
onClick: withModifiers(rotateImage, ["prevent"]),
|
|
720
720
|
class: "btn btn-sm btn-circle btn-ghost",
|
|
@@ -737,7 +737,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
737
737
|
})], -1)])])
|
|
738
738
|
], 32)) : createCommentVNode("v-if", true)
|
|
739
739
|
], 512)
|
|
740
|
-
]), createElementVNode("form", _hoisted_12$
|
|
740
|
+
]), createElementVNode("form", _hoisted_12$2, [createElementVNode("button", {
|
|
741
741
|
type: "button",
|
|
742
742
|
onClick: withModifiers(handleClose, ["prevent"])
|
|
743
743
|
}, "close")])], 34);
|
|
@@ -746,160 +746,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
746
746
|
});
|
|
747
747
|
var ImageModal_default = _sfc_main$6;
|
|
748
748
|
|
|
749
|
-
//#endregion
|
|
750
|
-
//#region src/slices/support_ticket/shared/SupportTicketPriorityBadge.vue
|
|
751
|
-
const _hoisted_1$5 = ["aria-label"];
|
|
752
|
-
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
753
|
-
__name: "SupportTicketPriorityBadge",
|
|
754
|
-
props: {
|
|
755
|
-
priority: {},
|
|
756
|
-
size: { default: "md" },
|
|
757
|
-
variant: { default: "default" }
|
|
758
|
-
},
|
|
759
|
-
setup(__props) {
|
|
760
|
-
/**
|
|
761
|
-
* SupportTicketPriorityBadge - A reusable Vue component for displaying support ticket priority
|
|
762
|
-
* as color-coded badges with consistent DaisyUI styling and accessibility features.
|
|
763
|
-
*
|
|
764
|
-
* @example
|
|
765
|
-
* <SupportTicketPriorityBadge :priority="'HIGH'" size="md" />
|
|
766
|
-
* <SupportTicketPriorityBadge :priority="'CRITICAL'" size="sm" variant="outline" />
|
|
767
|
-
*/
|
|
768
|
-
const props = __props;
|
|
769
|
-
/**
|
|
770
|
-
* Configuration for each priority badge
|
|
771
|
-
*/
|
|
772
|
-
const priorityConfig = {
|
|
773
|
-
LOW: {
|
|
774
|
-
color: "badge-neutral",
|
|
775
|
-
text: "Low",
|
|
776
|
-
ariaLabel: "Priority: Low priority"
|
|
777
|
-
},
|
|
778
|
-
MEDIUM: {
|
|
779
|
-
color: "badge-neutral",
|
|
780
|
-
text: "Medium",
|
|
781
|
-
ariaLabel: "Priority: Medium priority"
|
|
782
|
-
},
|
|
783
|
-
HIGH: {
|
|
784
|
-
color: "badge-neutral",
|
|
785
|
-
text: "High",
|
|
786
|
-
ariaLabel: "Priority: High priority"
|
|
787
|
-
},
|
|
788
|
-
CRITICAL: {
|
|
789
|
-
color: "badge-neutral",
|
|
790
|
-
text: "Critical",
|
|
791
|
-
ariaLabel: "Priority: Critical priority"
|
|
792
|
-
}
|
|
793
|
-
};
|
|
794
|
-
const getPriorityConfig = (priority) => {
|
|
795
|
-
const config$1 = priorityConfig[priority];
|
|
796
|
-
if (!config$1) return {
|
|
797
|
-
color: "badge-neutral",
|
|
798
|
-
text: priority || "Unknown",
|
|
799
|
-
ariaLabel: `Priority: ${priority || "Unknown priority"}`
|
|
800
|
-
};
|
|
801
|
-
return config$1;
|
|
802
|
-
};
|
|
803
|
-
const config = computed(() => getPriorityConfig(props.priority));
|
|
804
|
-
const badgeClasses = computed(() => {
|
|
805
|
-
const baseClasses = ["badge", "text-xs"];
|
|
806
|
-
baseClasses.push(config.value.color);
|
|
807
|
-
if (props.size === "sm") baseClasses.push("badge-sm", "text-xs");
|
|
808
|
-
else if (props.size === "lg") baseClasses.push("badge-lg", "text-sm");
|
|
809
|
-
else baseClasses.push("text-xs", "sm:text-sm");
|
|
810
|
-
if (props.variant === "outline") baseClasses.push("badge-outline");
|
|
811
|
-
return baseClasses.join(" ");
|
|
812
|
-
});
|
|
813
|
-
const displayText = computed(() => config.value.text);
|
|
814
|
-
const ariaLabel = computed(() => config.value.ariaLabel);
|
|
815
|
-
return (_ctx, _cache) => {
|
|
816
|
-
return openBlock(), createElementBlock("div", {
|
|
817
|
-
class: normalizeClass(badgeClasses.value),
|
|
818
|
-
"aria-label": ariaLabel.value,
|
|
819
|
-
role: "status"
|
|
820
|
-
}, toDisplayString(displayText.value), 11, _hoisted_1$5);
|
|
821
|
-
};
|
|
822
|
-
}
|
|
823
|
-
});
|
|
824
|
-
var SupportTicketPriorityBadge_default = _sfc_main$5;
|
|
825
|
-
|
|
826
|
-
//#endregion
|
|
827
|
-
//#region src/slices/support_ticket/shared/SupportTicketTypeBadge.vue
|
|
828
|
-
const _hoisted_1$4 = ["aria-label"];
|
|
829
|
-
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
830
|
-
__name: "SupportTicketTypeBadge",
|
|
831
|
-
props: {
|
|
832
|
-
type: {},
|
|
833
|
-
size: { default: "md" },
|
|
834
|
-
variant: { default: "default" }
|
|
835
|
-
},
|
|
836
|
-
setup(__props) {
|
|
837
|
-
/**
|
|
838
|
-
* SupportTicketTypeBadge - A reusable Vue component for displaying support ticket type
|
|
839
|
-
* as color-coded badges with consistent DaisyUI styling and accessibility features.
|
|
840
|
-
*
|
|
841
|
-
* @example
|
|
842
|
-
* <SupportTicketTypeBadge :type="'BUG'" size="md" />
|
|
843
|
-
* <SupportTicketTypeBadge :type="'FEATURE_REQUEST'" size="sm" variant="outline" />
|
|
844
|
-
*/
|
|
845
|
-
const props = __props;
|
|
846
|
-
/**
|
|
847
|
-
* Configuration for each type badge
|
|
848
|
-
*/
|
|
849
|
-
const typeConfig = {
|
|
850
|
-
BUG: {
|
|
851
|
-
color: "badge-neutral",
|
|
852
|
-
text: "Bug",
|
|
853
|
-
ariaLabel: "Type: Bug report requiring fix"
|
|
854
|
-
},
|
|
855
|
-
FEATURE_REQUEST: {
|
|
856
|
-
color: "badge-neutral",
|
|
857
|
-
text: "Feature",
|
|
858
|
-
ariaLabel: "Type: New feature request"
|
|
859
|
-
},
|
|
860
|
-
IMPROVEMENT: {
|
|
861
|
-
color: "badge-neutral",
|
|
862
|
-
text: "Improvement",
|
|
863
|
-
ariaLabel: "Type: Enhancement to existing feature"
|
|
864
|
-
},
|
|
865
|
-
OPERATIONAL: {
|
|
866
|
-
color: "badge-neutral",
|
|
867
|
-
text: "Ops",
|
|
868
|
-
ariaLabel: "Type: Operational/admin work"
|
|
869
|
-
}
|
|
870
|
-
};
|
|
871
|
-
const getTypeConfig = (type) => {
|
|
872
|
-
const config$1 = typeConfig[type];
|
|
873
|
-
if (!config$1) return {
|
|
874
|
-
color: "badge-neutral",
|
|
875
|
-
text: type || "Unknown",
|
|
876
|
-
ariaLabel: `Type: ${type || "Unknown type"}`
|
|
877
|
-
};
|
|
878
|
-
return config$1;
|
|
879
|
-
};
|
|
880
|
-
const config = computed(() => getTypeConfig(props.type));
|
|
881
|
-
const badgeClasses = computed(() => {
|
|
882
|
-
const baseClasses = ["badge", "text-xs"];
|
|
883
|
-
baseClasses.push(config.value.color);
|
|
884
|
-
if (props.size === "sm") baseClasses.push("badge-sm", "text-xs");
|
|
885
|
-
else if (props.size === "lg") baseClasses.push("badge-lg", "text-sm");
|
|
886
|
-
else baseClasses.push("text-xs", "sm:text-sm");
|
|
887
|
-
if (props.variant === "outline") baseClasses.push("badge-outline");
|
|
888
|
-
return baseClasses.join(" ");
|
|
889
|
-
});
|
|
890
|
-
const displayText = computed(() => config.value.text);
|
|
891
|
-
const ariaLabel = computed(() => config.value.ariaLabel);
|
|
892
|
-
return (_ctx, _cache) => {
|
|
893
|
-
return openBlock(), createElementBlock("div", {
|
|
894
|
-
class: normalizeClass(badgeClasses.value),
|
|
895
|
-
"aria-label": ariaLabel.value,
|
|
896
|
-
role: "status"
|
|
897
|
-
}, toDisplayString(displayText.value), 11, _hoisted_1$4);
|
|
898
|
-
};
|
|
899
|
-
}
|
|
900
|
-
});
|
|
901
|
-
var SupportTicketTypeBadge_default = _sfc_main$4;
|
|
902
|
-
|
|
903
749
|
//#endregion
|
|
904
750
|
//#region src/slices/support_ticket/utils/creditValueFormatter.ts
|
|
905
751
|
/**
|
|
@@ -949,7 +795,7 @@ function formatCustomerCreditValue(creditValue) {
|
|
|
949
795
|
|
|
950
796
|
//#endregion
|
|
951
797
|
//#region src/slices/support_ticket/shared/InlineAttachments.vue
|
|
952
|
-
const _hoisted_1$
|
|
798
|
+
const _hoisted_1$5 = { class: "mt-4 sm:mt-6" };
|
|
953
799
|
const _hoisted_2$2 = {
|
|
954
800
|
key: 0,
|
|
955
801
|
class: "grid grid-cols-2 gap-2 sm:gap-4 mb-4"
|
|
@@ -968,23 +814,23 @@ const _hoisted_7$1 = {
|
|
|
968
814
|
key: 0,
|
|
969
815
|
class: "w-full bg-base-300 rounded-full h-1.5 mt-1"
|
|
970
816
|
};
|
|
971
|
-
const _hoisted_8 = {
|
|
817
|
+
const _hoisted_8$1 = {
|
|
972
818
|
key: 1,
|
|
973
819
|
class: "text-xs text-error mt-1 break-words"
|
|
974
820
|
};
|
|
975
|
-
const _hoisted_9 = { class: "flex gap-2 sm:gap-1" };
|
|
976
|
-
const _hoisted_10 = ["onClick"];
|
|
977
|
-
const _hoisted_11 = ["onClick"];
|
|
978
|
-
const _hoisted_12 = {
|
|
821
|
+
const _hoisted_9$1 = { class: "flex gap-2 sm:gap-1" };
|
|
822
|
+
const _hoisted_10$1 = ["onClick"];
|
|
823
|
+
const _hoisted_11$1 = ["onClick"];
|
|
824
|
+
const _hoisted_12$1 = {
|
|
979
825
|
key: 2,
|
|
980
826
|
class: "space-y-2"
|
|
981
827
|
};
|
|
982
|
-
const _hoisted_13 = {
|
|
828
|
+
const _hoisted_13$1 = {
|
|
983
829
|
key: 0,
|
|
984
830
|
class: "flex justify-center py-4"
|
|
985
831
|
};
|
|
986
|
-
const _hoisted_14 = ["onClick"];
|
|
987
|
-
const _hoisted_15 = { class: "flex items-center gap-2 sm:gap-3 flex-1 min-w-0 w-full sm:w-auto" };
|
|
832
|
+
const _hoisted_14$1 = ["onClick"];
|
|
833
|
+
const _hoisted_15$1 = { class: "flex items-center gap-2 sm:gap-3 flex-1 min-w-0 w-full sm:w-auto" };
|
|
988
834
|
const _hoisted_16 = { class: "flex-shrink-0" };
|
|
989
835
|
const _hoisted_17 = {
|
|
990
836
|
key: 0,
|
|
@@ -1005,7 +851,7 @@ const _hoisted_26 = {
|
|
|
1005
851
|
key: 3,
|
|
1006
852
|
class: "text-center py-8 text-base-content/50"
|
|
1007
853
|
};
|
|
1008
|
-
const _sfc_main$
|
|
854
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
1009
855
|
__name: "InlineAttachments",
|
|
1010
856
|
props: {
|
|
1011
857
|
recordId: {},
|
|
@@ -1358,7 +1204,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1358
1204
|
});
|
|
1359
1205
|
}, { immediate: true });
|
|
1360
1206
|
return (_ctx, _cache) => {
|
|
1361
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1207
|
+
return openBlock(), createElementBlock("div", _hoisted_1$5, [
|
|
1362
1208
|
createElementVNode("input", {
|
|
1363
1209
|
ref_key: "fileInput",
|
|
1364
1210
|
ref: fileInput,
|
|
@@ -1431,26 +1277,26 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1431
1277
|
class: "bg-primary h-1.5 rounded-full transition-all",
|
|
1432
1278
|
style: normalizeStyle({ width: `${item.progress}%` })
|
|
1433
1279
|
}, null, 4)])) : createCommentVNode("v-if", true),
|
|
1434
|
-
item.status === "error" ? (openBlock(), createElementBlock("div", _hoisted_8, toDisplayString(item.errorMessage), 1)) : createCommentVNode("v-if", true)
|
|
1435
|
-
]), createElementVNode("div", _hoisted_9, [item.status === "error" ? (openBlock(), createElementBlock("button", {
|
|
1280
|
+
item.status === "error" ? (openBlock(), createElementBlock("div", _hoisted_8$1, toDisplayString(item.errorMessage), 1)) : createCommentVNode("v-if", true)
|
|
1281
|
+
]), createElementVNode("div", _hoisted_9$1, [item.status === "error" ? (openBlock(), createElementBlock("button", {
|
|
1436
1282
|
key: 0,
|
|
1437
1283
|
onClick: withModifiers(($event) => retryUpload(item), ["prevent"]),
|
|
1438
1284
|
class: "btn btn-xs btn-ghost flex-1 sm:flex-none",
|
|
1439
1285
|
type: "button"
|
|
1440
|
-
}, " Retry ", 8, _hoisted_10)) : createCommentVNode("v-if", true), item.status !== "uploading" ? (openBlock(), createElementBlock("button", {
|
|
1286
|
+
}, " Retry ", 8, _hoisted_10$1)) : createCommentVNode("v-if", true), item.status !== "uploading" ? (openBlock(), createElementBlock("button", {
|
|
1441
1287
|
key: 1,
|
|
1442
1288
|
onClick: withModifiers(($event) => removeFromQueue(item.id), ["prevent"]),
|
|
1443
1289
|
class: "btn btn-xs btn-ghost text-error flex-1 sm:flex-none",
|
|
1444
1290
|
type: "button"
|
|
1445
|
-
}, " Remove ", 8, _hoisted_11)) : createCommentVNode("v-if", true)])]);
|
|
1291
|
+
}, " Remove ", 8, _hoisted_11$1)) : createCommentVNode("v-if", true)])]);
|
|
1446
1292
|
}), 128))])) : createCommentVNode("v-if", true),
|
|
1447
1293
|
createCommentVNode(" Attachments List "),
|
|
1448
|
-
(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) => {
|
|
1294
|
+
(attachments.value.length > 0 || unref(attachmentsLoading)) && __props.recordId ? (openBlock(), createElementBlock("div", _hoisted_12$1, [unref(attachmentsLoading) ? (openBlock(), createElementBlock("div", _hoisted_13$1, [..._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) => {
|
|
1449
1295
|
return openBlock(), createElementBlock("div", {
|
|
1450
1296
|
key: file.id,
|
|
1451
1297
|
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) }]),
|
|
1452
1298
|
onClick: withModifiers(($event) => isImage(file.type) && viewImage(file), ["prevent"])
|
|
1453
|
-
}, [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", {
|
|
1299
|
+
}, [createElementVNode("div", _hoisted_15$1, [createElementVNode("div", _hoisted_16, [createCommentVNode(" Image thumbnail preview "), isImage(file.type) ? (openBlock(), createElementBlock("div", _hoisted_17, [getImageUrlSync(file.id) ? (openBlock(), createElementBlock("img", {
|
|
1454
1300
|
key: 0,
|
|
1455
1301
|
src: getImageUrlSync(file.id),
|
|
1456
1302
|
alt: file.name,
|
|
@@ -1518,7 +1364,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1518
1364
|
"stroke-width": "2",
|
|
1519
1365
|
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"
|
|
1520
1366
|
})], -1)])], 8, _hoisted_25)) : createCommentVNode("v-if", true)
|
|
1521
|
-
])], 10, _hoisted_14);
|
|
1367
|
+
])], 10, _hoisted_14$1);
|
|
1522
1368
|
}), 128))])) : !unref(attachmentsLoading) && __props.recordId ? (openBlock(), createElementBlock("div", _hoisted_26, [..._cache[13] || (_cache[13] = [createElementVNode("svg", {
|
|
1523
1369
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1524
1370
|
class: "h-12 w-12 mx-auto mb-2 opacity-50",
|
|
@@ -1570,7 +1416,161 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1570
1416
|
};
|
|
1571
1417
|
}
|
|
1572
1418
|
});
|
|
1573
|
-
var InlineAttachments_default = _sfc_main$
|
|
1419
|
+
var InlineAttachments_default = _sfc_main$5;
|
|
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
1574
|
|
|
1575
1575
|
//#endregion
|
|
1576
1576
|
//#region src/slices/support_ticket/shared/SupportTicketApprovalBadge.vue
|
|
@@ -1655,18 +1655,24 @@ var SupportTicketApprovalBadge_default = _sfc_main$2;
|
|
|
1655
1655
|
* Takes an ISO date string and returns:
|
|
1656
1656
|
* - formatted: "Jan 15, 2025"
|
|
1657
1657
|
* - relative: "3 days ago" / "2 hours ago" / "just now"
|
|
1658
|
+
* - localTime: "2:30 PM" (user's local time)
|
|
1658
1659
|
*/
|
|
1659
1660
|
function formatTicketDate(isoString) {
|
|
1660
1661
|
const date = new Date(isoString);
|
|
1661
1662
|
if (isNaN(date.getTime())) return {
|
|
1662
1663
|
formatted: isoString,
|
|
1663
|
-
relative: ""
|
|
1664
|
+
relative: "",
|
|
1665
|
+
localTime: ""
|
|
1664
1666
|
};
|
|
1665
1667
|
const formatted = date.toLocaleDateString(void 0, {
|
|
1666
1668
|
year: "numeric",
|
|
1667
1669
|
month: "short",
|
|
1668
1670
|
day: "numeric"
|
|
1669
1671
|
});
|
|
1672
|
+
const localTime = date.toLocaleTimeString(void 0, {
|
|
1673
|
+
hour: "numeric",
|
|
1674
|
+
minute: "2-digit"
|
|
1675
|
+
});
|
|
1670
1676
|
const diffMs = (/* @__PURE__ */ new Date()).getTime() - date.getTime();
|
|
1671
1677
|
const diffSec = Math.floor(diffMs / 1e3);
|
|
1672
1678
|
const diffMin = Math.floor(diffSec / 60);
|
|
@@ -1697,7 +1703,8 @@ function formatTicketDate(isoString) {
|
|
|
1697
1703
|
}
|
|
1698
1704
|
return {
|
|
1699
1705
|
formatted,
|
|
1700
|
-
relative
|
|
1706
|
+
relative,
|
|
1707
|
+
localTime
|
|
1701
1708
|
};
|
|
1702
1709
|
}
|
|
1703
1710
|
|
|
@@ -1757,28 +1764,76 @@ var TimelineItem_default = _sfc_main$1;
|
|
|
1757
1764
|
//#endregion
|
|
1758
1765
|
//#region src/slices/support_ticket/shared/TimelineSystemEvent.vue
|
|
1759
1766
|
const _hoisted_1 = { class: "py-2 flex items-start gap-2 text-sm" };
|
|
1760
|
-
const _hoisted_2 = { class: "flex-1 min-w-0" };
|
|
1761
|
-
const _hoisted_3 = { class: "
|
|
1762
|
-
const _hoisted_4 = { class: "text-base-content/
|
|
1763
|
-
const _hoisted_5 = { class: "
|
|
1764
|
-
const _hoisted_6 = { class: "
|
|
1765
|
-
const _hoisted_7 = { class: "text-base-content/
|
|
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;
|
|
1766
1788
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1767
1789
|
__name: "TimelineSystemEvent",
|
|
1768
1790
|
props: {
|
|
1769
1791
|
author: {},
|
|
1770
1792
|
message: {},
|
|
1771
1793
|
timestamp: {},
|
|
1794
|
+
action: {},
|
|
1795
|
+
type: {},
|
|
1796
|
+
details: {},
|
|
1772
1797
|
oldValue: {},
|
|
1773
|
-
newValue: {}
|
|
1798
|
+
newValue: {},
|
|
1799
|
+
changes: {}
|
|
1774
1800
|
},
|
|
1775
1801
|
setup(__props) {
|
|
1776
1802
|
const props = __props;
|
|
1777
|
-
const
|
|
1778
|
-
|
|
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(", ");
|
|
1779
1833
|
});
|
|
1834
|
+
const displayTime = computed(() => showFull.value ? fullDateTime.value : shortTime.value);
|
|
1780
1835
|
return (_ctx, _cache) => {
|
|
1781
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [_cache[
|
|
1836
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [_cache[7] || (_cache[7] = createElementVNode("svg", {
|
|
1782
1837
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1783
1838
|
fill: "none",
|
|
1784
1839
|
viewBox: "0 0 24 24",
|
|
@@ -1795,14 +1850,42 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1795
1850
|
"stroke-linejoin": "round",
|
|
1796
1851
|
d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
|
|
1797
1852
|
})], -1)), createElementVNode("div", _hoisted_2, [
|
|
1798
|
-
createElementVNode("
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
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)])
|
|
1806
1889
|
])]);
|
|
1807
1890
|
};
|
|
1808
1891
|
}
|
|
@@ -1810,5 +1893,5 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1810
1893
|
var TimelineSystemEvent_default = _sfc_main;
|
|
1811
1894
|
|
|
1812
1895
|
//#endregion
|
|
1813
|
-
export {
|
|
1814
|
-
//# sourceMappingURL=TimelineSystemEvent-
|
|
1896
|
+
export { SupportTicketTypeBadge_default as a, formatCustomerCreditValue as c, ConfirmDialog_default as d, SupportTicketApprovalBadge_default as i, formatStaffCreditValue as l, TimelineItem_default as n, SupportTicketPriorityBadge_default as o, formatTicketDate as r, InlineAttachments_default as s, TimelineSystemEvent_default as t, ImageModal_default as u };
|
|
1897
|
+
//# sourceMappingURL=TimelineSystemEvent-D58zN850.js.map
|