@eric-emg/symphiq-components 1.2.266 → 1.2.268

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.
@@ -55256,8 +55256,8 @@ const _forTrack1$3 = ($index, $item) => $item.calc.metric;
55256
55256
  function FunnelMetricsVisualizationComponent_For_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
55257
55257
  i0.ɵɵelementStart(0, "button", 7);
55258
55258
  i0.ɵɵnamespaceSVG();
55259
- i0.ɵɵelementStart(1, "svg", 15);
55260
- i0.ɵɵelement(2, "path", 19);
55259
+ i0.ɵɵelementStart(1, "svg", 16);
55260
+ i0.ɵɵelement(2, "path", 20);
55261
55261
  i0.ɵɵelementEnd()();
55262
55262
  } if (rf & 2) {
55263
55263
  const stage_r2 = i0.ɵɵnextContext().$implicit;
@@ -55265,13 +55265,24 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_6_Template(rf, ct
55265
55265
  i0.ɵɵproperty("ngClass", ctx_r2.infoIconClasses())("libSymphiqTooltip", ctx_r2.getMarkdownTooltipContent(stage_r2.stageMetric.description, ctx_r2.getMetricTitle(stage_r2.stageMetric)));
55266
55266
  } }
55267
55267
  function FunnelMetricsVisualizationComponent_For_4_Conditional_19_Template(rf, ctx) { if (rf & 1) {
55268
+ i0.ɵɵelementStart(0, "p", 12);
55269
+ i0.ɵɵtext(1);
55270
+ i0.ɵɵelementEnd();
55271
+ } if (rf & 2) {
55272
+ const stage_r2 = i0.ɵɵnextContext().$implicit;
55273
+ const ctx_r2 = i0.ɵɵnextContext();
55274
+ i0.ɵɵproperty("ngClass", ctx_r2.originalValueClasses());
55275
+ i0.ɵɵadvance();
55276
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.formatMetricValue(stage_r2.stageMetric.originalTargetValue, stage_r2.stageMetric.metric, false), " ");
55277
+ } }
55278
+ function FunnelMetricsVisualizationComponent_For_4_Conditional_21_Template(rf, ctx) { if (rf & 1) {
55268
55279
  i0.ɵɵelementStart(0, "div")(1, "p", 9);
55269
55280
  i0.ɵɵtext(2);
55270
55281
  i0.ɵɵelementEnd();
55271
- i0.ɵɵelementStart(3, "p", 11);
55282
+ i0.ɵɵelementStart(3, "p", 21);
55272
55283
  i0.ɵɵtext(4);
55273
55284
  i0.ɵɵelementEnd();
55274
- i0.ɵɵelement(5, "symphiq-pacing-status-badge", 20);
55285
+ i0.ɵɵelement(5, "symphiq-pacing-status-badge", 22);
55275
55286
  i0.ɵɵelementEnd();
55276
55287
  } if (rf & 2) {
55277
55288
  const stage_r2 = i0.ɵɵnextContext().$implicit;
@@ -55287,25 +55298,36 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_19_Template(rf, c
55287
55298
  i0.ɵɵadvance();
55288
55299
  i0.ɵɵproperty("viewMode", ctx_r2.viewMode())("pacingPercentage", stage_r2.pacingInfo.pacingPercentage)("status", stage_r2.pacingInfo.status)("showAsFullText", true)("showEmphasizedPercentage", true);
55289
55300
  } }
55290
- function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
55291
- i0.ɵɵelementStart(0, "button", 28);
55301
+ function FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
55302
+ i0.ɵɵelementStart(0, "button", 30);
55292
55303
  i0.ɵɵnamespaceSVG();
55293
- i0.ɵɵelementStart(1, "svg", 37);
55294
- i0.ɵɵelement(2, "path", 19);
55304
+ i0.ɵɵelementStart(1, "svg", 40);
55305
+ i0.ɵɵelement(2, "path", 20);
55295
55306
  i0.ɵɵelementEnd()();
55296
55307
  } if (rf & 2) {
55297
55308
  const metric_r5 = i0.ɵɵnextContext().$implicit;
55298
55309
  const ctx_r2 = i0.ɵɵnextContext(3);
55299
55310
  i0.ɵɵproperty("ngClass", ctx_r2.infoIconClasses())("libSymphiqTooltip", ctx_r2.getMarkdownTooltipContent(metric_r5.calc.description, ctx_r2.getMetricTitle(metric_r5.calc)));
55300
55311
  } }
55301
- function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
55302
- i0.ɵɵelementStart(0, "div")(1, "p", 30);
55312
+ function FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
55313
+ i0.ɵɵelementStart(0, "p", 35);
55314
+ i0.ɵɵtext(1);
55315
+ i0.ɵɵelementEnd();
55316
+ } if (rf & 2) {
55317
+ const metric_r5 = i0.ɵɵnextContext().$implicit;
55318
+ const ctx_r2 = i0.ɵɵnextContext(3);
55319
+ i0.ɵɵproperty("ngClass", ctx_r2.relatedOriginalValueClasses());
55320
+ i0.ɵɵadvance();
55321
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.formatMetricValue(metric_r5.calc.originalTargetValue, metric_r5.calc.metric, false), " ");
55322
+ } }
55323
+ function FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_19_Template(rf, ctx) { if (rf & 1) {
55324
+ i0.ɵɵelementStart(0, "div")(1, "p", 32);
55303
55325
  i0.ɵɵtext(2);
55304
55326
  i0.ɵɵelementEnd();
55305
- i0.ɵɵelementStart(3, "p", 32);
55327
+ i0.ɵɵelementStart(3, "p", 41);
55306
55328
  i0.ɵɵtext(4);
55307
55329
  i0.ɵɵelementEnd();
55308
- i0.ɵɵelement(5, "symphiq-pacing-status-badge", 38);
55330
+ i0.ɵɵelement(5, "symphiq-pacing-status-badge", 42);
55309
55331
  i0.ɵɵelementEnd();
55310
55332
  } if (rf & 2) {
55311
55333
  const metric_r5 = i0.ɵɵnextContext().$implicit;
@@ -55321,62 +55343,64 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditio
55321
55343
  i0.ɵɵadvance();
55322
55344
  i0.ɵɵproperty("viewMode", ctx_r2.viewMode())("pacingPercentage", metric_r5.pacingInfo.pacingPercentage)("status", metric_r5.pacingInfo.status)("showAsFullText", true)("isCompact", true)("showEmphasizedPercentage", true);
55323
55345
  } }
55324
- function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditional_26_Template(rf, ctx) { if (rf & 1) {
55346
+ function FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_28_Template(rf, ctx) { if (rf & 1) {
55325
55347
  const _r6 = i0.ɵɵgetCurrentView();
55326
- i0.ɵɵelementStart(0, "button", 35);
55327
- i0.ɵɵlistener("click", function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditional_26_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const metric_r5 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onEditRelatedMetricTarget(metric_r5.calc.metric)); });
55348
+ i0.ɵɵelementStart(0, "button", 38);
55349
+ i0.ɵɵlistener("click", function FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_28_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const metric_r5 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onEditRelatedMetricTarget(metric_r5.calc.metric)); });
55328
55350
  i0.ɵɵnamespaceSVG();
55329
- i0.ɵɵelementStart(1, "svg", 15);
55330
- i0.ɵɵelement(2, "path", 39);
55351
+ i0.ɵɵelementStart(1, "svg", 16);
55352
+ i0.ɵɵelement(2, "path", 43);
55331
55353
  i0.ɵɵelementEnd();
55332
55354
  i0.ɵɵnamespaceHTML();
55333
- i0.ɵɵelementStart(3, "span", 17);
55355
+ i0.ɵɵelementStart(3, "span", 18);
55334
55356
  i0.ɵɵtext(4, "Edit Target");
55335
55357
  i0.ɵɵelementEnd();
55336
- i0.ɵɵelementStart(5, "span", 18);
55358
+ i0.ɵɵelementStart(5, "span", 19);
55337
55359
  i0.ɵɵtext(6, "Edit");
55338
55360
  i0.ɵɵelementEnd()();
55339
55361
  } if (rf & 2) {
55340
55362
  const ctx_r2 = i0.ɵɵnextContext(4);
55341
55363
  i0.ɵɵproperty("ngClass", ctx_r2.editTargetButtonClasses());
55342
55364
  } }
55343
- function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Template(rf, ctx) { if (rf & 1) {
55365
+ function FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Template(rf, ctx) { if (rf & 1) {
55344
55366
  const _r4 = i0.ɵɵgetCurrentView();
55345
- i0.ɵɵelementStart(0, "div", 25)(1, "div", 26)(2, "p", 27);
55367
+ i0.ɵɵelementStart(0, "div", 27)(1, "div", 28)(2, "p", 29);
55346
55368
  i0.ɵɵtext(3);
55347
55369
  i0.ɵɵelementEnd();
55348
- i0.ɵɵconditionalCreate(4, FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditional_4_Template, 3, 2, "button", 28);
55370
+ i0.ɵɵconditionalCreate(4, FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_4_Template, 3, 2, "button", 30);
55349
55371
  i0.ɵɵelementEnd();
55350
- i0.ɵɵelementStart(5, "div", 29)(6, "div")(7, "p", 30);
55372
+ i0.ɵɵelementStart(5, "div", 31)(6, "div")(7, "p", 32);
55351
55373
  i0.ɵɵtext(8);
55352
55374
  i0.ɵɵelementEnd();
55353
- i0.ɵɵelementStart(9, "p", 31);
55375
+ i0.ɵɵelementStart(9, "p", 33);
55354
55376
  i0.ɵɵtext(10);
55355
55377
  i0.ɵɵelementEnd()();
55356
- i0.ɵɵelementStart(11, "div")(12, "p", 30);
55378
+ i0.ɵɵelementStart(11, "div")(12, "p", 32);
55357
55379
  i0.ɵɵtext(13);
55358
55380
  i0.ɵɵelementEnd();
55359
- i0.ɵɵelementStart(14, "p", 32);
55360
- i0.ɵɵtext(15);
55381
+ i0.ɵɵelementStart(14, "div", 34)(15, "p", 33);
55382
+ i0.ɵɵtext(16);
55361
55383
  i0.ɵɵelementEnd();
55362
- i0.ɵɵelement(16, "symphiq-target-change-badge", 33);
55384
+ i0.ɵɵconditionalCreate(17, FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_17_Template, 2, 2, "p", 35);
55363
55385
  i0.ɵɵelementEnd();
55364
- i0.ɵɵconditionalCreate(17, FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditional_17_Template, 6, 10, "div");
55386
+ i0.ɵɵelement(18, "symphiq-target-change-badge", 36);
55365
55387
  i0.ɵɵelementEnd();
55366
- i0.ɵɵelementStart(18, "div", 34)(19, "button", 35);
55367
- i0.ɵɵlistener("click", function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Template_button_click_19_listener() { const metric_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onViewRelatedMetricReport(metric_r5.calc.metric)); });
55388
+ i0.ɵɵconditionalCreate(19, FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_19_Template, 6, 10, "div");
55389
+ i0.ɵɵelementEnd();
55390
+ i0.ɵɵelementStart(20, "div", 37)(21, "button", 38);
55391
+ i0.ɵɵlistener("click", function FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Template_button_click_21_listener() { const metric_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onViewRelatedMetricReport(metric_r5.calc.metric)); });
55368
55392
  i0.ɵɵnamespaceSVG();
55369
- i0.ɵɵelementStart(20, "svg", 15);
55370
- i0.ɵɵelement(21, "path", 16);
55393
+ i0.ɵɵelementStart(22, "svg", 16);
55394
+ i0.ɵɵelement(23, "path", 17);
55371
55395
  i0.ɵɵelementEnd();
55372
55396
  i0.ɵɵnamespaceHTML();
55373
- i0.ɵɵelementStart(22, "span", 17);
55374
- i0.ɵɵtext(23, "View Report");
55375
- i0.ɵɵelementEnd();
55376
55397
  i0.ɵɵelementStart(24, "span", 18);
55377
- i0.ɵɵtext(25, "Report");
55398
+ i0.ɵɵtext(25, "View Report");
55399
+ i0.ɵɵelementEnd();
55400
+ i0.ɵɵelementStart(26, "span", 19);
55401
+ i0.ɵɵtext(27, "Report");
55378
55402
  i0.ɵɵelementEnd()();
55379
- i0.ɵɵconditionalCreate(26, FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Conditional_26_Template, 7, 1, "button", 36);
55403
+ i0.ɵɵconditionalCreate(28, FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Conditional_28_Template, 7, 1, "button", 39);
55380
55404
  i0.ɵɵelementEnd()();
55381
55405
  } if (rf & 2) {
55382
55406
  const metric_r5 = ctx.$implicit;
@@ -55400,28 +55424,30 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Template
55400
55424
  i0.ɵɵproperty("ngClass", ctx_r2.relatedLabelClasses());
55401
55425
  i0.ɵɵadvance();
55402
55426
  i0.ɵɵtextInterpolate1(" ", ctx_r2.currentYear(), " Target ");
55403
- i0.ɵɵadvance();
55427
+ i0.ɵɵadvance(2);
55404
55428
  i0.ɵɵproperty("ngClass", ctx_r2.relatedTargetValueClasses());
55405
55429
  i0.ɵɵadvance();
55406
55430
  i0.ɵɵtextInterpolate1(" ", ctx_r2.formatMetricValue(metric_r5.calc.targetValue, metric_r5.calc.metric, false), " ");
55407
55431
  i0.ɵɵadvance();
55432
+ i0.ɵɵconditional(metric_r5.calc.originalTargetValue !== undefined ? 17 : -1);
55433
+ i0.ɵɵadvance();
55408
55434
  i0.ɵɵproperty("viewMode", ctx_r2.viewMode())("percentageChange", metric_r5.calc.percentageIncrease)("metric", metric_r5.calc.metric)("priorYear", ctx_r2.priorYear())("isCompact", true);
55409
55435
  i0.ɵɵadvance();
55410
- i0.ɵɵconditional(metric_r5.pacingInfo ? 17 : -1);
55436
+ i0.ɵɵconditional(metric_r5.pacingInfo ? 19 : -1);
55411
55437
  i0.ɵɵadvance();
55412
55438
  i0.ɵɵproperty("ngClass", ctx_r2.relatedActionBarClasses());
55413
55439
  i0.ɵɵadvance();
55414
55440
  i0.ɵɵproperty("ngClass", ctx_r2.relatedActionButtonClasses());
55415
55441
  i0.ɵɵadvance(7);
55416
- i0.ɵɵconditional(ctx_r2.hasExistingTargets() ? 26 : -1);
55442
+ i0.ɵɵconditional(ctx_r2.hasExistingTargets() ? 28 : -1);
55417
55443
  } }
55418
- function FunnelMetricsVisualizationComponent_For_4_Conditional_28_Template(rf, ctx) { if (rf & 1) {
55419
- i0.ɵɵelement(0, "div", 21);
55420
- i0.ɵɵelementStart(1, "div", 22)(2, "p", 23);
55444
+ function FunnelMetricsVisualizationComponent_For_4_Conditional_30_Template(rf, ctx) { if (rf & 1) {
55445
+ i0.ɵɵelement(0, "div", 23);
55446
+ i0.ɵɵelementStart(1, "div", 24)(2, "p", 25);
55421
55447
  i0.ɵɵtext(3, " Related Metrics ");
55422
55448
  i0.ɵɵelementEnd();
55423
- i0.ɵɵelementStart(4, "div", 24);
55424
- i0.ɵɵrepeaterCreate(5, FunnelMetricsVisualizationComponent_For_4_Conditional_28_For_6_Template, 27, 21, "div", 25, _forTrack1$3);
55449
+ i0.ɵɵelementStart(4, "div", 26);
55450
+ i0.ɵɵrepeaterCreate(5, FunnelMetricsVisualizationComponent_For_4_Conditional_30_For_6_Template, 29, 22, "div", 27, _forTrack1$3);
55425
55451
  i0.ɵɵelementEnd()();
55426
55452
  } if (rf & 2) {
55427
55453
  const stage_r2 = i0.ɵɵnextContext().$implicit;
@@ -55447,27 +55473,29 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
55447
55473
  i0.ɵɵelementStart(13, "div")(14, "p", 9);
55448
55474
  i0.ɵɵtext(15);
55449
55475
  i0.ɵɵelementEnd();
55450
- i0.ɵɵelementStart(16, "p", 11);
55451
- i0.ɵɵtext(17);
55476
+ i0.ɵɵelementStart(16, "div", 11)(17, "p", 10);
55477
+ i0.ɵɵtext(18);
55478
+ i0.ɵɵelementEnd();
55479
+ i0.ɵɵconditionalCreate(19, FunnelMetricsVisualizationComponent_For_4_Conditional_19_Template, 2, 2, "p", 12);
55452
55480
  i0.ɵɵelementEnd();
55453
- i0.ɵɵelement(18, "symphiq-target-change-badge", 12);
55481
+ i0.ɵɵelement(20, "symphiq-target-change-badge", 13);
55454
55482
  i0.ɵɵelementEnd();
55455
- i0.ɵɵconditionalCreate(19, FunnelMetricsVisualizationComponent_For_4_Conditional_19_Template, 6, 9, "div");
55483
+ i0.ɵɵconditionalCreate(21, FunnelMetricsVisualizationComponent_For_4_Conditional_21_Template, 6, 9, "div");
55456
55484
  i0.ɵɵelementEnd();
55457
- i0.ɵɵelementStart(20, "div", 13)(21, "button", 14);
55458
- i0.ɵɵlistener("click", function FunnelMetricsVisualizationComponent_For_4_Template_button_click_21_listener() { const stage_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onViewStageReport(stage_r2.stageMetric.metric)); });
55485
+ i0.ɵɵelementStart(22, "div", 14)(23, "button", 15);
55486
+ i0.ɵɵlistener("click", function FunnelMetricsVisualizationComponent_For_4_Template_button_click_23_listener() { const stage_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onViewStageReport(stage_r2.stageMetric.metric)); });
55459
55487
  i0.ɵɵnamespaceSVG();
55460
- i0.ɵɵelementStart(22, "svg", 15);
55461
- i0.ɵɵelement(23, "path", 16);
55488
+ i0.ɵɵelementStart(24, "svg", 16);
55489
+ i0.ɵɵelement(25, "path", 17);
55462
55490
  i0.ɵɵelementEnd();
55463
55491
  i0.ɵɵnamespaceHTML();
55464
- i0.ɵɵelementStart(24, "span", 17);
55465
- i0.ɵɵtext(25, "View Report");
55466
- i0.ɵɵelementEnd();
55467
55492
  i0.ɵɵelementStart(26, "span", 18);
55468
- i0.ɵɵtext(27, "Report");
55493
+ i0.ɵɵtext(27, "View Report");
55494
+ i0.ɵɵelementEnd();
55495
+ i0.ɵɵelementStart(28, "span", 19);
55496
+ i0.ɵɵtext(29, "Report");
55469
55497
  i0.ɵɵelementEnd()()();
55470
- i0.ɵɵconditionalCreate(28, FunnelMetricsVisualizationComponent_For_4_Conditional_28_Template, 7, 1);
55498
+ i0.ɵɵconditionalCreate(30, FunnelMetricsVisualizationComponent_For_4_Conditional_30_Template, 7, 1);
55471
55499
  i0.ɵɵelementEnd();
55472
55500
  } if (rf & 2) {
55473
55501
  const stage_r2 = ctx.$implicit;
@@ -55491,20 +55519,22 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
55491
55519
  i0.ɵɵproperty("ngClass", ctx_r2.labelClasses());
55492
55520
  i0.ɵɵadvance();
55493
55521
  i0.ɵɵtextInterpolate1(" ", ctx_r2.currentYear(), " Target ");
55494
- i0.ɵɵadvance();
55522
+ i0.ɵɵadvance(2);
55495
55523
  i0.ɵɵproperty("ngClass", ctx_r2.targetValueClasses());
55496
55524
  i0.ɵɵadvance();
55497
55525
  i0.ɵɵtextInterpolate1(" ", ctx_r2.formatMetricValue(stage_r2.stageMetric.targetValue, stage_r2.stageMetric.metric, false), " ");
55498
55526
  i0.ɵɵadvance();
55527
+ i0.ɵɵconditional(stage_r2.stageMetric.originalTargetValue !== undefined ? 19 : -1);
55528
+ i0.ɵɵadvance();
55499
55529
  i0.ɵɵproperty("viewMode", ctx_r2.viewMode())("percentageChange", stage_r2.stageMetric.percentageIncrease)("metric", stage_r2.stageMetric.metric)("priorYear", ctx_r2.priorYear());
55500
55530
  i0.ɵɵadvance();
55501
- i0.ɵɵconditional(stage_r2.pacingInfo ? 19 : -1);
55531
+ i0.ɵɵconditional(stage_r2.pacingInfo ? 21 : -1);
55502
55532
  i0.ɵɵadvance();
55503
55533
  i0.ɵɵproperty("ngClass", ctx_r2.stageActionBarClasses());
55504
55534
  i0.ɵɵadvance();
55505
55535
  i0.ɵɵproperty("ngClass", ctx_r2.actionButtonClasses());
55506
55536
  i0.ɵɵadvance(7);
55507
- i0.ɵɵconditional(stage_r2.relatedMetrics.length > 0 ? 28 : -1);
55537
+ i0.ɵɵconditional(stage_r2.relatedMetrics.length > 0 ? 30 : -1);
55508
55538
  } }
55509
55539
  class FunnelMetricsVisualizationComponent {
55510
55540
  constructor() {
@@ -55583,6 +55613,11 @@ class FunnelMetricsVisualizationComponent {
55583
55613
  ? 'text-purple-300'
55584
55614
  : 'text-purple-700';
55585
55615
  }
55616
+ originalValueClasses() {
55617
+ return this.viewMode() === ViewModeEnum.DARK
55618
+ ? 'text-slate-400'
55619
+ : 'text-slate-500';
55620
+ }
55586
55621
  projectedValueClasses() {
55587
55622
  return this.viewMode() === ViewModeEnum.DARK
55588
55623
  ? 'text-amber-300'
@@ -55623,6 +55658,11 @@ class FunnelMetricsVisualizationComponent {
55623
55658
  ? 'text-purple-200'
55624
55659
  : 'text-purple-800';
55625
55660
  }
55661
+ relatedOriginalValueClasses() {
55662
+ return this.viewMode() === ViewModeEnum.DARK
55663
+ ? 'text-slate-400'
55664
+ : 'text-slate-500';
55665
+ }
55626
55666
  relatedProjectedValueClasses() {
55627
55667
  return this.viewMode() === ViewModeEnum.DARK
55628
55668
  ? 'text-amber-200'
@@ -55691,11 +55731,11 @@ class FunnelMetricsVisualizationComponent {
55691
55731
  this.editRelatedMetricTarget.emit(metric);
55692
55732
  }
55693
55733
  static { this.ɵfac = function FunnelMetricsVisualizationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FunnelMetricsVisualizationComponent)(); }; }
55694
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FunnelMetricsVisualizationComponent, selectors: [["symphiq-funnel-metrics-visualization"]], inputs: { viewMode: [1, "viewMode"], calculations: [1, "calculations"], pacingMetrics: [1, "pacingMetrics"], hasExistingTargets: [1, "hasExistingTargets"] }, outputs: { viewStageReport: "viewStageReport", viewRelatedMetricReport: "viewRelatedMetricReport", editRelatedMetricTarget: "editRelatedMetricTarget" }, decls: 5, vars: 0, consts: [[1, "space-y-6"], [1, "space-y-8"], [1, "rounded-xl", "p-6", "border-2", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "flex-1"], [1, "flex", "items-center", "gap-2", "mb-1"], [1, "text-lg", "sm:text-xl", "font-bold", "leading-tight", "m-0", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-6", "h-6", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "ngClass", "libSymphiqTooltip"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "lg:grid-cols-3", "gap-6", "mb-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [3, "viewMode", "percentageChange", "metric", "priorYear"], [1, "mt-6", "pt-4", "border-t", "flex", "justify-start", 3, "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-4", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 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 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"], [1, "hidden", "sm:inline"], [1, "sm:hidden"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText", "showEmphasizedPercentage"], [1, "my-8"], [1, "space-y-3"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-3", 3, "ngClass"], [1, "grid", "gap-3"], [1, "p-4", "rounded-lg", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mb-4"], [1, "text-sm", "sm:text-base", "font-semibold", "leading-tight", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-5", "h-5", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "ngClass", "libSymphiqTooltip"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "lg:grid-cols-3", "gap-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1.5", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "text-lg", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "percentageChange", "metric", "priorYear", "isCompact"], [1, "mt-6", "pt-4", "border-t", "flex", "justify-between", "items-center", 3, "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-3", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 3, "click", "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-3", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText", "isCompact", "showEmphasizedPercentage"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"]], template: function FunnelMetricsVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
55734
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FunnelMetricsVisualizationComponent, selectors: [["symphiq-funnel-metrics-visualization"]], inputs: { viewMode: [1, "viewMode"], calculations: [1, "calculations"], pacingMetrics: [1, "pacingMetrics"], hasExistingTargets: [1, "hasExistingTargets"] }, outputs: { viewStageReport: "viewStageReport", viewRelatedMetricReport: "viewRelatedMetricReport", editRelatedMetricTarget: "editRelatedMetricTarget" }, decls: 5, vars: 0, consts: [[1, "space-y-6"], [1, "space-y-8"], [1, "rounded-xl", "p-6", "border-2", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "flex-1"], [1, "flex", "items-center", "gap-2", "mb-1"], [1, "text-lg", "sm:text-xl", "font-bold", "leading-tight", "m-0", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-6", "h-6", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "ngClass", "libSymphiqTooltip"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "lg:grid-cols-3", "gap-6", "mb-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "flex", "items-baseline", "gap-2", "mb-3"], [1, "text-base", "line-through", "opacity-60", 3, "ngClass"], [3, "viewMode", "percentageChange", "metric", "priorYear"], [1, "mt-6", "pt-4", "border-t", "flex", "justify-start", 3, "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-4", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 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 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"], [1, "hidden", "sm:inline"], [1, "sm:hidden"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText", "showEmphasizedPercentage"], [1, "my-8"], [1, "space-y-3"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-3", 3, "ngClass"], [1, "grid", "gap-3"], [1, "p-4", "rounded-lg", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mb-4"], [1, "text-sm", "sm:text-base", "font-semibold", "leading-tight", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-5", "h-5", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "ngClass", "libSymphiqTooltip"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "lg:grid-cols-3", "gap-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1.5", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "flex", "items-baseline", "gap-2", "mb-2"], [1, "text-sm", "line-through", "opacity-60", 3, "ngClass"], [3, "viewMode", "percentageChange", "metric", "priorYear", "isCompact"], [1, "mt-6", "pt-4", "border-t", "flex", "justify-between", "items-center", 3, "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-3", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 3, "click", "ngClass"], ["type", "button", 1, "inline-flex", "items-center", "gap-2", "px-3", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"], [1, "text-lg", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText", "isCompact", "showEmphasizedPercentage"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"]], template: function FunnelMetricsVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
55695
55735
  i0.ɵɵelementStart(0, "div", 0);
55696
55736
  i0.ɵɵelement(1, "symphiq-tooltip-container");
55697
55737
  i0.ɵɵelementStart(2, "div", 1);
55698
- i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template, 29, 20, "div", 2, _forTrack0$j);
55738
+ i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template, 31, 21, "div", 2, _forTrack0$j);
55699
55739
  i0.ɵɵelementEnd()();
55700
55740
  } if (rf & 2) {
55701
55741
  i0.ɵɵadvance(3);
@@ -55751,9 +55791,16 @@ class FunnelMetricsVisualizationComponent {
55751
55791
  <p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
55752
55792
  {{ currentYear() }} Target
55753
55793
  </p>
55754
- <p [ngClass]="targetValueClasses()" class="text-2xl font-bold mb-3">
55755
- {{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric, false) }}
55756
- </p>
55794
+ <div class="flex items-baseline gap-2 mb-3">
55795
+ <p [ngClass]="targetValueClasses()" class="text-2xl font-bold">
55796
+ {{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric, false) }}
55797
+ </p>
55798
+ @if (stage.stageMetric.originalTargetValue !== undefined) {
55799
+ <p [ngClass]="originalValueClasses()" class="text-base line-through opacity-60">
55800
+ {{ formatMetricValue(stage.stageMetric.originalTargetValue, stage.stageMetric.metric, false) }}
55801
+ </p>
55802
+ }
55803
+ </div>
55757
55804
  <symphiq-target-change-badge
55758
55805
  [viewMode]="viewMode()"
55759
55806
  [percentageChange]="stage.stageMetric.percentageIncrease"
@@ -55835,9 +55882,16 @@ class FunnelMetricsVisualizationComponent {
55835
55882
  <p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
55836
55883
  {{ currentYear() }} Target
55837
55884
  </p>
55838
- <p [ngClass]="relatedTargetValueClasses()" class="text-lg font-bold mb-2">
55839
- {{ formatMetricValue(metric.calc.targetValue, metric.calc.metric, false) }}
55840
- </p>
55885
+ <div class="flex items-baseline gap-2 mb-2">
55886
+ <p [ngClass]="relatedTargetValueClasses()" class="text-lg font-bold">
55887
+ {{ formatMetricValue(metric.calc.targetValue, metric.calc.metric, false) }}
55888
+ </p>
55889
+ @if (metric.calc.originalTargetValue !== undefined) {
55890
+ <p [ngClass]="relatedOriginalValueClasses()" class="text-sm line-through opacity-60">
55891
+ {{ formatMetricValue(metric.calc.originalTargetValue, metric.calc.metric, false) }}
55892
+ </p>
55893
+ }
55894
+ </div>
55841
55895
  <symphiq-target-change-badge
55842
55896
  [viewMode]="viewMode()"
55843
55897
  [percentageChange]="metric.calc.percentageIncrease"
@@ -55904,7 +55958,7 @@ class FunnelMetricsVisualizationComponent {
55904
55958
  `
55905
55959
  }]
55906
55960
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], calculations: [{ type: i0.Input, args: [{ isSignal: true, alias: "calculations", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], hasExistingTargets: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasExistingTargets", required: false }] }], viewStageReport: [{ type: i0.Output, args: ["viewStageReport"] }], viewRelatedMetricReport: [{ type: i0.Output, args: ["viewRelatedMetricReport"] }], editRelatedMetricTarget: [{ type: i0.Output, args: ["editRelatedMetricTarget"] }] }); })();
55907
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber: 211 }); })();
55961
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber: 225 }); })();
55908
55962
 
55909
55963
  function StickySubmitBarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
55910
55964
  i0.ɵɵelementStart(0, "div", 4);
@@ -59068,12 +59122,24 @@ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional
59068
59122
  function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_12_Template(rf, ctx) { if (rf & 1) {
59069
59123
  i0.ɵɵtext(0, " -- ");
59070
59124
  } }
59071
- function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Template(rf, ctx) { if (rf & 1) {
59125
+ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Conditional_0_Template(rf, ctx) { if (rf & 1) {
59072
59126
  i0.ɵɵtext(0);
59073
59127
  } if (rf & 2) {
59074
- const ctx_r1 = i0.ɵɵnextContext(4);
59128
+ const ctx_r1 = i0.ɵɵnextContext(5);
59129
+ i0.ɵɵtextInterpolate1(" +", ctx_r1.formatPercentage(ctx_r1.Math.abs(ctx_r1.animatedGapPercentage()), 1), " ");
59130
+ } }
59131
+ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
59132
+ i0.ɵɵtext(0);
59133
+ } if (rf & 2) {
59134
+ const ctx_r1 = i0.ɵɵnextContext(5);
59075
59135
  i0.ɵɵtextInterpolate2(" ", ctx_r1.animatedGapPercentage() > 0 ? "+" : "", "", ctx_r1.formatPercentage(ctx_r1.animatedGapPercentage(), 1), " ");
59076
59136
  } }
59137
+ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Template(rf, ctx) { if (rf & 1) {
59138
+ i0.ɵɵconditionalCreate(0, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Conditional_0_Template, 1, 1)(1, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Conditional_1_Template, 1, 2);
59139
+ } if (rf & 2) {
59140
+ const ctx_r1 = i0.ɵɵnextContext(4);
59141
+ i0.ɵɵconditional(ctx_r1.isPaceAhead() ? 0 : 1);
59142
+ } }
59077
59143
  function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_22_Template(rf, ctx) { if (rf & 1) {
59078
59144
  i0.ɵɵtext(0, " -- ");
59079
59145
  } }
@@ -59087,13 +59153,13 @@ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional
59087
59153
  i0.ɵɵelement(5, "div", 46);
59088
59154
  i0.ɵɵelementEnd();
59089
59155
  i0.ɵɵelementStart(6, "div", 48)(7, "div")(8, "p", 49);
59090
- i0.ɵɵtext(9, " Gap to Close ");
59156
+ i0.ɵɵtext(9);
59091
59157
  i0.ɵɵelementEnd();
59092
59158
  i0.ɵɵelementStart(10, "p", 50);
59093
59159
  i0.ɵɵconditionalCreate(11, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_11_Template, 1, 1)(12, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_12_Template, 1, 0);
59094
59160
  i0.ɵɵelementEnd()();
59095
59161
  i0.ɵɵelementStart(13, "div")(14, "div", 51)(15, "p", 21);
59096
- i0.ɵɵtext(16, " Additional Growth Needed ");
59162
+ i0.ɵɵtext(16);
59097
59163
  i0.ɵɵelementEnd();
59098
59164
  i0.ɵɵelementStart(17, "button", 33);
59099
59165
  i0.ɵɵlistener("click", function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Template_button_click_17_listener($event) { i0.ɵɵrestoreView(_r8); return i0.ɵɵresetView($event.stopPropagation()); });
@@ -59103,7 +59169,7 @@ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional
59103
59169
  i0.ɵɵelementEnd()()();
59104
59170
  i0.ɵɵnamespaceHTML();
59105
59171
  i0.ɵɵelementStart(20, "p", 50);
59106
- i0.ɵɵconditionalCreate(21, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Template, 1, 2)(22, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_22_Template, 1, 0);
59172
+ i0.ɵɵconditionalCreate(21, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_21_Template, 2, 1)(22, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Conditional_22_Template, 1, 0);
59107
59173
  i0.ɵɵelementEnd()()()();
59108
59174
  } if (rf & 2) {
59109
59175
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -59112,19 +59178,23 @@ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional
59112
59178
  i0.ɵɵadvance();
59113
59179
  i0.ɵɵproperty("ngClass", ctx_r1.dividerLabelClasses());
59114
59180
  i0.ɵɵadvance();
59115
- i0.ɵɵtextInterpolate1(" ", ctx_r1.currentYear(), " YTD Gap ");
59181
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.gapDividerLabel(), " ");
59116
59182
  i0.ɵɵadvance();
59117
59183
  i0.ɵɵproperty("ngClass", ctx_r1.dividerBorderClasses());
59118
59184
  i0.ɵɵadvance(3);
59119
59185
  i0.ɵɵproperty("ngClass", ctx_r1.calculatedLabelClasses());
59120
- i0.ɵɵadvance(2);
59186
+ i0.ɵɵadvance();
59187
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.gapLabel(), " ");
59188
+ i0.ɵɵadvance();
59121
59189
  i0.ɵɵproperty("ngClass", ctx_r1.calculatedSecondaryClasses());
59122
59190
  i0.ɵɵadvance();
59123
59191
  i0.ɵɵconditional(ctx_r1.isTargetValid() ? 11 : 12);
59124
59192
  i0.ɵɵadvance(4);
59125
59193
  i0.ɵɵproperty("ngClass", ctx_r1.calculatedLabelClasses());
59126
- i0.ɵɵadvance(2);
59127
- i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.additionalGrowthTooltip);
59194
+ i0.ɵɵadvance();
59195
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.gapPercentageLabel(), " ");
59196
+ i0.ɵɵadvance();
59197
+ i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.gapTooltip());
59128
59198
  i0.ɵɵadvance(3);
59129
59199
  i0.ɵɵproperty("ngClass", ctx_r1.calculatedSecondaryClasses());
59130
59200
  i0.ɵɵadvance();
@@ -59156,7 +59226,7 @@ function EditMetricTargetModalComponent_Conditional_0_Conditional_36_Template(rf
59156
59226
  i0.ɵɵelementStart(22, "p", 50);
59157
59227
  i0.ɵɵconditionalCreate(23, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_23_Template, 1, 2)(24, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_24_Template, 1, 0);
59158
59228
  i0.ɵɵelementEnd()()()();
59159
- i0.ɵɵconditionalCreate(25, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Template, 23, 12, "div", 44);
59229
+ i0.ɵɵconditionalCreate(25, EditMetricTargetModalComponent_Conditional_0_Conditional_36_Conditional_25_Template, 23, 14, "div", 44);
59160
59230
  i0.ɵɵelementEnd();
59161
59231
  } if (rf & 2) {
59162
59232
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -59420,14 +59490,43 @@ class EditMetricTargetModalComponent {
59420
59490
  const percentage = (amount / projection) * 100;
59421
59491
  return { amount, percentage };
59422
59492
  }, ...(ngDevMode ? [{ debugName: "gapToClose" }] : []));
59493
+ this.isPaceAhead = computed(() => {
59494
+ const target = this.calculatedTarget();
59495
+ const projection = this.currentPaceProjection();
59496
+ if (target === 0 || projection === 0)
59497
+ return false;
59498
+ if (this.isIncreaseBad()) {
59499
+ return projection < target;
59500
+ }
59501
+ return projection > target;
59502
+ }, ...(ngDevMode ? [{ debugName: "isPaceAhead" }] : []));
59503
+ this.gapLabel = computed(() => {
59504
+ return this.isPaceAhead() ? 'Ahead by' : 'Gap to Close';
59505
+ }, ...(ngDevMode ? [{ debugName: "gapLabel" }] : []));
59506
+ this.gapPercentageLabel = computed(() => {
59507
+ return this.isPaceAhead() ? 'Ahead of Target' : 'Additional Growth Needed';
59508
+ }, ...(ngDevMode ? [{ debugName: "gapPercentageLabel" }] : []));
59509
+ this.gapDividerLabel = computed(() => {
59510
+ return this.isPaceAhead()
59511
+ ? `${this.currentYear()} Pace Status`
59512
+ : `${this.currentYear()} YTD Gap`;
59513
+ }, ...(ngDevMode ? [{ debugName: "gapDividerLabel" }] : []));
59514
+ this.gapTooltip = computed(() => {
59515
+ if (this.isPaceAhead()) {
59516
+ return {
59517
+ title: 'Ahead of Target',
59518
+ markdown: 'This percentage represents how far ahead your current projected pace is compared to your target. You are on track to exceed your goal if you maintain your current performance.'
59519
+ };
59520
+ }
59521
+ return {
59522
+ title: 'Additional Growth Needed',
59523
+ markdown: 'This percentage represents the additional improvement required beyond your current projected pace to reach your target. It shows how much more change is needed to close the gap between your projected performance and your goal.'
59524
+ };
59525
+ }, ...(ngDevMode ? [{ debugName: "gapTooltip" }] : []));
59423
59526
  this.currentPaceProjectionTooltip = {
59424
59527
  title: 'Current Pace Projection',
59425
59528
  markdown: 'This is your projected year-end value based on your current performance trends. It extrapolates your year-to-date results to estimate where you will finish the year if you maintain your current pace.'
59426
59529
  };
59427
- this.additionalGrowthTooltip = {
59428
- title: 'Additional Growth Needed',
59429
- markdown: 'This percentage represents the additional improvement required beyond your current projected pace to reach your target. It shows how much more change is needed to close the gap between your projected performance and your goal.'
59430
- };
59431
59530
  effect(() => {
59432
59531
  if (this.isOpen()) {
59433
59532
  const metricData = this.metricData();
@@ -60022,14 +60121,14 @@ class EditMetricTargetModalComponent {
60022
60121
  <div class="absolute top-0 left-0 right-0 flex items-center -translate-y-1/2">
60023
60122
  <div class="flex-1 h-px" [ngClass]="dividerBorderClasses()"></div>
60024
60123
  <span [ngClass]="dividerLabelClasses()" class="px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap">
60025
- {{ currentYear() }} YTD Gap
60124
+ {{ gapDividerLabel() }}
60026
60125
  </span>
60027
60126
  <div class="flex-1 h-px" [ngClass]="dividerBorderClasses()"></div>
60028
60127
  </div>
60029
60128
  <div class="grid grid-cols-2 gap-4 pt-2">
60030
60129
  <div>
60031
60130
  <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
60032
- Gap to Close
60131
+ {{ gapLabel() }}
60033
60132
  </p>
60034
60133
  <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
60035
60134
  @if (isTargetValid()) {
@@ -60042,13 +60141,13 @@ class EditMetricTargetModalComponent {
60042
60141
  <div>
60043
60142
  <div class="flex items-center gap-1 mb-1">
60044
60143
  <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider">
60045
- Additional Growth Needed
60144
+ {{ gapPercentageLabel() }}
60046
60145
  </p>
60047
60146
  <button
60048
60147
  type="button"
60049
60148
  [ngClass]="infoIconClasses()"
60050
60149
  class="flex-shrink-0 w-4 h-4 rounded-full inline-flex items-center justify-center transition-colors"
60051
- [libSymphiqTooltip]="additionalGrowthTooltip"
60150
+ [libSymphiqTooltip]="gapTooltip()"
60052
60151
  tooltipType="markdown"
60053
60152
  tooltipPosition="top"
60054
60153
  (click)="$event.stopPropagation()">
@@ -60059,7 +60158,11 @@ class EditMetricTargetModalComponent {
60059
60158
  </div>
60060
60159
  <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
60061
60160
  @if (isTargetValid()) {
60062
- {{ animatedGapPercentage() > 0 ? '+' : '' }}{{ formatPercentage(animatedGapPercentage(), 1) }}
60161
+ @if (isPaceAhead()) {
60162
+ +{{ formatPercentage(Math.abs(animatedGapPercentage()), 1) }}
60163
+ } @else {
60164
+ {{ animatedGapPercentage() > 0 ? '+' : '' }}{{ formatPercentage(animatedGapPercentage(), 1) }}
60165
+ }
60063
60166
  } @else {
60064
60167
  --
60065
60168
  }
@@ -60106,7 +60209,7 @@ class EditMetricTargetModalComponent {
60106
60209
  type: HostListener,
60107
60210
  args: ['document:keydown.escape']
60108
60211
  }] }); })();
60109
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditMetricTargetModalComponent, { className: "EditMetricTargetModalComponent", filePath: "lib/components/revenue-calculator-dashboard/edit-metric-target-modal.component.ts", lineNumber: 327 }); })();
60212
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditMetricTargetModalComponent, { className: "EditMetricTargetModalComponent", filePath: "lib/components/revenue-calculator-dashboard/edit-metric-target-modal.component.ts", lineNumber: 331 }); })();
60110
60213
 
60111
60214
  const _c0$q = ["absoluteInputRef"];
60112
60215
  const _c1$b = ["percentageInputRef"];
@@ -60508,11 +60611,11 @@ function InitialTargetSettingComponent_Conditional_41_Template(rf, ctx) { if (rf
60508
60611
  function InitialTargetSettingComponent_Conditional_42_Template(rf, ctx) { if (rf & 1) {
60509
60612
  const _r11 = i0.ɵɵgetCurrentView();
60510
60613
  i0.ɵɵelementStart(0, "div", 33)(1, "p", 52);
60511
- i0.ɵɵtext(2, " Edit individual metric targets above, then save your changes. ");
60614
+ i0.ɵɵtext(2, " You have unsaved target changes. ");
60512
60615
  i0.ɵɵelementEnd();
60513
60616
  i0.ɵɵelementStart(3, "div", 72)(4, "button", 73);
60514
60617
  i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_42_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onDiscardChanges()); });
60515
- i0.ɵɵtext(5, " Discard Changes ");
60618
+ i0.ɵɵtext(5, " Reset ");
60516
60619
  i0.ɵɵelementEnd();
60517
60620
  i0.ɵɵelementStart(6, "button", 73);
60518
60621
  i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_42_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSaveTargets()); });
@@ -60544,6 +60647,11 @@ class InitialTargetSettingComponent {
60544
60647
  this.editRelatedMetricTarget = output();
60545
60648
  this.saveTargetsClick = output();
60546
60649
  this.discardChangesClick = output();
60650
+ this.targetsUpdated = output();
60651
+ this.pendingTargetChanges = signal(new Map(), ...(ngDevMode ? [{ debugName: "pendingTargetChanges" }] : []));
60652
+ this.hasPendingChanges = computed(() => {
60653
+ return this.pendingTargetChanges().size > 0;
60654
+ }, ...(ngDevMode ? [{ debugName: "hasPendingChanges" }] : []));
60547
60655
  this.inputMode = signal('absolute', ...(ngDevMode ? [{ debugName: "inputMode" }] : []));
60548
60656
  this.absoluteInput = signal(null, ...(ngDevMode ? [{ debugName: "absoluteInput" }] : []));
60549
60657
  this.percentageInput = signal(null, ...(ngDevMode ? [{ debugName: "percentageInput" }] : []));
@@ -60628,53 +60736,70 @@ class InitialTargetSettingComponent {
60628
60736
  }, ...(ngDevMode ? [{ debugName: "isTargetValid" }] : []));
60629
60737
  this.displayedMetricCalculations = computed(() => {
60630
60738
  const targets = this.targets();
60739
+ const pendingChanges = this.pendingTargetChanges();
60740
+ let baseResults = [];
60631
60741
  if (targets && targets.length > 0) {
60632
- return this.buildCalculationsFromTargets(targets);
60633
- }
60634
- const response = this.storedResponse();
60635
- if (!response) {
60636
- return [];
60742
+ baseResults = this.buildCalculationsFromTargets(targets);
60637
60743
  }
60638
- const results = [];
60639
- if (response.funnelMetricValues) {
60640
- response.funnelMetricValues.forEach((metricValue) => {
60641
- const metric = metricValue.metric;
60642
- const funnelMetric = this.funnelMetrics().find(fm => fm.funnelMetric === metric && fm.funnelMetric === fm.relatedMetric);
60643
- const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
60644
- const { targetValue, percentageIncrease } = this.parseMetricValue(metricValue.value);
60645
- results.push({
60646
- metric,
60647
- funnelMetric: metric,
60648
- currentValue,
60649
- targetValue,
60650
- percentageIncrease: metric === MetricEnum.PURCHASE_REVENUE ? this.percentageIncrease() : percentageIncrease,
60651
- isFunnelStage: true,
60652
- funnelInd: funnelMetric?.funnelInd,
60653
- relatedInd: 0,
60654
- description: funnelMetric?.funnelMetricDescription
60744
+ else {
60745
+ const response = this.storedResponse();
60746
+ if (!response) {
60747
+ return [];
60748
+ }
60749
+ if (response.funnelMetricValues) {
60750
+ response.funnelMetricValues.forEach((metricValue) => {
60751
+ const metric = metricValue.metric;
60752
+ const funnelMetric = this.funnelMetrics().find(fm => fm.funnelMetric === metric && fm.funnelMetric === fm.relatedMetric);
60753
+ const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
60754
+ const { targetValue, percentageIncrease } = this.parseMetricValue(metricValue.value);
60755
+ baseResults.push({
60756
+ metric,
60757
+ funnelMetric: metric,
60758
+ currentValue,
60759
+ targetValue,
60760
+ percentageIncrease: metric === MetricEnum.PURCHASE_REVENUE ? this.percentageIncrease() : percentageIncrease,
60761
+ isFunnelStage: true,
60762
+ funnelInd: funnelMetric?.funnelInd,
60763
+ relatedInd: 0,
60764
+ description: funnelMetric?.funnelMetricDescription
60765
+ });
60655
60766
  });
60656
- });
60657
- }
60658
- if (response.relatedMetricTargets) {
60659
- response.relatedMetricTargets.forEach((metricValue) => {
60660
- const metric = metricValue.metric;
60661
- const funnelMetric = this.funnelMetrics().find(fm => fm.relatedMetric === metric);
60662
- const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
60663
- const { targetValue, percentageIncrease } = this.parseMetricValue(metricValue.value);
60664
- results.push({
60665
- metric,
60666
- funnelMetric: funnelMetric?.funnelMetric,
60667
- currentValue,
60668
- targetValue,
60669
- percentageIncrease: percentageIncrease || response.equalRelatedMetricIncreasePercent || 0,
60670
- isFunnelStage: false,
60671
- funnelInd: funnelMetric?.funnelInd,
60672
- relatedInd: funnelMetric?.relatedInd,
60673
- description: funnelMetric?.relatedMetricDescription
60767
+ }
60768
+ if (response.relatedMetricTargets) {
60769
+ response.relatedMetricTargets.forEach((metricValue) => {
60770
+ const metric = metricValue.metric;
60771
+ const funnelMetric = this.funnelMetrics().find(fm => fm.relatedMetric === metric);
60772
+ const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
60773
+ const { targetValue, percentageIncrease } = this.parseMetricValue(metricValue.value);
60774
+ baseResults.push({
60775
+ metric,
60776
+ funnelMetric: funnelMetric?.funnelMetric,
60777
+ currentValue,
60778
+ targetValue,
60779
+ percentageIncrease: percentageIncrease || response.equalRelatedMetricIncreasePercent || 0,
60780
+ isFunnelStage: false,
60781
+ funnelInd: funnelMetric?.funnelInd,
60782
+ relatedInd: funnelMetric?.relatedInd,
60783
+ description: funnelMetric?.relatedMetricDescription
60784
+ });
60674
60785
  });
60675
- });
60786
+ }
60787
+ }
60788
+ if (pendingChanges.size === 0) {
60789
+ return baseResults;
60676
60790
  }
60677
- return results;
60791
+ return baseResults.map(calc => {
60792
+ const pending = pendingChanges.get(calc.metric);
60793
+ if (pending) {
60794
+ return {
60795
+ ...calc,
60796
+ originalTargetValue: pending.originalValue,
60797
+ targetValue: pending.newValue,
60798
+ percentageIncrease: pending.percentageChange
60799
+ };
60800
+ }
60801
+ return calc;
60802
+ });
60678
60803
  }, ...(ngDevMode ? [{ debugName: "displayedMetricCalculations" }] : []));
60679
60804
  this.displayedTargetRevenue = computed(() => {
60680
60805
  const targets = this.targets();
@@ -61174,12 +61299,38 @@ class InitialTargetSettingComponent {
61174
61299
  this.editMetricEnum.set('');
61175
61300
  }
61176
61301
  onEditMetricTargetApplied(event) {
61177
- this.editRelatedMetricTarget.emit(event.metric);
61302
+ const pendingChanges = new Map(this.pendingTargetChanges());
61303
+ const existingPending = pendingChanges.get(event.metric);
61304
+ const originalValue = existingPending
61305
+ ? existingPending.originalValue
61306
+ : (this.displayedMetricCalculations().find(c => c.metric === event.metric)?.targetValue ?? 0);
61307
+ pendingChanges.set(event.metric, {
61308
+ newValue: event.targetValue,
61309
+ originalValue,
61310
+ percentageChange: event.percentageChange
61311
+ });
61312
+ this.pendingTargetChanges.set(pendingChanges);
61313
+ this.closeEditMetricModal();
61178
61314
  }
61179
61315
  onSaveTargets() {
61316
+ const pendingChanges = this.pendingTargetChanges();
61317
+ if (pendingChanges.size > 0) {
61318
+ const updates = [];
61319
+ pendingChanges.forEach((change, metric) => {
61320
+ updates.push({
61321
+ metric,
61322
+ targetValue: change.newValue,
61323
+ percentageChange: change.percentageChange,
61324
+ originalValue: change.originalValue
61325
+ });
61326
+ });
61327
+ this.targetsUpdated.emit(updates);
61328
+ this.pendingTargetChanges.set(new Map());
61329
+ }
61180
61330
  this.saveTargetsClick.emit();
61181
61331
  }
61182
61332
  onDiscardChanges() {
61333
+ this.pendingTargetChanges.set(new Map());
61183
61334
  this.discardChangesClick.emit();
61184
61335
  }
61185
61336
  saveFooterClasses() {
@@ -61210,7 +61361,7 @@ class InitialTargetSettingComponent {
61210
61361
  let _t;
61211
61362
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.absoluteInputRef = _t.first);
61212
61363
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageInputRef = _t.first);
61213
- } }, inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"], reverseCalculationResponse: [1, "reverseCalculationResponse"], targets: [1, "targets"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest", editRelatedMetricTarget: "editRelatedMetricTarget", saveTargetsClick: "saveTargetsClick", discardChangesClick: "discardChangesClick" }, decls: 45, vars: 51, consts: [["absoluteInputRef", ""], ["percentageInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "click", "ngClass"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "chevron-rotate-expanded", "ngClass"], [1, "flex", "flex-col", "gap-4"], [1, "grid", "lg:grid-cols-2", "gap-4"], [1, "p-6", "rounded-xl", "border-2", 3, "click", "ngClass"], [1, "flex", "flex-wrap", "gap-4", "place-content-between"], [1, "flex", "items-center", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 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"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "form-area-collapse"], [1, "form-area-content"], [1, "space-y-6"], [1, "chart-in-column"], [1, "chart-in-column-content"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "rounded-xl", "border", "p-4", 3, "ngClass"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol", "height"], [1, "h-64", "flex", "items-center", "justify-center"], [1, "calculated-card-enter", "order-first", "lg:order-last"], [1, "calculated-card-content"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass", "h-full"], [1, "w-full"], [1, "metrics-section-enter"], [1, "metrics-section-content"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [3, "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], [1, "mt-8", "p-6", "rounded-xl", "border-2", "flex", "flex-col", "sm:flex-row", "items-center", "justify-between", "gap-4", 3, "ngClass"], [3, "closed", "viewMode", "metricEnum", "metricData", "contributingMetrics", "pacingMetrics", "trendChartData", "isOpen"], [3, "closed", "targetApplied", "viewMode", "metricData", "pacingMetrics", "isOpen"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 9l-7 7-7-7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], [1, "flex", "items-center", "gap-1"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "top", 1, "flex-shrink-0", "w-4", "h-4", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "click", "ngClass", "libSymphiqTooltip"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex", "gap-2"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "flex", "justify-end"], [1, "absolute", "left-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "step", "1000", 1, "w-full", "pl-10", "pr-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "max", "1000", "step", "0.1", 1, "w-full", "pr-10", "pl-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], [1, "absolute", "right-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "font-bold", "transition-all", "duration-300", "text-lg", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "ngClass"], [1, "details-collapse"], [1, "details-collapse-content"], [1, "relative", "pt-6", "mt-6"], [1, "absolute", "top-0", "left-0", "right-0", "flex", "items-center", "-translate-y-1/2"], [1, "flex-1", "h-px", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-2"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "click", "ngClass"], [1, "flex", "items-center", "gap-1", "mb-1"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewStageReport", "viewRelatedMetricReport", "editRelatedMetricTarget", "viewMode", "calculations", "pacingMetrics", "hasExistingTargets"], [3, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "px-4", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 3, "click", "ngClass"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
61364
+ } }, inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"], reverseCalculationResponse: [1, "reverseCalculationResponse"], targets: [1, "targets"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest", editRelatedMetricTarget: "editRelatedMetricTarget", saveTargetsClick: "saveTargetsClick", discardChangesClick: "discardChangesClick", targetsUpdated: "targetsUpdated" }, decls: 45, vars: 51, consts: [["absoluteInputRef", ""], ["percentageInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "click", "ngClass"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "chevron-rotate-expanded", "ngClass"], [1, "flex", "flex-col", "gap-4"], [1, "grid", "lg:grid-cols-2", "gap-4"], [1, "p-6", "rounded-xl", "border-2", 3, "click", "ngClass"], [1, "flex", "flex-wrap", "gap-4", "place-content-between"], [1, "flex", "items-center", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 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"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "form-area-collapse"], [1, "form-area-content"], [1, "space-y-6"], [1, "chart-in-column"], [1, "chart-in-column-content"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "rounded-xl", "border", "p-4", 3, "ngClass"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol", "height"], [1, "h-64", "flex", "items-center", "justify-center"], [1, "calculated-card-enter", "order-first", "lg:order-last"], [1, "calculated-card-content"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass", "h-full"], [1, "w-full"], [1, "metrics-section-enter"], [1, "metrics-section-content"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [3, "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], [1, "fixed", "bottom-0", "left-0", "right-0", "p-4", "border-t", "shadow-lg", "z-50", "flex", "flex-col", "sm:flex-row", "items-center", "justify-center", "gap-4", 3, "ngClass"], [3, "closed", "viewMode", "metricEnum", "metricData", "contributingMetrics", "pacingMetrics", "trendChartData", "isOpen"], [3, "closed", "targetApplied", "viewMode", "metricData", "pacingMetrics", "isOpen"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 9l-7 7-7-7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], [1, "flex", "items-center", "gap-1"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "top", 1, "flex-shrink-0", "w-4", "h-4", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "click", "ngClass", "libSymphiqTooltip"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex", "gap-2"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "flex", "justify-end"], [1, "absolute", "left-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "step", "1000", 1, "w-full", "pl-10", "pr-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "max", "1000", "step", "0.1", 1, "w-full", "pr-10", "pl-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], [1, "absolute", "right-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "font-bold", "transition-all", "duration-300", "text-lg", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "ngClass"], [1, "details-collapse"], [1, "details-collapse-content"], [1, "relative", "pt-6", "mt-6"], [1, "absolute", "top-0", "left-0", "right-0", "flex", "items-center", "-translate-y-1/2"], [1, "flex-1", "h-px", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-2"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "click", "ngClass"], [1, "flex", "items-center", "gap-1", "mb-1"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewStageReport", "viewRelatedMetricReport", "editRelatedMetricTarget", "viewMode", "calculations", "pacingMetrics", "hasExistingTargets"], [3, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "px-4", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", 3, "click", "ngClass"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
61214
61365
  i0.ɵɵelementStart(0, "div", 2);
61215
61366
  i0.ɵɵelement(1, "symphiq-tooltip-container");
61216
61367
  i0.ɵɵelementStart(2, "div", 3);
@@ -61312,7 +61463,7 @@ class InitialTargetSettingComponent {
61312
61463
  i0.ɵɵadvance();
61313
61464
  i0.ɵɵconditional(!ctx.hasExistingTargets() ? 41 : -1);
61314
61465
  i0.ɵɵadvance();
61315
- i0.ɵɵconditional(ctx.hasExistingTargets() ? 42 : -1);
61466
+ i0.ɵɵconditional(ctx.hasPendingChanges() ? 42 : -1);
61316
61467
  i0.ɵɵadvance();
61317
61468
  i0.ɵɵproperty("viewMode", ctx.viewMode())("metricEnum", ctx.selectedMetricEnum())("metricData", ctx.selectedMetricData())("contributingMetrics", ctx.selectedContributingMetrics())("pacingMetrics", ctx.pacingMetrics())("trendChartData", ctx.revenueChartData())("isOpen", ctx.isMetricReportOpen());
61318
61469
  i0.ɵɵadvance();
@@ -61714,10 +61865,10 @@ class InitialTargetSettingComponent {
61714
61865
  />
61715
61866
  }
61716
61867
 
61717
- @if (hasExistingTargets()) {
61718
- <div [ngClass]="saveFooterClasses()" class="mt-8 p-6 rounded-xl border-2 flex flex-col sm:flex-row items-center justify-between gap-4">
61868
+ @if (hasPendingChanges()) {
61869
+ <div [ngClass]="saveFooterClasses()" class="fixed bottom-0 left-0 right-0 p-4 border-t shadow-lg z-50 flex flex-col sm:flex-row items-center justify-center gap-4">
61719
61870
  <p [ngClass]="saveFooterTextClasses()" class="text-sm">
61720
- Edit individual metric targets above, then save your changes.
61871
+ You have unsaved target changes.
61721
61872
  </p>
61722
61873
  <div class="flex items-center gap-3">
61723
61874
  <button
@@ -61725,7 +61876,7 @@ class InitialTargetSettingComponent {
61725
61876
  (click)="onDiscardChanges()"
61726
61877
  [ngClass]="discardButtonClasses()"
61727
61878
  class="px-4 py-2.5 rounded-lg font-medium text-sm transition-all duration-200">
61728
- Discard Changes
61879
+ Reset
61729
61880
  </button>
61730
61881
  <button
61731
61882
  type="button"
@@ -61767,7 +61918,7 @@ class InitialTargetSettingComponent {
61767
61918
  }], percentageInputRef: [{
61768
61919
  type: ViewChild,
61769
61920
  args: ['percentageInputRef']
61770
- }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], reverseCalculationResponse: [{ type: i0.Input, args: [{ isSignal: true, alias: "reverseCalculationResponse", required: false }] }], targets: [{ type: i0.Input, args: [{ isSignal: true, alias: "targets", required: false }] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }], calculateRevenueRequest: [{ type: i0.Output, args: ["calculateRevenueRequest"] }], editRelatedMetricTarget: [{ type: i0.Output, args: ["editRelatedMetricTarget"] }], saveTargetsClick: [{ type: i0.Output, args: ["saveTargetsClick"] }], discardChangesClick: [{ type: i0.Output, args: ["discardChangesClick"] }] }); })();
61921
+ }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], reverseCalculationResponse: [{ type: i0.Input, args: [{ isSignal: true, alias: "reverseCalculationResponse", required: false }] }], targets: [{ type: i0.Input, args: [{ isSignal: true, alias: "targets", required: false }] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }], calculateRevenueRequest: [{ type: i0.Output, args: ["calculateRevenueRequest"] }], editRelatedMetricTarget: [{ type: i0.Output, args: ["editRelatedMetricTarget"] }], saveTargetsClick: [{ type: i0.Output, args: ["saveTargetsClick"] }], discardChangesClick: [{ type: i0.Output, args: ["discardChangesClick"] }], targetsUpdated: [{ type: i0.Output, args: ["targetsUpdated"] }] }); })();
61771
61922
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 578 }); })();
61772
61923
 
61773
61924
  function IndeterminateSpinnerComponent_For_5_Template(rf, ctx) { if (rf & 1) {