@eric-emg/symphiq-components 1.2.200 → 1.2.202

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.
@@ -55403,11 +55403,11 @@ class FunnelMetricsVisualizationComponent {
55403
55403
  function StickySubmitBarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
55404
55404
  i0.ɵɵelementStart(0, "div", 4);
55405
55405
  i0.ɵɵnamespaceSVG();
55406
- i0.ɵɵelementStart(1, "svg", 6);
55407
- i0.ɵɵelement(2, "path", 7);
55406
+ i0.ɵɵelementStart(1, "svg", 8);
55407
+ i0.ɵɵelement(2, "path", 9);
55408
55408
  i0.ɵɵelementEnd();
55409
55409
  i0.ɵɵnamespaceHTML();
55410
- i0.ɵɵelementStart(3, "p", 8);
55410
+ i0.ɵɵelementStart(3, "p", 10);
55411
55411
  i0.ɵɵtext(4);
55412
55412
  i0.ɵɵelementEnd()();
55413
55413
  } if (rf & 2) {
@@ -55420,11 +55420,11 @@ function StickySubmitBarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1)
55420
55420
  function StickySubmitBarComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
55421
55421
  i0.ɵɵelementStart(0, "div", 4);
55422
55422
  i0.ɵɵnamespaceSVG();
55423
- i0.ɵɵelementStart(1, "svg", 9);
55424
- i0.ɵɵelement(2, "path", 10);
55423
+ i0.ɵɵelementStart(1, "svg", 11);
55424
+ i0.ɵɵelement(2, "path", 12);
55425
55425
  i0.ɵɵelementEnd();
55426
55426
  i0.ɵɵnamespaceHTML();
55427
- i0.ɵɵelementStart(3, "p", 8);
55427
+ i0.ɵɵelementStart(3, "p", 10);
55428
55428
  i0.ɵɵtext(4, " Ready to set your targets ");
55429
55429
  i0.ɵɵelementEnd()();
55430
55430
  } if (rf & 2) {
@@ -55433,22 +55433,32 @@ function StickySubmitBarComponent_Conditional_5_Template(rf, ctx) { if (rf & 1)
55433
55433
  i0.ɵɵproperty("ngClass", ctx_r0.readyMessageClasses());
55434
55434
  } }
55435
55435
  function StickySubmitBarComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
55436
+ const _r2 = i0.ɵɵgetCurrentView();
55437
+ i0.ɵɵelementStart(0, "button", 13);
55438
+ i0.ɵɵlistener("click", function StickySubmitBarComponent_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleCancel()); });
55439
+ i0.ɵɵtext(1, " Cancel ");
55440
+ i0.ɵɵelementEnd();
55441
+ } if (rf & 2) {
55442
+ const ctx_r0 = i0.ɵɵnextContext();
55443
+ i0.ɵɵproperty("ngClass", ctx_r0.cancelButtonClasses());
55444
+ } }
55445
+ function StickySubmitBarComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
55436
55446
  i0.ɵɵnamespaceSVG();
55437
- i0.ɵɵelementStart(0, "svg", 11);
55438
- i0.ɵɵelement(1, "circle", 12)(2, "path", 13);
55447
+ i0.ɵɵelementStart(0, "svg", 14);
55448
+ i0.ɵɵelement(1, "circle", 15)(2, "path", 16);
55439
55449
  i0.ɵɵelementEnd();
55440
55450
  i0.ɵɵnamespaceHTML();
55441
55451
  i0.ɵɵelementStart(3, "span");
55442
55452
  i0.ɵɵtext(4, "Setting Targets...");
55443
55453
  i0.ɵɵelementEnd();
55444
55454
  } }
55445
- function StickySubmitBarComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
55455
+ function StickySubmitBarComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
55446
55456
  i0.ɵɵelementStart(0, "span");
55447
55457
  i0.ɵɵtext(1);
55448
55458
  i0.ɵɵelementEnd();
55449
55459
  i0.ɵɵnamespaceSVG();
55450
- i0.ɵɵelementStart(2, "svg", 14);
55451
- i0.ɵɵelement(3, "path", 15);
55460
+ i0.ɵɵelementStart(2, "svg", 17);
55461
+ i0.ɵɵelement(3, "path", 18);
55452
55462
  i0.ɵɵelementEnd();
55453
55463
  } if (rf & 2) {
55454
55464
  const ctx_r0 = i0.ɵɵnextContext();
@@ -55462,7 +55472,9 @@ class StickySubmitBarComponent {
55462
55472
  this.isSubmitting = input(false, ...(ngDevMode ? [{ debugName: "isSubmitting" }] : []));
55463
55473
  this.validationMessage = input('', ...(ngDevMode ? [{ debugName: "validationMessage" }] : []));
55464
55474
  this.buttonText = input('Set Revenue Targets', ...(ngDevMode ? [{ debugName: "buttonText" }] : []));
55475
+ this.showCancelButton = input(false, ...(ngDevMode ? [{ debugName: "showCancelButton" }] : []));
55465
55476
  this.submitClick = output();
55477
+ this.cancelClick = output();
55466
55478
  }
55467
55479
  containerClasses() {
55468
55480
  return this.viewMode() === ViewModeEnum.DARK
@@ -55490,28 +55502,40 @@ class StickySubmitBarComponent {
55490
55502
  ? 'bg-gradient-to-r from-purple-600 to-indigo-600 text-white shadow-lg shadow-purple-500/30 hover:shadow-purple-500/50'
55491
55503
  : 'bg-gradient-to-r from-purple-600 to-indigo-600 text-white shadow-lg shadow-purple-300/50 hover:shadow-purple-400/60';
55492
55504
  }
55505
+ cancelButtonClasses() {
55506
+ return this.viewMode() === ViewModeEnum.DARK
55507
+ ? 'bg-slate-700 text-slate-300 border-2 border-slate-600 hover:bg-slate-600'
55508
+ : 'bg-slate-100 text-slate-600 border-2 border-slate-300 hover:bg-slate-200';
55509
+ }
55493
55510
  handleSubmit() {
55494
55511
  if (this.isValid() && !this.isSubmitting()) {
55495
55512
  this.submitClick.emit();
55496
55513
  }
55497
55514
  }
55515
+ handleCancel() {
55516
+ this.cancelClick.emit();
55517
+ }
55498
55518
  static { this.ɵfac = function StickySubmitBarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StickySubmitBarComponent)(); }; }
55499
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StickySubmitBarComponent, selectors: [["symphiq-sticky-submit-bar"]], inputs: { viewMode: [1, "viewMode"], isValid: [1, "isValid"], isSubmitting: [1, "isSubmitting"], validationMessage: [1, "validationMessage"], buttonText: [1, "buttonText"] }, outputs: { submitClick: "submitClick" }, decls: 9, vars: 5, consts: [[1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-md", "slide-up", 3, "ngClass"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "items-center", "justify-between", "gap-4"], [1, "flex-1"], [1, "flex", "items-center", "gap-2"], [1, "px-8", "py-3", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "gap-2", "submit-button-enabled", 3, "click", "disabled", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "text-yellow-500"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"], [1, "text-sm", "font-medium", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "text-green-500"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], ["fill", "none", "viewBox", "0 0 24 24", 1, "animate-spin", "h-5", "w-5"], ["cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "4", 1, "opacity-25"], ["fill", "currentColor", "d", "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", 1, "opacity-75"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function StickySubmitBarComponent_Template(rf, ctx) { if (rf & 1) {
55519
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StickySubmitBarComponent, selectors: [["symphiq-sticky-submit-bar"]], inputs: { viewMode: [1, "viewMode"], isValid: [1, "isValid"], isSubmitting: [1, "isSubmitting"], validationMessage: [1, "validationMessage"], buttonText: [1, "buttonText"], showCancelButton: [1, "showCancelButton"] }, outputs: { submitClick: "submitClick", cancelClick: "cancelClick" }, decls: 11, vars: 6, consts: [[1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-md", "slide-up", 3, "ngClass"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "items-center", "justify-between", "gap-4"], [1, "flex-1"], [1, "flex", "items-center", "gap-2"], [1, "flex", "items-center", "gap-3"], [1, "px-6", "py-3", "rounded-xl", "font-semibold", "text-base", "transition-all", "duration-200", 3, "ngClass"], [1, "px-8", "py-3", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "gap-2", "submit-button-enabled", 3, "click", "disabled", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "text-yellow-500"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"], [1, "text-sm", "font-medium", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "text-green-500"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "px-6", "py-3", "rounded-xl", "font-semibold", "text-base", "transition-all", "duration-200", 3, "click", "ngClass"], ["fill", "none", "viewBox", "0 0 24 24", 1, "animate-spin", "h-5", "w-5"], ["cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "4", 1, "opacity-25"], ["fill", "currentColor", "d", "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", 1, "opacity-75"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function StickySubmitBarComponent_Template(rf, ctx) { if (rf & 1) {
55500
55520
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
55501
55521
  i0.ɵɵconditionalCreate(4, StickySubmitBarComponent_Conditional_4_Template, 5, 2, "div", 4)(5, StickySubmitBarComponent_Conditional_5_Template, 5, 1, "div", 4);
55502
55522
  i0.ɵɵelementEnd();
55503
- i0.ɵɵelementStart(6, "button", 5);
55504
- i0.ɵɵlistener("click", function StickySubmitBarComponent_Template_button_click_6_listener() { return ctx.handleSubmit(); });
55505
- i0.ɵɵconditionalCreate(7, StickySubmitBarComponent_Conditional_7_Template, 5, 0)(8, StickySubmitBarComponent_Conditional_8_Template, 4, 1);
55506
- i0.ɵɵelementEnd()()()();
55523
+ i0.ɵɵelementStart(6, "div", 5);
55524
+ i0.ɵɵconditionalCreate(7, StickySubmitBarComponent_Conditional_7_Template, 2, 1, "button", 6);
55525
+ i0.ɵɵelementStart(8, "button", 7);
55526
+ i0.ɵɵlistener("click", function StickySubmitBarComponent_Template_button_click_8_listener() { return ctx.handleSubmit(); });
55527
+ i0.ɵɵconditionalCreate(9, StickySubmitBarComponent_Conditional_9_Template, 5, 0)(10, StickySubmitBarComponent_Conditional_10_Template, 4, 1);
55528
+ i0.ɵɵelementEnd()()()()();
55507
55529
  } if (rf & 2) {
55508
55530
  i0.ɵɵproperty("ngClass", ctx.containerClasses());
55509
55531
  i0.ɵɵadvance(4);
55510
55532
  i0.ɵɵconditional(!ctx.isValid() ? 4 : 5);
55511
- i0.ɵɵadvance(2);
55533
+ i0.ɵɵadvance(3);
55534
+ i0.ɵɵconditional(ctx.showCancelButton() ? 7 : -1);
55535
+ i0.ɵɵadvance();
55512
55536
  i0.ɵɵproperty("disabled", !ctx.isValid() || ctx.isSubmitting())("ngClass", ctx.buttonClasses());
55513
55537
  i0.ɵɵadvance();
55514
- i0.ɵɵconditional(ctx.isSubmitting() ? 7 : 8);
55538
+ i0.ɵɵconditional(ctx.isSubmitting() ? 9 : 10);
55515
55539
  } }, dependencies: [CommonModule, i1$1.NgClass], styles: [".slide-up[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideUp .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes _ngcontent-%COMP%_slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.submit-button-enabled[_ngcontent-%COMP%]{transition:all .2s ease-in-out}.submit-button-enabled[_ngcontent-%COMP%]:hover{transform:scale(1.02)}.submit-button-enabled[_ngcontent-%COMP%]:active{transform:scale(.98)}"], changeDetection: 0 }); }
55516
55540
  }
55517
55541
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StickySubmitBarComponent, [{
@@ -55544,30 +55568,40 @@ class StickySubmitBarComponent {
55544
55568
  }
55545
55569
  </div>
55546
55570
 
55547
- <button
55548
- (click)="handleSubmit()"
55549
- [disabled]="!isValid() || isSubmitting()"
55550
- [ngClass]="buttonClasses()"
55551
- class="px-8 py-3 rounded-xl font-bold text-base transition-all duration-200 flex items-center gap-2 submit-button-enabled">
55552
- @if (isSubmitting()) {
55553
- <svg class="animate-spin h-5 w-5" fill="none" viewBox="0 0 24 24">
55554
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
55555
- <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
55556
- </svg>
55557
- <span>Setting Targets...</span>
55558
- } @else {
55559
- <span>{{ buttonText() }}</span>
55560
- <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
55561
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
55562
- </svg>
55571
+ <div class="flex items-center gap-3">
55572
+ @if (showCancelButton()) {
55573
+ <button
55574
+ (click)="handleCancel()"
55575
+ [ngClass]="cancelButtonClasses()"
55576
+ class="px-6 py-3 rounded-xl font-semibold text-base transition-all duration-200">
55577
+ Cancel
55578
+ </button>
55563
55579
  }
55564
- </button>
55580
+ <button
55581
+ (click)="handleSubmit()"
55582
+ [disabled]="!isValid() || isSubmitting()"
55583
+ [ngClass]="buttonClasses()"
55584
+ class="px-8 py-3 rounded-xl font-bold text-base transition-all duration-200 flex items-center gap-2 submit-button-enabled">
55585
+ @if (isSubmitting()) {
55586
+ <svg class="animate-spin h-5 w-5" fill="none" viewBox="0 0 24 24">
55587
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
55588
+ <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
55589
+ </svg>
55590
+ <span>Setting Targets...</span>
55591
+ } @else {
55592
+ <span>{{ buttonText() }}</span>
55593
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
55594
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
55595
+ </svg>
55596
+ }
55597
+ </button>
55598
+ </div>
55565
55599
  </div>
55566
55600
  </div>
55567
55601
  </div>
55568
55602
  `, styles: [".slide-up{animation:slideUp .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.submit-button-enabled{transition:all .2s ease-in-out}.submit-button-enabled:hover{transform:scale(1.02)}.submit-button-enabled:active{transform:scale(.98)}\n"] }]
55569
- }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isValid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isValid", required: false }] }], isSubmitting: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubmitting", required: false }] }], validationMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessage", required: false }] }], buttonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonText", required: false }] }], submitClick: [{ type: i0.Output, args: ["submitClick"] }] }); })();
55570
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StickySubmitBarComponent, { className: "StickySubmitBarComponent", filePath: "lib/components/revenue-calculator-dashboard/sticky-submit-bar.component.ts", lineNumber: 89 }); })();
55603
+ }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isValid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isValid", required: false }] }], isSubmitting: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSubmitting", required: false }] }], validationMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessage", required: false }] }], buttonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonText", required: false }] }], showCancelButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCancelButton", required: false }] }], submitClick: [{ type: i0.Output, args: ["submitClick"] }], cancelClick: [{ type: i0.Output, args: ["cancelClick"] }] }); })();
55604
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StickySubmitBarComponent, { className: "StickySubmitBarComponent", filePath: "lib/components/revenue-calculator-dashboard/sticky-submit-bar.component.ts", lineNumber: 99 }); })();
55571
55605
 
55572
55606
  /**
55573
55607
  * Chart Constants
@@ -56202,48 +56236,78 @@ function InitialTargetSettingComponent_Conditional_12_Template(rf, ctx) { if (rf
56202
56236
  i0.ɵɵadvance();
56203
56237
  i0.ɵɵtextInterpolate1(" Current Pace Projection: ", ctx_r0.formatCurrency(ctx_r0.currentPaceProjection()), " ");
56204
56238
  } }
56205
- function InitialTargetSettingComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
56206
- const _r2 = i0.ɵɵgetCurrentView();
56207
- i0.ɵɵelementStart(0, "div", 12)(1, "span", 21);
56239
+ function InitialTargetSettingComponent_Conditional_13_Conditional_5_Template(rf, ctx) { if (rf & 1) {
56240
+ const _r3 = i0.ɵɵgetCurrentView();
56241
+ i0.ɵɵelementStart(0, "div", 18)(1, "span", 19);
56208
56242
  i0.ɵɵtext(2, " $ ");
56209
56243
  i0.ɵɵelementEnd();
56210
- i0.ɵɵelementStart(3, "input", 22, 0);
56211
- i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_18_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.absoluteInput, $event) || (ctx_r0.absoluteInput = $event); return i0.ɵɵresetView($event); });
56212
- i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_18_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onAbsoluteInputChange()); });
56244
+ i0.ɵɵelementStart(3, "input", 20, 0);
56245
+ i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_13_Conditional_5_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.absoluteInput, $event) || (ctx_r0.absoluteInput = $event); return i0.ɵɵresetView($event); });
56246
+ i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_13_Conditional_5_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onAbsoluteInputChange()); });
56213
56247
  i0.ɵɵelementEnd()();
56214
56248
  } if (rf & 2) {
56215
- const ctx_r0 = i0.ɵɵnextContext();
56249
+ const ctx_r0 = i0.ɵɵnextContext(2);
56216
56250
  i0.ɵɵadvance();
56217
56251
  i0.ɵɵproperty("ngClass", ctx_r0.inputPrefixClasses());
56218
56252
  i0.ɵɵadvance(2);
56219
56253
  i0.ɵɵtwoWayProperty("ngModel", ctx_r0.absoluteInput);
56220
56254
  i0.ɵɵproperty("ngClass", ctx_r0.inputClasses());
56221
56255
  } }
56222
- function InitialTargetSettingComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
56223
- const _r3 = i0.ɵɵgetCurrentView();
56224
- i0.ɵɵelementStart(0, "div", 12)(1, "input", 23, 1);
56225
- i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_19_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.percentageInput, $event) || (ctx_r0.percentageInput = $event); return i0.ɵɵresetView($event); });
56226
- i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_19_Template_input_ngModelChange_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onPercentageInputChange()); });
56256
+ function InitialTargetSettingComponent_Conditional_13_Conditional_6_Template(rf, ctx) { if (rf & 1) {
56257
+ const _r4 = i0.ɵɵgetCurrentView();
56258
+ i0.ɵɵelementStart(0, "div", 18)(1, "input", 21, 1);
56259
+ i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_13_Conditional_6_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.percentageInput, $event) || (ctx_r0.percentageInput = $event); return i0.ɵɵresetView($event); });
56260
+ i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_13_Conditional_6_Template_input_ngModelChange_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onPercentageInputChange()); });
56227
56261
  i0.ɵɵelementEnd();
56228
- i0.ɵɵelementStart(3, "span", 24);
56262
+ i0.ɵɵelementStart(3, "span", 22);
56229
56263
  i0.ɵɵtext(4, " % ");
56230
56264
  i0.ɵɵelementEnd()();
56231
56265
  } if (rf & 2) {
56232
- const ctx_r0 = i0.ɵɵnextContext();
56266
+ const ctx_r0 = i0.ɵɵnextContext(2);
56233
56267
  i0.ɵɵadvance();
56234
56268
  i0.ɵɵtwoWayProperty("ngModel", ctx_r0.percentageInput);
56235
56269
  i0.ɵɵproperty("ngClass", ctx_r0.inputClasses());
56236
56270
  i0.ɵɵadvance(2);
56237
56271
  i0.ɵɵproperty("ngClass", ctx_r0.inputSuffixClasses());
56238
56272
  } }
56239
- function InitialTargetSettingComponent_Conditional_20_Conditional_18_Template(rf, ctx) { if (rf & 1) {
56240
- i0.ɵɵelementStart(0, "div", 28)(1, "div")(2, "p", 26);
56273
+ function InitialTargetSettingComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
56274
+ const _r2 = i0.ɵɵgetCurrentView();
56275
+ i0.ɵɵelementStart(0, "div", 16)(1, "button", 17);
56276
+ i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_13_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setInputMode("absolute")); });
56277
+ i0.ɵɵtext(2, " Absolute Amount ");
56278
+ i0.ɵɵelementEnd();
56279
+ i0.ɵɵelementStart(3, "button", 17);
56280
+ i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_13_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setInputMode("percentage")); });
56281
+ i0.ɵɵtext(4, " % Increase ");
56282
+ i0.ɵɵelementEnd()();
56283
+ i0.ɵɵconditionalCreate(5, InitialTargetSettingComponent_Conditional_13_Conditional_5_Template, 5, 3, "div", 18)(6, InitialTargetSettingComponent_Conditional_13_Conditional_6_Template, 5, 3, "div", 18);
56284
+ } if (rf & 2) {
56285
+ const ctx_r0 = i0.ɵɵnextContext();
56286
+ i0.ɵɵadvance();
56287
+ i0.ɵɵproperty("ngClass", ctx_r0.inputModeButtonClasses("absolute"));
56288
+ i0.ɵɵadvance(2);
56289
+ i0.ɵɵproperty("ngClass", ctx_r0.inputModeButtonClasses("percentage"));
56290
+ i0.ɵɵadvance(2);
56291
+ i0.ɵɵconditional(ctx_r0.inputMode() === "absolute" ? 5 : 6);
56292
+ } }
56293
+ function InitialTargetSettingComponent_Conditional_14_Conditional_8_Template(rf, ctx) { if (rf & 1) {
56294
+ const _r5 = i0.ɵɵgetCurrentView();
56295
+ i0.ɵɵelementStart(0, "button", 30);
56296
+ i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_14_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.handleAdjustTarget()); });
56297
+ i0.ɵɵtext(1, " Adjust Revenue Target ");
56298
+ i0.ɵɵelementEnd();
56299
+ } if (rf & 2) {
56300
+ const ctx_r0 = i0.ɵɵnextContext(2);
56301
+ i0.ɵɵproperty("ngClass", ctx_r0.secondaryButtonClasses());
56302
+ } }
56303
+ function InitialTargetSettingComponent_Conditional_14_Conditional_20_Template(rf, ctx) { if (rf & 1) {
56304
+ i0.ɵɵelementStart(0, "div", 28)(1, "div")(2, "p", 25);
56241
56305
  i0.ɵɵtext(3, " Gap to Close ");
56242
56306
  i0.ɵɵelementEnd();
56243
56307
  i0.ɵɵelementStart(4, "p", 29);
56244
56308
  i0.ɵɵtext(5);
56245
56309
  i0.ɵɵelementEnd()();
56246
- i0.ɵɵelementStart(6, "div")(7, "p", 26);
56310
+ i0.ɵɵelementStart(6, "div")(7, "p", 25);
56247
56311
  i0.ɵɵtext(8, " Additional Growth Needed ");
56248
56312
  i0.ɵɵelementEnd();
56249
56313
  i0.ɵɵelementStart(9, "p", 29);
@@ -56265,38 +56329,42 @@ function InitialTargetSettingComponent_Conditional_20_Conditional_18_Template(rf
56265
56329
  i0.ɵɵadvance();
56266
56330
  i0.ɵɵtextInterpolate2(" ", ctx_r0.gapToClose().amount > 0 ? "+" : "", "", ctx_r0.formatPercentage(ctx_r0.gapToClose().percentage, 1), " ");
56267
56331
  } }
56268
- function InitialTargetSettingComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
56269
- i0.ɵɵelementStart(0, "div", 13)(1, "div", 25)(2, "div")(3, "p", 26);
56270
- i0.ɵɵtext(4);
56332
+ function InitialTargetSettingComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
56333
+ i0.ɵɵelementStart(0, "div", 10)(1, "div", 23)(2, "div", 24)(3, "div")(4, "p", 25);
56334
+ i0.ɵɵtext(5);
56271
56335
  i0.ɵɵelementEnd();
56272
- i0.ɵɵelementStart(5, "p", 27);
56273
- i0.ɵɵtext(6);
56336
+ i0.ɵɵelementStart(6, "p", 26);
56337
+ i0.ɵɵtext(7);
56274
56338
  i0.ɵɵelementEnd()();
56275
- i0.ɵɵelementStart(7, "div", 28)(8, "div")(9, "p", 26);
56276
- i0.ɵɵtext(10, " Increase Amount ");
56339
+ i0.ɵɵconditionalCreate(8, InitialTargetSettingComponent_Conditional_14_Conditional_8_Template, 2, 1, "button", 27);
56277
56340
  i0.ɵɵelementEnd();
56278
- i0.ɵɵelementStart(11, "p", 29);
56279
- i0.ɵɵtext(12);
56341
+ i0.ɵɵelementStart(9, "div", 28)(10, "div")(11, "p", 25);
56342
+ i0.ɵɵtext(12, " Increase Amount ");
56343
+ i0.ɵɵelementEnd();
56344
+ i0.ɵɵelementStart(13, "p", 29);
56345
+ i0.ɵɵtext(14);
56280
56346
  i0.ɵɵelementEnd()();
56281
- i0.ɵɵelementStart(13, "div")(14, "p", 26);
56282
- i0.ɵɵtext(15, " % Growth ");
56347
+ i0.ɵɵelementStart(15, "div")(16, "p", 25);
56348
+ i0.ɵɵtext(17, " % Growth ");
56283
56349
  i0.ɵɵelementEnd();
56284
- i0.ɵɵelementStart(16, "p", 29);
56285
- i0.ɵɵtext(17);
56350
+ i0.ɵɵelementStart(18, "p", 29);
56351
+ i0.ɵɵtext(19);
56286
56352
  i0.ɵɵelementEnd()()();
56287
- i0.ɵɵconditionalCreate(18, InitialTargetSettingComponent_Conditional_20_Conditional_18_Template, 11, 8, "div", 28);
56353
+ i0.ɵɵconditionalCreate(20, InitialTargetSettingComponent_Conditional_14_Conditional_20_Template, 11, 8, "div", 28);
56288
56354
  i0.ɵɵelementEnd()();
56289
56355
  } if (rf & 2) {
56290
56356
  const ctx_r0 = i0.ɵɵnextContext();
56291
56357
  i0.ɵɵproperty("ngClass", ctx_r0.calculatedValuesCardClasses());
56292
- i0.ɵɵadvance(3);
56358
+ i0.ɵɵadvance(4);
56293
56359
  i0.ɵɵproperty("ngClass", ctx_r0.calculatedLabelClasses());
56294
56360
  i0.ɵɵadvance();
56295
56361
  i0.ɵɵtextInterpolate1(" ", ctx_r0.currentYear(), " Revenue Target ");
56296
56362
  i0.ɵɵadvance();
56297
56363
  i0.ɵɵproperty("ngClass", ctx_r0.calculatedValueClasses());
56298
56364
  i0.ɵɵadvance();
56299
- i0.ɵɵtextInterpolate1(" ", ctx_r0.formatCurrency(ctx_r0.calculatedRevenue()), " ");
56365
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.formatCurrency(ctx_r0.displayedTargetRevenue()), " ");
56366
+ i0.ɵɵadvance();
56367
+ i0.ɵɵconditional(ctx_r0.calculationState() === "results" ? 8 : -1);
56300
56368
  i0.ɵɵadvance();
56301
56369
  i0.ɵɵproperty("ngClass", ctx_r0.calculatedDividerClasses());
56302
56370
  i0.ɵɵadvance(2);
@@ -56312,16 +56380,16 @@ function InitialTargetSettingComponent_Conditional_20_Template(rf, ctx) { if (rf
56312
56380
  i0.ɵɵadvance();
56313
56381
  i0.ɵɵtextInterpolate1(" +", ctx_r0.formatPercentage(ctx_r0.percentageIncrease(), 1), " ");
56314
56382
  i0.ɵɵadvance();
56315
- i0.ɵɵconditional(ctx_r0.currentPaceProjection() > 0 && ctx_r0.gapToClose().amount !== 0 ? 18 : -1);
56383
+ i0.ɵɵconditional(ctx_r0.currentPaceProjection() > 0 && ctx_r0.gapToClose().amount !== 0 ? 20 : -1);
56316
56384
  } }
56317
- function InitialTargetSettingComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
56318
- i0.ɵɵelement(0, "symphiq-area-chart", 16);
56385
+ function InitialTargetSettingComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
56386
+ i0.ɵɵelement(0, "symphiq-area-chart", 13);
56319
56387
  } if (rf & 2) {
56320
56388
  const ctx_r0 = i0.ɵɵnextContext();
56321
56389
  i0.ɵɵproperty("chart", ctx_r0.revenueChartData())("showAxisLabels", true)("viewMode", ctx_r0.viewMode())("currencySymbol", "$")("height", "320px");
56322
56390
  } }
56323
- function InitialTargetSettingComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
56324
- i0.ɵɵelementStart(0, "div", 17)(1, "p", 30);
56391
+ function InitialTargetSettingComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
56392
+ i0.ɵɵelementStart(0, "div", 14)(1, "p", 31);
56325
56393
  i0.ɵɵtext(2, " No revenue data available ");
56326
56394
  i0.ɵɵelementEnd()();
56327
56395
  } if (rf & 2) {
@@ -56329,14 +56397,14 @@ function InitialTargetSettingComponent_Conditional_26_Template(rf, ctx) { if (rf
56329
56397
  i0.ɵɵadvance();
56330
56398
  i0.ɵɵproperty("ngClass", ctx_r0.noDataClasses());
56331
56399
  } }
56332
- function InitialTargetSettingComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
56333
- i0.ɵɵelementStart(0, "div", 3)(1, "div", 31)(2, "h2", 32);
56400
+ function InitialTargetSettingComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
56401
+ i0.ɵɵelementStart(0, "div", 3)(1, "div", 32)(2, "h2", 33);
56334
56402
  i0.ɵɵtext(3, " Contributing Metrics ");
56335
56403
  i0.ɵɵelementEnd();
56336
- i0.ɵɵelementStart(4, "p", 30);
56404
+ i0.ɵɵelementStart(4, "p", 31);
56337
56405
  i0.ɵɵtext(5);
56338
56406
  i0.ɵɵelementEnd()();
56339
- i0.ɵɵelement(6, "symphiq-funnel-metrics-visualization", 33);
56407
+ i0.ɵɵelement(6, "symphiq-funnel-metrics-visualization", 34);
56340
56408
  i0.ɵɵelementEnd();
56341
56409
  } if (rf & 2) {
56342
56410
  const ctx_r0 = i0.ɵɵnextContext();
@@ -56350,28 +56418,6 @@ function InitialTargetSettingComponent_Conditional_27_Template(rf, ctx) { if (rf
56350
56418
  i0.ɵɵadvance();
56351
56419
  i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("calculations", ctx_r0.displayedMetricCalculations())("pacingMetrics", ctx_r0.pacingMetrics());
56352
56420
  } }
56353
- function InitialTargetSettingComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
56354
- const _r4 = i0.ɵɵgetCurrentView();
56355
- i0.ɵɵelementStart(0, "div", 19)(1, "div", 34)(2, "button", 35);
56356
- i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_29_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleAdjustTarget()); });
56357
- i0.ɵɵtext(3, " Adjust Revenue Target ");
56358
- i0.ɵɵelementEnd()()();
56359
- } if (rf & 2) {
56360
- const ctx_r0 = i0.ɵɵnextContext();
56361
- i0.ɵɵadvance(2);
56362
- i0.ɵɵproperty("ngClass", ctx_r0.secondaryButtonClasses());
56363
- } }
56364
- function InitialTargetSettingComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
56365
- const _r5 = i0.ɵɵgetCurrentView();
56366
- i0.ɵɵelementStart(0, "div", 20)(1, "div", 34)(2, "button", 35);
56367
- i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_30_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleCancel()); });
56368
- i0.ɵɵtext(3, " Cancel ");
56369
- i0.ɵɵelementEnd()()();
56370
- } if (rf & 2) {
56371
- const ctx_r0 = i0.ɵɵnextContext();
56372
- i0.ɵɵadvance(2);
56373
- i0.ɵɵproperty("ngClass", ctx_r0.cancelButtonClasses());
56374
- } }
56375
56421
  class InitialTargetSettingComponent {
56376
56422
  constructor() {
56377
56423
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
@@ -56430,26 +56476,49 @@ class InitialTargetSettingComponent {
56430
56476
  }, ...(ngDevMode ? [{ debugName: "percentageIncrease" }] : []));
56431
56477
  this.displayedMetricCalculations = computed(() => {
56432
56478
  const response = this.storedResponse();
56433
- if (!response || !response.relatedMetricTargets) {
56479
+ if (!response) {
56434
56480
  return [];
56435
56481
  }
56436
- return response.relatedMetricTargets.map((metricValue) => {
56437
- const metric = metricValue.metric;
56438
- const funnelMetric = this.funnelMetrics().find(fm => fm.relatedMetric === metric);
56439
- const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
56440
- const targetValue = parseFloat(metricValue.value || '0');
56441
- return {
56442
- metric,
56443
- funnelMetric: funnelMetric?.funnelMetric,
56444
- currentValue,
56445
- targetValue,
56446
- percentageIncrease: response.equalRelatedMetricIncreasePercent || 0,
56447
- isFunnelStage: funnelMetric?.funnelMetric === metric,
56448
- funnelInd: funnelMetric?.funnelInd,
56449
- relatedInd: funnelMetric?.relatedInd,
56450
- description: funnelMetric?.relatedMetricDescription
56451
- };
56452
- });
56482
+ const results = [];
56483
+ if (response.funnelMetricValues) {
56484
+ response.funnelMetricValues.forEach((metricValue) => {
56485
+ const metric = metricValue.metric;
56486
+ const funnelMetric = this.funnelMetrics().find(fm => fm.funnelMetric === metric && fm.funnelMetric === fm.relatedMetric);
56487
+ const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
56488
+ const { targetValue, percentageIncrease } = this.parseMetricValue(metricValue.value);
56489
+ results.push({
56490
+ metric,
56491
+ funnelMetric: metric,
56492
+ currentValue,
56493
+ targetValue,
56494
+ percentageIncrease,
56495
+ isFunnelStage: true,
56496
+ funnelInd: funnelMetric?.funnelInd,
56497
+ relatedInd: 0,
56498
+ description: funnelMetric?.funnelMetricDescription
56499
+ });
56500
+ });
56501
+ }
56502
+ if (response.relatedMetricTargets) {
56503
+ response.relatedMetricTargets.forEach((metricValue) => {
56504
+ const metric = metricValue.metric;
56505
+ const funnelMetric = this.funnelMetrics().find(fm => fm.relatedMetric === metric);
56506
+ const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
56507
+ const { targetValue, percentageIncrease } = this.parseMetricValue(metricValue.value);
56508
+ results.push({
56509
+ metric,
56510
+ funnelMetric: funnelMetric?.funnelMetric,
56511
+ currentValue,
56512
+ targetValue,
56513
+ percentageIncrease: percentageIncrease || response.equalRelatedMetricIncreasePercent || 0,
56514
+ isFunnelStage: false,
56515
+ funnelInd: funnelMetric?.funnelInd,
56516
+ relatedInd: funnelMetric?.relatedInd,
56517
+ description: funnelMetric?.relatedMetricDescription
56518
+ });
56519
+ });
56520
+ }
56521
+ return results;
56453
56522
  }, ...(ngDevMode ? [{ debugName: "displayedMetricCalculations" }] : []));
56454
56523
  this.displayedTargetRevenue = computed(() => {
56455
56524
  const response = this.storedResponse();
@@ -56523,6 +56592,28 @@ class InitialTargetSettingComponent {
56523
56592
  }
56524
56593
  }, { allowSignalWrites: true });
56525
56594
  }
56595
+ parseMetricValue(value) {
56596
+ if (!value)
56597
+ return { targetValue: 0, percentageIncrease: 0 };
56598
+ let targetValue = 0;
56599
+ let percentageIncrease = 0;
56600
+ const arrowMatch = value.match(/\([\d.,]+\s*->\s*([\d.,]+)\)/);
56601
+ if (arrowMatch) {
56602
+ targetValue = parseFloat(arrowMatch[1].replace(/,/g, ''));
56603
+ }
56604
+ const targetMatch = value.match(/target:\s*([\d.,]+)/);
56605
+ if (targetMatch) {
56606
+ targetValue = parseFloat(targetMatch[1].replace(/,/g, ''));
56607
+ }
56608
+ const percentMatch = value.match(/([-\d.]+)%\s*(increase|change|decrease)?/);
56609
+ if (percentMatch) {
56610
+ percentageIncrease = parseFloat(percentMatch[1]);
56611
+ }
56612
+ if (!arrowMatch && !targetMatch) {
56613
+ targetValue = parseFloat(value.replace(/,/g, '')) || 0;
56614
+ }
56615
+ return { targetValue, percentageIncrease };
56616
+ }
56526
56617
  ngAfterViewInit() {
56527
56618
  setTimeout(() => {
56528
56619
  this.absoluteInputRef?.nativeElement?.focus();
@@ -56711,7 +56802,7 @@ class InitialTargetSettingComponent {
56711
56802
  let _t;
56712
56803
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.absoluteInputRef = _t.first);
56713
56804
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageInputRef = _t.first);
56714
- } }, 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"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls: 31, vars: 23, consts: [["absoluteInputRef", ""], ["percentageInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [1, "text-2xl", "font-bold", "mb-6", 3, "ngClass"], [1, "grid", "lg:grid-cols-2", "gap-8"], [1, "space-y-6"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "space-y-1", "mb-4"], [1, "text-xs", 3, "ngClass"], [1, "flex", "gap-2", "mb-4"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass"], [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"], [3, "submitClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText"], [1, "fixed", "bottom-24", "left-0", "right-0", "z-40", "pb-4", "px-4"], [1, "fixed", "bottom-32", "left-0", "right-0", "z-40", "pb-4", "px-4"], [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, "space-y-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-4", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "calculations", "pacingMetrics"], [1, "max-w-7xl", "mx-auto", "flex", "gap-4", "justify-center"], [1, "px-6", "py-3", "rounded-xl", "font-semibold", "transition-all", "shadow-lg", 3, "click", "ngClass"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
56805
+ } }, 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"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls: 23, vars: 20, consts: [["absoluteInputRef", ""], ["percentageInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [1, "text-2xl", "font-bold", "mb-6", 3, "ngClass"], [1, "grid", "lg:grid-cols-2", "gap-8"], [1, "space-y-6"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "space-y-1", "mb-4"], [1, "text-xs", 3, "ngClass"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass"], [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"], [3, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], [1, "flex", "gap-2", "mb-4"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [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, "space-y-4"], [1, "flex", "items-center", "justify-between"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-4", 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, "text-sm", 3, "ngClass"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "calculations", "pacingMetrics"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
56715
56806
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "h2", 4);
56716
56807
  i0.ɵɵtext(3, " Calculate Your Revenue Target ");
56717
56808
  i0.ɵɵelementEnd();
@@ -56723,31 +56814,20 @@ class InitialTargetSettingComponent {
56723
56814
  i0.ɵɵelementEnd();
56724
56815
  i0.ɵɵconditionalCreate(12, InitialTargetSettingComponent_Conditional_12_Template, 2, 2, "p", 9);
56725
56816
  i0.ɵɵelementEnd();
56726
- i0.ɵɵelementStart(13, "div", 10)(14, "button", 11);
56727
- i0.ɵɵlistener("click", function InitialTargetSettingComponent_Template_button_click_14_listener() { return ctx.setInputMode("absolute"); });
56728
- i0.ɵɵtext(15, " Absolute Amount ");
56817
+ i0.ɵɵconditionalCreate(13, InitialTargetSettingComponent_Conditional_13_Template, 7, 3);
56729
56818
  i0.ɵɵelementEnd();
56730
- i0.ɵɵelementStart(16, "button", 11);
56731
- i0.ɵɵlistener("click", function InitialTargetSettingComponent_Template_button_click_16_listener() { return ctx.setInputMode("percentage"); });
56732
- i0.ɵɵtext(17, " % Increase ");
56733
- i0.ɵɵelementEnd()();
56734
- i0.ɵɵconditionalCreate(18, InitialTargetSettingComponent_Conditional_18_Template, 5, 3, "div", 12)(19, InitialTargetSettingComponent_Conditional_19_Template, 5, 3, "div", 12);
56819
+ i0.ɵɵconditionalCreate(14, InitialTargetSettingComponent_Conditional_14_Template, 21, 14, "div", 10);
56735
56820
  i0.ɵɵelementEnd();
56736
- i0.ɵɵconditionalCreate(20, InitialTargetSettingComponent_Conditional_20_Template, 19, 13, "div", 13);
56821
+ i0.ɵɵelementStart(15, "div")(16, "p", 11);
56822
+ i0.ɵɵtext(17, " Year-over-Year Revenue Trend ");
56737
56823
  i0.ɵɵelementEnd();
56738
- i0.ɵɵelementStart(21, "div")(22, "p", 14);
56739
- i0.ɵɵtext(23, " Year-over-Year Revenue Trend ");
56740
- i0.ɵɵelementEnd();
56741
- i0.ɵɵelementStart(24, "div", 15);
56742
- i0.ɵɵconditionalCreate(25, InitialTargetSettingComponent_Conditional_25_Template, 1, 5, "symphiq-area-chart", 16)(26, InitialTargetSettingComponent_Conditional_26_Template, 3, 1, "div", 17);
56824
+ i0.ɵɵelementStart(18, "div", 12);
56825
+ i0.ɵɵconditionalCreate(19, InitialTargetSettingComponent_Conditional_19_Template, 1, 5, "symphiq-area-chart", 13)(20, InitialTargetSettingComponent_Conditional_20_Template, 3, 1, "div", 14);
56743
56826
  i0.ɵɵelementEnd()()()();
56744
- i0.ɵɵconditionalCreate(27, InitialTargetSettingComponent_Conditional_27_Template, 7, 7, "div", 3);
56745
- i0.ɵɵelementStart(28, "symphiq-sticky-submit-bar", 18);
56746
- i0.ɵɵlistener("submitClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_submitClick_28_listener() { return ctx.handleSubmitClick(); });
56747
- i0.ɵɵelementEnd();
56748
- i0.ɵɵconditionalCreate(29, InitialTargetSettingComponent_Conditional_29_Template, 4, 1, "div", 19);
56749
- i0.ɵɵconditionalCreate(30, InitialTargetSettingComponent_Conditional_30_Template, 4, 1, "div", 20);
56750
- i0.ɵɵelementEnd();
56827
+ i0.ɵɵconditionalCreate(21, InitialTargetSettingComponent_Conditional_21_Template, 7, 7, "div", 3);
56828
+ i0.ɵɵelementStart(22, "symphiq-sticky-submit-bar", 15);
56829
+ i0.ɵɵlistener("submitClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_submitClick_22_listener() { return ctx.handleSubmitClick(); })("cancelClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_cancelClick_22_listener() { return ctx.handleCancel(); });
56830
+ i0.ɵɵelementEnd()();
56751
56831
  } if (rf & 2) {
56752
56832
  i0.ɵɵadvance();
56753
56833
  i0.ɵɵproperty("ngClass", ctx.sectionCardClasses());
@@ -56763,28 +56843,20 @@ class InitialTargetSettingComponent {
56763
56843
  i0.ɵɵtextInterpolate2(" ", ctx.priorYear(), " Revenue: ", ctx.formatCurrency(ctx.priorYearRevenue()), " ");
56764
56844
  i0.ɵɵadvance();
56765
56845
  i0.ɵɵconditional(ctx.currentPaceProjection() > 0 ? 12 : -1);
56766
- i0.ɵɵadvance(2);
56767
- i0.ɵɵproperty("ngClass", ctx.inputModeButtonClasses("absolute"));
56768
- i0.ɵɵadvance(2);
56769
- i0.ɵɵproperty("ngClass", ctx.inputModeButtonClasses("percentage"));
56770
- i0.ɵɵadvance(2);
56771
- i0.ɵɵconditional(ctx.inputMode() === "absolute" ? 18 : 19);
56772
- i0.ɵɵadvance(2);
56773
- i0.ɵɵconditional(ctx.calculatedRevenue() > 0 ? 20 : -1);
56846
+ i0.ɵɵadvance();
56847
+ i0.ɵɵconditional(ctx.calculationState() !== "results" ? 13 : -1);
56848
+ i0.ɵɵadvance();
56849
+ i0.ɵɵconditional(ctx.calculatedRevenue() > 0 ? 14 : -1);
56774
56850
  i0.ɵɵadvance(2);
56775
56851
  i0.ɵɵproperty("ngClass", ctx.chartTitleClasses());
56776
56852
  i0.ɵɵadvance(2);
56777
56853
  i0.ɵɵproperty("ngClass", ctx.chartContainerClasses());
56778
56854
  i0.ɵɵadvance();
56779
- i0.ɵɵconditional(ctx.revenueChartData() ? 25 : 26);
56855
+ i0.ɵɵconditional(ctx.revenueChartData() ? 19 : 20);
56780
56856
  i0.ɵɵadvance(2);
56781
- i0.ɵɵconditional(ctx.showMetricsVisualization() ? 27 : -1);
56782
- i0.ɵɵadvance();
56783
- i0.ɵɵproperty("viewMode", ctx.viewMode())("isValid", ctx.isValid())("isSubmitting", ctx.isCalculating())("validationMessage", ctx.validationMessage())("buttonText", ctx.submitButtonText());
56784
- i0.ɵɵadvance();
56785
- i0.ɵɵconditional(ctx.calculationState() === "results" ? 29 : -1);
56857
+ i0.ɵɵconditional(ctx.showMetricsVisualization() ? 21 : -1);
56786
56858
  i0.ɵɵadvance();
56787
- i0.ɵɵconditional(ctx.calculationState() === "input" && ctx.hasStoredResponse() ? 30 : -1);
56859
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("isValid", ctx.isValid())("isSubmitting", ctx.isCalculating())("validationMessage", ctx.validationMessage())("buttonText", ctx.submitButtonText())("showCancelButton", ctx.calculationState() === "input" && ctx.hasStoredResponse());
56788
56860
  } }, dependencies: [CommonModule, i1$1.NgClass, FormsModule, i2$1.DefaultValueAccessor, i2$1.NumberValueAccessor, i2$1.NgControlStatus, i2$1.MinValidator, i2$1.MaxValidator, i2$1.NgModel, FunnelMetricsVisualizationComponent,
56789
56861
  StickySubmitBarComponent,
56790
56862
  AreaChartComponent], encapsulation: 2, changeDetection: 0 }); }
@@ -56826,67 +56898,79 @@ class InitialTargetSettingComponent {
56826
56898
  }
56827
56899
  </div>
56828
56900
 
56829
- <div class="flex gap-2 mb-4">
56830
- <button
56831
- (click)="setInputMode('absolute')"
56832
- [ngClass]="inputModeButtonClasses('absolute')"
56833
- class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
56834
- Absolute Amount
56835
- </button>
56836
- <button
56837
- (click)="setInputMode('percentage')"
56838
- [ngClass]="inputModeButtonClasses('percentage')"
56839
- class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
56840
- % Increase
56841
- </button>
56842
- </div>
56843
-
56844
- @if (inputMode() === 'absolute') {
56845
- <div class="relative">
56846
- <span [ngClass]="inputPrefixClasses()" class="absolute left-4 top-1/2 -translate-y-1/2 text-xl font-bold">
56847
- $
56848
- </span>
56849
- <input
56850
- #absoluteInputRef
56851
- type="number"
56852
- [(ngModel)]="absoluteInput"
56853
- (ngModelChange)="onAbsoluteInputChange()"
56854
- [ngClass]="inputClasses()"
56855
- class="w-full pl-10 pr-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
56856
- placeholder="0"
56857
- min="0"
56858
- step="1000">
56859
- </div>
56860
- } @else {
56861
- <div class="relative">
56862
- <input
56863
- #percentageInputRef
56864
- type="number"
56865
- [(ngModel)]="percentageInput"
56866
- (ngModelChange)="onPercentageInputChange()"
56867
- [ngClass]="inputClasses()"
56868
- class="w-full pr-10 pl-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
56869
- placeholder="0"
56870
- min="0"
56871
- max="1000"
56872
- step="0.1">
56873
- <span [ngClass]="inputSuffixClasses()" class="absolute right-4 top-1/2 -translate-y-1/2 text-xl font-bold">
56874
- %
56875
- </span>
56901
+ @if (calculationState() !== 'results') {
56902
+ <div class="flex gap-2 mb-4">
56903
+ <button
56904
+ (click)="setInputMode('absolute')"
56905
+ [ngClass]="inputModeButtonClasses('absolute')"
56906
+ class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
56907
+ Absolute Amount
56908
+ </button>
56909
+ <button
56910
+ (click)="setInputMode('percentage')"
56911
+ [ngClass]="inputModeButtonClasses('percentage')"
56912
+ class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
56913
+ % Increase
56914
+ </button>
56876
56915
  </div>
56916
+
56917
+ @if (inputMode() === 'absolute') {
56918
+ <div class="relative">
56919
+ <span [ngClass]="inputPrefixClasses()" class="absolute left-4 top-1/2 -translate-y-1/2 text-xl font-bold">
56920
+ $
56921
+ </span>
56922
+ <input
56923
+ #absoluteInputRef
56924
+ type="number"
56925
+ [(ngModel)]="absoluteInput"
56926
+ (ngModelChange)="onAbsoluteInputChange()"
56927
+ [ngClass]="inputClasses()"
56928
+ class="w-full pl-10 pr-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
56929
+ placeholder="0"
56930
+ min="0"
56931
+ step="1000">
56932
+ </div>
56933
+ } @else {
56934
+ <div class="relative">
56935
+ <input
56936
+ #percentageInputRef
56937
+ type="number"
56938
+ [(ngModel)]="percentageInput"
56939
+ (ngModelChange)="onPercentageInputChange()"
56940
+ [ngClass]="inputClasses()"
56941
+ class="w-full pr-10 pl-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
56942
+ placeholder="0"
56943
+ min="0"
56944
+ max="1000"
56945
+ step="0.1">
56946
+ <span [ngClass]="inputSuffixClasses()" class="absolute right-4 top-1/2 -translate-y-1/2 text-xl font-bold">
56947
+ %
56948
+ </span>
56949
+ </div>
56950
+ }
56877
56951
  }
56878
56952
  </div>
56879
56953
 
56880
56954
  @if (calculatedRevenue() > 0) {
56881
56955
  <div [ngClass]="calculatedValuesCardClasses()" class="p-6 rounded-xl border-2">
56882
56956
  <div class="space-y-4">
56883
- <div>
56884
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56885
- {{ currentYear() }} Revenue Target
56886
- </p>
56887
- <p [ngClass]="calculatedValueClasses()" class="text-3xl font-bold">
56888
- {{ formatCurrency(calculatedRevenue()) }}
56889
- </p>
56957
+ <div class="flex items-center justify-between">
56958
+ <div>
56959
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56960
+ {{ currentYear() }} Revenue Target
56961
+ </p>
56962
+ <p [ngClass]="calculatedValueClasses()" class="text-3xl font-bold">
56963
+ {{ formatCurrency(displayedTargetRevenue()) }}
56964
+ </p>
56965
+ </div>
56966
+ @if (calculationState() === 'results') {
56967
+ <button
56968
+ (click)="handleAdjustTarget()"
56969
+ [ngClass]="secondaryButtonClasses()"
56970
+ class="px-4 py-2 rounded-lg text-sm font-semibold transition-all whitespace-nowrap">
56971
+ Adjust Revenue Target
56972
+ </button>
56973
+ }
56890
56974
  </div>
56891
56975
  <div class="grid grid-cols-2 gap-4 pt-4" [ngClass]="calculatedDividerClasses()">
56892
56976
  <div>
@@ -56981,34 +57065,10 @@ class InitialTargetSettingComponent {
56981
57065
  [isSubmitting]="isCalculating()"
56982
57066
  [validationMessage]="validationMessage()"
56983
57067
  [buttonText]="submitButtonText()"
57068
+ [showCancelButton]="calculationState() === 'input' && hasStoredResponse()"
56984
57069
  (submitClick)="handleSubmitClick()"
57070
+ (cancelClick)="handleCancel()"
56985
57071
  />
56986
-
56987
- @if (calculationState() === 'results') {
56988
- <div class="fixed bottom-24 left-0 right-0 z-40 pb-4 px-4">
56989
- <div class="max-w-7xl mx-auto flex gap-4 justify-center">
56990
- <button
56991
- (click)="handleAdjustTarget()"
56992
- [ngClass]="secondaryButtonClasses()"
56993
- class="px-6 py-3 rounded-xl font-semibold transition-all shadow-lg">
56994
- Adjust Revenue Target
56995
- </button>
56996
- </div>
56997
- </div>
56998
- }
56999
-
57000
- @if (calculationState() === 'input' && hasStoredResponse()) {
57001
- <div class="fixed bottom-32 left-0 right-0 z-40 pb-4 px-4">
57002
- <div class="max-w-7xl mx-auto flex gap-4 justify-center">
57003
- <button
57004
- (click)="handleCancel()"
57005
- [ngClass]="cancelButtonClasses()"
57006
- class="px-6 py-3 rounded-xl font-semibold transition-all shadow-lg">
57007
- Cancel
57008
- </button>
57009
- </div>
57010
- </div>
57011
- }
57012
57072
  </div>
57013
57073
  `
57014
57074
  }]
@@ -57019,7 +57079,7 @@ class InitialTargetSettingComponent {
57019
57079
  type: ViewChild,
57020
57080
  args: ['percentageInputRef']
57021
57081
  }], 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 }] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }], calculateRevenueRequest: [{ type: i0.Output, args: ["calculateRevenueRequest"] }] }); })();
57022
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 259 }); })();
57082
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 247 }); })();
57023
57083
 
57024
57084
  function IndeterminateSpinnerComponent_For_5_Template(rf, ctx) { if (rf & 1) {
57025
57085
  i0.ɵɵelement(0, "div", 5);