@eric-emg/symphiq-components 1.3.30 → 1.3.31

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.
@@ -85416,141 +85416,205 @@ class OpportunityDetailModalContentComponent {
85416
85416
  }], null, { opportunity: [{ type: i0.Input, args: [{ isSignal: true, alias: "opportunity", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], allGoals: [{ type: i0.Input, args: [{ isSignal: true, alias: "allGoals", required: false }] }], allStrengths: [{ type: i0.Input, args: [{ isSignal: true, alias: "allStrengths", required: false }] }], currentModalState: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentModalState", required: false }] }] }); })();
85417
85417
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OpportunityDetailModalContentComponent, { className: "OpportunityDetailModalContentComponent", filePath: "lib/components/profile-analysis-shop-dashboard/modals/opportunity-detail-modal-content.component.ts", lineNumber: 121 }); })();
85418
85418
 
85419
- function SimplifiedGoalCardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
85420
- i0.ɵɵelementStart(0, "p", 8);
85421
- i0.ɵɵtext(1);
85422
- i0.ɵɵelementEnd();
85419
+ const _forTrack0$m = ($index, $item) => $item.icon;
85420
+ function RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
85421
+ i0.ɵɵelement(0, "div", 1);
85423
85422
  } if (rf & 2) {
85424
- const ctx_r0 = i0.ɵɵnextContext();
85425
- i0.ɵɵproperty("ngClass", ctx_r0.descriptionClasses());
85426
- i0.ɵɵadvance();
85427
- i0.ɵɵtextInterpolate(ctx_r0.goal().description);
85423
+ const ctx_r0 = i0.ɵɵnextContext(4);
85424
+ i0.ɵɵproperty("ngClass", ctx_r0.dividerClasses());
85428
85425
  } }
85429
- function SimplifiedGoalCardComponent_Conditional_11_Conditional_1_Template(rf, ctx) { if (rf & 1) {
85430
- i0.ɵɵelementStart(0, "div", 17);
85426
+ function RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Case_2_Template(rf, ctx) { if (rf & 1) {
85431
85427
  i0.ɵɵnamespaceSVG();
85432
- i0.ɵɵelementStart(1, "svg", 18);
85433
- i0.ɵɵelement(2, "path", 4);
85428
+ i0.ɵɵelementStart(0, "svg", 3);
85429
+ i0.ɵɵelement(1, "path", 7);
85434
85430
  i0.ɵɵelementEnd();
85435
- i0.ɵɵnamespaceHTML();
85436
- i0.ɵɵelementStart(3, "div", 19)(4, "span", 20);
85437
- i0.ɵɵtext(5);
85431
+ } if (rf & 2) {
85432
+ const ctx_r0 = i0.ɵɵnextContext(4);
85433
+ i0.ɵɵproperty("ngClass", ctx_r0.iconClasses());
85434
+ } }
85435
+ function RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Case_3_Template(rf, ctx) { if (rf & 1) {
85436
+ i0.ɵɵnamespaceSVG();
85437
+ i0.ɵɵelementStart(0, "svg", 3);
85438
+ i0.ɵɵelement(1, "path", 8);
85438
85439
  i0.ɵɵelementEnd();
85439
- i0.ɵɵelementStart(6, "span", 21);
85440
- i0.ɵɵtext(7);
85441
- i0.ɵɵelementEnd()()();
85442
85440
  } if (rf & 2) {
85443
- const ctx_r0 = i0.ɵɵnextContext(2);
85444
- i0.ɵɵadvance();
85445
- i0.ɵɵproperty("ngClass", ctx_r0.metricIconClasses());
85446
- i0.ɵɵadvance(3);
85447
- i0.ɵɵproperty("ngClass", ctx_r0.metricValueClasses());
85448
- i0.ɵɵadvance();
85449
- i0.ɵɵtextInterpolate(ctx_r0.objectivesCount());
85450
- i0.ɵɵadvance();
85451
- i0.ɵɵproperty("ngClass", ctx_r0.metricLabelClasses());
85452
- i0.ɵɵadvance();
85453
- i0.ɵɵtextInterpolate(ctx_r0.objectivesCount() === 1 ? "Objective" : "Objectives");
85441
+ const ctx_r0 = i0.ɵɵnextContext(4);
85442
+ i0.ɵɵproperty("ngClass", ctx_r0.iconClasses());
85454
85443
  } }
85455
- function SimplifiedGoalCardComponent_Conditional_11_Conditional_2_Template(rf, ctx) { if (rf & 1) {
85456
- i0.ɵɵelement(0, "div", 22);
85457
- i0.ɵɵelementStart(1, "div", 17);
85444
+ function RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Case_4_Template(rf, ctx) { if (rf & 1) {
85458
85445
  i0.ɵɵnamespaceSVG();
85459
- i0.ɵɵelementStart(2, "svg", 18);
85460
- i0.ɵɵelement(3, "path", 23);
85446
+ i0.ɵɵelementStart(0, "svg", 3);
85447
+ i0.ɵɵelement(1, "path", 9);
85461
85448
  i0.ɵɵelementEnd();
85462
- i0.ɵɵnamespaceHTML();
85463
- i0.ɵɵelementStart(4, "div", 19)(5, "span", 20);
85464
- i0.ɵɵtext(6);
85449
+ } if (rf & 2) {
85450
+ const ctx_r0 = i0.ɵɵnextContext(4);
85451
+ i0.ɵɵproperty("ngClass", ctx_r0.iconClasses());
85452
+ } }
85453
+ function RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
85454
+ i0.ɵɵconditionalCreate(0, RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Conditional_0_Template, 1, 1, "div", 1);
85455
+ i0.ɵɵelementStart(1, "div", 2);
85456
+ i0.ɵɵconditionalCreate(2, RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Case_2_Template, 2, 1, ":svg:svg", 3)(3, RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Case_3_Template, 2, 1, ":svg:svg", 3)(4, RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Case_4_Template, 2, 1, ":svg:svg", 3);
85457
+ i0.ɵɵelementStart(5, "div", 4)(6, "span", 5);
85458
+ i0.ɵɵtext(7);
85465
85459
  i0.ɵɵelementEnd();
85466
- i0.ɵɵelementStart(7, "span", 21);
85467
- i0.ɵɵtext(8);
85460
+ i0.ɵɵelementStart(8, "span", 6);
85461
+ i0.ɵɵtext(9);
85468
85462
  i0.ɵɵelementEnd()()();
85469
85463
  } if (rf & 2) {
85464
+ let tmp_14_0;
85465
+ const ctx_r1 = i0.ɵɵnextContext();
85466
+ const metric_r3 = ctx_r1.$implicit;
85467
+ const ɵ$index_4_r4 = ctx_r1.$index;
85470
85468
  const ctx_r0 = i0.ɵɵnextContext(2);
85471
- i0.ɵɵproperty("ngClass", ctx_r0.metricDividerClasses());
85469
+ i0.ɵɵconditional(ctx_r0.hasPreviousVisible(ɵ$index_4_r4) ? 0 : -1);
85472
85470
  i0.ɵɵadvance(2);
85473
- i0.ɵɵproperty("ngClass", ctx_r0.metricIconClasses());
85474
- i0.ɵɵadvance(3);
85475
- i0.ɵɵproperty("ngClass", ctx_r0.metricValueClasses());
85471
+ i0.ɵɵconditional((tmp_14_0 = metric_r3.icon) === "objectives" ? 2 : tmp_14_0 === "strategies" ? 3 : tmp_14_0 === "recommendations" ? 4 : -1);
85472
+ i0.ɵɵadvance(4);
85473
+ i0.ɵɵproperty("ngClass", ctx_r0.valueClasses());
85476
85474
  i0.ɵɵadvance();
85477
- i0.ɵɵtextInterpolate(ctx_r0.strategiesCount());
85475
+ i0.ɵɵtextInterpolate(metric_r3.count);
85478
85476
  i0.ɵɵadvance();
85479
- i0.ɵɵproperty("ngClass", ctx_r0.metricLabelClasses());
85477
+ i0.ɵɵproperty("ngClass", ctx_r0.labelClasses());
85480
85478
  i0.ɵɵadvance();
85481
- i0.ɵɵtextInterpolate(ctx_r0.strategiesCount() === 1 ? "Strategy" : "Strategies");
85479
+ i0.ɵɵtextInterpolate(metric_r3.label || ctx_r0.getDefaultLabel(metric_r3.icon, metric_r3.count));
85482
85480
  } }
85483
- function SimplifiedGoalCardComponent_Conditional_11_Conditional_3_Template(rf, ctx) { if (rf & 1) {
85484
- i0.ɵɵelement(0, "div", 22);
85485
- i0.ɵɵelementStart(1, "div", 17);
85486
- i0.ɵɵnamespaceSVG();
85487
- i0.ɵɵelementStart(2, "svg", 18);
85488
- i0.ɵɵelement(3, "path", 24);
85489
- i0.ɵɵelementEnd();
85490
- i0.ɵɵnamespaceHTML();
85491
- i0.ɵɵelementStart(4, "div", 19)(5, "span", 20);
85492
- i0.ɵɵtext(6);
85481
+ function RoadmapMetricsComponent_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
85482
+ i0.ɵɵconditionalCreate(0, RoadmapMetricsComponent_Conditional_0_For_2_Conditional_0_Template, 10, 6);
85483
+ } if (rf & 2) {
85484
+ const metric_r3 = ctx.$implicit;
85485
+ i0.ɵɵconditional(metric_r3.count > 0 ? 0 : -1);
85486
+ } }
85487
+ function RoadmapMetricsComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
85488
+ i0.ɵɵelementStart(0, "div", 0);
85489
+ i0.ɵɵrepeaterCreate(1, RoadmapMetricsComponent_Conditional_0_For_2_Template, 1, 1, null, null, _forTrack0$m);
85493
85490
  i0.ɵɵelementEnd();
85494
- i0.ɵɵelementStart(7, "span", 21);
85495
- i0.ɵɵtext(8, "Rec");
85496
- i0.ɵɵelementEnd()()();
85497
85491
  } if (rf & 2) {
85498
- const ctx_r0 = i0.ɵɵnextContext(2);
85499
- i0.ɵɵproperty("ngClass", ctx_r0.metricDividerClasses());
85500
- i0.ɵɵadvance(2);
85501
- i0.ɵɵproperty("ngClass", ctx_r0.metricIconClasses());
85502
- i0.ɵɵadvance(3);
85503
- i0.ɵɵproperty("ngClass", ctx_r0.metricValueClasses());
85492
+ const ctx_r0 = i0.ɵɵnextContext();
85493
+ i0.ɵɵproperty("ngClass", ctx_r0.containerClasses());
85504
85494
  i0.ɵɵadvance();
85505
- i0.ɵɵtextInterpolate(ctx_r0.recommendationsCount());
85495
+ i0.ɵɵrepeater(ctx_r0.metrics());
85496
+ } }
85497
+ class RoadmapMetricsComponent {
85498
+ constructor() {
85499
+ this.metrics = input([], ...(ngDevMode ? [{ debugName: "metrics" }] : []));
85500
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
85501
+ this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
85502
+ this.hasMetrics = computed(() => this.metrics().some(m => m.count > 0), ...(ngDevMode ? [{ debugName: "hasMetrics" }] : []));
85503
+ this.containerClasses = computed(() => {
85504
+ if (this.isDark()) {
85505
+ return 'bg-gradient-to-r from-blue-500/10 via-purple-500/10 to-blue-500/10 border border-blue-500/20';
85506
+ }
85507
+ return 'bg-gradient-to-r from-blue-50 via-purple-50 to-blue-50 border border-blue-200';
85508
+ }, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
85509
+ this.iconClasses = computed(() => this.isDark() ? 'text-blue-400' : 'text-blue-600', ...(ngDevMode ? [{ debugName: "iconClasses" }] : []));
85510
+ this.valueClasses = computed(() => this.isDark() ? 'text-blue-400' : 'text-blue-700', ...(ngDevMode ? [{ debugName: "valueClasses" }] : []));
85511
+ this.labelClasses = computed(() => this.isDark() ? 'text-slate-400' : 'text-slate-600', ...(ngDevMode ? [{ debugName: "labelClasses" }] : []));
85512
+ this.dividerClasses = computed(() => this.isDark() ? 'bg-slate-600' : 'bg-slate-300', ...(ngDevMode ? [{ debugName: "dividerClasses" }] : []));
85513
+ }
85514
+ hasPreviousVisible(idx) {
85515
+ return this.metrics().slice(0, idx).some(m => m.count > 0);
85516
+ }
85517
+ getDefaultLabel(icon, count) {
85518
+ switch (icon) {
85519
+ case 'objectives': return count === 1 ? 'Objective' : 'Objectives';
85520
+ case 'strategies': return count === 1 ? 'Strategy' : 'Strategies';
85521
+ case 'recommendations': return 'Rec';
85522
+ default: return '';
85523
+ }
85524
+ }
85525
+ static { this.ɵfac = function RoadmapMetricsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RoadmapMetricsComponent)(); }; }
85526
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RoadmapMetricsComponent, selectors: [["symphiq-roadmap-metrics"]], inputs: { metrics: [1, "metrics"], viewMode: [1, "viewMode"] }, decls: 1, vars: 1, consts: [[1, "flex", "items-center", "justify-around", "gap-2", "px-3", "py-2.5", "rounded-lg", 3, "ngClass"], [1, "w-px", "h-6", 3, "ngClass"], [1, "flex", "items-center", "gap-1.5"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5", "flex-shrink-0", 3, "ngClass"], [1, "flex", "items-baseline", "gap-1"], [1, "text-sm", "font-bold", 3, "ngClass"], [1, "text-xs", 3, "ngClass"], ["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"], ["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"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"]], template: function RoadmapMetricsComponent_Template(rf, ctx) { if (rf & 1) {
85527
+ i0.ɵɵconditionalCreate(0, RoadmapMetricsComponent_Conditional_0_Template, 3, 1, "div", 0);
85528
+ } if (rf & 2) {
85529
+ i0.ɵɵconditional(ctx.hasMetrics() ? 0 : -1);
85530
+ } }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
85531
+ }
85532
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RoadmapMetricsComponent, [{
85533
+ type: Component,
85534
+ args: [{
85535
+ selector: 'symphiq-roadmap-metrics',
85536
+ standalone: true,
85537
+ imports: [CommonModule],
85538
+ changeDetection: ChangeDetectionStrategy.OnPush,
85539
+ template: `
85540
+ @if (hasMetrics()) {
85541
+ <div [ngClass]="containerClasses()" class="flex items-center justify-around gap-2 px-3 py-2.5 rounded-lg">
85542
+ @for (metric of metrics(); track metric.icon; let idx = $index) {
85543
+ @if (metric.count > 0) {
85544
+ @if (hasPreviousVisible(idx)) {
85545
+ <div [ngClass]="dividerClasses()" class="w-px h-6"></div>
85546
+ }
85547
+ <div class="flex items-center gap-1.5">
85548
+ @switch (metric.icon) {
85549
+ @case ('objectives') {
85550
+ <svg class="w-3.5 h-3.5 flex-shrink-0" [ngClass]="iconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
85551
+ <path 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"></path>
85552
+ </svg>
85553
+ }
85554
+ @case ('strategies') {
85555
+ <svg class="w-3.5 h-3.5 flex-shrink-0" [ngClass]="iconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
85556
+ <path 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"></path>
85557
+ </svg>
85558
+ }
85559
+ @case ('recommendations') {
85560
+ <svg class="w-3.5 h-3.5 flex-shrink-0" [ngClass]="iconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
85561
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path>
85562
+ </svg>
85563
+ }
85564
+ }
85565
+ <div class="flex items-baseline gap-1">
85566
+ <span [ngClass]="valueClasses()" class="text-sm font-bold">{{ metric.count }}</span>
85567
+ <span [ngClass]="labelClasses()" class="text-xs">{{ metric.label || getDefaultLabel(metric.icon, metric.count) }}</span>
85568
+ </div>
85569
+ </div>
85570
+ }
85571
+ }
85572
+ </div>
85573
+ }
85574
+ `
85575
+ }]
85576
+ }], null, { metrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "metrics", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }] }); })();
85577
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RoadmapMetricsComponent, { className: "RoadmapMetricsComponent", filePath: "lib/components/shared/roadmap-metrics.component.ts", lineNumber: 53 }); })();
85578
+
85579
+ function SimplifiedGoalCardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
85580
+ i0.ɵɵelementStart(0, "p", 8);
85581
+ i0.ɵɵtext(1);
85582
+ i0.ɵɵelementEnd();
85583
+ } if (rf & 2) {
85584
+ const ctx_r0 = i0.ɵɵnextContext();
85585
+ i0.ɵɵproperty("ngClass", ctx_r0.descriptionClasses())("libSymphiqTooltip", ctx_r0.goal().description);
85506
85586
  i0.ɵɵadvance();
85507
- i0.ɵɵproperty("ngClass", ctx_r0.metricLabelClasses());
85587
+ i0.ɵɵtextInterpolate(ctx_r0.goal().description);
85508
85588
  } }
85509
85589
  function SimplifiedGoalCardComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
85510
85590
  i0.ɵɵelementStart(0, "div", 9);
85511
- i0.ɵɵconditionalCreate(1, SimplifiedGoalCardComponent_Conditional_11_Conditional_1_Template, 8, 5, "div", 17);
85512
- i0.ɵɵconditionalCreate(2, SimplifiedGoalCardComponent_Conditional_11_Conditional_2_Template, 9, 6);
85513
- i0.ɵɵconditionalCreate(3, SimplifiedGoalCardComponent_Conditional_11_Conditional_3_Template, 9, 5);
85591
+ i0.ɵɵelement(1, "symphiq-roadmap-metrics", 17);
85514
85592
  i0.ɵɵelementEnd();
85515
85593
  } if (rf & 2) {
85516
85594
  const ctx_r0 = i0.ɵɵnextContext();
85517
- i0.ɵɵproperty("ngClass", ctx_r0.roadmapMetricsClasses());
85518
- i0.ɵɵadvance();
85519
- i0.ɵɵconditional(ctx_r0.objectivesCount() > 0 ? 1 : -1);
85520
- i0.ɵɵadvance();
85521
- i0.ɵɵconditional(ctx_r0.strategiesCount() > 0 ? 2 : -1);
85522
85595
  i0.ɵɵadvance();
85523
- i0.ɵɵconditional(ctx_r0.recommendationsCount() > 0 ? 3 : -1);
85596
+ i0.ɵɵproperty("metrics", ctx_r0.roadmapMetrics())("viewMode", ctx_r0.viewMode());
85524
85597
  } }
85525
85598
  function SimplifiedGoalCardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
85526
- i0.ɵɵelementStart(0, "span", 12);
85527
- i0.ɵɵtext(1);
85528
- i0.ɵɵelementEnd();
85599
+ i0.ɵɵelement(0, "symphiq-priority-badge", 11);
85529
85600
  } if (rf & 2) {
85530
85601
  const ctx_r0 = i0.ɵɵnextContext();
85531
- i0.ɵɵclassProp("animate-pulse", ctx_r0.isHighPriority());
85532
- i0.ɵɵproperty("ngClass", ctx_r0.priorityBadgeClasses());
85533
- i0.ɵɵadvance();
85534
- i0.ɵɵtextInterpolate1(" ", ctx_r0.priorityLabel(), " ");
85602
+ i0.ɵɵproperty("priority", ctx_r0.goal().priority)("viewMode", ctx_r0.viewMode());
85535
85603
  } }
85536
85604
  function SimplifiedGoalCardComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
85537
- i0.ɵɵelementStart(0, "span", 12);
85538
- i0.ɵɵtext(1);
85539
- i0.ɵɵelementEnd();
85605
+ i0.ɵɵelement(0, "symphiq-timeframe-badge", 12);
85540
85606
  } if (rf & 2) {
85541
85607
  const ctx_r0 = i0.ɵɵnextContext();
85542
- i0.ɵɵproperty("ngClass", ctx_r0.timeframeBadgeClasses());
85543
- i0.ɵɵadvance();
85544
- i0.ɵɵtextInterpolate1(" ", ctx_r0.goal().timeframe, " ");
85608
+ i0.ɵɵproperty("timeframe", ctx_r0.goal().timeframe)("viewMode", ctx_r0.viewMode())("showIcon", false);
85545
85609
  } }
85546
85610
  function SimplifiedGoalCardComponent_Conditional_15_Conditional_4_Template(rf, ctx) { if (rf & 1) {
85547
- i0.ɵɵelementStart(0, "div", 27);
85611
+ i0.ɵɵelementStart(0, "div", 20);
85548
85612
  i0.ɵɵnamespaceSVG();
85549
- i0.ɵɵelementStart(1, "svg", 28);
85550
- i0.ɵɵelement(2, "path", 29);
85613
+ i0.ɵɵelementStart(1, "svg", 21);
85614
+ i0.ɵɵelement(2, "path", 22);
85551
85615
  i0.ɵɵelementEnd();
85552
85616
  i0.ɵɵnamespaceHTML();
85553
- i0.ɵɵelementStart(3, "p", 21);
85617
+ i0.ɵɵelementStart(3, "p", 23);
85554
85618
  i0.ɵɵtext(4);
85555
85619
  i0.ɵɵelementEnd()();
85556
85620
  } if (rf & 2) {
@@ -85564,13 +85628,13 @@ function SimplifiedGoalCardComponent_Conditional_15_Conditional_4_Template(rf, c
85564
85628
  i0.ɵɵtextInterpolate((tmp_4_0 = ctx_r0.goal().expectedImpact) == null ? null : tmp_4_0.revenueImpact);
85565
85629
  } }
85566
85630
  function SimplifiedGoalCardComponent_Conditional_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
85567
- i0.ɵɵelementStart(0, "div", 27);
85631
+ i0.ɵɵelementStart(0, "div", 20);
85568
85632
  i0.ɵɵnamespaceSVG();
85569
- i0.ɵɵelementStart(1, "svg", 28);
85570
- i0.ɵɵelement(2, "path", 30);
85633
+ i0.ɵɵelementStart(1, "svg", 21);
85634
+ i0.ɵɵelement(2, "path", 24);
85571
85635
  i0.ɵɵelementEnd();
85572
85636
  i0.ɵɵnamespaceHTML();
85573
- i0.ɵɵelementStart(3, "p", 21);
85637
+ i0.ɵɵelementStart(3, "p", 23);
85574
85638
  i0.ɵɵtext(4);
85575
85639
  i0.ɵɵelementEnd()();
85576
85640
  } if (rf & 2) {
@@ -85584,12 +85648,12 @@ function SimplifiedGoalCardComponent_Conditional_15_Conditional_5_Template(rf, c
85584
85648
  i0.ɵɵtextInterpolate((tmp_4_0 = ctx_r0.goal().expectedImpact) == null ? null : tmp_4_0.conversionImpact);
85585
85649
  } }
85586
85650
  function SimplifiedGoalCardComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
85587
- i0.ɵɵelementStart(0, "div", 13)(1, "h5", 25);
85651
+ i0.ɵɵelementStart(0, "div", 13)(1, "h5", 18);
85588
85652
  i0.ɵɵtext(2, "Expected Impact");
85589
85653
  i0.ɵɵelementEnd();
85590
- i0.ɵɵelementStart(3, "div", 26);
85591
- i0.ɵɵconditionalCreate(4, SimplifiedGoalCardComponent_Conditional_15_Conditional_4_Template, 5, 3, "div", 27);
85592
- i0.ɵɵconditionalCreate(5, SimplifiedGoalCardComponent_Conditional_15_Conditional_5_Template, 5, 3, "div", 27);
85654
+ i0.ɵɵelementStart(3, "div", 19);
85655
+ i0.ɵɵconditionalCreate(4, SimplifiedGoalCardComponent_Conditional_15_Conditional_4_Template, 5, 3, "div", 20);
85656
+ i0.ɵɵconditionalCreate(5, SimplifiedGoalCardComponent_Conditional_15_Conditional_5_Template, 5, 3, "div", 20);
85593
85657
  i0.ɵɵelementEnd()();
85594
85658
  } if (rf & 2) {
85595
85659
  let tmp_3_0;
@@ -85610,15 +85674,40 @@ class SimplifiedGoalCardComponent {
85610
85674
  this.animationIndex = input(0, ...(ngDevMode ? [{ debugName: "animationIndex" }] : []));
85611
85675
  this.viewMoreClick = output();
85612
85676
  this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
85613
- this.priorityLabel = computed(() => {
85614
- switch (this.goal()?.priority) {
85615
- case ProfileAnalysisPriorityEnum.CRITICAL: return 'Critical';
85616
- case ProfileAnalysisPriorityEnum.HIGH: return 'Urgent';
85617
- case ProfileAnalysisPriorityEnum.MEDIUM: return 'Important';
85618
- case ProfileAnalysisPriorityEnum.LOW: return 'Consider';
85619
- default: return 'Priority';
85677
+ this.objectivesCount = computed(() => {
85678
+ return this.goal()?.objectives?.length || 0;
85679
+ }, ...(ngDevMode ? [{ debugName: "objectivesCount" }] : []));
85680
+ this.strategiesCount = computed(() => {
85681
+ if (!this.goal()?.objectives)
85682
+ return 0;
85683
+ return this.goal().objectives.reduce((total, objective) => {
85684
+ return total + (objective.strategies?.length || 0);
85685
+ }, 0);
85686
+ }, ...(ngDevMode ? [{ debugName: "strategiesCount" }] : []));
85687
+ this.recommendationsCount = computed(() => {
85688
+ if (!this.goal()?.objectives)
85689
+ return 0;
85690
+ return this.goal().objectives.reduce((total, objective) => {
85691
+ const objStrategies = objective.strategies || [];
85692
+ const recCount = objStrategies.reduce((stratTotal, strategy) => {
85693
+ return stratTotal + (strategy.recommendations?.length || 0);
85694
+ }, 0);
85695
+ return total + recCount;
85696
+ }, 0);
85697
+ }, ...(ngDevMode ? [{ debugName: "recommendationsCount" }] : []));
85698
+ this.roadmapMetrics = computed(() => {
85699
+ const metrics = [];
85700
+ if (this.objectivesCount() > 0) {
85701
+ metrics.push({ icon: 'objectives', count: this.objectivesCount() });
85620
85702
  }
85621
- }, ...(ngDevMode ? [{ debugName: "priorityLabel" }] : []));
85703
+ if (this.strategiesCount() > 0) {
85704
+ metrics.push({ icon: 'strategies', count: this.strategiesCount() });
85705
+ }
85706
+ if (this.recommendationsCount() > 0) {
85707
+ metrics.push({ icon: 'recommendations', count: this.recommendationsCount() });
85708
+ }
85709
+ return metrics;
85710
+ }, ...(ngDevMode ? [{ debugName: "roadmapMetrics" }] : []));
85622
85711
  this.cardClasses = computed(() => {
85623
85712
  const base = 'shadow-md hover:shadow-xl';
85624
85713
  if (this.isDark()) {
@@ -85641,37 +85730,6 @@ class SimplifiedGoalCardComponent {
85641
85730
  this.descriptionClasses = computed(() => {
85642
85731
  return this.isDark() ? 'text-slate-300' : 'text-slate-600';
85643
85732
  }, ...(ngDevMode ? [{ debugName: "descriptionClasses" }] : []));
85644
- this.priorityBadgeClasses = computed(() => {
85645
- const priority = this.goal()?.priority;
85646
- if (this.isDark()) {
85647
- if (priority === ProfileAnalysisPriorityEnum.CRITICAL) {
85648
- return 'bg-red-500/30 text-red-300 border border-red-500/50';
85649
- }
85650
- if (priority === ProfileAnalysisPriorityEnum.HIGH) {
85651
- return 'bg-orange-500/20 text-orange-400 border border-orange-500/30';
85652
- }
85653
- if (priority === ProfileAnalysisPriorityEnum.MEDIUM) {
85654
- return 'bg-amber-500/20 text-amber-400 border border-amber-500/30';
85655
- }
85656
- return 'bg-blue-500/20 text-blue-400 border border-blue-500/30';
85657
- }
85658
- if (priority === ProfileAnalysisPriorityEnum.CRITICAL) {
85659
- return 'bg-red-100 text-red-800 border border-red-300';
85660
- }
85661
- if (priority === ProfileAnalysisPriorityEnum.HIGH) {
85662
- return 'bg-orange-100 text-orange-800 border border-orange-300';
85663
- }
85664
- if (priority === ProfileAnalysisPriorityEnum.MEDIUM) {
85665
- return 'bg-amber-100 text-amber-800 border border-amber-300';
85666
- }
85667
- return 'bg-blue-100 text-blue-800 border border-blue-300';
85668
- }, ...(ngDevMode ? [{ debugName: "priorityBadgeClasses" }] : []));
85669
- this.timeframeBadgeClasses = computed(() => {
85670
- if (this.isDark()) {
85671
- return 'bg-purple-500/20 text-purple-400 border border-purple-500/30';
85672
- }
85673
- return 'bg-purple-100 text-purple-700 border border-purple-200';
85674
- }, ...(ngDevMode ? [{ debugName: "timeframeBadgeClasses" }] : []));
85675
85733
  this.impactSectionClasses = computed(() => {
85676
85734
  if (this.isDark()) {
85677
85735
  return 'bg-slate-700/30 border border-slate-600/30';
@@ -85693,66 +85751,9 @@ class SimplifiedGoalCardComponent {
85693
85751
  }
85694
85752
  return 'bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-100';
85695
85753
  }, ...(ngDevMode ? [{ debugName: "learnMoreButtonClasses" }] : []));
85696
- this.hasRoadmapMetrics = computed(() => {
85697
- return this.objectivesCount() > 0 || this.strategiesCount() > 0 || this.recommendationsCount() > 0;
85698
- }, ...(ngDevMode ? [{ debugName: "hasRoadmapMetrics" }] : []));
85699
- this.objectivesCount = computed(() => {
85700
- return this.goal()?.objectives?.length || 0;
85701
- }, ...(ngDevMode ? [{ debugName: "objectivesCount" }] : []));
85702
- this.strategiesCount = computed(() => {
85703
- if (!this.goal()?.objectives)
85704
- return 0;
85705
- return this.goal().objectives.reduce((total, objective) => {
85706
- return total + (objective.strategies?.length || 0);
85707
- }, 0);
85708
- }, ...(ngDevMode ? [{ debugName: "strategiesCount" }] : []));
85709
- this.recommendationsCount = computed(() => {
85710
- if (!this.goal()?.objectives)
85711
- return 0;
85712
- return this.goal().objectives.reduce((total, objective) => {
85713
- const objStrategies = objective.strategies || [];
85714
- const recCount = objStrategies.reduce((stratTotal, strategy) => {
85715
- return stratTotal + (strategy.recommendations?.length || 0);
85716
- }, 0);
85717
- return total + recCount;
85718
- }, 0);
85719
- }, ...(ngDevMode ? [{ debugName: "recommendationsCount" }] : []));
85720
- this.roadmapMetricsClasses = computed(() => {
85721
- if (this.isDark()) {
85722
- return 'bg-gradient-to-r from-blue-500/10 via-purple-500/10 to-blue-500/10 border border-blue-500/20';
85723
- }
85724
- return 'bg-gradient-to-r from-blue-50 via-purple-50 to-blue-50 border border-blue-200';
85725
- }, ...(ngDevMode ? [{ debugName: "roadmapMetricsClasses" }] : []));
85726
- this.metricIconClasses = computed(() => {
85727
- if (this.isDark()) {
85728
- return 'text-blue-400';
85729
- }
85730
- return 'text-blue-600';
85731
- }, ...(ngDevMode ? [{ debugName: "metricIconClasses" }] : []));
85732
- this.metricValueClasses = computed(() => {
85733
- if (this.isDark()) {
85734
- return 'text-blue-400';
85735
- }
85736
- return 'text-blue-700';
85737
- }, ...(ngDevMode ? [{ debugName: "metricValueClasses" }] : []));
85738
- this.metricLabelClasses = computed(() => {
85739
- if (this.isDark()) {
85740
- return 'text-slate-400';
85741
- }
85742
- return 'text-slate-600';
85743
- }, ...(ngDevMode ? [{ debugName: "metricLabelClasses" }] : []));
85744
- this.metricDividerClasses = computed(() => {
85745
- if (this.isDark()) {
85746
- return 'bg-slate-600';
85747
- }
85748
- return 'bg-slate-300';
85749
- }, ...(ngDevMode ? [{ debugName: "metricDividerClasses" }] : []));
85750
- }
85751
- isHighPriority() {
85752
- return this.goal()?.priority === ProfileAnalysisPriorityEnum.CRITICAL;
85753
85754
  }
85754
85755
  static { this.ɵfac = function SimplifiedGoalCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SimplifiedGoalCardComponent)(); }; }
85755
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SimplifiedGoalCardComponent, selectors: [["symphiq-simplified-goal-card"]], inputs: { goal: [1, "goal"], viewMode: [1, "viewMode"], animationIndex: [1, "animationIndex"] }, outputs: { viewMoreClick: "viewMoreClick" }, decls: 21, vars: 11, consts: [[1, "rounded-xl", "p-5", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "cursor-pointer", "group", 3, "click", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-3"], [1, "flex-shrink-0", "w-9", "h-9", "rounded-lg", "flex", "items-center", "justify-center", 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", "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, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "font-semibold", "text-base", "leading-snug", "mb-2", 3, "ngClass"], [1, "text-sm", "mb-4", "line-clamp-2", 3, "ngClass"], [1, "flex", "items-center", "justify-around", "gap-2", "px-3", "py-2.5", "rounded-lg", "mb-4", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "gap-2", "mb-4"], [1, "px-2.5", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass", "animate-pulse"], [1, "px-2.5", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "p-3", "rounded-lg", "mb-4", 3, "ngClass"], ["type", "button", 1, "w-full", "flex", "items-center", "justify-center", "gap-2", "px-4", "py-2.5", "rounded-lg", "text-sm", "font-semibold", "transition-all", "duration-200", "cursor-pointer", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "transition-transform", "group-hover:translate-x-1"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "flex", "items-center", "gap-1.5"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5", "flex-shrink-0", 3, "ngClass"], [1, "flex", "items-baseline", "gap-1"], [1, "text-sm", "font-bold", 3, "ngClass"], [1, "text-xs", 3, "ngClass"], [1, "w-px", "h-6", 3, "ngClass"], ["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"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"], [1, "text-xs", "font-semibold", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5", "flex-shrink-0", "mt-0.5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"]], template: function SimplifiedGoalCardComponent_Template(rf, ctx) { if (rf & 1) {
85756
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SimplifiedGoalCardComponent, selectors: [["symphiq-simplified-goal-card"]], inputs: { goal: [1, "goal"], viewMode: [1, "viewMode"], animationIndex: [1, "animationIndex"] }, outputs: { viewMoreClick: "viewMoreClick" }, decls: 21, vars: 11, consts: [[1, "rounded-xl", "p-5", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "cursor-pointer", "group", 3, "click", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-3"], [1, "flex-shrink-0", "w-9", "h-9", "rounded-lg", "flex", "items-center", "justify-center", 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", "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, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "font-semibold", "text-base", "leading-snug", "mb-2", 3, "ngClass"], [1, "text-sm", "mb-4", "line-clamp-2", 3, "ngClass", "libSymphiqTooltip"], [1, "mb-4"], [1, "flex", "items-center", "justify-between", "gap-2", "mb-4"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode", "showIcon"], [1, "p-3", "rounded-lg", "mb-4", 3, "ngClass"], ["type", "button", 1, "w-full", "flex", "items-center", "justify-center", "gap-2", "px-4", "py-2.5", "rounded-lg", "text-sm", "font-semibold", "transition-all", "duration-200", "cursor-pointer", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "transition-transform", "group-hover:translate-x-1"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [3, "metrics", "viewMode"], [1, "text-xs", "font-semibold", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5", "flex-shrink-0", "mt-0.5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-xs", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"]], template: function SimplifiedGoalCardComponent_Template(rf, ctx) { if (rf & 1) {
85756
85757
  i0.ɵɵelementStart(0, "div", 0);
85757
85758
  i0.ɵɵlistener("click", function SimplifiedGoalCardComponent_Template_div_click_0_listener() { return ctx.viewMoreClick.emit(ctx.goal()); });
85758
85759
  i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
@@ -85767,11 +85768,11 @@ class SimplifiedGoalCardComponent {
85767
85768
  i0.ɵɵelementStart(8, "h4", 7);
85768
85769
  i0.ɵɵtext(9);
85769
85770
  i0.ɵɵelementEnd()()();
85770
- i0.ɵɵconditionalCreate(10, SimplifiedGoalCardComponent_Conditional_10_Template, 2, 2, "p", 8);
85771
- i0.ɵɵconditionalCreate(11, SimplifiedGoalCardComponent_Conditional_11_Template, 4, 4, "div", 9);
85771
+ i0.ɵɵconditionalCreate(10, SimplifiedGoalCardComponent_Conditional_10_Template, 2, 3, "p", 8);
85772
+ i0.ɵɵconditionalCreate(11, SimplifiedGoalCardComponent_Conditional_11_Template, 2, 2, "div", 9);
85772
85773
  i0.ɵɵelementStart(12, "div", 10);
85773
- i0.ɵɵconditionalCreate(13, SimplifiedGoalCardComponent_Conditional_13_Template, 2, 4, "span", 11);
85774
- i0.ɵɵconditionalCreate(14, SimplifiedGoalCardComponent_Conditional_14_Template, 2, 2, "span", 12);
85774
+ i0.ɵɵconditionalCreate(13, SimplifiedGoalCardComponent_Conditional_13_Template, 1, 2, "symphiq-priority-badge", 11);
85775
+ i0.ɵɵconditionalCreate(14, SimplifiedGoalCardComponent_Conditional_14_Template, 1, 3, "symphiq-timeframe-badge", 12);
85775
85776
  i0.ɵɵelementEnd();
85776
85777
  i0.ɵɵconditionalCreate(15, SimplifiedGoalCardComponent_Conditional_15_Template, 6, 4, "div", 13);
85777
85778
  i0.ɵɵelementStart(16, "button", 14);
@@ -85796,7 +85797,7 @@ class SimplifiedGoalCardComponent {
85796
85797
  i0.ɵɵadvance();
85797
85798
  i0.ɵɵconditional(ctx.goal().description ? 10 : -1);
85798
85799
  i0.ɵɵadvance();
85799
- i0.ɵɵconditional(ctx.hasRoadmapMetrics() ? 11 : -1);
85800
+ i0.ɵɵconditional(ctx.roadmapMetrics().length > 0 ? 11 : -1);
85800
85801
  i0.ɵɵadvance(2);
85801
85802
  i0.ɵɵconditional(ctx.goal().priority ? 13 : -1);
85802
85803
  i0.ɵɵadvance();
@@ -85805,14 +85806,14 @@ class SimplifiedGoalCardComponent {
85805
85806
  i0.ɵɵconditional(ctx.goal().expectedImpact ? 15 : -1);
85806
85807
  i0.ɵɵadvance();
85807
85808
  i0.ɵɵproperty("ngClass", ctx.learnMoreButtonClasses());
85808
- } }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
85809
+ } }, dependencies: [CommonModule, i1$1.NgClass, PriorityBadgeComponent, TimeframeBadgeComponent, RoadmapMetricsComponent, TooltipDirective], encapsulation: 2, changeDetection: 0 }); }
85809
85810
  }
85810
85811
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SimplifiedGoalCardComponent, [{
85811
85812
  type: Component,
85812
85813
  args: [{
85813
85814
  selector: 'symphiq-simplified-goal-card',
85814
85815
  standalone: true,
85815
- imports: [CommonModule],
85816
+ imports: [CommonModule, PriorityBadgeComponent, TimeframeBadgeComponent, RoadmapMetricsComponent, TooltipDirective],
85816
85817
  changeDetection: ChangeDetectionStrategy.OnPush,
85817
85818
  template: `
85818
85819
  <div
@@ -85836,60 +85837,32 @@ class SimplifiedGoalCardComponent {
85836
85837
  </div>
85837
85838
 
85838
85839
  @if (goal().description) {
85839
- <p [ngClass]="descriptionClasses()" class="text-sm mb-4 line-clamp-2">{{ goal().description }}</p>
85840
+ <p [ngClass]="descriptionClasses()" class="text-sm mb-4 line-clamp-2" [libSymphiqTooltip]="goal().description">{{ goal().description }}</p>
85840
85841
  }
85841
85842
 
85842
85843
  <!-- Roadmap Metrics -->
85843
- @if (hasRoadmapMetrics()) {
85844
- <div [ngClass]="roadmapMetricsClasses()" class="flex items-center justify-around gap-2 px-3 py-2.5 rounded-lg mb-4">
85845
- @if (objectivesCount() > 0) {
85846
- <div class="flex items-center gap-1.5">
85847
- <svg class="w-3.5 h-3.5 flex-shrink-0" [ngClass]="metricIconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
85848
- <path 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"></path>
85849
- </svg>
85850
- <div class="flex items-baseline gap-1">
85851
- <span [ngClass]="metricValueClasses()" class="text-sm font-bold">{{ objectivesCount() }}</span>
85852
- <span [ngClass]="metricLabelClasses()" class="text-xs">{{ objectivesCount() === 1 ? 'Objective' : 'Objectives' }}</span>
85853
- </div>
85854
- </div>
85855
- }
85856
- @if (strategiesCount() > 0) {
85857
- <div [ngClass]="metricDividerClasses()" class="w-px h-6"></div>
85858
- <div class="flex items-center gap-1.5">
85859
- <svg class="w-3.5 h-3.5 flex-shrink-0" [ngClass]="metricIconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
85860
- <path 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"></path>
85861
- </svg>
85862
- <div class="flex items-baseline gap-1">
85863
- <span [ngClass]="metricValueClasses()" class="text-sm font-bold">{{ strategiesCount() }}</span>
85864
- <span [ngClass]="metricLabelClasses()" class="text-xs">{{ strategiesCount() === 1 ? 'Strategy' : 'Strategies' }}</span>
85865
- </div>
85866
- </div>
85867
- }
85868
- @if (recommendationsCount() > 0) {
85869
- <div [ngClass]="metricDividerClasses()" class="w-px h-6"></div>
85870
- <div class="flex items-center gap-1.5">
85871
- <svg class="w-3.5 h-3.5 flex-shrink-0" [ngClass]="metricIconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
85872
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path>
85873
- </svg>
85874
- <div class="flex items-baseline gap-1">
85875
- <span [ngClass]="metricValueClasses()" class="text-sm font-bold">{{ recommendationsCount() }}</span>
85876
- <span [ngClass]="metricLabelClasses()" class="text-xs">Rec</span>
85877
- </div>
85878
- </div>
85879
- }
85844
+ @if (roadmapMetrics().length > 0) {
85845
+ <div class="mb-4">
85846
+ <symphiq-roadmap-metrics
85847
+ [metrics]="roadmapMetrics()"
85848
+ [viewMode]="viewMode()"
85849
+ />
85880
85850
  </div>
85881
85851
  }
85882
85852
 
85883
85853
  <div class="flex items-center justify-between gap-2 mb-4">
85884
85854
  @if (goal().priority) {
85885
- <span [ngClass]="priorityBadgeClasses()" [class.animate-pulse]="isHighPriority()" class="px-2.5 py-1 rounded-full text-xs font-semibold whitespace-nowrap">
85886
- {{ priorityLabel() }}
85887
- </span>
85855
+ <symphiq-priority-badge
85856
+ [priority]="goal().priority"
85857
+ [viewMode]="viewMode()"
85858
+ />
85888
85859
  }
85889
85860
  @if (goal().timeframe) {
85890
- <span [ngClass]="timeframeBadgeClasses()" class="px-2.5 py-1 rounded-full text-xs font-semibold whitespace-nowrap">
85891
- {{ goal().timeframe }}
85892
- </span>
85861
+ <symphiq-timeframe-badge
85862
+ [timeframe]="goal().timeframe"
85863
+ [viewMode]="viewMode()"
85864
+ [showIcon]="false"
85865
+ />
85893
85866
  }
85894
85867
  </div>
85895
85868
 
@@ -85931,9 +85904,9 @@ class SimplifiedGoalCardComponent {
85931
85904
  `
85932
85905
  }]
85933
85906
  }], null, { goal: [{ type: i0.Input, args: [{ isSignal: true, alias: "goal", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], animationIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationIndex", required: false }] }], viewMoreClick: [{ type: i0.Output, args: ["viewMoreClick"] }] }); })();
85934
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SimplifiedGoalCardComponent, { className: "SimplifiedGoalCardComponent", filePath: "lib/components/profile-analysis-shop-dashboard/cards/simplified-goal-card.component.ts", lineNumber: 127 }); })();
85907
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SimplifiedGoalCardComponent, { className: "SimplifiedGoalCardComponent", filePath: "lib/components/profile-analysis-shop-dashboard/cards/simplified-goal-card.component.ts", lineNumber: 102 }); })();
85935
85908
 
85936
- const _forTrack0$m = ($index, $item) => $item.id;
85909
+ const _forTrack0$l = ($index, $item) => $item.id;
85937
85910
  function StrategicGoalsTiledGridComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
85938
85911
  i0.ɵɵelementStart(0, "div", 9);
85939
85912
  i0.ɵɵtext(1);
@@ -85957,7 +85930,7 @@ function StrategicGoalsTiledGridComponent_Conditional_14_For_2_Template(rf, ctx)
85957
85930
  } }
85958
85931
  function StrategicGoalsTiledGridComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
85959
85932
  i0.ɵɵelementStart(0, "div", 11);
85960
- i0.ɵɵrepeaterCreate(1, StrategicGoalsTiledGridComponent_Conditional_14_For_2_Template, 1, 3, "symphiq-simplified-goal-card", 13, _forTrack0$m);
85933
+ i0.ɵɵrepeaterCreate(1, StrategicGoalsTiledGridComponent_Conditional_14_For_2_Template, 1, 3, "symphiq-simplified-goal-card", 13, _forTrack0$l);
85961
85934
  i0.ɵɵelementEnd();
85962
85935
  } if (rf & 2) {
85963
85936
  const ctx_r0 = i0.ɵɵnextContext();
@@ -86914,7 +86887,7 @@ class FocusAreaExecutiveSummaryComponent {
86914
86887
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: false }] }], allGoals: [{ type: i0.Input, args: [{ isSignal: true, alias: "allGoals", required: false }] }], topPrioritiesClick: [{ type: i0.Output, args: ["topPrioritiesClick"] }], priorityDetailClick: [{ type: i0.Output, args: ["priorityDetailClick"] }] }); })();
86915
86888
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaExecutiveSummaryComponent, { className: "FocusAreaExecutiveSummaryComponent", filePath: "lib/components/profile-analysis-focus-area-dashboard/focus-area-executive-summary.component.ts", lineNumber: 195 }); })();
86916
86889
 
86917
- const _forTrack0$l = ($index, $item) => $item.id;
86890
+ const _forTrack0$k = ($index, $item) => $item.id;
86918
86891
  function CollapsibleAnalysisSectionGroupComponent_For_23_Conditional_3_Template(rf, ctx) { if (rf & 1) {
86919
86892
  i0.ɵɵelementStart(0, "div", 20);
86920
86893
  i0.ɵɵelement(1, "symphiq-icon", 31);
@@ -87365,7 +87338,7 @@ class CollapsibleAnalysisSectionGroupComponent {
87365
87338
  i0.ɵɵtext(20);
87366
87339
  i0.ɵɵelementEnd()()();
87367
87340
  i0.ɵɵelementStart(21, "div", 16);
87368
- i0.ɵɵrepeaterCreate(22, CollapsibleAnalysisSectionGroupComponent_For_23_Template, 16, 14, "div", 17, _forTrack0$l);
87341
+ i0.ɵɵrepeaterCreate(22, CollapsibleAnalysisSectionGroupComponent_For_23_Template, 16, 14, "div", 17, _forTrack0$k);
87369
87342
  i0.ɵɵelementEnd()()();
87370
87343
  } if (rf & 2) {
87371
87344
  i0.ɵɵproperty("ngClass", ctx.containerClasses());
@@ -87561,7 +87534,7 @@ class CollapsibleAnalysisSectionGroupComponent {
87561
87534
  }], null, { sections: [{ type: i0.Input, args: [{ isSignal: true, alias: "sections", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], executiveSummary: [{ type: i0.Input, args: [{ isSignal: true, alias: "executiveSummary", required: false }] }], focusAreaExecutiveSummary: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaExecutiveSummary", required: false }] }], metricExecutiveSummary: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricExecutiveSummary", required: false }] }], metricName: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricName", required: false }] }], allGoals: [{ type: i0.Input, args: [{ isSignal: true, alias: "allGoals", required: false }] }], allMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "allMetrics", required: false }] }], allCharts: [{ type: i0.Input, args: [{ isSignal: true, alias: "allCharts", required: false }] }], allInsights: [{ type: i0.Input, args: [{ isSignal: true, alias: "allInsights", required: false }] }], businessProfile: [{ type: i0.Input, args: [{ isSignal: true, alias: "businessProfile", required: false }] }], storageKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "storageKey", required: false }] }], viewReportClick: [{ type: i0.Output, args: ["viewReportClick"] }] }); })();
87562
87535
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollapsibleAnalysisSectionGroupComponent, { className: "CollapsibleAnalysisSectionGroupComponent", filePath: "lib/components/profile-analysis-shop-dashboard/cards/collapsible-analysis-section-group.component.ts", lineNumber: 176 }); })();
87563
87536
 
87564
- const _forTrack0$k = ($index, $item) => $item.code;
87537
+ const _forTrack0$j = ($index, $item) => $item.code;
87565
87538
  function BillingCurrencySelectorCardComponent_For_15_Template(rf, ctx) { if (rf & 1) {
87566
87539
  const _r1 = i0.ɵɵgetCurrentView();
87567
87540
  i0.ɵɵelementStart(0, "label", 11)(1, "input", 12);
@@ -87753,7 +87726,7 @@ class BillingCurrencySelectorCardComponent {
87753
87726
  i0.ɵɵtext(10, " Choose the currency for your subscription ");
87754
87727
  i0.ɵɵelementEnd()()()();
87755
87728
  i0.ɵɵelementStart(11, "div", 8)(12, "div", 9)(13, "div", 10);
87756
- i0.ɵɵrepeaterCreate(14, BillingCurrencySelectorCardComponent_For_15_Template, 10, 12, "label", 11, _forTrack0$k);
87729
+ i0.ɵɵrepeaterCreate(14, BillingCurrencySelectorCardComponent_For_15_Template, 10, 12, "label", 11, _forTrack0$j);
87757
87730
  i0.ɵɵelementEnd()()()();
87758
87731
  } if (rf & 2) {
87759
87732
  i0.ɵɵproperty("ngClass", ctx.containerClasses());
@@ -88785,7 +88758,7 @@ At the end of each month, your total AI usage is calculated and automatically bi
88785
88758
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], planInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "planInfo", required: true }] }], isSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSelected", required: false }] }], selectedPeriodUnit: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPeriodUnit", required: false }] }], monthlyComparisonPrice: [{ type: i0.Input, args: [{ isSignal: true, alias: "monthlyComparisonPrice", required: false }] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }] }); })();
88786
88759
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PlanCardComponent, { className: "PlanCardComponent", filePath: "lib/components/profile-analysis-shop-dashboard/cards/plan-card.component.ts", lineNumber: 274 }); })();
88787
88760
 
88788
- const _forTrack0$j = ($index, $item) => $item.planItemPrice.id;
88761
+ const _forTrack0$i = ($index, $item) => $item.planItemPrice.id;
88789
88762
  function PlanSelectionContainerComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
88790
88763
  i0.ɵɵelementStart(0, "div", 14);
88791
88764
  i0.ɵɵelement(1, "symphiq-indeterminate-spinner", 18);
@@ -88811,7 +88784,7 @@ function PlanSelectionContainerComponent_Conditional_20_For_2_Template(rf, ctx)
88811
88784
  } }
88812
88785
  function PlanSelectionContainerComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
88813
88786
  i0.ɵɵelementStart(0, "div", 15);
88814
- i0.ɵɵrepeaterCreate(1, PlanSelectionContainerComponent_Conditional_20_For_2_Template, 1, 5, "symphiq-plan-card", 20, _forTrack0$j);
88787
+ i0.ɵɵrepeaterCreate(1, PlanSelectionContainerComponent_Conditional_20_For_2_Template, 1, 5, "symphiq-plan-card", 20, _forTrack0$i);
88815
88788
  i0.ɵɵelementEnd();
88816
88789
  } if (rf & 2) {
88817
88790
  const ctx_r0 = i0.ɵɵnextContext();
@@ -89142,7 +89115,7 @@ class PlanSelectionContainerComponent {
89142
89115
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], selectedCurrency: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedCurrency", required: false }] }], planCardInfos: [{ type: i0.Input, args: [{ isSignal: true, alias: "planCardInfos", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], selectedPeriodUnit: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPeriodUnit", required: false }] }], periodUnitChanged: [{ type: i0.Output, args: ["periodUnitChanged"] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }], editCurrency: [{ type: i0.Output, args: ["editCurrency"] }], checkout: [{ type: i0.Output, args: ["checkout"] }] }); })();
89143
89116
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PlanSelectionContainerComponent, { className: "PlanSelectionContainerComponent", filePath: "lib/components/profile-analysis-shop-dashboard/cards/plan-selection-container.component.ts", lineNumber: 116 }); })();
89144
89117
 
89145
- const _forTrack0$i = ($index, $item) => $item.item.id;
89118
+ const _forTrack0$h = ($index, $item) => $item.item.id;
89146
89119
  function ProfileCategoryListComponent_For_2_Template(rf, ctx) { if (rf & 1) {
89147
89120
  const _r1 = i0.ɵɵgetCurrentView();
89148
89121
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 0)(2, "div", 2)(3, "div", 3)(4, "div", 4);
@@ -89232,7 +89205,7 @@ class ProfileCategoryListComponent {
89232
89205
  static { this.ɵfac = function ProfileCategoryListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProfileCategoryListComponent)(); }; }
89233
89206
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProfileCategoryListComponent, selectors: [["symphiq-profile-category-list"]], inputs: { viewMode: [1, "viewMode"], items: [1, "items"], delayAnimation: [1, "delayAnimation"] }, outputs: { itemClick: "itemClick" }, decls: 3, vars: 0, consts: [[1, "space-y-4"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", "hover:scale-[1.01]", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-lg", "font-semibold", "leading-tight", 3, "ngClass"], ["type", "button", 1, "flex-shrink-0", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-300", "flex", "items-center", "gap-2", "hover:scale-105", "active:scale-95", 3, "click", "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", "M9 5l7 7-7 7"], [1, "space-y-2"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [3, "ngClass"], [1, "flex", "justify-between", "items-center"], [1, "text-sm", "font-medium", 3, "ngClass"]], template: function ProfileCategoryListComponent_Template(rf, ctx) { if (rf & 1) {
89234
89207
  i0.ɵɵelementStart(0, "div", 0);
89235
- i0.ɵɵrepeaterCreate(1, ProfileCategoryListComponent_For_2_Template, 19, 16, "div", 1, _forTrack0$i);
89208
+ i0.ɵɵrepeaterCreate(1, ProfileCategoryListComponent_For_2_Template, 19, 16, "div", 1, _forTrack0$h);
89236
89209
  i0.ɵɵelementEnd();
89237
89210
  } if (rf & 2) {
89238
89211
  i0.ɵɵadvance();
@@ -89301,7 +89274,7 @@ class ProfileCategoryListComponent {
89301
89274
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], delayAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "delayAnimation", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] }); })();
89302
89275
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileCategoryListComponent, { className: "ProfileCategoryListComponent", filePath: "lib/components/shared/profile/profile-category-list.component.ts", lineNumber: 71 }); })();
89303
89276
 
89304
- const _forTrack0$h = ($index, $item) => $item.type;
89277
+ const _forTrack0$g = ($index, $item) => $item.type;
89305
89278
  function ProfileViewToggleComponent_For_2_Template(rf, ctx) { if (rf & 1) {
89306
89279
  const _r1 = i0.ɵɵgetCurrentView();
89307
89280
  i0.ɵɵelementStart(0, "button", 2);
@@ -89350,7 +89323,7 @@ class ProfileViewToggleComponent {
89350
89323
  static { this.ɵfac = function ProfileViewToggleComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProfileViewToggleComponent)(); }; }
89351
89324
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProfileViewToggleComponent, selectors: [["symphiq-profile-view-toggle"]], inputs: { viewMode: [1, "viewMode"], currentView: [1, "currentView"], options: [1, "options"] }, outputs: { viewChanged: "viewChanged" }, decls: 3, vars: 1, consts: [[1, "inline-flex", "gap-2", "rounded-lg", "p-1", 3, "ngClass"], ["type", "button", 1, "px-6", "py-2.5", "rounded-md", "font-medium", "text-sm", "transition-all", "duration-300", "ease-in-out", 3, "ngClass"], ["type", "button", 1, "px-6", "py-2.5", "rounded-md", "font-medium", "text-sm", "transition-all", "duration-300", "ease-in-out", 3, "click", "ngClass"]], template: function ProfileViewToggleComponent_Template(rf, ctx) { if (rf & 1) {
89352
89325
  i0.ɵɵelementStart(0, "div", 0);
89353
- i0.ɵɵrepeaterCreate(1, ProfileViewToggleComponent_For_2_Template, 2, 2, "button", 1, _forTrack0$h);
89326
+ i0.ɵɵrepeaterCreate(1, ProfileViewToggleComponent_For_2_Template, 2, 2, "button", 1, _forTrack0$g);
89354
89327
  i0.ɵɵelementEnd();
89355
89328
  } if (rf & 2) {
89356
89329
  i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
@@ -89387,7 +89360,7 @@ const _c0$c = ["scrollContainer"];
89387
89360
  const _c1$4 = ["stickySentinel"];
89388
89361
  const _c2$4 = ["stickyHeader"];
89389
89362
  const _c3$2 = ["questionTitle"];
89390
- const _forTrack0$g = ($index, $item) => $item.tempId;
89363
+ const _forTrack0$f = ($index, $item) => $item.tempId;
89391
89364
  function ProfileQuestionAnswerComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
89392
89365
  i0.ɵɵelementStart(0, "div", 16);
89393
89366
  i0.ɵɵtext(1);
@@ -89528,7 +89501,7 @@ function ProfileQuestionAnswerComponent_Conditional_26_Conditional_13_Template(r
89528
89501
  function ProfileQuestionAnswerComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
89529
89502
  const _r4 = i0.ɵɵgetCurrentView();
89530
89503
  i0.ɵɵelementStart(0, "div", 41);
89531
- i0.ɵɵrepeaterCreate(1, ProfileQuestionAnswerComponent_Conditional_26_For_2_Template, 4, 5, "label", 42, _forTrack0$g);
89504
+ i0.ɵɵrepeaterCreate(1, ProfileQuestionAnswerComponent_Conditional_26_For_2_Template, 4, 5, "label", 42, _forTrack0$f);
89532
89505
  i0.ɵɵelementEnd();
89533
89506
  i0.ɵɵelementStart(3, "div", 43)(4, "div", 44)(5, "div", 45)(6, "div", 46)(7, "textarea", 47);
89534
89507
  i0.ɵɵtwoWayListener("ngModelChange", function ProfileQuestionAnswerComponent_Conditional_26_Template_textarea_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.customAnswerText, $event) || (ctx_r1.customAnswerText = $event); return i0.ɵɵresetView($event); });
@@ -90440,7 +90413,7 @@ class ProfileAnswerAnimationService {
90440
90413
  }]
90441
90414
  }], null, null); })();
90442
90415
 
90443
- const _forTrack0$f = ($index, $item) => $item.answer.id;
90416
+ const _forTrack0$e = ($index, $item) => $item.answer.id;
90444
90417
  function ProfileQuestionCardComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
90445
90418
  i0.ɵɵelementStart(0, "div", 1)(1, "span", 15);
90446
90419
  i0.ɵɵtext(2);
@@ -90529,7 +90502,7 @@ function ProfileQuestionCardComponent_Conditional_9_For_2_Template(rf, ctx) { if
90529
90502
  } }
90530
90503
  function ProfileQuestionCardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
90531
90504
  i0.ɵɵelementStart(0, "div", 8);
90532
- i0.ɵɵrepeaterCreate(1, ProfileQuestionCardComponent_Conditional_9_For_2_Template, 6, 11, null, null, _forTrack0$f);
90505
+ i0.ɵɵrepeaterCreate(1, ProfileQuestionCardComponent_Conditional_9_For_2_Template, 6, 11, null, null, _forTrack0$e);
90533
90506
  i0.ɵɵelementEnd();
90534
90507
  } if (rf & 2) {
90535
90508
  const ctx_r0 = i0.ɵɵnextContext();
@@ -90957,7 +90930,7 @@ class ProfileQuestionCardComponent {
90957
90930
  }], null, { question: [{ type: i0.Input, args: [{ isSignal: true, alias: "question", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], viewType: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewType", required: false }] }], profileAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileAnswers", required: false }] }], profileAnswerHistories: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileAnswerHistories", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], showFocusAreaChips: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFocusAreaChips", required: false }] }], categoryNameFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "categoryNameFormatter", required: false }] }], answerClick: [{ type: i0.Output, args: ["answerClick"] }], historyClick: [{ type: i0.Output, args: ["historyClick"] }] }); })();
90958
90931
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileQuestionCardComponent, { className: "ProfileQuestionCardComponent", filePath: "lib/components/shared/profile/profile-question-card.component.ts", lineNumber: 175 }); })();
90959
90932
 
90960
- const _forTrack0$e = ($index, $item) => $item.answer.id;
90933
+ const _forTrack0$d = ($index, $item) => $item.answer.id;
90961
90934
  const _forTrack1$4 = ($index, $item) => $item.history.id;
90962
90935
  function ProfileQuestionHistoryComponent_Conditional_16_For_8_Template(rf, ctx) { if (rf & 1) {
90963
90936
  i0.ɵɵelementStart(0, "div", 20)(1, "span", 21);
@@ -90991,7 +90964,7 @@ function ProfileQuestionHistoryComponent_Conditional_16_Template(rf, ctx) { if (
90991
90964
  i0.ɵɵtext(5);
90992
90965
  i0.ɵɵelementEnd();
90993
90966
  i0.ɵɵelementStart(6, "div", 19);
90994
- i0.ɵɵrepeaterCreate(7, ProfileQuestionHistoryComponent_Conditional_16_For_8_Template, 6, 8, null, null, _forTrack0$e);
90967
+ i0.ɵɵrepeaterCreate(7, ProfileQuestionHistoryComponent_Conditional_16_For_8_Template, 6, 8, null, null, _forTrack0$d);
90995
90968
  i0.ɵɵelementEnd()()();
90996
90969
  } if (rf & 2) {
90997
90970
  const ctx_r1 = i0.ɵɵnextContext();
@@ -91393,7 +91366,7 @@ class ProfileQuestionHistoryComponent {
91393
91366
  const _c0$b = ["modalContent"];
91394
91367
  const _c1$3 = ["modalWrapper"];
91395
91368
  const _c2$3 = ["scrollContainer"];
91396
- const _forTrack0$d = ($index, $item) => $item.id;
91369
+ const _forTrack0$c = ($index, $item) => $item.id;
91397
91370
  function ProfileQuestionsModalComponent_Conditional_0_Conditional_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
91398
91371
  const _r3 = i0.ɵɵgetCurrentView();
91399
91372
  i0.ɵɵelementStart(0, "symphiq-profile-question-history", 7);
@@ -91445,7 +91418,7 @@ function ProfileQuestionsModalComponent_Conditional_0_Conditional_6_Conditional_
91445
91418
  } }
91446
91419
  function ProfileQuestionsModalComponent_Conditional_0_Conditional_6_Conditional_18_Template(rf, ctx) { if (rf & 1) {
91447
91420
  i0.ɵɵelementStart(0, "div", 22);
91448
- i0.ɵɵrepeaterCreate(1, ProfileQuestionsModalComponent_Conditional_0_Conditional_6_Conditional_18_For_2_Template, 1, 9, "symphiq-profile-question-card", 28, _forTrack0$d);
91421
+ i0.ɵɵrepeaterCreate(1, ProfileQuestionsModalComponent_Conditional_0_Conditional_6_Conditional_18_For_2_Template, 1, 9, "symphiq-profile-question-card", 28, _forTrack0$c);
91449
91422
  i0.ɵɵelementEnd();
91450
91423
  } if (rf & 2) {
91451
91424
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -92989,7 +92962,7 @@ class ProfileStickyFooterComponent {
92989
92962
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], totalQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalQuestions", required: false }] }], answeredQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "answeredQuestions", required: false }] }], buttonConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonConfig", required: false }] }], continueClick: [{ type: i0.Output, args: ["continueClick"] }] }); })();
92990
92963
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileStickyFooterComponent, { className: "ProfileStickyFooterComponent", filePath: "lib/components/shared/profile/profile-sticky-footer.component.ts", lineNumber: 48 }); })();
92991
92964
 
92992
- const _forTrack0$c = ($index, $item) => $item.label;
92965
+ const _forTrack0$b = ($index, $item) => $item.label;
92993
92966
  const _forTrack1$3 = ($index, $item) => $item.title;
92994
92967
  function SubscriptionValuePropositionCardComponent_For_104_Conditional_7_Template(rf, ctx) { if (rf & 1) {
92995
92968
  i0.ɵɵnamespaceSVG();
@@ -93469,7 +93442,7 @@ class SubscriptionValuePropositionCardComponent {
93469
93442
  i0.ɵɵelementEnd();
93470
93443
  i0.ɵɵnamespaceHTML();
93471
93444
  i0.ɵɵelementStart(102, "div", 39);
93472
- i0.ɵɵrepeaterCreate(103, SubscriptionValuePropositionCardComponent_For_104_Template, 8, 6, "div", 40, _forTrack0$c);
93445
+ i0.ɵɵrepeaterCreate(103, SubscriptionValuePropositionCardComponent_For_104_Template, 8, 6, "div", 40, _forTrack0$b);
93473
93446
  i0.ɵɵelementEnd();
93474
93447
  i0.ɵɵelementStart(105, "div", 41);
93475
93448
  i0.ɵɵnamespaceSVG();
@@ -94180,7 +94153,7 @@ const _c2$2 = () => [];
94180
94153
  const _c3$1 = a0 => ({ name: "chevron-right", source: a0 });
94181
94154
  const _c4 = a0 => ({ name: "chevron-down", source: a0 });
94182
94155
  const _c5 = a0 => [a0];
94183
- const _forTrack0$b = ($index, $item) => $item.index;
94156
+ const _forTrack0$a = ($index, $item) => $item.index;
94184
94157
  const _forTrack1$2 = ($index, $item) => $item.id;
94185
94158
  function SymphiqProfileShopAnalysisDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
94186
94159
  const _r1 = i0.ɵɵgetCurrentView();
@@ -94536,7 +94509,7 @@ function SymphiqProfileShopAnalysisDashboardComponent_Conditional_10_Conditional
94536
94509
  i0.ɵɵtext(2, " Quick Wins ");
94537
94510
  i0.ɵɵelementEnd();
94538
94511
  i0.ɵɵelementStart(3, "div", 85);
94539
- i0.ɵɵrepeaterCreate(4, SymphiqProfileShopAnalysisDashboardComponent_Conditional_10_Conditional_0_Conditional_39_For_5_Template, 14, 11, "div", 86, _forTrack0$b);
94512
+ i0.ɵɵrepeaterCreate(4, SymphiqProfileShopAnalysisDashboardComponent_Conditional_10_Conditional_0_Conditional_39_For_5_Template, 14, 11, "div", 86, _forTrack0$a);
94540
94513
  i0.ɵɵelementEnd()();
94541
94514
  } if (rf & 2) {
94542
94515
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -97546,7 +97519,7 @@ class ProfileProgressIndicatorComponent {
97546
97519
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], questionsAnswered: [{ type: i0.Input, args: [{ isSignal: true, alias: "questionsAnswered", required: false }] }], totalQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalQuestions", required: false }] }], progressPercent: [{ type: i0.Input, args: [{ isSignal: true, alias: "progressPercent", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] }); })();
97547
97520
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileProgressIndicatorComponent, { className: "ProfileProgressIndicatorComponent", filePath: "lib/components/shared/profile-progress-indicator.component.ts", lineNumber: 36 }); })();
97548
97521
 
97549
- const _forTrack0$a = ($index, $item) => $item.card.id;
97522
+ const _forTrack0$9 = ($index, $item) => $item.card.id;
97550
97523
  function ProfileAnalysisCardGridComponent_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
97551
97524
  i0.ɵɵelementStart(0, "div", 7);
97552
97525
  i0.ɵɵtext(1);
@@ -97814,7 +97787,7 @@ function ProfileAnalysisCardGridComponent_Conditional_3_Template(rf, ctx) { if (
97814
97787
  i0.ɵɵelement(5, "div", 41);
97815
97788
  i0.ɵɵelementEnd();
97816
97789
  i0.ɵɵelementStart(6, "div", 43);
97817
- i0.ɵɵrepeaterCreate(7, ProfileAnalysisCardGridComponent_Conditional_3_For_8_Template, 12, 12, "div", 1, _forTrack0$a);
97790
+ i0.ɵɵrepeaterCreate(7, ProfileAnalysisCardGridComponent_Conditional_3_For_8_Template, 12, 12, "div", 1, _forTrack0$9);
97818
97791
  i0.ɵɵelementEnd()();
97819
97792
  } if (rf & 2) {
97820
97793
  const ctx_r2 = i0.ɵɵnextContext();
@@ -97910,7 +97883,7 @@ class ProfileAnalysisCardGridComponent {
97910
97883
  static { this.ɵfac = function ProfileAnalysisCardGridComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProfileAnalysisCardGridComponent)(); }; }
97911
97884
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProfileAnalysisCardGridComponent, selectors: [["symphiq-profile-analysis-card-grid"]], inputs: { viewMode: [1, "viewMode"], cards: [1, "cards"], config: [1, "config"] }, outputs: { cardClick: "cardClick" }, decls: 4, vars: 1, consts: [[1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-6"], [3, "class"], [1, "mt-12"], [1, "p-6", "flex-1"], [1, "flex", "items-start", "justify-between", "mb-4"], [1, "text-4xl"], [1, "flex", "flex-col", "items-end", "gap-2"], [3, "ngClass"], [1, "px-2.5", "py-1", "rounded-full", "text-xs", "font-medium", "bg-red-100", "dark:bg-red-900/30", "text-red-700", "dark:text-red-400", "flex", "items-center", "gap-1.5", "animate-alert-pulse"], [1, "px-3", "py-1", "bg-emerald-100", "dark:bg-emerald-900/40", "text-emerald-700", "dark:text-emerald-400", "text-xs", "font-semibold", "rounded-full", "flex", "items-center", "gap-1.5", "border", "border-emerald-300/50", "dark:border-emerald-500/30", "shadow-sm"], ["tooltipPosition", "bottom", 3, "libSymphiqTooltip"], [1, "mt-3", "mb-4"], [1, "flex", "items-center", "gap-2", "py-2"], [1, "cursor-pointer", "mt-4"], [1, "px-6", "pb-4"], [1, "w-2", "h-2", "rounded-full", "bg-red-500", "animate-slow-pulse"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-3.5", "h-3.5"], ["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"], [1, "flex", "items-center", "gap-2"], [1, "text-xs", "font-medium", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-1.5"], [1, "px-2", "py-0.5", "rounded", "text-xs", 3, "ngClass"], [1, "animate-spin", "w-4", "h-4", "border-2", "border-amber-500/30", "border-t-amber-500", "rounded-full"], [1, "text-xs", "text-amber-600", "dark:text-amber-400", "font-medium"], [1, "cursor-pointer", "mt-4", 3, "click"], [3, "viewMode", "questionsAnswered", "totalQuestions", "progressPercent", "status", "label"], [3, "itemStatus", "viewMode", "compact", "compactTitle"], [1, "mt-auto", "cursor-pointer", "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", "transition-all", "duration-300", "px-4", "py-3", "border-t", "border-blue-500/30", "animate-review-pulse"], [1, "mt-auto", "cursor-pointer", "hover:bg-slate-100", "dark:hover:bg-slate-700/50", "transition-colors", 3, "class"], [1, "mt-auto", "cursor-pointer", "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", "transition-all", "duration-300", "px-4", "py-3", "border-t", "border-blue-500/30", "animate-review-pulse", 3, "click"], [1, "flex", "items-center", "justify-between"], [1, "text-sm", "font-semibold", "text-white", "flex", "items-center", "gap-2"], ["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", "text-white/90", "group-hover:translate-x-1", "transition-transform"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "mt-auto", "cursor-pointer", "hover:bg-slate-100", "dark:hover:bg-slate-700/50", "transition-colors", 3, "click"], [1, "text-sm", "font-medium", "text-slate-600", "dark:text-slate-400"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "text-slate-400", "dark:text-slate-500", "hover:text-blue-500", "dark:hover:text-blue-400", "hover:translate-x-1", "transition-all"], [1, "flex", "items-center", "gap-4", "mb-6"], [1, "flex-1", "h-px", 3, "ngClass"], [1, "text-sm", "font-medium", "px-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-6", "opacity-60"]], template: function ProfileAnalysisCardGridComponent_Template(rf, ctx) { if (rf & 1) {
97912
97885
  i0.ɵɵelementStart(0, "div", 0);
97913
- i0.ɵɵrepeaterCreate(1, ProfileAnalysisCardGridComponent_For_2_Template, 19, 17, "div", 1, _forTrack0$a);
97886
+ i0.ɵɵrepeaterCreate(1, ProfileAnalysisCardGridComponent_For_2_Template, 19, 17, "div", 1, _forTrack0$9);
97914
97887
  i0.ɵɵelementEnd();
97915
97888
  i0.ɵɵconditionalCreate(3, ProfileAnalysisCardGridComponent_Conditional_3_Template, 9, 4, "div", 2);
97916
97889
  } if (rf & 2) {
@@ -99371,7 +99344,7 @@ class FocusAreaWelcomeBannerComponent {
99371
99344
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaWelcomeBannerComponent, { className: "FocusAreaWelcomeBannerComponent", filePath: "lib/components/profile-analysis-focus-area-dashboard/focus-area-welcome-banner.component.ts", lineNumber: 63 }); })();
99372
99345
 
99373
99346
  const _c0$7 = ["funnelModalComponent"];
99374
- const _forTrack0$9 = ($index, $item) => $item.id;
99347
+ const _forTrack0$8 = ($index, $item) => $item.id;
99375
99348
  function SymphiqProfileAnalysisFocusAreaDashboardComponent_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
99376
99349
  i0.ɵɵelement(0, "symphiq-loading-card", 23);
99377
99350
  } if (rf & 2) {
@@ -99547,7 +99520,7 @@ function SymphiqProfileAnalysisFocusAreaDashboardComponent_Conditional_8_Conditi
99547
99520
  } }
99548
99521
  function SymphiqProfileAnalysisFocusAreaDashboardComponent_Conditional_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
99549
99522
  i0.ɵɵelementStart(0, "section", 31);
99550
- i0.ɵɵrepeaterCreate(1, SymphiqProfileAnalysisFocusAreaDashboardComponent_Conditional_8_Conditional_2_For_2_Template, 9, 15, null, null, _forTrack0$9);
99523
+ i0.ɵɵrepeaterCreate(1, SymphiqProfileAnalysisFocusAreaDashboardComponent_Conditional_8_Conditional_2_For_2_Template, 9, 15, null, null, _forTrack0$8);
99551
99524
  i0.ɵɵelementEnd();
99552
99525
  } if (rf & 2) {
99553
99526
  i0.ɵɵadvance();
@@ -100578,122 +100551,6 @@ class SymphiqProfileAnalysisFocusAreaDashboardComponent {
100578
100551
  }] }); })();
100579
100552
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisFocusAreaDashboardComponent, { className: "SymphiqProfileAnalysisFocusAreaDashboardComponent", filePath: "lib/components/profile-analysis-focus-area-dashboard/symphiq-profile-analysis-focus-area-dashboard.component.ts", lineNumber: 482 }); })();
100580
100553
 
100581
- const _forTrack0$8 = ($index, $item) => $item.icon;
100582
- function StructureCountsComponent_For_2_Conditional_0_Case_1_Template(rf, ctx) { if (rf & 1) {
100583
- i0.ɵɵnamespaceSVG();
100584
- i0.ɵɵelementStart(0, "svg", 2);
100585
- i0.ɵɵelement(1, "path", 4);
100586
- i0.ɵɵelementEnd();
100587
- } }
100588
- function StructureCountsComponent_For_2_Conditional_0_Case_2_Template(rf, ctx) { if (rf & 1) {
100589
- i0.ɵɵnamespaceSVG();
100590
- i0.ɵɵelementStart(0, "svg", 2);
100591
- i0.ɵɵelement(1, "path", 5);
100592
- i0.ɵɵelementEnd();
100593
- } }
100594
- function StructureCountsComponent_For_2_Conditional_0_Case_3_Template(rf, ctx) { if (rf & 1) {
100595
- i0.ɵɵnamespaceSVG();
100596
- i0.ɵɵelementStart(0, "svg", 2);
100597
- i0.ɵɵelement(1, "path", 6);
100598
- i0.ɵɵelementEnd();
100599
- } }
100600
- function StructureCountsComponent_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
100601
- i0.ɵɵelementStart(0, "div", 1);
100602
- i0.ɵɵconditionalCreate(1, StructureCountsComponent_For_2_Conditional_0_Case_1_Template, 2, 0, ":svg:svg", 2)(2, StructureCountsComponent_For_2_Conditional_0_Case_2_Template, 2, 0, ":svg:svg", 2)(3, StructureCountsComponent_For_2_Conditional_0_Case_3_Template, 2, 0, ":svg:svg", 2);
100603
- i0.ɵɵelementStart(4, "span");
100604
- i0.ɵɵtext(5);
100605
- i0.ɵɵelementEnd();
100606
- i0.ɵɵelementStart(6, "span", 3);
100607
- i0.ɵɵtext(7);
100608
- i0.ɵɵelementEnd()();
100609
- } if (rf & 2) {
100610
- let tmp_12_0;
100611
- const item_r1 = i0.ɵɵnextContext().$implicit;
100612
- const ctx_r1 = i0.ɵɵnextContext();
100613
- i0.ɵɵproperty("ngClass", ctx_r1.itemClasses());
100614
- i0.ɵɵadvance();
100615
- i0.ɵɵconditional((tmp_12_0 = item_r1.icon) === "objectives" ? 1 : tmp_12_0 === "strategies" ? 2 : tmp_12_0 === "recommendations" ? 3 : -1);
100616
- i0.ɵɵadvance(4);
100617
- i0.ɵɵtextInterpolate(item_r1.count);
100618
- i0.ɵɵadvance(2);
100619
- i0.ɵɵtextInterpolate(item_r1.label || ctx_r1.getDefaultLabel(item_r1.icon, item_r1.count));
100620
- } }
100621
- function StructureCountsComponent_For_2_Template(rf, ctx) { if (rf & 1) {
100622
- i0.ɵɵconditionalCreate(0, StructureCountsComponent_For_2_Conditional_0_Template, 8, 4, "div", 1);
100623
- } if (rf & 2) {
100624
- const item_r1 = ctx.$implicit;
100625
- i0.ɵɵconditional(item_r1.count > 0 ? 0 : -1);
100626
- } }
100627
- class StructureCountsComponent {
100628
- constructor() {
100629
- this.counts = input([], ...(ngDevMode ? [{ debugName: "counts" }] : []));
100630
- this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
100631
- this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
100632
- this.itemClasses = computed(() => {
100633
- if (this.isDark()) {
100634
- return 'bg-slate-800/50 text-slate-300 border border-slate-700/50';
100635
- }
100636
- return 'bg-slate-50 text-slate-600 border border-slate-200';
100637
- }, ...(ngDevMode ? [{ debugName: "itemClasses" }] : []));
100638
- }
100639
- getDefaultLabel(icon, count) {
100640
- switch (icon) {
100641
- case 'objectives': return count === 1 ? 'Objective' : 'Objectives';
100642
- case 'strategies': return count === 1 ? 'Strategy' : 'Strategies';
100643
- case 'recommendations': return count === 1 ? 'Rec' : 'Rec';
100644
- default: return '';
100645
- }
100646
- }
100647
- static { this.ɵfac = function StructureCountsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StructureCountsComponent)(); }; }
100648
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StructureCountsComponent, selectors: [["symphiq-structure-counts"]], inputs: { counts: [1, "counts"], viewMode: [1, "viewMode"] }, decls: 3, vars: 0, consts: [[1, "flex", "flex-wrap", "items-center", "gap-2"], [1, "inline-flex", "items-center", "gap-1.5", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"], [1, "opacity-70"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"], ["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"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"]], template: function StructureCountsComponent_Template(rf, ctx) { if (rf & 1) {
100649
- i0.ɵɵelementStart(0, "div", 0);
100650
- i0.ɵɵrepeaterCreate(1, StructureCountsComponent_For_2_Template, 1, 1, null, null, _forTrack0$8);
100651
- i0.ɵɵelementEnd();
100652
- } if (rf & 2) {
100653
- i0.ɵɵadvance();
100654
- i0.ɵɵrepeater(ctx.counts());
100655
- } }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
100656
- }
100657
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StructureCountsComponent, [{
100658
- type: Component,
100659
- args: [{
100660
- selector: 'symphiq-structure-counts',
100661
- standalone: true,
100662
- imports: [CommonModule],
100663
- changeDetection: ChangeDetectionStrategy.OnPush,
100664
- template: `
100665
- <div class="flex flex-wrap items-center gap-2">
100666
- @for (item of counts(); track item.icon) {
100667
- @if (item.count > 0) {
100668
- <div [ngClass]="itemClasses()" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium">
100669
- @switch (item.icon) {
100670
- @case ('objectives') {
100671
- <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
100672
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"/>
100673
- </svg>
100674
- }
100675
- @case ('strategies') {
100676
- <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
100677
- <path 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"/>
100678
- </svg>
100679
- }
100680
- @case ('recommendations') {
100681
- <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
100682
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/>
100683
- </svg>
100684
- }
100685
- }
100686
- <span>{{ item.count }}</span>
100687
- <span class="opacity-70">{{ item.label || getDefaultLabel(item.icon, item.count) }}</span>
100688
- </div>
100689
- }
100690
- }
100691
- </div>
100692
- `
100693
- }]
100694
- }], null, { counts: [{ type: i0.Input, args: [{ isSignal: true, alias: "counts", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }] }); })();
100695
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StructureCountsComponent, { className: "StructureCountsComponent", filePath: "lib/components/shared/structure-counts.component.ts", lineNumber: 46 }); })();
100696
-
100697
100554
  const _forTrack0$7 = ($index, $item) => $item.analysisId;
100698
100555
  function UnifiedGoalCardComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
100699
100556
  i0.ɵɵelement(0, "symphiq-priority-badge", 10);
@@ -100707,7 +100564,7 @@ function UnifiedGoalCardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1)
100707
100564
  i0.ɵɵelementEnd();
100708
100565
  } if (rf & 2) {
100709
100566
  const ctx_r0 = i0.ɵɵnextContext();
100710
- i0.ɵɵproperty("ngClass", ctx_r0.descriptionClasses());
100567
+ i0.ɵɵproperty("ngClass", ctx_r0.descriptionClasses())("libSymphiqTooltip", ctx_r0.goal().description);
100711
100568
  i0.ɵɵadvance();
100712
100569
  i0.ɵɵtextInterpolate(ctx_r0.goal().description);
100713
100570
  } }
@@ -100718,10 +100575,10 @@ function UnifiedGoalCardComponent_Conditional_15_Template(rf, ctx) { if (rf & 1)
100718
100575
  i0.ɵɵproperty("timeframe", ctx_r0.goal().timeframe)("viewMode", ctx_r0.viewMode());
100719
100576
  } }
100720
100577
  function UnifiedGoalCardComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
100721
- i0.ɵɵelement(0, "symphiq-structure-counts", 14);
100578
+ i0.ɵɵelement(0, "symphiq-roadmap-metrics", 14);
100722
100579
  } if (rf & 2) {
100723
100580
  const ctx_r0 = i0.ɵɵnextContext();
100724
- i0.ɵɵproperty("counts", ctx_r0.structureCounts())("viewMode", ctx_r0.viewMode());
100581
+ i0.ɵɵproperty("metrics", ctx_r0.roadmapMetrics())("viewMode", ctx_r0.viewMode());
100725
100582
  } }
100726
100583
  function UnifiedGoalCardComponent_Conditional_17_For_2_Case_1_Template(rf, ctx) { if (rf & 1) {
100727
100584
  i0.ɵɵnamespaceSVG();
@@ -100818,27 +100675,27 @@ class UnifiedGoalCardComponent {
100818
100675
  this.displayedSources = computed(() => {
100819
100676
  return (this.goal()?.sourceAnalyses ?? []).slice(0, 3);
100820
100677
  }, ...(ngDevMode ? [{ debugName: "displayedSources" }] : []));
100821
- this.structureCounts = computed(() => {
100678
+ this.roadmapMetrics = computed(() => {
100822
100679
  const g = this.goal();
100823
100680
  if (!g)
100824
100681
  return [];
100825
- const counts = [];
100682
+ const metrics = [];
100826
100683
  const objectives = g.objectives || [];
100827
100684
  const totalStrategies = objectives.reduce((sum, obj) => sum + (obj.strategies?.length || 0), 0);
100828
100685
  const totalRecommendations = objectives.reduce((sum, obj) => {
100829
100686
  return sum + (obj.strategies || []).reduce((sSum, s) => sSum + (s.recommendations?.length || 0), 0);
100830
100687
  }, 0);
100831
100688
  if (objectives.length > 0) {
100832
- counts.push({ icon: 'objectives', count: objectives.length });
100689
+ metrics.push({ icon: 'objectives', count: objectives.length });
100833
100690
  }
100834
100691
  if (totalStrategies > 0) {
100835
- counts.push({ icon: 'strategies', count: totalStrategies });
100692
+ metrics.push({ icon: 'strategies', count: totalStrategies });
100836
100693
  }
100837
100694
  if (totalRecommendations > 0) {
100838
- counts.push({ icon: 'recommendations', count: totalRecommendations });
100695
+ metrics.push({ icon: 'recommendations', count: totalRecommendations });
100839
100696
  }
100840
- return counts;
100841
- }, ...(ngDevMode ? [{ debugName: "structureCounts" }] : []));
100697
+ return metrics;
100698
+ }, ...(ngDevMode ? [{ debugName: "roadmapMetrics" }] : []));
100842
100699
  this.cardClasses = computed(() => {
100843
100700
  if (this.isDark()) {
100844
100701
  return 'bg-slate-800/50 border border-slate-700/50';
@@ -100930,7 +100787,7 @@ class UnifiedGoalCardComponent {
100930
100787
  }
100931
100788
  }
100932
100789
  static { this.ɵfac = function UnifiedGoalCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedGoalCardComponent)(); }; }
100933
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalCardComponent, selectors: [["symphiq-unified-goal-card"]], inputs: { goal: [1, "goal"], viewMode: [1, "viewMode"] }, outputs: { goalClick: "goalClick", sourceBadgeClick: "sourceBadgeClick", relatedMetricsClick: "relatedMetricsClick", learnMoreClick: "learnMoreClick" }, decls: 21, vars: 14, consts: [[1, "rounded-2xl", "p-6", "shadow-lg", "cursor-pointer", "transition-all", "duration-200", "hover:scale-[1.02]", "hover:shadow-xl", 3, "click", "ngClass"], [1, "flex", "items-start", "gap-4"], [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-start", "justify-between", "gap-3", "mb-2"], [1, "flex-1"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "font-semibold", "text-lg", "line-clamp-2", 3, "ngClass"], [3, "priority", "viewMode"], [1, "text-sm", "mb-4", "line-clamp-3", 3, "ngClass"], [1, "flex", "flex-wrap", "items-center", "gap-3", "mb-4"], [3, "timeframe", "viewMode"], [3, "counts", "viewMode"], [1, "flex", "flex-wrap", "gap-2", "pt-4", "border-t", 3, "ngClass"], ["type", "button", 1, "mt-4", "w-full", "flex", "items-center", "justify-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-medium", "transition-all", "hover:scale-[1.02]", 3, "ngClass"], [1, "mt-4"], [3, "buttonClick", "viewMode", "variant", "label"], ["type", "button", 1, "inline-flex", "items-center", "gap-1", "px-2", "py-1", "rounded-full", "text-xs", "font-medium", "transition-all", "hover:scale-105", 3, "ngClass"], [1, "px-2", "py-1", "rounded-full", "text-xs", "font-medium", 3, "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-1", "px-2", "py-1", "rounded-full", "text-xs", "font-medium", "transition-all", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], [1, "truncate", "max-w-[80px]"], [1, "opacity-60"], ["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"], ["type", "button", 1, "mt-4", "w-full", "flex", "items-center", "justify-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-medium", "transition-all", "hover:scale-[1.02]", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"]], template: function UnifiedGoalCardComponent_Template(rf, ctx) { if (rf & 1) {
100790
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedGoalCardComponent, selectors: [["symphiq-unified-goal-card"]], inputs: { goal: [1, "goal"], viewMode: [1, "viewMode"] }, outputs: { goalClick: "goalClick", sourceBadgeClick: "sourceBadgeClick", relatedMetricsClick: "relatedMetricsClick", learnMoreClick: "learnMoreClick" }, decls: 21, vars: 14, consts: [[1, "rounded-2xl", "p-6", "shadow-lg", "cursor-pointer", "transition-all", "duration-200", "hover:scale-[1.02]", "hover:shadow-xl", 3, "click", "ngClass"], [1, "flex", "items-start", "gap-4"], [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-start", "justify-between", "gap-3", "mb-2"], [1, "flex-1"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "font-semibold", "text-lg", "line-clamp-2", 3, "ngClass"], [3, "priority", "viewMode"], [1, "text-sm", "mb-4", "line-clamp-3", 3, "ngClass", "libSymphiqTooltip"], [1, "flex", "flex-wrap", "items-center", "gap-3", "mb-4"], [3, "timeframe", "viewMode"], [3, "metrics", "viewMode"], [1, "flex", "flex-wrap", "gap-2", "pt-4", "border-t", 3, "ngClass"], ["type", "button", 1, "mt-4", "w-full", "flex", "items-center", "justify-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-medium", "transition-all", "hover:scale-[1.02]", 3, "ngClass"], [1, "mt-4"], [3, "buttonClick", "viewMode", "variant", "label"], ["type", "button", 1, "inline-flex", "items-center", "gap-1", "px-2", "py-1", "rounded-full", "text-xs", "font-medium", "transition-all", "hover:scale-105", 3, "ngClass"], [1, "px-2", "py-1", "rounded-full", "text-xs", "font-medium", 3, "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-1", "px-2", "py-1", "rounded-full", "text-xs", "font-medium", "transition-all", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], [1, "truncate", "max-w-[80px]"], [1, "opacity-60"], ["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"], ["type", "button", 1, "mt-4", "w-full", "flex", "items-center", "justify-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-medium", "transition-all", "hover:scale-[1.02]", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"]], template: function UnifiedGoalCardComponent_Template(rf, ctx) { if (rf & 1) {
100934
100791
  i0.ɵɵelementStart(0, "div", 0);
100935
100792
  i0.ɵɵlistener("click", function UnifiedGoalCardComponent_Template_div_click_0_listener() { return ctx.onCardClick(); });
100936
100793
  i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
@@ -100947,10 +100804,10 @@ class UnifiedGoalCardComponent {
100947
100804
  i0.ɵɵelementEnd()();
100948
100805
  i0.ɵɵconditionalCreate(12, UnifiedGoalCardComponent_Conditional_12_Template, 1, 2, "symphiq-priority-badge", 10);
100949
100806
  i0.ɵɵelementEnd();
100950
- i0.ɵɵconditionalCreate(13, UnifiedGoalCardComponent_Conditional_13_Template, 2, 2, "p", 11);
100807
+ i0.ɵɵconditionalCreate(13, UnifiedGoalCardComponent_Conditional_13_Template, 2, 3, "p", 11);
100951
100808
  i0.ɵɵelementStart(14, "div", 12);
100952
100809
  i0.ɵɵconditionalCreate(15, UnifiedGoalCardComponent_Conditional_15_Template, 1, 2, "symphiq-timeframe-badge", 13);
100953
- i0.ɵɵconditionalCreate(16, UnifiedGoalCardComponent_Conditional_16_Template, 1, 2, "symphiq-structure-counts", 14);
100810
+ i0.ɵɵconditionalCreate(16, UnifiedGoalCardComponent_Conditional_16_Template, 1, 2, "symphiq-roadmap-metrics", 14);
100954
100811
  i0.ɵɵelementEnd();
100955
100812
  i0.ɵɵconditionalCreate(17, UnifiedGoalCardComponent_Conditional_17_Template, 4, 2, "div", 15);
100956
100813
  i0.ɵɵconditionalCreate(18, UnifiedGoalCardComponent_Conditional_18_Template, 4, 2, "button", 16);
@@ -100980,7 +100837,7 @@ class UnifiedGoalCardComponent {
100980
100837
  i0.ɵɵadvance(2);
100981
100838
  i0.ɵɵconditional(((tmp_7_0 = ctx.goal()) == null ? null : tmp_7_0.timeframe) ? 15 : -1);
100982
100839
  i0.ɵɵadvance();
100983
- i0.ɵɵconditional(ctx.structureCounts().length > 0 ? 16 : -1);
100840
+ i0.ɵɵconditional(ctx.roadmapMetrics().length > 0 ? 16 : -1);
100984
100841
  i0.ɵɵadvance();
100985
100842
  i0.ɵɵconditional((((tmp_9_0 = ctx.goal()) == null ? null : tmp_9_0.sourceAnalyses == null ? null : tmp_9_0.sourceAnalyses.length) ?? 0) > 0 ? 17 : -1);
100986
100843
  i0.ɵɵadvance();
@@ -100989,8 +100846,9 @@ class UnifiedGoalCardComponent {
100989
100846
  i0.ɵɵproperty("viewMode", ctx.viewMode())("variant", "button")("label", "Learn More");
100990
100847
  } }, dependencies: [CommonModule, i1$1.NgClass, PriorityBadgeComponent,
100991
100848
  TimeframeBadgeComponent,
100992
- StructureCountsComponent,
100993
- LearnMoreButtonComponent], encapsulation: 2, changeDetection: 0 }); }
100849
+ RoadmapMetricsComponent,
100850
+ LearnMoreButtonComponent,
100851
+ TooltipDirective], encapsulation: 2, changeDetection: 0 }); }
100994
100852
  }
100995
100853
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnifiedGoalCardComponent, [{
100996
100854
  type: Component,
@@ -101001,8 +100859,9 @@ class UnifiedGoalCardComponent {
101001
100859
  CommonModule,
101002
100860
  PriorityBadgeComponent,
101003
100861
  TimeframeBadgeComponent,
101004
- StructureCountsComponent,
101005
- LearnMoreButtonComponent
100862
+ RoadmapMetricsComponent,
100863
+ LearnMoreButtonComponent,
100864
+ TooltipDirective
101006
100865
  ],
101007
100866
  changeDetection: ChangeDetectionStrategy.OnPush,
101008
100867
  template: `
@@ -101035,7 +100894,7 @@ class UnifiedGoalCardComponent {
101035
100894
  </div>
101036
100895
 
101037
100896
  @if (goal()?.description) {
101038
- <p [ngClass]="descriptionClasses()" class="text-sm mb-4 line-clamp-3">{{ goal()!.description }}</p>
100897
+ <p [ngClass]="descriptionClasses()" class="text-sm mb-4 line-clamp-3" [libSymphiqTooltip]="goal()!.description">{{ goal()!.description }}</p>
101039
100898
  }
101040
100899
 
101041
100900
  <div class="flex flex-wrap items-center gap-3 mb-4">
@@ -101045,9 +100904,9 @@ class UnifiedGoalCardComponent {
101045
100904
  [viewMode]="viewMode()"
101046
100905
  />
101047
100906
  }
101048
- @if (structureCounts().length > 0) {
101049
- <symphiq-structure-counts
101050
- [counts]="structureCounts()"
100907
+ @if (roadmapMetrics().length > 0) {
100908
+ <symphiq-roadmap-metrics
100909
+ [metrics]="roadmapMetrics()"
101051
100910
  [viewMode]="viewMode()"
101052
100911
  />
101053
100912
  }
@@ -101120,7 +100979,7 @@ class UnifiedGoalCardComponent {
101120
100979
  `
101121
100980
  }]
101122
100981
  }], null, { goal: [{ type: i0.Input, args: [{ isSignal: true, alias: "goal", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], goalClick: [{ type: i0.Output, args: ["goalClick"] }], sourceBadgeClick: [{ type: i0.Output, args: ["sourceBadgeClick"] }], relatedMetricsClick: [{ type: i0.Output, args: ["relatedMetricsClick"] }], learnMoreClick: [{ type: i0.Output, args: ["learnMoreClick"] }] }); })();
101123
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalCardComponent, { className: "UnifiedGoalCardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-goal-card.component.ts", lineNumber: 135 }); })();
100982
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedGoalCardComponent, { className: "UnifiedGoalCardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-goal-card.component.ts", lineNumber: 137 }); })();
101124
100983
 
101125
100984
  const _forTrack0$6 = ($index, $item) => $item.id;
101126
100985
  const _forTrack1$1 = ($index, $item) => $item.id || $index;
@@ -101176,19 +101035,19 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_8_Condition
101176
101035
  i0.ɵɵelementEnd();
101177
101036
  i0.ɵɵconditionalCreate(10, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_8_Conditional_13_Conditional_10_Template, 5, 4, "div", 36);
101178
101037
  i0.ɵɵelementStart(11, "div", 37)(12, "div", 38)(13, "div", 39);
101179
- i0.ɵɵtext(14, "Shop Analyses");
101038
+ i0.ɵɵtext(14, "Shop Goals");
101180
101039
  i0.ɵɵelementEnd();
101181
101040
  i0.ɵɵelementStart(15, "div", 40);
101182
101041
  i0.ɵɵtext(16);
101183
101042
  i0.ɵɵelementEnd()();
101184
101043
  i0.ɵɵelementStart(17, "div", 38)(18, "div", 39);
101185
- i0.ɵɵtext(19, "Focus Area Analyses");
101044
+ i0.ɵɵtext(19, "Focus Area Goals");
101186
101045
  i0.ɵɵelementEnd();
101187
101046
  i0.ɵɵelementStart(20, "div", 40);
101188
101047
  i0.ɵɵtext(21);
101189
101048
  i0.ɵɵelementEnd()();
101190
101049
  i0.ɵɵelementStart(22, "div", 38)(23, "div", 39);
101191
- i0.ɵɵtext(24, "Metric Analyses");
101050
+ i0.ɵɵtext(24, "Metric Goals");
101192
101051
  i0.ɵɵelementEnd();
101193
101052
  i0.ɵɵelementStart(25, "div", 40);
101194
101053
  i0.ɵɵtext(26);
@@ -102237,15 +102096,25 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
102237
102096
  }
102238
102097
  countAnalysesByType(type) {
102239
102098
  const goals = this.unifiedGoals();
102240
- const uniqueIds = new Set();
102099
+ const uniqueGoalIds = new Set();
102100
+ const debugSources = [];
102241
102101
  for (const goal of goals) {
102242
102102
  for (const source of goal.sourceAnalyses || []) {
102243
- if (source.analysisType === type && source.analysisId !== undefined) {
102244
- uniqueIds.add(source.analysisId);
102103
+ if (source.analysisType === type) {
102104
+ debugSources.push({
102105
+ goalId: goal.id,
102106
+ sourceGoalId: source.sourceGoalId,
102107
+ analysisId: source.analysisId,
102108
+ analysisType: source.analysisType
102109
+ });
102110
+ if (source.sourceGoalId) {
102111
+ uniqueGoalIds.add(source.sourceGoalId);
102112
+ }
102245
102113
  }
102246
102114
  }
102247
102115
  }
102248
- return uniqueIds.size;
102116
+ console.log(`[countAnalysesByType] type=${type}, uniqueGoalIds=`, Array.from(uniqueGoalIds), 'sources=', debugSources);
102117
+ return uniqueGoalIds.size;
102249
102118
  }
102250
102119
  openSearch() {
102251
102120
  this.isSearchOpen.set(true);
@@ -102782,18 +102651,18 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
102782
102651
  </div>
102783
102652
  }
102784
102653
 
102785
- <!-- Source Analyses Breakdown -->
102654
+ <!-- Source Goals Breakdown -->
102786
102655
  <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
102787
102656
  <div [ngClass]="getSourceCountCardClasses('SHOP')" class="p-4 rounded-xl">
102788
- <div class="text-xs font-semibold uppercase mb-1">Shop Analyses</div>
102657
+ <div class="text-xs font-semibold uppercase mb-1">Shop Goals</div>
102789
102658
  <div class="text-3xl font-bold">{{ shopAnalysesCount() }}</div>
102790
102659
  </div>
102791
102660
  <div [ngClass]="getSourceCountCardClasses('FOCUS_AREA')" class="p-4 rounded-xl">
102792
- <div class="text-xs font-semibold uppercase mb-1">Focus Area Analyses</div>
102661
+ <div class="text-xs font-semibold uppercase mb-1">Focus Area Goals</div>
102793
102662
  <div class="text-3xl font-bold">{{ focusAreaAnalysesCount() }}</div>
102794
102663
  </div>
102795
102664
  <div [ngClass]="getSourceCountCardClasses('METRIC')" class="p-4 rounded-xl">
102796
- <div class="text-xs font-semibold uppercase mb-1">Metric Analyses</div>
102665
+ <div class="text-xs font-semibold uppercase mb-1">Metric Goals</div>
102797
102666
  <div class="text-3xl font-bold">{{ metricAnalysesCount() }}</div>
102798
102667
  </div>
102799
102668
  </div>