@eric-emg/symphiq-components 1.3.50 → 1.3.52
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.
|
@@ -43910,9 +43910,9 @@ class ProfileAnalysisModalComponent {
|
|
|
43910
43910
|
}
|
|
43911
43911
|
// Check if this is from a recommendation with full hierarchy context
|
|
43912
43912
|
if (metricsData.recommendationContext?.title && (metricsData.goalTitle || metricsData.objectiveTitle || metricsData.strategyTitle)) {
|
|
43913
|
-
// Find relevant navigation stack indices
|
|
43914
|
-
const goalDetailIdx = stack.findIndex((s) => s.type === 'goal-detail');
|
|
43915
|
-
const objectivesIdx = stack.findIndex((s) => s.type === 'goal-objectives');
|
|
43913
|
+
// Find relevant navigation stack indices (check both regular and unified dashboard types)
|
|
43914
|
+
const goalDetailIdx = stack.findIndex((s) => s.type === 'goal-detail' || s.type === 'unified-goal-detail');
|
|
43915
|
+
const objectivesIdx = stack.findIndex((s) => s.type === 'goal-objectives' || s.type === 'unified-goal-objectives');
|
|
43916
43916
|
const strategiesIdx = stack.findIndex((s) => s.type === 'objective-strategies');
|
|
43917
43917
|
const recommendationsIdx = stack.findIndex((s) => s.type === 'strategy-recommendations');
|
|
43918
43918
|
// Build full hierarchy with navigation: Goal > Objectives > Objective > Strategy > Recommendation > Related Metrics
|
|
@@ -44215,6 +44215,21 @@ class ProfileAnalysisModalComponent {
|
|
|
44215
44215
|
}, 0);
|
|
44216
44216
|
return;
|
|
44217
44217
|
}
|
|
44218
|
+
// Close ProfileAnalysisModalComponent when navigating to unified dashboard types
|
|
44219
|
+
// These should be handled by UnifiedDashboardModalComponent
|
|
44220
|
+
const unifiedDashboardOwnedTypes = ['unified-goal-detail', 'unified-goal-objectives', 'unified-goal-related-metrics'];
|
|
44221
|
+
if (unifiedDashboardOwnedTypes.includes(state.type || '')) {
|
|
44222
|
+
console.log('[ProfileAnalysisModal] Closing - unified dashboard type detected:', state.type);
|
|
44223
|
+
this.isOpen.set(false);
|
|
44224
|
+
setTimeout(() => {
|
|
44225
|
+
this.modalData.set(null);
|
|
44226
|
+
this.modalType.set(null);
|
|
44227
|
+
this.modalTitle.set('');
|
|
44228
|
+
this.navigationStack.set([]);
|
|
44229
|
+
this.currentCharts.set([]);
|
|
44230
|
+
}, 0);
|
|
44231
|
+
return;
|
|
44232
|
+
}
|
|
44218
44233
|
// Check if navigation originates from unified dashboard flow
|
|
44219
44234
|
// If so, let UnifiedDashboardModalComponent handle objective-strategies and strategy-recommendations
|
|
44220
44235
|
const unifiedDashboardTypes = ['objective-strategies', 'strategy-recommendations'];
|
|
@@ -44222,6 +44237,7 @@ class ProfileAnalysisModalComponent {
|
|
|
44222
44237
|
const isFromUnifiedFlow = state.previousState?.type?.startsWith('unified-goal-') ||
|
|
44223
44238
|
state.navigationStack?.some(s => s.type?.startsWith('unified-goal-'));
|
|
44224
44239
|
if (isFromUnifiedFlow) {
|
|
44240
|
+
console.log('[ProfileAnalysisModal] Closing - unified flow detected for:', state.type);
|
|
44225
44241
|
this.isOpen.set(false);
|
|
44226
44242
|
setTimeout(() => {
|
|
44227
44243
|
this.modalData.set(null);
|
|
@@ -44486,6 +44502,14 @@ class ProfileAnalysisModalComponent {
|
|
|
44486
44502
|
}
|
|
44487
44503
|
else if (state.type === 'metric' && state.data) {
|
|
44488
44504
|
const metric = state.data;
|
|
44505
|
+
console.log('[ProfileAnalysisModal] Handling metric state:', {
|
|
44506
|
+
metricName: metric.metric,
|
|
44507
|
+
chartsFromState: state.charts?.length || 0,
|
|
44508
|
+
chartIds: state.charts?.map(c => c.performanceItemId),
|
|
44509
|
+
allChartsInput: this.allCharts()?.length || 0,
|
|
44510
|
+
navigationStackLength: state.navigationStack?.length || 0,
|
|
44511
|
+
navigationStackTypes: state.navigationStack?.map(s => s.type)
|
|
44512
|
+
});
|
|
44489
44513
|
this.modalData.set(metric);
|
|
44490
44514
|
const formattedName = metric.metric ? this.metricFormatter.formatMetricName(metric.metric) : 'Metric Details';
|
|
44491
44515
|
this.modalTitle.set(formattedName);
|
|
@@ -101800,14 +101824,14 @@ function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_Template(rf
|
|
|
101800
101824
|
} }
|
|
101801
101825
|
function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
101802
101826
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
101803
|
-
i0.ɵɵelementStart(0, "div",
|
|
101827
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
101804
101828
|
i0.ɵɵlistener("click", function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_For_5_Template_div_click_0_listener() { const goal_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onGoalChipClick(goal_r5)); });
|
|
101805
|
-
i0.ɵɵelementStart(1, "span",
|
|
101829
|
+
i0.ɵɵelementStart(1, "span", 25);
|
|
101806
101830
|
i0.ɵɵtext(2);
|
|
101807
101831
|
i0.ɵɵelementEnd();
|
|
101808
101832
|
i0.ɵɵnamespaceSVG();
|
|
101809
|
-
i0.ɵɵelementStart(3, "svg",
|
|
101810
|
-
i0.ɵɵelement(4, "path",
|
|
101833
|
+
i0.ɵɵelementStart(3, "svg", 26);
|
|
101834
|
+
i0.ɵɵelement(4, "path", 27);
|
|
101811
101835
|
i0.ɵɵelementEnd()();
|
|
101812
101836
|
} if (rf & 2) {
|
|
101813
101837
|
const goal_r5 = ctx.$implicit;
|
|
@@ -101820,8 +101844,8 @@ function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_Template(rf
|
|
|
101820
101844
|
i0.ɵɵelementStart(0, "div", 15)(1, "div", 17);
|
|
101821
101845
|
i0.ɵɵtext(2);
|
|
101822
101846
|
i0.ɵɵelementEnd();
|
|
101823
|
-
i0.ɵɵelementStart(3, "div",
|
|
101824
|
-
i0.ɵɵrepeaterCreate(4, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_For_5_Template, 5, 2, "div",
|
|
101847
|
+
i0.ɵɵelementStart(3, "div", 22);
|
|
101848
|
+
i0.ɵɵrepeaterCreate(4, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_For_5_Template, 5, 2, "div", 23, _forTrack0$b);
|
|
101825
101849
|
i0.ɵɵelementEnd()();
|
|
101826
101850
|
} if (rf & 2) {
|
|
101827
101851
|
const phase_r3 = i0.ɵɵnextContext().$implicit;
|
|
@@ -101994,7 +102018,7 @@ class UnifiedTimelineComponent {
|
|
|
101994
102018
|
this.goalClick.emit(goal);
|
|
101995
102019
|
}
|
|
101996
102020
|
static { this.ɵfac = function UnifiedTimelineComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedTimelineComponent)(); }; }
|
|
101997
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedTimelineComponent, selectors: [["symphiq-unified-timeline"]], inputs: { timeline: [1, "timeline"], viewMode: [1, "viewMode"], goals: [1, "goals"] }, outputs: { goalClick: "goalClick" }, decls: 1, vars: 1, consts: [["id", "section-timeline", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Implementation Timeline", 3, "icon", "viewMode"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "relative"], [1, "absolute", "left-6", "top-0", "bottom-0", "w-0.5", 3, "ngClass"], [1, "space-y-8"], [1, "relative", "pl-16", "group"], [1, "absolute", "left-4", "w-5", "h-5", "rounded-full", "border-4", "flex", "items-center", "justify-center", "transition-all", "duration-300", "group-hover:scale-125", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", 3, "ngClass"], [1, "rounded-xl", "p-5", "transition-all", "duration-300", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "gap-4", "mb-3"], [1, "text-base", "font-semibold", 3, "ngClass"], [1, "px-2", "py-1", "text-xs", "font-semibold", "rounded-full", "flex-shrink-0", 3, "ngClass"], [1, "text-sm", "mb-4", 3, "ngClass"], [1, "mt-4"], [1, "absolute", "-left-[52px]", "top-0", "text-xs", "font-bold", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2", "text-sm", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "mt-1.5", "flex-shrink-0", 3, "ngClass"], [1, "line-clamp-1"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "ngClass"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "click", "ngClass"], [1, "text-sm", "font-medium", "line-clamp-1"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "flex-shrink-0"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"]], template: function UnifiedTimelineComponent_Template(rf, ctx) { if (rf & 1) {
|
|
102021
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedTimelineComponent, selectors: [["symphiq-unified-timeline"]], inputs: { timeline: [1, "timeline"], viewMode: [1, "viewMode"], goals: [1, "goals"] }, outputs: { goalClick: "goalClick" }, decls: 1, vars: 1, consts: [["id", "section-timeline", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Implementation Timeline", 3, "icon", "viewMode"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "relative"], [1, "absolute", "left-6", "top-0", "bottom-0", "w-0.5", 3, "ngClass"], [1, "space-y-8"], [1, "relative", "pl-16", "group"], [1, "absolute", "left-4", "w-5", "h-5", "rounded-full", "border-4", "flex", "items-center", "justify-center", "transition-all", "duration-300", "group-hover:scale-125", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", 3, "ngClass"], [1, "rounded-xl", "p-5", "transition-all", "duration-300", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "gap-4", "mb-3"], [1, "text-base", "font-semibold", 3, "ngClass"], [1, "px-2", "py-1", "text-xs", "font-semibold", "rounded-full", "flex-shrink-0", 3, "ngClass"], [1, "text-sm", "mb-4", 3, "ngClass"], [1, "mt-4"], [1, "absolute", "-left-[52px]", "top-0", "text-xs", "font-bold", "transition-all", "duration-300", "origin-right", "group-hover:scale-125", "group-hover:font-extrabold", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2", "text-sm", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "mt-1.5", "flex-shrink-0", 3, "ngClass"], [1, "line-clamp-1"], [1, "space-y-3"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "ngClass"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "click", "ngClass"], [1, "text-sm", "font-medium", "line-clamp-1"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "flex-shrink-0"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"]], template: function UnifiedTimelineComponent_Template(rf, ctx) { if (rf & 1) {
|
|
101998
102022
|
i0.ɵɵconditionalCreate(0, UnifiedTimelineComponent_Conditional_0_Template, 9, 10, "section", 0);
|
|
101999
102023
|
} if (rf & 2) {
|
|
102000
102024
|
i0.ɵɵconditional(ctx.phases().length > 0 ? 0 : -1);
|
|
@@ -102071,7 +102095,7 @@ class UnifiedTimelineComponent {
|
|
|
102071
102095
|
<div [ngClass]="objectivesLabelClasses()" class="text-xs font-semibold uppercase mb-2">
|
|
102072
102096
|
Related Goals ({{ getGoalsForPhase(phase).length }})
|
|
102073
102097
|
</div>
|
|
102074
|
-
<div class="space-y-
|
|
102098
|
+
<div class="space-y-3">
|
|
102075
102099
|
@for (goal of getGoalsForPhase(phase); track goal.id) {
|
|
102076
102100
|
<div
|
|
102077
102101
|
[ngClass]="goalChipClasses()"
|
|
@@ -102087,7 +102111,7 @@ class UnifiedTimelineComponent {
|
|
|
102087
102111
|
</div>
|
|
102088
102112
|
}
|
|
102089
102113
|
|
|
102090
|
-
<div [ngClass]="phaseIndicatorClasses()" class="absolute -left-[52px] top-0 text-xs font-bold">
|
|
102114
|
+
<div [ngClass]="phaseIndicatorClasses()" class="absolute -left-[52px] top-0 text-xs font-bold transition-all duration-300 origin-right group-hover:scale-125 group-hover:font-extrabold">
|
|
102091
102115
|
Phase {{ idx + 1 }}
|
|
102092
102116
|
</div>
|
|
102093
102117
|
</div>
|
|
@@ -103163,7 +103187,7 @@ class SourceAnalysisTraceabilityComponent {
|
|
|
103163
103187
|
}
|
|
103164
103188
|
}
|
|
103165
103189
|
static { this.ɵfac = function SourceAnalysisTraceabilityComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SourceAnalysisTraceabilityComponent)(); }; }
|
|
103166
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceAnalysisTraceabilityComponent, selectors: [["symphiq-source-analysis-traceability"]], inputs: { sourceAnalyses: [1, "sourceAnalyses"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], goal: [1, "goal"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick" }, decls: 1, vars: 1, consts: [[1, "p-5", "rounded-xl", 3, "ngClass"], [1, "text-sm", "font-semibold", "
|
|
103190
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceAnalysisTraceabilityComponent, selectors: [["symphiq-source-analysis-traceability"]], inputs: { sourceAnalyses: [1, "sourceAnalyses"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], goal: [1, "goal"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick" }, decls: 1, vars: 1, consts: [[1, "p-5", "rounded-xl", "flex", "flex-col", "gap-4", 3, "ngClass"], [1, "text-sm", "font-semibold", "flex", "items-center", "gap-2", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"], [3, "score", "explanation", "viewMode"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-3"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "ngClass"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "click", "ngClass"], [1, "absolute", "inset-0", "bg-black/10", "rounded-lg", "flex", "items-center", "justify-center"], [1, "absolute", "top-2", "right-2"], [1, "flex", "items-start", "gap-3"], [1, "w-8", "h-8", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-medium", "uppercase", "mb-0.5", 3, "ngClass"], [1, "text-sm", "font-medium", "truncate", 3, "ngClass"], [1, "text-xs", "mt-1", 3, "ngClass"], [1, "w-5", "h-5", "border-2", "border-current", "border-t-transparent", "rounded-full", "animate-spin"], ["fill", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "text-green-500"], ["d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"]], template: function SourceAnalysisTraceabilityComponent_Template(rf, ctx) { if (rf & 1) {
|
|
103167
103191
|
i0.ɵɵconditionalCreate(0, SourceAnalysisTraceabilityComponent_Conditional_0_Template, 9, 6, "div", 0);
|
|
103168
103192
|
} if (rf & 2) {
|
|
103169
103193
|
let tmp_0_0;
|
|
@@ -103179,8 +103203,8 @@ class SourceAnalysisTraceabilityComponent {
|
|
|
103179
103203
|
imports: [CommonModule, SynthesisConfidenceSectionComponent],
|
|
103180
103204
|
template: `
|
|
103181
103205
|
@if ((sourceAnalyses()?.length ?? 0) > 0) {
|
|
103182
|
-
<div [ngClass]="sectionCardClasses()" class="p-5 rounded-xl">
|
|
103183
|
-
<h4 [ngClass]="sectionTitleClasses()" class="text-sm font-semibold
|
|
103206
|
+
<div [ngClass]="sectionCardClasses()" class="p-5 rounded-xl flex flex-col gap-4">
|
|
103207
|
+
<h4 [ngClass]="sectionTitleClasses()" class="text-sm font-semibold flex items-center gap-2">
|
|
103184
103208
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
103185
103209
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"/>
|
|
103186
103210
|
</svg>
|
|
@@ -103707,7 +103731,7 @@ function UnifiedDashboardModalComponent_Conditional_0_Conditional_23_Template(rf
|
|
|
103707
103731
|
i0.ɵɵelement(0, "symphiq-strategy-recommendations-modal-content", 23);
|
|
103708
103732
|
} if (rf & 2) {
|
|
103709
103733
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
103710
|
-
i0.ɵɵproperty("strategy", ctx_r1.recommendationsData().strategy)("viewMode", ctx_r1.viewMode());
|
|
103734
|
+
i0.ɵɵproperty("strategy", ctx_r1.recommendationsData().strategy)("viewMode", ctx_r1.viewMode())("allMetrics", ctx_r1.allMetricsFromStack())("allCharts", ctx_r1.allChartsFromStack())("allInsights", ctx_r1.allInsightsFromStack())("goalTitle", ctx_r1.recommendationsData().goalTitle)("objectiveTitle", ctx_r1.recommendationsData().objectiveTitle);
|
|
103711
103735
|
} }
|
|
103712
103736
|
function UnifiedDashboardModalComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
103713
103737
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -103736,7 +103760,7 @@ function UnifiedDashboardModalComponent_Conditional_0_Template(rf, ctx) { if (rf
|
|
|
103736
103760
|
i0.ɵɵconditionalCreate(20, UnifiedDashboardModalComponent_Conditional_0_Conditional_20_Template, 1, 4, "symphiq-goal-objectives-modal-content", 20);
|
|
103737
103761
|
i0.ɵɵconditionalCreate(21, UnifiedDashboardModalComponent_Conditional_0_Conditional_21_Template, 1, 3, "symphiq-unified-goal-related-metrics-modal-content", 21);
|
|
103738
103762
|
i0.ɵɵconditionalCreate(22, UnifiedDashboardModalComponent_Conditional_0_Conditional_22_Template, 1, 2, "symphiq-objective-strategies-modal-content", 22);
|
|
103739
|
-
i0.ɵɵconditionalCreate(23, UnifiedDashboardModalComponent_Conditional_0_Conditional_23_Template, 1,
|
|
103763
|
+
i0.ɵɵconditionalCreate(23, UnifiedDashboardModalComponent_Conditional_0_Conditional_23_Template, 1, 7, "symphiq-strategy-recommendations-modal-content", 23);
|
|
103740
103764
|
i0.ɵɵelementEnd()()();
|
|
103741
103765
|
} if (rf & 2) {
|
|
103742
103766
|
let tmp_15_0;
|
|
@@ -103838,6 +103862,66 @@ class UnifiedDashboardModalComponent {
|
|
|
103838
103862
|
this.navigationStack = computed(() => {
|
|
103839
103863
|
return this.currentModalState()?.navigationStack || [];
|
|
103840
103864
|
}, ...(ngDevMode ? [{ debugName: "navigationStack" }] : []));
|
|
103865
|
+
this.allMetricsFromStack = computed(() => {
|
|
103866
|
+
const goalData = this.unifiedGoalData();
|
|
103867
|
+
if (goalData?.allMetrics)
|
|
103868
|
+
return goalData.allMetrics;
|
|
103869
|
+
const objData = this.objectivesData();
|
|
103870
|
+
if (objData?.allMetrics)
|
|
103871
|
+
return objData.allMetrics;
|
|
103872
|
+
const relatedData = this.relatedMetricsData();
|
|
103873
|
+
if (relatedData?.contributingMetrics)
|
|
103874
|
+
return relatedData.contributingMetrics;
|
|
103875
|
+
const stack = this.navigationStack();
|
|
103876
|
+
for (let i = stack.length - 1; i >= 0; i--) {
|
|
103877
|
+
const state = stack[i];
|
|
103878
|
+
if (state.type === 'unified-goal-detail' || state.type === 'unified-goal-objectives') {
|
|
103879
|
+
const data = state.data;
|
|
103880
|
+
if (data?.allMetrics)
|
|
103881
|
+
return data.allMetrics;
|
|
103882
|
+
}
|
|
103883
|
+
}
|
|
103884
|
+
return [];
|
|
103885
|
+
}, ...(ngDevMode ? [{ debugName: "allMetricsFromStack" }] : []));
|
|
103886
|
+
this.allChartsFromStack = computed(() => {
|
|
103887
|
+
const goalData = this.unifiedGoalData();
|
|
103888
|
+
if (goalData?.allCharts)
|
|
103889
|
+
return goalData.allCharts;
|
|
103890
|
+
const objData = this.objectivesData();
|
|
103891
|
+
if (objData?.allCharts)
|
|
103892
|
+
return objData.allCharts;
|
|
103893
|
+
const relatedData = this.relatedMetricsData();
|
|
103894
|
+
if (relatedData?.allCharts)
|
|
103895
|
+
return relatedData.allCharts;
|
|
103896
|
+
const stack = this.navigationStack();
|
|
103897
|
+
for (let i = stack.length - 1; i >= 0; i--) {
|
|
103898
|
+
const state = stack[i];
|
|
103899
|
+
if (state.type === 'unified-goal-detail' || state.type === 'unified-goal-objectives') {
|
|
103900
|
+
const data = state.data;
|
|
103901
|
+
if (data?.allCharts)
|
|
103902
|
+
return data.allCharts;
|
|
103903
|
+
}
|
|
103904
|
+
}
|
|
103905
|
+
return [];
|
|
103906
|
+
}, ...(ngDevMode ? [{ debugName: "allChartsFromStack" }] : []));
|
|
103907
|
+
this.allInsightsFromStack = computed(() => {
|
|
103908
|
+
const goalData = this.unifiedGoalData();
|
|
103909
|
+
if (goalData?.allInsights)
|
|
103910
|
+
return goalData.allInsights;
|
|
103911
|
+
const objData = this.objectivesData();
|
|
103912
|
+
if (objData?.allInsights)
|
|
103913
|
+
return objData.allInsights;
|
|
103914
|
+
const stack = this.navigationStack();
|
|
103915
|
+
for (let i = stack.length - 1; i >= 0; i--) {
|
|
103916
|
+
const state = stack[i];
|
|
103917
|
+
if (state.type === 'unified-goal-detail' || state.type === 'unified-goal-objectives') {
|
|
103918
|
+
const data = state.data;
|
|
103919
|
+
if (data?.allInsights)
|
|
103920
|
+
return data.allInsights;
|
|
103921
|
+
}
|
|
103922
|
+
}
|
|
103923
|
+
return [];
|
|
103924
|
+
}, ...(ngDevMode ? [{ debugName: "allInsightsFromStack" }] : []));
|
|
103841
103925
|
this.loadedSourceAnalysisIdsAsNumbers = computed(() => {
|
|
103842
103926
|
const data = this.unifiedGoalData();
|
|
103843
103927
|
if (!data?.loadedSourceAnalysisIds)
|
|
@@ -103888,7 +103972,26 @@ class UnifiedDashboardModalComponent {
|
|
|
103888
103972
|
clearTimeout(this.cleanupTimeoutId);
|
|
103889
103973
|
this.cleanupTimeoutId = null;
|
|
103890
103974
|
}
|
|
103891
|
-
|
|
103975
|
+
const unifiedModalTypes = ['unified-goal-detail', 'unified-goal-objectives', 'unified-goal-related-metrics', 'objective-strategies', 'strategy-recommendations'];
|
|
103976
|
+
const isUnifiedType = unifiedModalTypes.includes(state.type || '');
|
|
103977
|
+
const stackableTypes = ['metrics-list', 'metric'];
|
|
103978
|
+
const isStackableType = stackableTypes.includes(state.type || '');
|
|
103979
|
+
if (!isUnifiedType && state.type !== null && !isStackableType) {
|
|
103980
|
+
if (this.isOpen()) {
|
|
103981
|
+
console.log('[UnifiedDashboardModal] Closing - transitioning to non-unified type:', state.type);
|
|
103982
|
+
this.isOpen.set(false);
|
|
103983
|
+
this.cleanupTimeoutId = setTimeout(() => {
|
|
103984
|
+
this.modalType.set(null);
|
|
103985
|
+
this.modalData.set(null);
|
|
103986
|
+
this.modalTitle.set('');
|
|
103987
|
+
this.previousState.set(null);
|
|
103988
|
+
this.currentModalState.set(null);
|
|
103989
|
+
this.cleanupTimeoutId = null;
|
|
103990
|
+
}, 300);
|
|
103991
|
+
}
|
|
103992
|
+
return;
|
|
103993
|
+
}
|
|
103994
|
+
if (isStackableType) {
|
|
103892
103995
|
return;
|
|
103893
103996
|
}
|
|
103894
103997
|
this.previousState.set(state.previousState ?? null);
|
|
@@ -103956,6 +104059,14 @@ class UnifiedDashboardModalComponent {
|
|
|
103956
104059
|
return;
|
|
103957
104060
|
const contributingMetricNames = data.goal.contributingMetrics || [];
|
|
103958
104061
|
const contributingMetrics = data.allMetrics.filter(m => m.metric && contributingMetricNames.includes(m.metric));
|
|
104062
|
+
console.log('[UnifiedDashboardModal] onContributingMetricsClick:', {
|
|
104063
|
+
goalTitle: data.goal.title,
|
|
104064
|
+
contributingMetricNames,
|
|
104065
|
+
contributingMetricsCount: contributingMetrics.length,
|
|
104066
|
+
contributingMetricsPerformanceItemIds: contributingMetrics.map(m => m.performanceItemId),
|
|
104067
|
+
allChartsCount: data.allCharts?.length || 0,
|
|
104068
|
+
allChartsPerformanceItemIds: data.allCharts?.map(c => c.performanceItemId)
|
|
104069
|
+
});
|
|
103959
104070
|
this.modalService.navigateToUnifiedGoalRelatedMetrics(data.goal, contributingMetrics, data.allCharts, this.viewMode());
|
|
103960
104071
|
}
|
|
103961
104072
|
onShowObjectives() {
|
|
@@ -103968,6 +104079,14 @@ class UnifiedDashboardModalComponent {
|
|
|
103968
104079
|
const data = this.relatedMetricsData();
|
|
103969
104080
|
const allCharts = data?.allCharts || [];
|
|
103970
104081
|
const metricCharts = allCharts.filter(chart => chart.performanceItemId === metric.performanceItemId);
|
|
104082
|
+
console.log('[UnifiedDashboardModal] onRelatedMetricClick:', {
|
|
104083
|
+
metricName: metric.metric,
|
|
104084
|
+
metricPerformanceItemId: metric.performanceItemId,
|
|
104085
|
+
allChartsCount: allCharts.length,
|
|
104086
|
+
allChartsPerformanceItemIds: allCharts.map(c => c.performanceItemId),
|
|
104087
|
+
filteredChartsCount: metricCharts.length,
|
|
104088
|
+
currentModalState: this.currentModalState()?.type
|
|
104089
|
+
});
|
|
103971
104090
|
this.modalService.openMetricModal(metric, metricCharts, this.currentModalState() ?? undefined);
|
|
103972
104091
|
}
|
|
103973
104092
|
navigateToBreadcrumb(index) {
|
|
@@ -104021,7 +104140,7 @@ class UnifiedDashboardModalComponent {
|
|
|
104021
104140
|
let _t;
|
|
104022
104141
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalContent = _t.first);
|
|
104023
104142
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalWrapper = _t.first);
|
|
104024
|
-
} }, inputs: { viewMode: [1, "viewMode"] }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto", 3, "z-index", "visibility"], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", 3, "click", "ngClass"], [1, "relative", "w-full", "max-w-4xl", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "gap-1.5", "mb-2", "text-xs"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xl", "font-bold", "leading-tight", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "ml-4", "flex-shrink-0"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[80vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [3, "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "objectives", "goalTitle", "viewMode"], [3, "goal", "contributingMetrics", "viewMode"], [3, "objective", "viewMode"], [3, "strategy", "viewMode"], [1, "font-medium", 3, "ngClass"], ["type", "button", 1, "hover:underline", "cursor-pointer", "transition-colors", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "flex-shrink-0", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "sourceAnalysisClick", "metricClick", "contributingMetricsClick", "showObjectives", "close", "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "metricClick", "goal", "contributingMetrics", "viewMode"]], template: function UnifiedDashboardModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
104143
|
+
} }, inputs: { viewMode: [1, "viewMode"] }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto", 3, "z-index", "visibility"], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", 3, "click", "ngClass"], [1, "relative", "w-full", "max-w-4xl", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "gap-1.5", "mb-2", "text-xs"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xl", "font-bold", "leading-tight", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "ml-4", "flex-shrink-0"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[80vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [3, "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "objectives", "goalTitle", "viewMode"], [3, "goal", "contributingMetrics", "viewMode"], [3, "objective", "viewMode"], [3, "strategy", "viewMode", "allMetrics", "allCharts", "allInsights", "goalTitle", "objectiveTitle"], [1, "font-medium", 3, "ngClass"], ["type", "button", 1, "hover:underline", "cursor-pointer", "transition-colors", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "flex-shrink-0", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "sourceAnalysisClick", "metricClick", "contributingMetricsClick", "showObjectives", "close", "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "metricClick", "goal", "contributingMetrics", "viewMode"]], template: function UnifiedDashboardModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
104025
104144
|
i0.ɵɵconditionalCreate(0, UnifiedDashboardModalComponent_Conditional_0_Template, 24, 27, "div", 2);
|
|
104026
104145
|
} if (rf & 2) {
|
|
104027
104146
|
i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
|
|
@@ -104198,6 +104317,11 @@ class UnifiedDashboardModalComponent {
|
|
|
104198
104317
|
<symphiq-strategy-recommendations-modal-content
|
|
104199
104318
|
[strategy]="recommendationsData()!.strategy"
|
|
104200
104319
|
[viewMode]="viewMode()"
|
|
104320
|
+
[allMetrics]="allMetricsFromStack()"
|
|
104321
|
+
[allCharts]="allChartsFromStack()"
|
|
104322
|
+
[allInsights]="allInsightsFromStack()"
|
|
104323
|
+
[goalTitle]="recommendationsData()!.goalTitle"
|
|
104324
|
+
[objectiveTitle]="recommendationsData()!.objectiveTitle"
|
|
104201
104325
|
/>
|
|
104202
104326
|
}
|
|
104203
104327
|
</div>
|
|
@@ -104213,7 +104337,7 @@ class UnifiedDashboardModalComponent {
|
|
|
104213
104337
|
type: ViewChild,
|
|
104214
104338
|
args: ['modalWrapper']
|
|
104215
104339
|
}] }); })();
|
|
104216
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedDashboardModalComponent, { className: "UnifiedDashboardModalComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-dashboard-modal.component.ts", lineNumber:
|
|
104340
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedDashboardModalComponent, { className: "UnifiedDashboardModalComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/unified-dashboard-modal.component.ts", lineNumber: 202 }); })();
|
|
104217
104341
|
|
|
104218
104342
|
const _c0$7 = () => [];
|
|
104219
104343
|
const _c1$3 = a0 => ({ name: "flag", source: a0 });
|