@eric-emg/symphiq-components 1.3.78 → 1.3.79
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.
|
@@ -1121,12 +1121,14 @@ class ModalService {
|
|
|
1121
1121
|
navigationStack
|
|
1122
1122
|
});
|
|
1123
1123
|
}
|
|
1124
|
-
navigateToUnifiedGoalObjectives(goal, allMetrics, allCharts, viewMode) {
|
|
1124
|
+
navigateToUnifiedGoalObjectives(goal, allMetrics, allCharts, viewMode, allInsights, allBusinessInsights) {
|
|
1125
1125
|
const currentState = this.modalState.value;
|
|
1126
1126
|
const data = {
|
|
1127
1127
|
goal,
|
|
1128
1128
|
allMetrics,
|
|
1129
1129
|
allCharts,
|
|
1130
|
+
allInsights,
|
|
1131
|
+
allBusinessInsights,
|
|
1130
1132
|
viewMode
|
|
1131
1133
|
};
|
|
1132
1134
|
const currentStack = currentState.navigationStack || [];
|
|
@@ -3861,8 +3863,10 @@ class GoalActionStateService {
|
|
|
3861
3863
|
constructor() {
|
|
3862
3864
|
this.statesSignal = signal({}, ...(ngDevMode ? [{ debugName: "statesSignal" }] : []));
|
|
3863
3865
|
this.stateChangesSubject = new BehaviorSubject({});
|
|
3866
|
+
this.lastChangedGoalIdSignal = signal(null, ...(ngDevMode ? [{ debugName: "lastChangedGoalIdSignal" }] : []));
|
|
3864
3867
|
this.states = this.statesSignal.asReadonly();
|
|
3865
3868
|
this.stateChanges$ = this.stateChangesSubject.asObservable();
|
|
3869
|
+
this.lastChangedGoalId = this.lastChangedGoalIdSignal.asReadonly();
|
|
3866
3870
|
this.loadFromStorage();
|
|
3867
3871
|
}
|
|
3868
3872
|
getState(goalId) {
|
|
@@ -3874,6 +3878,10 @@ class GoalActionStateService {
|
|
|
3874
3878
|
this.statesSignal.set(updated);
|
|
3875
3879
|
this.saveToStorage(updated);
|
|
3876
3880
|
this.stateChangesSubject.next(updated);
|
|
3881
|
+
this.lastChangedGoalIdSignal.set(goalId);
|
|
3882
|
+
}
|
|
3883
|
+
clearLastChangedGoalId() {
|
|
3884
|
+
this.lastChangedGoalIdSignal.set(null);
|
|
3877
3885
|
}
|
|
3878
3886
|
getAllStates() {
|
|
3879
3887
|
return this.statesSignal();
|
|
@@ -44819,7 +44827,7 @@ class ProfileAnalysisModalComponent {
|
|
|
44819
44827
|
'critical-gaps-list', 'key-strength-detail', 'critical-gap-detail', 'top-priorities-list',
|
|
44820
44828
|
'top-priority-detail', 'focus-area-strengths-list', 'focus-area-gaps-list',
|
|
44821
44829
|
'focus-area-opportunities-list', 'focus-area-strength-detail', 'focus-area-gap-detail',
|
|
44822
|
-
'focus-area-opportunity-detail', 'metrics-list', 'metric', 'item-detail', null
|
|
44830
|
+
'focus-area-opportunity-detail', 'metrics-list', 'metric', 'insight', 'item-detail', null
|
|
44823
44831
|
];
|
|
44824
44832
|
// Only update previousState if this modal handles the type
|
|
44825
44833
|
// This prevents z-index conflicts when other modals open on top
|
|
@@ -44827,13 +44835,20 @@ class ProfileAnalysisModalComponent {
|
|
|
44827
44835
|
this.previousState.set(state.previousState || null);
|
|
44828
44836
|
}
|
|
44829
44837
|
// Check if this modal was opened with profile context (from Profile Analysis dashboard)
|
|
44838
|
+
const profileContextTypes = [
|
|
44839
|
+
'focus-area-strengths-list', 'focus-area-strength-detail',
|
|
44840
|
+
'focus-area-gaps-list', 'focus-area-gap-detail',
|
|
44841
|
+
'focus-area-opportunities-list', 'focus-area-opportunity-detail',
|
|
44842
|
+
'top-priorities-list', 'top-priority-detail',
|
|
44843
|
+
'key-strengths-list', 'key-strength-detail',
|
|
44844
|
+
'critical-gaps-list', 'critical-gap-detail',
|
|
44845
|
+
'recommendation-insights-list', 'goal-insights-list',
|
|
44846
|
+
'strategy-recommendations', 'objective-strategies', 'goal-objectives', 'goal-detail',
|
|
44847
|
+
'recommendation-business-insights-list', 'goal-business-insights-list'
|
|
44848
|
+
];
|
|
44830
44849
|
const hasProfileContext = state.previousState &&
|
|
44831
|
-
|
|
44832
|
-
|
|
44833
|
-
'focus-area-opportunities-list', 'focus-area-opportunity-detail',
|
|
44834
|
-
'top-priorities-list', 'top-priority-detail',
|
|
44835
|
-
'key-strengths-list', 'key-strength-detail',
|
|
44836
|
-
'critical-gaps-list', 'critical-gap-detail'].includes(state.previousState.type || '');
|
|
44850
|
+
profileContextTypes.includes(state.previousState.type || '') ||
|
|
44851
|
+
state.navigationStack?.some(s => profileContextTypes.includes(s.type || ''));
|
|
44837
44852
|
// Delegate funnel-related types to Funnel Analysis Modal ONLY if no profile context
|
|
44838
44853
|
// Note: 'metric' is NOT delegated - it should be handled by ProfileAnalysisModalComponent
|
|
44839
44854
|
const funnelTypes = ['insight', 'chart', 'charts-list', 'funnel-strengths-list', 'funnel-weaknesses-list', 'funnel-strength-detail', 'funnel-weakness-detail'];
|
|
@@ -44885,10 +44900,11 @@ class ProfileAnalysisModalComponent {
|
|
|
44885
44900
|
this.modalData.set(data);
|
|
44886
44901
|
this.modalTitle.set(data.goal.title || 'Goal');
|
|
44887
44902
|
this.modalType.set('goal-detail');
|
|
44888
|
-
const
|
|
44889
|
-
|
|
44903
|
+
const unifiedFlowTypes = ['unified-goal-detail', 'unified-goal-objectives', 'unified-goal-related-metrics', 'objective-strategies', 'strategy-recommendations', 'priority-actions-list'];
|
|
44904
|
+
const isFromUnifiedModal = state.previousState?.type && unifiedFlowTypes.includes(state.previousState.type) ||
|
|
44905
|
+
state.navigationStack?.some(s => s.type && unifiedFlowTypes.includes(s.type));
|
|
44906
|
+
this.openModalFresh(!!isFromUnifiedModal);
|
|
44890
44907
|
const stack = state.navigationStack || [];
|
|
44891
|
-
console.log('[ProfileAnalysisModal] goal-detail opened, navigationStack:', stack.length, 'items', stack.map(s => s.type));
|
|
44892
44908
|
this.navigationStack.set(stack);
|
|
44893
44909
|
}
|
|
44894
44910
|
else if (state.type === 'goal-objectives' && state.data) {
|
|
@@ -45161,6 +45177,16 @@ class ProfileAnalysisModalComponent {
|
|
|
45161
45177
|
this.navigationStack.set(stack);
|
|
45162
45178
|
this.currentCharts.set([]);
|
|
45163
45179
|
}
|
|
45180
|
+
else if (state.type === 'insight' && state.data) {
|
|
45181
|
+
const insight = state.data;
|
|
45182
|
+
this.modalData.set(insight);
|
|
45183
|
+
this.modalTitle.set(insight.title || 'Insight Details');
|
|
45184
|
+
this.modalType.set('insight');
|
|
45185
|
+
this.openModalFresh();
|
|
45186
|
+
const stack = state.navigationStack || [];
|
|
45187
|
+
this.navigationStack.set(stack);
|
|
45188
|
+
this.currentCharts.set(state.charts || []);
|
|
45189
|
+
}
|
|
45164
45190
|
else if (state.type === null) {
|
|
45165
45191
|
this.isOpen.set(false);
|
|
45166
45192
|
setTimeout(() => {
|
|
@@ -103177,6 +103203,7 @@ class GoalActionStateChipComponent {
|
|
|
103177
103203
|
this.state = input.required(...(ngDevMode ? [{ debugName: "state" }] : []));
|
|
103178
103204
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
103179
103205
|
this.goalId = input(...(ngDevMode ? [undefined, { debugName: "goalId" }] : []));
|
|
103206
|
+
this.shouldPulse = input(false, ...(ngDevMode ? [{ debugName: "shouldPulse" }] : []));
|
|
103180
103207
|
this.stateChange = output();
|
|
103181
103208
|
this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
|
|
103182
103209
|
this.elementRef = inject(ElementRef);
|
|
@@ -103280,7 +103307,7 @@ class GoalActionStateChipComponent {
|
|
|
103280
103307
|
static { this.ɵfac = function GoalActionStateChipComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GoalActionStateChipComponent)(); }; }
|
|
103281
103308
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GoalActionStateChipComponent, selectors: [["symphiq-goal-action-state-chip"]], hostBindings: function GoalActionStateChipComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
103282
103309
|
i0.ɵɵlistener("click", function GoalActionStateChipComponent_click_HostBindingHandler($event) { return ctx.onDocumentClick($event); }, i0.ɵɵresolveDocument);
|
|
103283
|
-
} }, inputs: { state: [1, "state"], viewMode: [1, "viewMode"], goalId: [1, "goalId"] }, outputs: { stateChange: "stateChange" }, decls: 7, vars:
|
|
103310
|
+
} }, inputs: { state: [1, "state"], viewMode: [1, "viewMode"], goalId: [1, "goalId"], shouldPulse: [1, "shouldPulse"] }, outputs: { stateChange: "stateChange" }, decls: 7, vars: 8, consts: [[1, "relative", "inline-block"], ["type", "button", 1, "inline-flex", "items-center", "gap-1.5", "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", "cursor-pointer", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], [1, "w-2", "h-2", "rounded-full", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "transition-transform", "duration-200"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 9l-7 7-7-7"], [1, "absolute", "top-full", "left-0", "mt-1", "min-w-[160px]", "rounded-lg", "shadow-xl", "z-50", "py-1", "border", 3, "ngClass"], ["type", "button", 1, "w-full", "flex", "items-center", "gap-2", "px-3", "py-2", "text-xs", "font-medium", "transition-colors", "duration-150", "text-left", 3, "ngClass"], ["type", "button", 1, "w-full", "flex", "items-center", "gap-2", "px-3", "py-2", "text-xs", "font-medium", "transition-colors", "duration-150", "text-left", 3, "click", "ngClass"], [1, "w-2", "h-2", "rounded-full", "flex-shrink-0", 3, "ngClass"], [1, "flex-1"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-3.5", "h-3.5", "text-blue-500"], ["fill-rule", "evenodd", "d", "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", "clip-rule", "evenodd"]], template: function GoalActionStateChipComponent_Template(rf, ctx) { if (rf & 1) {
|
|
103284
103311
|
i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
|
|
103285
103312
|
i0.ɵɵlistener("click", function GoalActionStateChipComponent_Template_button_click_1_listener($event) { return ctx.toggleDropdown($event); });
|
|
103286
103313
|
i0.ɵɵelement(2, "span", 2);
|
|
@@ -103293,6 +103320,7 @@ class GoalActionStateChipComponent {
|
|
|
103293
103320
|
i0.ɵɵelementEnd();
|
|
103294
103321
|
} if (rf & 2) {
|
|
103295
103322
|
i0.ɵɵadvance();
|
|
103323
|
+
i0.ɵɵclassProp("animate-chip-pulse", ctx.shouldPulse());
|
|
103296
103324
|
i0.ɵɵproperty("ngClass", ctx.chipClasses());
|
|
103297
103325
|
i0.ɵɵadvance();
|
|
103298
103326
|
i0.ɵɵproperty("ngClass", ctx.dotClasses());
|
|
@@ -103302,21 +103330,17 @@ class GoalActionStateChipComponent {
|
|
|
103302
103330
|
i0.ɵɵclassProp("rotate-180", ctx.isOpen());
|
|
103303
103331
|
i0.ɵɵadvance(2);
|
|
103304
103332
|
i0.ɵɵconditional(ctx.isOpen() ? 6 : -1);
|
|
103305
|
-
} }, dependencies: [CommonModule, i1$1.NgClass],
|
|
103333
|
+
} }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_chip-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 currentColor}50%{transform:scale(1.05);box-shadow:0 0 12px 2px currentColor}}.animate-chip-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_chip-pulse .6s ease-in-out 3}"], changeDetection: 0 }); }
|
|
103306
103334
|
}
|
|
103307
103335
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoalActionStateChipComponent, [{
|
|
103308
103336
|
type: Component,
|
|
103309
|
-
args: [{
|
|
103310
|
-
selector: 'symphiq-goal-action-state-chip',
|
|
103311
|
-
standalone: true,
|
|
103312
|
-
imports: [CommonModule],
|
|
103313
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
103314
|
-
template: `
|
|
103337
|
+
args: [{ selector: 'symphiq-goal-action-state-chip', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
103315
103338
|
<div class="relative inline-block">
|
|
103316
103339
|
<button
|
|
103317
103340
|
type="button"
|
|
103318
103341
|
(click)="toggleDropdown($event)"
|
|
103319
103342
|
[ngClass]="chipClasses()"
|
|
103343
|
+
[class.animate-chip-pulse]="shouldPulse()"
|
|
103320
103344
|
class="inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap cursor-pointer transition-all duration-200 hover:scale-105">
|
|
103321
103345
|
<span [ngClass]="dotClasses()" class="w-2 h-2 rounded-full"></span>
|
|
103322
103346
|
{{ label() }}
|
|
@@ -103345,27 +103369,85 @@ class GoalActionStateChipComponent {
|
|
|
103345
103369
|
</div>
|
|
103346
103370
|
}
|
|
103347
103371
|
</div>
|
|
103348
|
-
|
|
103349
|
-
|
|
103350
|
-
}], null, { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], goalId: [{ type: i0.Input, args: [{ isSignal: true, alias: "goalId", required: false }] }], stateChange: [{ type: i0.Output, args: ["stateChange"] }], onDocumentClick: [{
|
|
103372
|
+
`, styles: ["@keyframes chip-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 currentColor}50%{transform:scale(1.05);box-shadow:0 0 12px 2px currentColor}}.animate-chip-pulse{animation:chip-pulse .6s ease-in-out 3}\n"] }]
|
|
103373
|
+
}], null, { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], goalId: [{ type: i0.Input, args: [{ isSignal: true, alias: "goalId", required: false }] }], shouldPulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "shouldPulse", required: false }] }], stateChange: [{ type: i0.Output, args: ["stateChange"] }], onDocumentClick: [{
|
|
103351
103374
|
type: HostListener,
|
|
103352
103375
|
args: ['document:click', ['$event']]
|
|
103353
103376
|
}] }); })();
|
|
103354
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GoalActionStateChipComponent, { className: "GoalActionStateChipComponent", filePath: "lib/components/shared/goal-action-state-chip.component.ts", lineNumber:
|
|
103377
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GoalActionStateChipComponent, { className: "GoalActionStateChipComponent", filePath: "lib/components/shared/goal-action-state-chip.component.ts", lineNumber: 63 }); })();
|
|
103378
|
+
|
|
103379
|
+
class ReviewButtonComponent {
|
|
103380
|
+
constructor() {
|
|
103381
|
+
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
103382
|
+
this.label = input('Review Goal', ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
103383
|
+
this.buttonClick = output();
|
|
103384
|
+
this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
|
|
103385
|
+
this.buttonClasses = computed(() => {
|
|
103386
|
+
return 'bg-gradient-to-r from-blue-600 via-cyan-600 to-teal-600 hover:from-blue-500 hover:via-cyan-500 hover:to-teal-500 text-white border border-blue-500/30';
|
|
103387
|
+
}, ...(ngDevMode ? [{ debugName: "buttonClasses" }] : []));
|
|
103388
|
+
}
|
|
103389
|
+
onClick(event) {
|
|
103390
|
+
event.stopPropagation();
|
|
103391
|
+
this.buttonClick.emit();
|
|
103392
|
+
}
|
|
103393
|
+
static { this.ɵfac = function ReviewButtonComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReviewButtonComponent)(); }; }
|
|
103394
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReviewButtonComponent, selectors: [["symphiq-review-button"]], inputs: { viewMode: [1, "viewMode"], label: [1, "label"] }, outputs: { buttonClick: "buttonClick" }, decls: 8, vars: 2, consts: [["type", "button", 1, "w-full", "flex", "items-center", "justify-center", "gap-2", "px-4", "py-3", "rounded-xl", "text-sm", "font-semibold", "transition-all", "duration-300", "cursor-pointer", "hover:scale-[1.02]", "active:scale-[0.98]", "animate-review-pulse", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "animate-pulse"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "group-hover:translate-x-1", "transition-transform"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"]], template: function ReviewButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
103395
|
+
i0.ɵɵelementStart(0, "button", 0);
|
|
103396
|
+
i0.ɵɵlistener("click", function ReviewButtonComponent_Template_button_click_0_listener($event) { return ctx.onClick($event); });
|
|
103397
|
+
i0.ɵɵnamespaceSVG();
|
|
103398
|
+
i0.ɵɵelementStart(1, "svg", 1);
|
|
103399
|
+
i0.ɵɵelement(2, "path", 2)(3, "path", 3);
|
|
103400
|
+
i0.ɵɵelementEnd();
|
|
103401
|
+
i0.ɵɵnamespaceHTML();
|
|
103402
|
+
i0.ɵɵelementStart(4, "span");
|
|
103403
|
+
i0.ɵɵtext(5);
|
|
103404
|
+
i0.ɵɵelementEnd();
|
|
103405
|
+
i0.ɵɵnamespaceSVG();
|
|
103406
|
+
i0.ɵɵelementStart(6, "svg", 4);
|
|
103407
|
+
i0.ɵɵelement(7, "path", 5);
|
|
103408
|
+
i0.ɵɵelementEnd()();
|
|
103409
|
+
} if (rf & 2) {
|
|
103410
|
+
i0.ɵɵproperty("ngClass", ctx.buttonClasses());
|
|
103411
|
+
i0.ɵɵadvance(5);
|
|
103412
|
+
i0.ɵɵtextInterpolate(ctx.label());
|
|
103413
|
+
} }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_review-pulse{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}}.animate-review-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_review-pulse 2s ease-in-out infinite}"], changeDetection: 0 }); }
|
|
103414
|
+
}
|
|
103415
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReviewButtonComponent, [{
|
|
103416
|
+
type: Component,
|
|
103417
|
+
args: [{ selector: 'symphiq-review-button', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
103418
|
+
<button
|
|
103419
|
+
type="button"
|
|
103420
|
+
[ngClass]="buttonClasses()"
|
|
103421
|
+
class="w-full flex items-center justify-center gap-2 px-4 py-3 rounded-xl text-sm font-semibold transition-all duration-300 cursor-pointer hover:scale-[1.02] active:scale-[0.98] animate-review-pulse"
|
|
103422
|
+
(click)="onClick($event)">
|
|
103423
|
+
<svg class="w-5 h-5 animate-pulse" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
103424
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
103425
|
+
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
|
|
103426
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
103427
|
+
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"/>
|
|
103428
|
+
</svg>
|
|
103429
|
+
<span>{{ label() }}</span>
|
|
103430
|
+
<svg class="w-5 h-5 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
103431
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
|
|
103432
|
+
</svg>
|
|
103433
|
+
</button>
|
|
103434
|
+
`, styles: ["@keyframes review-pulse{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}}.animate-review-pulse{animation:review-pulse 2s ease-in-out infinite}\n"] }]
|
|
103435
|
+
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], buttonClick: [{ type: i0.Output, args: ["buttonClick"] }] }); })();
|
|
103436
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReviewButtonComponent, { className: "ReviewButtonComponent", filePath: "lib/components/shared/review-button.component.ts", lineNumber: 42 }); })();
|
|
103355
103437
|
|
|
103356
103438
|
function UnifiedGoalCardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
103357
103439
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
103358
|
-
i0.ɵɵelementStart(0, "symphiq-goal-action-state-chip",
|
|
103440
|
+
i0.ɵɵelementStart(0, "symphiq-goal-action-state-chip", 20);
|
|
103359
103441
|
i0.ɵɵlistener("stateChange", function UnifiedGoalCardComponent_Conditional_9_Template_symphiq_goal_action_state_chip_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onActionStateChange($event)); });
|
|
103360
103442
|
i0.ɵɵelementEnd();
|
|
103361
103443
|
} if (rf & 2) {
|
|
103362
103444
|
let tmp_3_0;
|
|
103363
103445
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
103364
|
-
i0.ɵɵproperty("state", ctx_r1.actionState())("viewMode", ctx_r1.viewMode())("goalId", (tmp_3_0 = ctx_r1.goal()) == null ? null : tmp_3_0.id);
|
|
103446
|
+
i0.ɵɵproperty("state", ctx_r1.actionState())("viewMode", ctx_r1.viewMode())("goalId", (tmp_3_0 = ctx_r1.goal()) == null ? null : tmp_3_0.id)("shouldPulse", ctx_r1.shouldPulseChip());
|
|
103365
103447
|
} }
|
|
103366
103448
|
function UnifiedGoalCardComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
103367
103449
|
i0.ɵɵelementStart(0, "div", 10);
|
|
103368
|
-
i0.ɵɵelement(1, "symphiq-thematic-category-badge",
|
|
103450
|
+
i0.ɵɵelement(1, "symphiq-thematic-category-badge", 21);
|
|
103369
103451
|
i0.ɵɵelementEnd();
|
|
103370
103452
|
} if (rf & 2) {
|
|
103371
103453
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -103384,7 +103466,7 @@ function UnifiedGoalCardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1)
|
|
|
103384
103466
|
} }
|
|
103385
103467
|
function UnifiedGoalCardComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
103386
103468
|
i0.ɵɵelementStart(0, "div", 12);
|
|
103387
|
-
i0.ɵɵelement(1, "symphiq-roadmap-metrics",
|
|
103469
|
+
i0.ɵɵelement(1, "symphiq-roadmap-metrics", 22);
|
|
103388
103470
|
i0.ɵɵelementEnd();
|
|
103389
103471
|
} if (rf & 2) {
|
|
103390
103472
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -103409,11 +103491,30 @@ function UnifiedGoalCardComponent_Conditional_18_Template(rf, ctx) { if (rf & 1)
|
|
|
103409
103491
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
103410
103492
|
i0.ɵɵproperty("sourceTypeCounts", ctx_r1.sourceTypeCounts())("contributingCounts", ctx_r1.contributingCounts())("viewMode", ctx_r1.viewMode());
|
|
103411
103493
|
} }
|
|
103494
|
+
function UnifiedGoalCardComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
103495
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
103496
|
+
i0.ɵɵelementStart(0, "symphiq-learn-more-button", 23);
|
|
103497
|
+
i0.ɵɵlistener("buttonClick", function UnifiedGoalCardComponent_Conditional_20_Template_symphiq_learn_more_button_buttonClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onLearnMoreClick()); });
|
|
103498
|
+
i0.ɵɵelementEnd();
|
|
103499
|
+
} if (rf & 2) {
|
|
103500
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
103501
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("variant", "button")("label", "Learn More");
|
|
103502
|
+
} }
|
|
103503
|
+
function UnifiedGoalCardComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
103504
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
103505
|
+
i0.ɵɵelementStart(0, "symphiq-review-button", 24);
|
|
103506
|
+
i0.ɵɵlistener("buttonClick", function UnifiedGoalCardComponent_Conditional_21_Template_symphiq_review_button_buttonClick_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onLearnMoreClick()); });
|
|
103507
|
+
i0.ɵɵelementEnd();
|
|
103508
|
+
} if (rf & 2) {
|
|
103509
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
103510
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("label", "Review Goal");
|
|
103511
|
+
} }
|
|
103412
103512
|
class UnifiedGoalCardComponent {
|
|
103413
103513
|
constructor() {
|
|
103414
103514
|
this.goal = input(...(ngDevMode ? [undefined, { debugName: "goal" }] : []));
|
|
103415
103515
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
103416
103516
|
this.actionState = input(...(ngDevMode ? [undefined, { debugName: "actionState" }] : []));
|
|
103517
|
+
this.shouldPulseChip = input(false, ...(ngDevMode ? [{ debugName: "shouldPulseChip" }] : []));
|
|
103417
103518
|
this.goalClick = output();
|
|
103418
103519
|
this.sourceBadgeClick = output();
|
|
103419
103520
|
this.relatedMetricsClick = output();
|
|
@@ -103565,7 +103666,7 @@ class UnifiedGoalCardComponent {
|
|
|
103565
103666
|
this.actionStateChange.emit(event);
|
|
103566
103667
|
}
|
|
103567
103668
|
static { this.ɵfac = function UnifiedGoalCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedGoalCardComponent)(); }; }
|
|
103568
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalCardComponent, selectors: [["symphiq-unified-goal-card"]], inputs: { goal: [1, "goal"], viewMode: [1, "viewMode"], actionState: [1, "actionState"] }, outputs: { goalClick: "goalClick", sourceBadgeClick: "sourceBadgeClick", relatedMetricsClick: "relatedMetricsClick", relatedFocusAreasClick: "relatedFocusAreasClick", learnMoreClick: "learnMoreClick", actionStateChange: "actionStateChange" }, decls:
|
|
103669
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalCardComponent, selectors: [["symphiq-unified-goal-card"]], inputs: { goal: [1, "goal"], viewMode: [1, "viewMode"], actionState: [1, "actionState"], shouldPulseChip: [1, "shouldPulseChip"] }, outputs: { goalClick: "goalClick", sourceBadgeClick: "sourceBadgeClick", relatedMetricsClick: "relatedMetricsClick", relatedFocusAreasClick: "relatedFocusAreasClick", learnMoreClick: "learnMoreClick", actionStateChange: "actionStateChange" }, decls: 22, vars: 13, consts: [[1, "rounded-2xl", "p-6", "shadow-lg", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "gap-4", "mb-2"], [3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "justify-between", "gap-2", "mb-1"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "state", "viewMode", "goalId", "shouldPulse"], [1, "font-semibold", "text-lg", "line-clamp-2", 3, "ngClass"], [1, "mb-3"], [1, "text-sm", "mb-4", "line-clamp-3", "cursor-help", 3, "ngClass", "libSymphiqTooltip"], [1, "mb-4"], [1, "flex", "flex-wrap", "items-center", "justify-between", "gap-3", "mb-4"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode"], [3, "sourceTypeCounts", "contributingCounts", "viewMode"], [1, "mt-4"], [3, "viewMode", "variant", "label"], [3, "viewMode", "label"], [3, "stateChange", "state", "viewMode", "goalId", "shouldPulse"], [3, "category", "viewMode"], [3, "metrics", "viewMode"], [3, "buttonClick", "viewMode", "variant", "label"], [3, "buttonClick", "viewMode", "label"]], template: function UnifiedGoalCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
103569
103670
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
|
|
103570
103671
|
i0.ɵɵnamespaceSVG();
|
|
103571
103672
|
i0.ɵɵelementStart(3, "svg", 3);
|
|
@@ -103575,7 +103676,7 @@ class UnifiedGoalCardComponent {
|
|
|
103575
103676
|
i0.ɵɵelementStart(5, "div", 5)(6, "div", 6)(7, "div", 7);
|
|
103576
103677
|
i0.ɵɵtext(8, " Unified Goal ");
|
|
103577
103678
|
i0.ɵɵelementEnd();
|
|
103578
|
-
i0.ɵɵconditionalCreate(9, UnifiedGoalCardComponent_Conditional_9_Template, 1,
|
|
103679
|
+
i0.ɵɵconditionalCreate(9, UnifiedGoalCardComponent_Conditional_9_Template, 1, 4, "symphiq-goal-action-state-chip", 8);
|
|
103579
103680
|
i0.ɵɵelementEnd();
|
|
103580
103681
|
i0.ɵɵelementStart(10, "h4", 9);
|
|
103581
103682
|
i0.ɵɵtext(11);
|
|
@@ -103588,9 +103689,9 @@ class UnifiedGoalCardComponent {
|
|
|
103588
103689
|
i0.ɵɵconditionalCreate(17, UnifiedGoalCardComponent_Conditional_17_Template, 1, 2, "symphiq-timeframe-badge", 15);
|
|
103589
103690
|
i0.ɵɵelementEnd();
|
|
103590
103691
|
i0.ɵɵconditionalCreate(18, UnifiedGoalCardComponent_Conditional_18_Template, 1, 3, "symphiq-source-summary", 16);
|
|
103591
|
-
i0.ɵɵelementStart(19, "div", 17)
|
|
103592
|
-
i0.ɵɵ
|
|
103593
|
-
i0.ɵɵelementEnd()()
|
|
103692
|
+
i0.ɵɵelementStart(19, "div", 17);
|
|
103693
|
+
i0.ɵɵconditionalCreate(20, UnifiedGoalCardComponent_Conditional_20_Template, 1, 3, "symphiq-learn-more-button", 18)(21, UnifiedGoalCardComponent_Conditional_21_Template, 1, 2, "symphiq-review-button", 19);
|
|
103694
|
+
i0.ɵɵelementEnd()();
|
|
103594
103695
|
} if (rf & 2) {
|
|
103595
103696
|
let tmp_5_0;
|
|
103596
103697
|
let tmp_6_0;
|
|
@@ -103622,7 +103723,7 @@ class UnifiedGoalCardComponent {
|
|
|
103622
103723
|
i0.ɵɵadvance();
|
|
103623
103724
|
i0.ɵɵconditional((((tmp_11_0 = ctx.goal()) == null ? null : tmp_11_0.sourceAnalyses == null ? null : tmp_11_0.sourceAnalyses.length) ?? 0) > 0 || ctx.hasRelatedContext() ? 18 : -1);
|
|
103624
103725
|
i0.ɵɵadvance(2);
|
|
103625
|
-
i0.ɵɵ
|
|
103726
|
+
i0.ɵɵconditional(ctx.actionState() ? 20 : 21);
|
|
103626
103727
|
} }, dependencies: [CommonModule, i1$1.NgClass, PriorityBadgeComponent,
|
|
103627
103728
|
TimeframeBadgeComponent,
|
|
103628
103729
|
RoadmapMetricsComponent,
|
|
@@ -103630,7 +103731,8 @@ class UnifiedGoalCardComponent {
|
|
|
103630
103731
|
SourceSummaryComponent,
|
|
103631
103732
|
ThematicCategoryBadgeComponent,
|
|
103632
103733
|
TooltipDirective,
|
|
103633
|
-
GoalActionStateChipComponent
|
|
103734
|
+
GoalActionStateChipComponent,
|
|
103735
|
+
ReviewButtonComponent], encapsulation: 2, changeDetection: 0 }); }
|
|
103634
103736
|
}
|
|
103635
103737
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnifiedGoalCardComponent, [{
|
|
103636
103738
|
type: Component,
|
|
@@ -103646,7 +103748,8 @@ class UnifiedGoalCardComponent {
|
|
|
103646
103748
|
SourceSummaryComponent,
|
|
103647
103749
|
ThematicCategoryBadgeComponent,
|
|
103648
103750
|
TooltipDirective,
|
|
103649
|
-
GoalActionStateChipComponent
|
|
103751
|
+
GoalActionStateChipComponent,
|
|
103752
|
+
ReviewButtonComponent
|
|
103650
103753
|
],
|
|
103651
103754
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
103652
103755
|
template: `
|
|
@@ -103670,6 +103773,7 @@ class UnifiedGoalCardComponent {
|
|
|
103670
103773
|
[state]="actionState()!"
|
|
103671
103774
|
[viewMode]="viewMode()"
|
|
103672
103775
|
[goalId]="goal()?.id"
|
|
103776
|
+
[shouldPulse]="shouldPulseChip()"
|
|
103673
103777
|
(stateChange)="onActionStateChange($event)"
|
|
103674
103778
|
/>
|
|
103675
103779
|
}
|
|
@@ -103725,18 +103829,26 @@ class UnifiedGoalCardComponent {
|
|
|
103725
103829
|
}
|
|
103726
103830
|
|
|
103727
103831
|
<div class="mt-4">
|
|
103728
|
-
|
|
103729
|
-
|
|
103730
|
-
|
|
103731
|
-
|
|
103732
|
-
|
|
103733
|
-
|
|
103832
|
+
@if (actionState()) {
|
|
103833
|
+
<symphiq-learn-more-button
|
|
103834
|
+
[viewMode]="viewMode()"
|
|
103835
|
+
[variant]="'button'"
|
|
103836
|
+
[label]="'Learn More'"
|
|
103837
|
+
(buttonClick)="onLearnMoreClick()"
|
|
103838
|
+
/>
|
|
103839
|
+
} @else {
|
|
103840
|
+
<symphiq-review-button
|
|
103841
|
+
[viewMode]="viewMode()"
|
|
103842
|
+
[label]="'Review Goal'"
|
|
103843
|
+
(buttonClick)="onLearnMoreClick()"
|
|
103844
|
+
/>
|
|
103845
|
+
}
|
|
103734
103846
|
</div>
|
|
103735
103847
|
</div>
|
|
103736
103848
|
`
|
|
103737
103849
|
}]
|
|
103738
|
-
}], null, { goal: [{ type: i0.Input, args: [{ isSignal: true, alias: "goal", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], actionState: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionState", required: false }] }], goalClick: [{ type: i0.Output, args: ["goalClick"] }], sourceBadgeClick: [{ type: i0.Output, args: ["sourceBadgeClick"] }], relatedMetricsClick: [{ type: i0.Output, args: ["relatedMetricsClick"] }], relatedFocusAreasClick: [{ type: i0.Output, args: ["relatedFocusAreasClick"] }], learnMoreClick: [{ type: i0.Output, args: ["learnMoreClick"] }], actionStateChange: [{ type: i0.Output, args: ["actionStateChange"] }] }); })();
|
|
103739
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalCardComponent, { className: "UnifiedGoalCardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-goal-card.component.ts", lineNumber:
|
|
103850
|
+
}], null, { goal: [{ type: i0.Input, args: [{ isSignal: true, alias: "goal", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], actionState: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionState", required: false }] }], shouldPulseChip: [{ type: i0.Input, args: [{ isSignal: true, alias: "shouldPulseChip", required: false }] }], goalClick: [{ type: i0.Output, args: ["goalClick"] }], sourceBadgeClick: [{ type: i0.Output, args: ["sourceBadgeClick"] }], relatedMetricsClick: [{ type: i0.Output, args: ["relatedMetricsClick"] }], relatedFocusAreasClick: [{ type: i0.Output, args: ["relatedFocusAreasClick"] }], learnMoreClick: [{ type: i0.Output, args: ["learnMoreClick"] }], actionStateChange: [{ type: i0.Output, args: ["actionStateChange"] }] }); })();
|
|
103851
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalCardComponent, { className: "UnifiedGoalCardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-goal-card.component.ts", lineNumber: 127 }); })();
|
|
103740
103852
|
|
|
103741
103853
|
const _c0$9 = a0 => ({ name: "flag", source: a0 });
|
|
103742
103854
|
const _forTrack0$9 = ($index, $item) => $item.id;
|
|
@@ -103748,13 +103860,13 @@ function UnifiedGoalsGridComponent_Conditional_0_For_5_Template(rf, ctx) { if (r
|
|
|
103748
103860
|
} if (rf & 2) {
|
|
103749
103861
|
const goal_r3 = ctx.$implicit;
|
|
103750
103862
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
103751
|
-
i0.ɵɵproperty("goal", goal_r3)("viewMode", ctx_r1.viewMode())("actionState", ctx_r1.getActionState(goal_r3.id));
|
|
103863
|
+
i0.ɵɵproperty("goal", goal_r3)("viewMode", ctx_r1.viewMode())("actionState", ctx_r1.getActionState(goal_r3.id))("shouldPulseChip", ctx_r1.shouldPulse(goal_r3.id));
|
|
103752
103864
|
} }
|
|
103753
103865
|
function UnifiedGoalsGridComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
103754
103866
|
i0.ɵɵelementStart(0, "section", 0);
|
|
103755
103867
|
i0.ɵɵelement(1, "symphiq-section-divider", 1)(2, "symphiq-section-header", 2);
|
|
103756
103868
|
i0.ɵɵelementStart(3, "div", 3);
|
|
103757
|
-
i0.ɵɵrepeaterCreate(4, UnifiedGoalsGridComponent_Conditional_0_For_5_Template, 1,
|
|
103869
|
+
i0.ɵɵrepeaterCreate(4, UnifiedGoalsGridComponent_Conditional_0_For_5_Template, 1, 4, "symphiq-unified-goal-card", 4, _forTrack0$9);
|
|
103758
103870
|
i0.ɵɵelementEnd()();
|
|
103759
103871
|
} if (rf & 2) {
|
|
103760
103872
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -103778,19 +103890,29 @@ class UnifiedGoalsGridComponent {
|
|
|
103778
103890
|
this.goalActionStateService.states();
|
|
103779
103891
|
return this.goalActionStateService.getAllStates();
|
|
103780
103892
|
}, ...(ngDevMode ? [{ debugName: "states" }] : []));
|
|
103893
|
+
this.lastChangedGoalId = computed(() => this.goalActionStateService.lastChangedGoalId(), ...(ngDevMode ? [{ debugName: "lastChangedGoalId" }] : []));
|
|
103781
103894
|
}
|
|
103782
103895
|
getActionState(goalId) {
|
|
103783
103896
|
if (!goalId)
|
|
103784
103897
|
return undefined;
|
|
103785
103898
|
return this.states()[goalId];
|
|
103786
103899
|
}
|
|
103900
|
+
shouldPulse(goalId) {
|
|
103901
|
+
if (!goalId)
|
|
103902
|
+
return false;
|
|
103903
|
+
const match = this.lastChangedGoalId() === goalId;
|
|
103904
|
+
if (match) {
|
|
103905
|
+
setTimeout(() => this.goalActionStateService.clearLastChangedGoalId(), 2000);
|
|
103906
|
+
}
|
|
103907
|
+
return match;
|
|
103908
|
+
}
|
|
103787
103909
|
onActionStateChange(event) {
|
|
103788
103910
|
if (event.goalId) {
|
|
103789
103911
|
this.goalActionStateService.setState(event.goalId, event.state);
|
|
103790
103912
|
}
|
|
103791
103913
|
}
|
|
103792
103914
|
static { this.ɵfac = function UnifiedGoalsGridComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedGoalsGridComponent)(); }; }
|
|
103793
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalsGridComponent, selectors: [["symphiq-unified-goals-grid"]], inputs: { viewMode: [1, "viewMode"], goals: [1, "goals"] }, outputs: { goalClick: "goalClick", sourceBadgeClick: "sourceBadgeClick", relatedMetricsClick: "relatedMetricsClick" }, decls: 1, vars: 1, consts: [["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Unified Goals", 3, "icon", "viewMode"], [1, "grid", "gap-6", 2, "grid-template-columns", "repeat(auto-fit, minmax(340px, 1fr))"], [3, "goal", "viewMode", "actionState"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "learnMoreClick", "actionStateChange", "goal", "viewMode", "actionState"]], template: function UnifiedGoalsGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
103915
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalsGridComponent, selectors: [["symphiq-unified-goals-grid"]], inputs: { viewMode: [1, "viewMode"], goals: [1, "goals"] }, outputs: { goalClick: "goalClick", sourceBadgeClick: "sourceBadgeClick", relatedMetricsClick: "relatedMetricsClick" }, decls: 1, vars: 1, consts: [["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Unified Goals", 3, "icon", "viewMode"], [1, "grid", "gap-6", 2, "grid-template-columns", "repeat(auto-fit, minmax(340px, 1fr))"], [3, "goal", "viewMode", "actionState", "shouldPulseChip"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "learnMoreClick", "actionStateChange", "goal", "viewMode", "actionState", "shouldPulseChip"]], template: function UnifiedGoalsGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
103794
103916
|
i0.ɵɵconditionalCreate(0, UnifiedGoalsGridComponent_Conditional_0_Template, 6, 8, "section", 0);
|
|
103795
103917
|
} if (rf & 2) {
|
|
103796
103918
|
i0.ɵɵconditional(ctx.goals().length > 0 ? 0 : -1);
|
|
@@ -103830,6 +103952,7 @@ class UnifiedGoalsGridComponent {
|
|
|
103830
103952
|
[goal]="goal"
|
|
103831
103953
|
[viewMode]="viewMode()"
|
|
103832
103954
|
[actionState]="getActionState(goal.id)"
|
|
103955
|
+
[shouldPulseChip]="shouldPulse(goal.id)"
|
|
103833
103956
|
(goalClick)="goalClick.emit($event)"
|
|
103834
103957
|
(sourceBadgeClick)="sourceBadgeClick.emit($event)"
|
|
103835
103958
|
(relatedMetricsClick)="relatedMetricsClick.emit($event)"
|
|
@@ -103843,7 +103966,7 @@ class UnifiedGoalsGridComponent {
|
|
|
103843
103966
|
`
|
|
103844
103967
|
}]
|
|
103845
103968
|
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], goals: [{ type: i0.Input, args: [{ isSignal: true, alias: "goals", required: false }] }], goalClick: [{ type: i0.Output, args: ["goalClick"] }], sourceBadgeClick: [{ type: i0.Output, args: ["sourceBadgeClick"] }], relatedMetricsClick: [{ type: i0.Output, args: ["relatedMetricsClick"] }] }); })();
|
|
103846
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalsGridComponent, { className: "UnifiedGoalsGridComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-goals-grid.component.ts", lineNumber:
|
|
103969
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalsGridComponent, { className: "UnifiedGoalsGridComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-goals-grid.component.ts", lineNumber: 52 }); })();
|
|
103847
103970
|
|
|
103848
103971
|
function SynthesisConfidenceSectionComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
103849
103972
|
i0.ɵɵelementStart(0, "div", 0)(1, "h4", 1);
|
|
@@ -104850,42 +104973,41 @@ class PriorityActionsModalContentComponent {
|
|
|
104850
104973
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PriorityActionsModalContentComponent, { className: "PriorityActionsModalContentComponent", filePath: "lib/components/profile-analysis-unified-dashboard/modals/priority-actions-modal-content.component.ts", lineNumber: 107 }); })();
|
|
104851
104974
|
|
|
104852
104975
|
const _forTrack0$6 = ($index, $item) => $item.value;
|
|
104853
|
-
function
|
|
104976
|
+
function GoalActionStateSelectorComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
104854
104977
|
i0.ɵɵnamespaceSVG();
|
|
104855
|
-
i0.ɵɵelementStart(0, "svg",
|
|
104856
|
-
i0.ɵɵelement(1, "path", 8);
|
|
104978
|
+
i0.ɵɵelementStart(0, "svg", 2);
|
|
104979
|
+
i0.ɵɵelement(1, "path", 7)(2, "path", 8);
|
|
104980
|
+
i0.ɵɵelementEnd();
|
|
104981
|
+
} if (rf & 2) {
|
|
104982
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
104983
|
+
i0.ɵɵproperty("ngClass", ctx_r0.promptIconClasses());
|
|
104984
|
+
} }
|
|
104985
|
+
function GoalActionStateSelectorComponent_For_7_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
104986
|
+
i0.ɵɵnamespaceSVG();
|
|
104987
|
+
i0.ɵɵelementStart(0, "svg", 11);
|
|
104988
|
+
i0.ɵɵelement(1, "path", 12);
|
|
104857
104989
|
i0.ɵɵelementEnd();
|
|
104858
104990
|
} }
|
|
104859
|
-
function
|
|
104860
|
-
const
|
|
104861
|
-
i0.ɵɵelementStart(0, "button",
|
|
104862
|
-
i0.ɵɵlistener("click", function
|
|
104863
|
-
i0.ɵɵelement(1, "span",
|
|
104991
|
+
function GoalActionStateSelectorComponent_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
104992
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
104993
|
+
i0.ɵɵelementStart(0, "button", 9);
|
|
104994
|
+
i0.ɵɵlistener("click", function GoalActionStateSelectorComponent_For_7_Template_button_click_0_listener() { const option_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectState(option_r3.value)); });
|
|
104995
|
+
i0.ɵɵelement(1, "span", 10);
|
|
104864
104996
|
i0.ɵɵelementStart(2, "span");
|
|
104865
104997
|
i0.ɵɵtext(3);
|
|
104866
104998
|
i0.ɵɵelementEnd();
|
|
104867
|
-
i0.ɵɵconditionalCreate(4,
|
|
104999
|
+
i0.ɵɵconditionalCreate(4, GoalActionStateSelectorComponent_For_7_Conditional_4_Template, 2, 0, ":svg:svg", 11);
|
|
104868
105000
|
i0.ɵɵelementEnd();
|
|
104869
105001
|
} if (rf & 2) {
|
|
104870
|
-
const
|
|
104871
|
-
const
|
|
104872
|
-
i0.ɵɵproperty("ngClass",
|
|
105002
|
+
const option_r3 = ctx.$implicit;
|
|
105003
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
105004
|
+
i0.ɵɵproperty("ngClass", ctx_r0.getButtonClasses(option_r3.value));
|
|
104873
105005
|
i0.ɵɵadvance();
|
|
104874
|
-
i0.ɵɵproperty("ngClass",
|
|
105006
|
+
i0.ɵɵproperty("ngClass", ctx_r0.getDotClasses(option_r3.value));
|
|
104875
105007
|
i0.ɵɵadvance(2);
|
|
104876
|
-
i0.ɵɵtextInterpolate(
|
|
105008
|
+
i0.ɵɵtextInterpolate(option_r3.label);
|
|
104877
105009
|
i0.ɵɵadvance();
|
|
104878
|
-
i0.ɵɵconditional(
|
|
104879
|
-
} }
|
|
104880
|
-
function GoalActionStateSelectorComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
104881
|
-
i0.ɵɵelementStart(0, "div", 4);
|
|
104882
|
-
i0.ɵɵtext(1);
|
|
104883
|
-
i0.ɵɵelementEnd();
|
|
104884
|
-
} if (rf & 2) {
|
|
104885
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
104886
|
-
i0.ɵɵproperty("ngClass", ctx_r2.hintClasses());
|
|
104887
|
-
i0.ɵɵadvance();
|
|
104888
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.getHintText(), " ");
|
|
105010
|
+
i0.ɵɵconditional(ctx_r0.state() === option_r3.value ? 4 : -1);
|
|
104889
105011
|
} }
|
|
104890
105012
|
class GoalActionStateSelectorComponent {
|
|
104891
105013
|
constructor() {
|
|
@@ -104899,10 +105021,27 @@ class GoalActionStateSelectorComponent {
|
|
|
104899
105021
|
{ value: GoalActionStateEnum.SKIP, label: 'Skip' }
|
|
104900
105022
|
];
|
|
104901
105023
|
this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
|
|
105024
|
+
this.containerClasses = computed(() => {
|
|
105025
|
+
if (!this.state()) {
|
|
105026
|
+
return this.isDark()
|
|
105027
|
+
? 'bg-gradient-to-r from-blue-900/30 via-cyan-900/30 to-teal-900/30 border-2 border-blue-500/50 animate-attention-pulse'
|
|
105028
|
+
: 'bg-gradient-to-r from-blue-50 via-cyan-50 to-teal-50 border-2 border-blue-400/50 animate-attention-pulse';
|
|
105029
|
+
}
|
|
105030
|
+
return this.isDark() ? 'bg-slate-800/30' : 'bg-slate-50/50';
|
|
105031
|
+
}, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
|
|
105032
|
+
this.promptIconClasses = computed(() => {
|
|
105033
|
+
return this.isDark() ? 'text-blue-400 animate-pulse' : 'text-blue-600 animate-pulse';
|
|
105034
|
+
}, ...(ngDevMode ? [{ debugName: "promptIconClasses" }] : []));
|
|
104902
105035
|
this.labelClasses = computed(() => {
|
|
105036
|
+
if (!this.state()) {
|
|
105037
|
+
return this.isDark() ? 'text-blue-300 font-bold' : 'text-blue-700 font-bold';
|
|
105038
|
+
}
|
|
104903
105039
|
return this.isDark() ? 'text-slate-400' : 'text-slate-500';
|
|
104904
105040
|
}, ...(ngDevMode ? [{ debugName: "labelClasses" }] : []));
|
|
104905
105041
|
this.hintClasses = computed(() => {
|
|
105042
|
+
if (!this.state()) {
|
|
105043
|
+
return this.isDark() ? 'text-slate-400' : 'text-slate-500';
|
|
105044
|
+
}
|
|
104906
105045
|
return this.isDark() ? 'text-slate-500' : 'text-slate-400';
|
|
104907
105046
|
}, ...(ngDevMode ? [{ debugName: "hintClasses" }] : []));
|
|
104908
105047
|
}
|
|
@@ -104955,50 +105094,63 @@ class GoalActionStateSelectorComponent {
|
|
|
104955
105094
|
case GoalActionStateEnum.SKIP:
|
|
104956
105095
|
return 'This goal will be marked as not applicable to your current focus.';
|
|
104957
105096
|
default:
|
|
104958
|
-
return '';
|
|
105097
|
+
return 'Select how you want to handle this goal to continue your review.';
|
|
104959
105098
|
}
|
|
104960
105099
|
}
|
|
104961
105100
|
selectState(value) {
|
|
104962
105101
|
this.stateChange.emit({ goalId: this.goalId(), state: value });
|
|
104963
105102
|
}
|
|
104964
105103
|
static { this.ɵfac = function GoalActionStateSelectorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GoalActionStateSelectorComponent)(); }; }
|
|
104965
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GoalActionStateSelectorComponent, selectors: [["symphiq-goal-action-state-selector"]], inputs: { state: [1, "state"], viewMode: [1, "viewMode"], goalId: [1, "goalId"] }, outputs: { stateChange: "stateChange" }, decls:
|
|
105104
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GoalActionStateSelectorComponent, selectors: [["symphiq-goal-action-state-selector"]], inputs: { state: [1, "state"], viewMode: [1, "viewMode"], goalId: [1, "goalId"] }, outputs: { stateChange: "stateChange" }, decls: 10, vars: 6, consts: [[1, "flex", "flex-col", "gap-3", "p-4", "rounded-xl", "transition-all", "duration-300", 3, "ngClass"], [1, "flex", "items-center", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "flex-shrink-0", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "flex", "flex-col", "sm:flex-row", "sm:flex-wrap", "gap-2", "sm:gap-3"], ["type", "button", 1, "flex", "items-center", "justify-center", "sm:justify-start", "gap-2", "px-4", "py-2.5", "rounded-xl", "font-medium", "text-sm", "transition-all", "duration-200", "border", "cursor-pointer", "w-full", "sm:w-auto", 3, "ngClass"], [1, "text-xs", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], ["type", "button", 1, "flex", "items-center", "justify-center", "sm:justify-start", "gap-2", "px-4", "py-2.5", "rounded-xl", "font-medium", "text-sm", "transition-all", "duration-200", "border", "cursor-pointer", "w-full", "sm:w-auto", 3, "click", "ngClass"], [1, "w-3", "h-3", "rounded-full", "flex-shrink-0", 3, "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4", "ml-1"], ["fill-rule", "evenodd", "d", "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", "clip-rule", "evenodd"]], template: function GoalActionStateSelectorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
104966
105105
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
104967
|
-
i0.ɵɵ
|
|
104968
|
-
i0.ɵɵ
|
|
104969
|
-
i0.ɵɵ
|
|
104970
|
-
i0.ɵɵ
|
|
104971
|
-
i0.ɵɵ
|
|
104972
|
-
i0.ɵɵ
|
|
105106
|
+
i0.ɵɵconditionalCreate(2, GoalActionStateSelectorComponent_Conditional_2_Template, 3, 1, ":svg:svg", 2);
|
|
105107
|
+
i0.ɵɵelementStart(3, "div", 3);
|
|
105108
|
+
i0.ɵɵtext(4);
|
|
105109
|
+
i0.ɵɵelementEnd()();
|
|
105110
|
+
i0.ɵɵelementStart(5, "div", 4);
|
|
105111
|
+
i0.ɵɵrepeaterCreate(6, GoalActionStateSelectorComponent_For_7_Template, 5, 4, "button", 5, _forTrack0$6);
|
|
104973
105112
|
i0.ɵɵelementEnd();
|
|
105113
|
+
i0.ɵɵelementStart(8, "div", 6);
|
|
105114
|
+
i0.ɵɵtext(9);
|
|
105115
|
+
i0.ɵɵelementEnd()();
|
|
104974
105116
|
} if (rf & 2) {
|
|
105117
|
+
i0.ɵɵproperty("ngClass", ctx.containerClasses());
|
|
105118
|
+
i0.ɵɵadvance(2);
|
|
105119
|
+
i0.ɵɵconditional(!ctx.state() ? 2 : -1);
|
|
104975
105120
|
i0.ɵɵadvance();
|
|
104976
105121
|
i0.ɵɵproperty("ngClass", ctx.labelClasses());
|
|
104977
|
-
i0.ɵɵadvance(
|
|
105122
|
+
i0.ɵɵadvance();
|
|
105123
|
+
i0.ɵɵtextInterpolate1(" ", !ctx.state() ? "Choose an action for this goal" : "What would you like to do with this goal?", " ");
|
|
105124
|
+
i0.ɵɵadvance(2);
|
|
104978
105125
|
i0.ɵɵrepeater(ctx.options);
|
|
104979
105126
|
i0.ɵɵadvance(2);
|
|
104980
|
-
i0.ɵɵ
|
|
104981
|
-
|
|
105127
|
+
i0.ɵɵproperty("ngClass", ctx.hintClasses());
|
|
105128
|
+
i0.ɵɵadvance();
|
|
105129
|
+
i0.ɵɵtextInterpolate1(" ", ctx.getHintText(), " ");
|
|
105130
|
+
} }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_attention-pulse{0%,to{box-shadow:0 0 #3b82f680}50%{box-shadow:0 0 0 6px #3b82f600}}.animate-attention-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_attention-pulse 2s ease-in-out infinite}"], changeDetection: 0 }); }
|
|
104982
105131
|
}
|
|
104983
105132
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoalActionStateSelectorComponent, [{
|
|
104984
105133
|
type: Component,
|
|
104985
|
-
args: [{
|
|
104986
|
-
|
|
104987
|
-
|
|
104988
|
-
|
|
104989
|
-
|
|
104990
|
-
|
|
104991
|
-
|
|
104992
|
-
|
|
104993
|
-
|
|
105134
|
+
args: [{ selector: 'symphiq-goal-action-state-selector', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
105135
|
+
<div [ngClass]="containerClasses()" class="flex flex-col gap-3 p-4 rounded-xl transition-all duration-300">
|
|
105136
|
+
<div class="flex items-center gap-2">
|
|
105137
|
+
@if (!state()) {
|
|
105138
|
+
<svg [ngClass]="promptIconClasses()" class="w-5 h-5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
105139
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
|
|
105140
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"/>
|
|
105141
|
+
</svg>
|
|
105142
|
+
}
|
|
105143
|
+
<div [ngClass]="labelClasses()" class="text-xs font-semibold uppercase tracking-wider">
|
|
105144
|
+
{{ !state() ? 'Choose an action for this goal' : 'What would you like to do with this goal?' }}
|
|
105145
|
+
</div>
|
|
104994
105146
|
</div>
|
|
104995
|
-
<div class="flex flex-wrap gap-3">
|
|
105147
|
+
<div class="flex flex-col sm:flex-row sm:flex-wrap gap-2 sm:gap-3">
|
|
104996
105148
|
@for (option of options; track option.value) {
|
|
104997
105149
|
<button
|
|
104998
105150
|
type="button"
|
|
104999
105151
|
(click)="selectState(option.value)"
|
|
105000
105152
|
[ngClass]="getButtonClasses(option.value)"
|
|
105001
|
-
class="flex items-center gap-2 px-4 py-2.5 rounded-xl font-medium text-sm transition-all duration-200 border cursor-pointer">
|
|
105153
|
+
class="flex items-center justify-center sm:justify-start gap-2 px-4 py-2.5 rounded-xl font-medium text-sm transition-all duration-200 border cursor-pointer w-full sm:w-auto">
|
|
105002
105154
|
<span [ngClass]="getDotClasses(option.value)" class="w-3 h-3 rounded-full flex-shrink-0"></span>
|
|
105003
105155
|
<span>{{ option.label }}</span>
|
|
105004
105156
|
@if (state() === option.value) {
|
|
@@ -105009,16 +105161,13 @@ class GoalActionStateSelectorComponent {
|
|
|
105009
105161
|
</button>
|
|
105010
105162
|
}
|
|
105011
105163
|
</div>
|
|
105012
|
-
|
|
105013
|
-
|
|
105014
|
-
|
|
105015
|
-
</div>
|
|
105016
|
-
}
|
|
105164
|
+
<div [ngClass]="hintClasses()" class="text-xs">
|
|
105165
|
+
{{ getHintText() }}
|
|
105166
|
+
</div>
|
|
105017
105167
|
</div>
|
|
105018
|
-
|
|
105019
|
-
}]
|
|
105168
|
+
`, styles: ["@keyframes attention-pulse{0%,to{box-shadow:0 0 #3b82f680}50%{box-shadow:0 0 0 6px #3b82f600}}.animate-attention-pulse{animation:attention-pulse 2s ease-in-out infinite}\n"] }]
|
|
105020
105169
|
}], null, { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], goalId: [{ type: i0.Input, args: [{ isSignal: true, alias: "goalId", required: false }] }], stateChange: [{ type: i0.Output, args: ["stateChange"] }] }); })();
|
|
105021
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GoalActionStateSelectorComponent, { className: "GoalActionStateSelectorComponent", filePath: "lib/components/shared/goal-action-state-selector.component.ts", lineNumber:
|
|
105170
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GoalActionStateSelectorComponent, { className: "GoalActionStateSelectorComponent", filePath: "lib/components/shared/goal-action-state-selector.component.ts", lineNumber: 60 }); })();
|
|
105022
105171
|
|
|
105023
105172
|
const _c0$8 = ["modalContent"];
|
|
105024
105173
|
const _c1$3 = ["modalWrapper"];
|
|
@@ -105313,6 +105462,7 @@ class UnifiedDashboardModalComponent {
|
|
|
105313
105462
|
this.modalReady = signal(false, ...(ngDevMode ? [{ debugName: "modalReady" }] : []));
|
|
105314
105463
|
this.isFreshOpen = signal(true, ...(ngDevMode ? [{ debugName: "isFreshOpen" }] : []));
|
|
105315
105464
|
this.modalMovedToBody = false;
|
|
105465
|
+
this.initialGoalActionState = signal(null, ...(ngDevMode ? [{ debugName: "initialGoalActionState" }] : []));
|
|
105316
105466
|
this.modalTitle = signal('', ...(ngDevMode ? [{ debugName: "modalTitle" }] : []));
|
|
105317
105467
|
this.modalType = signal(null, ...(ngDevMode ? [{ debugName: "modalType" }] : []));
|
|
105318
105468
|
this.modalData = signal(null, ...(ngDevMode ? [{ debugName: "modalData" }] : []));
|
|
@@ -105548,6 +105698,9 @@ class UnifiedDashboardModalComponent {
|
|
|
105548
105698
|
this.modalTitle.set(data.goal.title || 'Unified Goal');
|
|
105549
105699
|
this.isFreshOpen.set(!wasAlreadyOpen);
|
|
105550
105700
|
this.isOpen.set(true);
|
|
105701
|
+
if (!wasAlreadyOpen && data.goal?.id) {
|
|
105702
|
+
this.initialGoalActionState.set(this.goalActionStateService.getState(data.goal.id));
|
|
105703
|
+
}
|
|
105551
105704
|
this.scrollContentToTop();
|
|
105552
105705
|
}
|
|
105553
105706
|
else if (state.type === 'unified-goal-objectives' && state.data) {
|
|
@@ -105630,7 +105783,7 @@ class UnifiedDashboardModalComponent {
|
|
|
105630
105783
|
const data = this.unifiedGoalData();
|
|
105631
105784
|
if (!data)
|
|
105632
105785
|
return;
|
|
105633
|
-
this.modalService.navigateToUnifiedGoalObjectives(data.goal, data.allMetrics, data.allCharts, this.viewMode());
|
|
105786
|
+
this.modalService.navigateToUnifiedGoalObjectives(data.goal, data.allMetrics, data.allCharts, this.viewMode(), data.allInsights, data.allBusinessInsights);
|
|
105634
105787
|
}
|
|
105635
105788
|
onRelatedMetricClick(metric) {
|
|
105636
105789
|
const data = this.relatedMetricsData();
|
|
@@ -105750,7 +105903,11 @@ class UnifiedDashboardModalComponent {
|
|
|
105750
105903
|
}
|
|
105751
105904
|
onActionStateChange(event) {
|
|
105752
105905
|
if (event.goalId) {
|
|
105906
|
+
const wasInitiallyUndefined = this.initialGoalActionState() === undefined;
|
|
105753
105907
|
this.goalActionStateService.setState(event.goalId, event.state);
|
|
105908
|
+
if (wasInitiallyUndefined) {
|
|
105909
|
+
this.closeModal();
|
|
105910
|
+
}
|
|
105754
105911
|
}
|
|
105755
105912
|
}
|
|
105756
105913
|
closeModal() {
|
|
@@ -106603,7 +106760,7 @@ class UnifiedGoalsProgressFooterComponent {
|
|
|
106603
106760
|
this.integrateGoals.emit(this.goalActionStateService.getOutput(this.goalIds()));
|
|
106604
106761
|
}
|
|
106605
106762
|
static { this.ɵfac = function UnifiedGoalsProgressFooterComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedGoalsProgressFooterComponent)(); }; }
|
|
106606
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalsProgressFooterComponent, selectors: [["symphiq-unified-goals-progress-footer"]], inputs: { goalIds: [1, "goalIds"], viewMode: [1, "viewMode"] }, outputs: { integrateGoals: "integrateGoals" }, decls: 15, vars: 11, consts: [[1, "fixed", "bottom-0", "left-0", "right-0", "z-
|
|
106763
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalsProgressFooterComponent, selectors: [["symphiq-unified-goals-progress-footer"]], inputs: { goalIds: [1, "goalIds"], viewMode: [1, "viewMode"] }, outputs: { integrateGoals: "integrateGoals" }, decls: 15, vars: 11, consts: [[1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-xl", "transition-all", "duration-300", 3, "ngClass"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "flex-col", "sm:flex-row", "items-center", "justify-between", "gap-4"], [1, "flex-1", "w-full", "sm:w-auto"], [1, "flex", "items-center", "justify-between", "mb-2"], [1, "text-sm", "font-medium", 3, "ngClass"], [1, "text-sm", "font-semibold", 3, "ngClass"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "rounded-full", "transition-all", "duration-500", "ease-out", 3, "ngClass"], [1, "flex", "items-center", "gap-4", "mt-2"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-6", "py-3", "rounded-xl", "font-semibold", "text-sm", "transition-all", "duration-200", "shadow-lg", "hover:shadow-xl", "hover:scale-105", "active:scale-95", "cursor-pointer", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "flex", "items-center", "gap-1.5"], [1, "w-2", "h-2", "rounded-full", "bg-emerald-500"], [1, "text-xs", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-amber-500"], [1, "w-2", "h-2", "rounded-full", "bg-slate-400"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-6", "py-3", "rounded-xl", "font-semibold", "text-sm", "transition-all", "duration-200", "shadow-lg", "hover:shadow-xl", "hover:scale-105", "active:scale-95", "cursor-pointer", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"]], template: function UnifiedGoalsProgressFooterComponent_Template(rf, ctx) { if (rf & 1) {
|
|
106607
106764
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "span", 5);
|
|
106608
106765
|
i0.ɵɵtext(6, " Goals Reviewed ");
|
|
106609
106766
|
i0.ɵɵelementEnd();
|
|
@@ -106645,7 +106802,7 @@ class UnifiedGoalsProgressFooterComponent {
|
|
|
106645
106802
|
imports: [CommonModule],
|
|
106646
106803
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
106647
106804
|
template: `
|
|
106648
|
-
<div [ngClass]="containerClasses()" class="fixed bottom-0 left-0 right-0 z-
|
|
106805
|
+
<div [ngClass]="containerClasses()" class="fixed bottom-0 left-0 right-0 z-50 border-t backdrop-blur-xl transition-all duration-300">
|
|
106649
106806
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
|
|
106650
106807
|
<div class="flex flex-col sm:flex-row items-center justify-between gap-4">
|
|
106651
106808
|
<div class="flex-1 w-full sm:w-auto">
|
|
@@ -107323,7 +107480,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
|
|
|
107323
107480
|
const goal = this.unifiedGoals().find(g => g.id === goalId);
|
|
107324
107481
|
if (goal) {
|
|
107325
107482
|
const currentState = this.modalService.getCurrentState();
|
|
107326
|
-
this.modalService.openUnifiedGoalModal(goal, this.allMetrics(), this.allCharts(), this.loadedSourceAnalysisIds().map(String), this.viewMode(), this.loadingSourceAnalysisId() !== undefined ? String(this.loadingSourceAnalysisId()) : undefined, currentState, this.allInsights());
|
|
107483
|
+
this.modalService.openUnifiedGoalModal(goal, this.allMetrics(), this.allCharts(), this.loadedSourceAnalysisIds().map(String), this.viewMode(), this.loadingSourceAnalysisId() !== undefined ? String(this.loadingSourceAnalysisId()) : undefined, currentState, this.allInsights(), this.allBusinessInsights());
|
|
107327
107484
|
}
|
|
107328
107485
|
}
|
|
107329
107486
|
onPriorityActionRecommendationClick(recommendationId) {
|
|
@@ -115627,5 +115784,5 @@ var pieChart_component = /*#__PURE__*/Object.freeze({
|
|
|
115627
115784
|
* Generated bundle index. Do not edit.
|
|
115628
115785
|
*/
|
|
115629
115786
|
|
|
115630
|
-
export { AreaChartComponent, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfettiService, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, ContentGenerationProgressWithConfettiComponent, CrossDashboardRelationshipsService, DashboardHeaderComponent, DataLoaderService, DisplayModeEnum, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaStatusCardComponent, FocusAreaToolsModalComponent, FunnelOrderService, GoalActionStateEnum, GoalActionStateService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, IndeterminateSpinnerComponent, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricReportModalComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PacingStatusBadgeComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, RevenueCalculatorService, RevenueCalculatorWelcomeBannerComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopProfileCategoryListComponent, ShopProfileQuestionAnswerComponent, ShopProfileQuestionCardComponent, ShopProfileQuestionsModalComponent, ShopProfileStatusCardComponent, ShopProfileStickyFooterComponent, ShopProfileViewToggleComponent, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, StickySubscriptionContinueButtonComponent, SubscriptionValuePropositionCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisFocusAreaDashboardComponent, SymphiqProfileAnalysisMetricDashboardComponent, SymphiqProfileAnalysisUnifiedDashboardComponent, SymphiqProfileFocusAreaDashboardComponent, SymphiqProfileFocusAreasAnalysesDashboardComponent, SymphiqProfileMetricDashboardComponent, SymphiqProfileMetricsAnalysesDashboardComponent, SymphiqProfileShopAnalysisDashboardComponent, SymphiqRevenueCalculatorDashboardComponent, SymphiqWelcomeDashboardComponent, TargetChangeBadgeComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, UserAvatarComponent, UserDisplayComponent, ViewModeService, ViewModeSwitcherModalComponent, ViewportAnimationDirective, VisualizationContainerComponent, calculateFunnelRatios, calculateMetricTargetsFromRevenue, calculateMetricTargetsFromRevenueReverse, calculateRelatedMetricRatios, generateTargetsFromCalculations, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getFunnelStageMetrics, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, groupMetricsByFunnelStage, isLightMode, validateRevenueTarget };
|
|
115787
|
+
export { AreaChartComponent, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfettiService, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, ContentGenerationProgressWithConfettiComponent, CrossDashboardRelationshipsService, DashboardHeaderComponent, DataLoaderService, DisplayModeEnum, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaStatusCardComponent, FocusAreaToolsModalComponent, FunnelOrderService, GoalActionStateEnum, GoalActionStateService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, IndeterminateSpinnerComponent, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricReportModalComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PacingStatusBadgeComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, RevenueCalculatorService, RevenueCalculatorWelcomeBannerComponent, ReviewButtonComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopProfileCategoryListComponent, ShopProfileQuestionAnswerComponent, ShopProfileQuestionCardComponent, ShopProfileQuestionsModalComponent, ShopProfileStatusCardComponent, ShopProfileStickyFooterComponent, ShopProfileViewToggleComponent, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, StickySubscriptionContinueButtonComponent, SubscriptionValuePropositionCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisFocusAreaDashboardComponent, SymphiqProfileAnalysisMetricDashboardComponent, SymphiqProfileAnalysisUnifiedDashboardComponent, SymphiqProfileFocusAreaDashboardComponent, SymphiqProfileFocusAreasAnalysesDashboardComponent, SymphiqProfileMetricDashboardComponent, SymphiqProfileMetricsAnalysesDashboardComponent, SymphiqProfileShopAnalysisDashboardComponent, SymphiqRevenueCalculatorDashboardComponent, SymphiqWelcomeDashboardComponent, TargetChangeBadgeComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, UserAvatarComponent, UserDisplayComponent, ViewModeService, ViewModeSwitcherModalComponent, ViewportAnimationDirective, VisualizationContainerComponent, calculateFunnelRatios, calculateMetricTargetsFromRevenue, calculateMetricTargetsFromRevenueReverse, calculateRelatedMetricRatios, generateTargetsFromCalculations, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getFunnelStageMetrics, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, groupMetricsByFunnelStage, isLightMode, validateRevenueTarget };
|
|
115631
115788
|
//# sourceMappingURL=symphiq-components.mjs.map
|