@eric-emg/symphiq-components 1.2.203 → 1.2.204

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.
@@ -56226,38 +56226,38 @@ var areaChart_component = /*#__PURE__*/Object.freeze({
56226
56226
 
56227
56227
  const _c0$r = ["absoluteInputRef"];
56228
56228
  const _c1$b = ["percentageInputRef"];
56229
- function InitialTargetSettingComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
56230
- i0.ɵɵelementStart(0, "div", 8);
56229
+ function InitialTargetSettingComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
56230
+ i0.ɵɵelementStart(0, "div", 9);
56231
56231
  i0.ɵɵnamespaceSVG();
56232
- i0.ɵɵelementStart(1, "svg", 9);
56233
- i0.ɵɵelement(2, "path", 21);
56232
+ i0.ɵɵelementStart(1, "svg", 10);
56233
+ i0.ɵɵelement(2, "path", 23);
56234
56234
  i0.ɵɵelementEnd();
56235
56235
  i0.ɵɵnamespaceHTML();
56236
- i0.ɵɵelementStart(3, "p", 11);
56237
- i0.ɵɵtext(4, " Current Pace Projection: ");
56236
+ i0.ɵɵelementStart(3, "div")(4, "p", 12);
56237
+ i0.ɵɵtext(5, " Current Pace Projection ");
56238
56238
  i0.ɵɵelementEnd();
56239
- i0.ɵɵelementStart(5, "p", 12);
56240
- i0.ɵɵtext(6);
56241
- i0.ɵɵelementEnd()();
56239
+ i0.ɵɵelementStart(6, "p", 13);
56240
+ i0.ɵɵtext(7);
56241
+ i0.ɵɵelementEnd()()();
56242
56242
  } if (rf & 2) {
56243
56243
  const ctx_r0 = i0.ɵɵnextContext();
56244
56244
  i0.ɵɵadvance();
56245
56245
  i0.ɵɵproperty("ngClass", ctx_r0.projectionIconClasses());
56246
- i0.ɵɵadvance(2);
56246
+ i0.ɵɵadvance(3);
56247
56247
  i0.ɵɵproperty("ngClass", ctx_r0.projectionLabelClasses());
56248
56248
  i0.ɵɵadvance(2);
56249
56249
  i0.ɵɵproperty("ngClass", ctx_r0.projectionValueClasses());
56250
56250
  i0.ɵɵadvance();
56251
56251
  i0.ɵɵtextInterpolate1(" ", ctx_r0.formatCurrency(ctx_r0.currentPaceProjection()), " ");
56252
56252
  } }
56253
- function InitialTargetSettingComponent_Conditional_16_Conditional_5_Template(rf, ctx) { if (rf & 1) {
56253
+ function InitialTargetSettingComponent_Conditional_17_Conditional_5_Template(rf, ctx) { if (rf & 1) {
56254
56254
  const _r3 = i0.ɵɵgetCurrentView();
56255
- i0.ɵɵelementStart(0, "div", 24)(1, "span", 25);
56255
+ i0.ɵɵelementStart(0, "div", 26)(1, "span", 27);
56256
56256
  i0.ɵɵtext(2, " $ ");
56257
56257
  i0.ɵɵelementEnd();
56258
- i0.ɵɵelementStart(3, "input", 26, 0);
56259
- i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_16_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); });
56260
- i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_16_Conditional_5_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onAbsoluteInputChange()); });
56258
+ i0.ɵɵelementStart(3, "input", 28, 0);
56259
+ i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_17_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); });
56260
+ i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_17_Conditional_5_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onAbsoluteInputChange()); });
56261
56261
  i0.ɵɵelementEnd()();
56262
56262
  } if (rf & 2) {
56263
56263
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -56267,13 +56267,13 @@ function InitialTargetSettingComponent_Conditional_16_Conditional_5_Template(rf,
56267
56267
  i0.ɵɵtwoWayProperty("ngModel", ctx_r0.absoluteInput);
56268
56268
  i0.ɵɵproperty("ngClass", ctx_r0.inputClasses());
56269
56269
  } }
56270
- function InitialTargetSettingComponent_Conditional_16_Conditional_6_Template(rf, ctx) { if (rf & 1) {
56270
+ function InitialTargetSettingComponent_Conditional_17_Conditional_6_Template(rf, ctx) { if (rf & 1) {
56271
56271
  const _r4 = i0.ɵɵgetCurrentView();
56272
- i0.ɵɵelementStart(0, "div", 24)(1, "input", 27, 1);
56273
- i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_16_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); });
56274
- i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_16_Conditional_6_Template_input_ngModelChange_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onPercentageInputChange()); });
56272
+ i0.ɵɵelementStart(0, "div", 26)(1, "input", 29, 1);
56273
+ i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_17_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); });
56274
+ i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_17_Conditional_6_Template_input_ngModelChange_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onPercentageInputChange()); });
56275
56275
  i0.ɵɵelementEnd();
56276
- i0.ɵɵelementStart(3, "span", 28);
56276
+ i0.ɵɵelementStart(3, "span", 30);
56277
56277
  i0.ɵɵtext(4, " % ");
56278
56278
  i0.ɵɵelementEnd()();
56279
56279
  } if (rf & 2) {
@@ -56284,17 +56284,17 @@ function InitialTargetSettingComponent_Conditional_16_Conditional_6_Template(rf,
56284
56284
  i0.ɵɵadvance(2);
56285
56285
  i0.ɵɵproperty("ngClass", ctx_r0.inputSuffixClasses());
56286
56286
  } }
56287
- function InitialTargetSettingComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
56287
+ function InitialTargetSettingComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
56288
56288
  const _r2 = i0.ɵɵgetCurrentView();
56289
- i0.ɵɵelementStart(0, "div", 22)(1, "button", 23);
56290
- i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_16_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setInputMode("absolute")); });
56289
+ i0.ɵɵelementStart(0, "div", 24)(1, "button", 25);
56290
+ i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_17_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setInputMode("absolute")); });
56291
56291
  i0.ɵɵtext(2, " Absolute Amount ");
56292
56292
  i0.ɵɵelementEnd();
56293
- i0.ɵɵelementStart(3, "button", 23);
56294
- i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_16_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setInputMode("percentage")); });
56293
+ i0.ɵɵelementStart(3, "button", 25);
56294
+ i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setInputMode("percentage")); });
56295
56295
  i0.ɵɵtext(4, " % Increase ");
56296
56296
  i0.ɵɵelementEnd()();
56297
- i0.ɵɵconditionalCreate(5, InitialTargetSettingComponent_Conditional_16_Conditional_5_Template, 5, 3, "div", 24)(6, InitialTargetSettingComponent_Conditional_16_Conditional_6_Template, 5, 3, "div", 24);
56297
+ i0.ɵɵconditionalCreate(5, InitialTargetSettingComponent_Conditional_17_Conditional_5_Template, 5, 3, "div", 26)(6, InitialTargetSettingComponent_Conditional_17_Conditional_6_Template, 5, 3, "div", 26);
56298
56298
  } if (rf & 2) {
56299
56299
  const ctx_r0 = i0.ɵɵnextContext();
56300
56300
  i0.ɵɵadvance();
@@ -56304,30 +56304,30 @@ function InitialTargetSettingComponent_Conditional_16_Template(rf, ctx) { if (rf
56304
56304
  i0.ɵɵadvance(2);
56305
56305
  i0.ɵɵconditional(ctx_r0.inputMode() === "absolute" ? 5 : 6);
56306
56306
  } }
56307
- function InitialTargetSettingComponent_Conditional_19_Conditional_8_Template(rf, ctx) { if (rf & 1) {
56307
+ function InitialTargetSettingComponent_Conditional_20_Conditional_8_Template(rf, ctx) { if (rf & 1) {
56308
56308
  const _r5 = i0.ɵɵgetCurrentView();
56309
- i0.ɵɵelementStart(0, "button", 39);
56310
- i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_19_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.handleAdjustTarget()); });
56309
+ i0.ɵɵelementStart(0, "button", 41);
56310
+ i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_20_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.handleAdjustTarget()); });
56311
56311
  i0.ɵɵtext(1, " Adjust Revenue Target ");
56312
56312
  i0.ɵɵelementEnd();
56313
56313
  } if (rf & 2) {
56314
56314
  const ctx_r0 = i0.ɵɵnextContext(2);
56315
56315
  i0.ɵɵproperty("ngClass", ctx_r0.secondaryButtonClasses());
56316
56316
  } }
56317
- function InitialTargetSettingComponent_Conditional_19_Conditional_24_Template(rf, ctx) { if (rf & 1) {
56318
- i0.ɵɵelementStart(0, "div", 34)(1, "div", 35)(2, "span", 36);
56317
+ function InitialTargetSettingComponent_Conditional_20_Conditional_24_Template(rf, ctx) { if (rf & 1) {
56318
+ i0.ɵɵelementStart(0, "div", 36)(1, "div", 37)(2, "span", 38);
56319
56319
  i0.ɵɵtext(3);
56320
56320
  i0.ɵɵelementEnd()();
56321
- i0.ɵɵelementStart(4, "div", 37)(5, "div")(6, "p", 31);
56321
+ i0.ɵɵelementStart(4, "div", 39)(5, "div")(6, "p", 33);
56322
56322
  i0.ɵɵtext(7, " Gap to Close ");
56323
56323
  i0.ɵɵelementEnd();
56324
- i0.ɵɵelementStart(8, "p", 38);
56324
+ i0.ɵɵelementStart(8, "p", 40);
56325
56325
  i0.ɵɵtext(9);
56326
56326
  i0.ɵɵelementEnd()();
56327
- i0.ɵɵelementStart(10, "div")(11, "p", 31);
56327
+ i0.ɵɵelementStart(10, "div")(11, "p", 33);
56328
56328
  i0.ɵɵtext(12, " Additional Growth Needed ");
56329
56329
  i0.ɵɵelementEnd();
56330
- i0.ɵɵelementStart(13, "p", 38);
56330
+ i0.ɵɵelementStart(13, "p", 40);
56331
56331
  i0.ɵɵtext(14);
56332
56332
  i0.ɵɵelementEnd()()()();
56333
56333
  } if (rf & 2) {
@@ -56350,31 +56350,31 @@ function InitialTargetSettingComponent_Conditional_19_Conditional_24_Template(rf
56350
56350
  i0.ɵɵadvance();
56351
56351
  i0.ɵɵtextInterpolate2(" ", ctx_r0.gapToClose().amount > 0 ? "+" : "", "", ctx_r0.formatPercentage(ctx_r0.gapToClose().percentage, 1), " ");
56352
56352
  } }
56353
- function InitialTargetSettingComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
56354
- i0.ɵɵelementStart(0, "div", 15)(1, "div", 29)(2, "div", 30)(3, "div")(4, "p", 31);
56353
+ function InitialTargetSettingComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
56354
+ i0.ɵɵelementStart(0, "div", 16)(1, "div", 31)(2, "div", 32)(3, "div")(4, "p", 33);
56355
56355
  i0.ɵɵtext(5);
56356
56356
  i0.ɵɵelementEnd();
56357
- i0.ɵɵelementStart(6, "p", 32);
56357
+ i0.ɵɵelementStart(6, "p", 34);
56358
56358
  i0.ɵɵtext(7);
56359
56359
  i0.ɵɵelementEnd()();
56360
- i0.ɵɵconditionalCreate(8, InitialTargetSettingComponent_Conditional_19_Conditional_8_Template, 2, 1, "button", 33);
56360
+ i0.ɵɵconditionalCreate(8, InitialTargetSettingComponent_Conditional_20_Conditional_8_Template, 2, 1, "button", 35);
56361
56361
  i0.ɵɵelementEnd();
56362
- i0.ɵɵelementStart(9, "div", 34)(10, "div", 35)(11, "span", 36);
56362
+ i0.ɵɵelementStart(9, "div", 36)(10, "div", 37)(11, "span", 38);
56363
56363
  i0.ɵɵtext(12);
56364
56364
  i0.ɵɵelementEnd()();
56365
- i0.ɵɵelementStart(13, "div", 37)(14, "div")(15, "p", 31);
56365
+ i0.ɵɵelementStart(13, "div", 39)(14, "div")(15, "p", 33);
56366
56366
  i0.ɵɵtext(16, " Increase Amount ");
56367
56367
  i0.ɵɵelementEnd();
56368
- i0.ɵɵelementStart(17, "p", 38);
56368
+ i0.ɵɵelementStart(17, "p", 40);
56369
56369
  i0.ɵɵtext(18);
56370
56370
  i0.ɵɵelementEnd()();
56371
- i0.ɵɵelementStart(19, "div")(20, "p", 31);
56371
+ i0.ɵɵelementStart(19, "div")(20, "p", 33);
56372
56372
  i0.ɵɵtext(21, " % Growth ");
56373
56373
  i0.ɵɵelementEnd();
56374
- i0.ɵɵelementStart(22, "p", 38);
56374
+ i0.ɵɵelementStart(22, "p", 40);
56375
56375
  i0.ɵɵtext(23);
56376
56376
  i0.ɵɵelementEnd()()()();
56377
- i0.ɵɵconditionalCreate(24, InitialTargetSettingComponent_Conditional_19_Conditional_24_Template, 15, 10, "div", 34);
56377
+ i0.ɵɵconditionalCreate(24, InitialTargetSettingComponent_Conditional_20_Conditional_24_Template, 15, 10, "div", 36);
56378
56378
  i0.ɵɵelementEnd()();
56379
56379
  } if (rf & 2) {
56380
56380
  const ctx_r0 = i0.ɵɵnextContext();
@@ -56410,14 +56410,14 @@ function InitialTargetSettingComponent_Conditional_19_Template(rf, ctx) { if (rf
56410
56410
  i0.ɵɵadvance();
56411
56411
  i0.ɵɵconditional(ctx_r0.currentPaceProjection() > 0 && ctx_r0.gapToClose().amount !== 0 ? 24 : -1);
56412
56412
  } }
56413
- function InitialTargetSettingComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
56414
- i0.ɵɵelement(0, "symphiq-area-chart", 18);
56413
+ function InitialTargetSettingComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
56414
+ i0.ɵɵelement(0, "symphiq-area-chart", 20);
56415
56415
  } if (rf & 2) {
56416
56416
  const ctx_r0 = i0.ɵɵnextContext();
56417
56417
  i0.ɵɵproperty("chart", ctx_r0.revenueChartData())("showAxisLabels", true)("viewMode", ctx_r0.viewMode())("currencySymbol", "$")("height", "320px");
56418
56418
  } }
56419
- function InitialTargetSettingComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
56420
- i0.ɵɵelementStart(0, "div", 19)(1, "p", 40);
56419
+ function InitialTargetSettingComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
56420
+ i0.ɵɵelementStart(0, "div", 21)(1, "p", 42);
56421
56421
  i0.ɵɵtext(2, " No revenue data available ");
56422
56422
  i0.ɵɵelementEnd()();
56423
56423
  } if (rf & 2) {
@@ -56425,14 +56425,14 @@ function InitialTargetSettingComponent_Conditional_25_Template(rf, ctx) { if (rf
56425
56425
  i0.ɵɵadvance();
56426
56426
  i0.ɵɵproperty("ngClass", ctx_r0.noDataClasses());
56427
56427
  } }
56428
- function InitialTargetSettingComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
56429
- i0.ɵɵelementStart(0, "div", 3)(1, "div", 41)(2, "h2", 42);
56428
+ function InitialTargetSettingComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
56429
+ i0.ɵɵelementStart(0, "div", 3)(1, "div", 43)(2, "h2", 44);
56430
56430
  i0.ɵɵtext(3, " Contributing Metrics ");
56431
56431
  i0.ɵɵelementEnd();
56432
- i0.ɵɵelementStart(4, "p", 40);
56432
+ i0.ɵɵelementStart(4, "p", 42);
56433
56433
  i0.ɵɵtext(5);
56434
56434
  i0.ɵɵelementEnd()();
56435
- i0.ɵɵelement(6, "symphiq-funnel-metrics-visualization", 43);
56435
+ i0.ɵɵelement(6, "symphiq-funnel-metrics-visualization", 45);
56436
56436
  i0.ɵɵelementEnd();
56437
56437
  } if (rf & 2) {
56438
56438
  const ctx_r0 = i0.ɵɵnextContext();
@@ -56862,6 +56862,11 @@ class InitialTargetSettingComponent {
56862
56862
  ? 'bg-purple-900/60 text-purple-300 border border-purple-500/30'
56863
56863
  : 'bg-purple-100 text-purple-700 border border-purple-300';
56864
56864
  }
56865
+ formAreaClasses() {
56866
+ return this.viewMode() === ViewModeEnum.DARK
56867
+ ? 'bg-slate-800/60 border-slate-600'
56868
+ : 'bg-slate-50 border-slate-300';
56869
+ }
56865
56870
  static { this.ɵfac = function InitialTargetSettingComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InitialTargetSettingComponent)(); }; }
56866
56871
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InitialTargetSettingComponent, selectors: [["symphiq-initial-target-setting"]], viewQuery: function InitialTargetSettingComponent_Query(rf, ctx) { if (rf & 1) {
56867
56872
  i0.ɵɵviewQuery(_c0$r, 5);
@@ -56870,38 +56875,38 @@ class InitialTargetSettingComponent {
56870
56875
  let _t;
56871
56876
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.absoluteInputRef = _t.first);
56872
56877
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageInputRef = _t.first);
56873
- } }, 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: 28, vars: 24, 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, "p-4", "rounded-lg", "mb-4", "space-y-2", 3, "ngClass"], [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-sm", "font-semibold", 3, "ngClass"], [1, "text-sm", "font-bold", "ml-auto", 3, "ngClass"], [1, "calculated-card-enter"], [1, "calculated-card-content"], [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"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], [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, "relative", "pt-4", 3, "ngClass"], [1, "absolute", "top-0", "left-1/2", "-translate-x-1/2", "-translate-y-1/2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4"], [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) {
56878
+ } }, 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: 29, vars: 24, 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, "flex", "flex-col", "gap-8"], [1, "grid", "lg:grid-cols-2", "gap-8"], [1, "p-6", "rounded-xl", "border-2", "space-y-6", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-4"], [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, "calculated-card-enter", "order-first", "lg:order-last"], [1, "calculated-card-content"], [1, "p-6", "rounded-xl", "border-2", "h-full", 3, "ngClass"], [1, "w-full"], [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"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], [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, "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-6"], [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, "relative", "pt-6", "mt-6", 3, "ngClass"], [1, "absolute", "top-0", "left-1/2", "-translate-x-1/2", "-translate-y-1/2"], [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-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) {
56874
56879
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "h2", 4);
56875
56880
  i0.ɵɵtext(3);
56876
56881
  i0.ɵɵelementEnd();
56877
- i0.ɵɵelementStart(4, "div", 5)(5, "div", 6)(6, "div")(7, "div", 7)(8, "div", 8);
56882
+ i0.ɵɵelementStart(4, "div", 5)(5, "div", 6)(6, "div", 7)(7, "div", 8)(8, "div", 9);
56878
56883
  i0.ɵɵnamespaceSVG();
56879
- i0.ɵɵelementStart(9, "svg", 9);
56880
- i0.ɵɵelement(10, "path", 10);
56884
+ i0.ɵɵelementStart(9, "svg", 10);
56885
+ i0.ɵɵelement(10, "path", 11);
56881
56886
  i0.ɵɵelementEnd();
56882
56887
  i0.ɵɵnamespaceHTML();
56883
- i0.ɵɵelementStart(11, "p", 11);
56884
- i0.ɵɵtext(12);
56888
+ i0.ɵɵelementStart(11, "div")(12, "p", 12);
56889
+ i0.ɵɵtext(13);
56885
56890
  i0.ɵɵelementEnd();
56886
- i0.ɵɵelementStart(13, "p", 12);
56887
- i0.ɵɵtext(14);
56888
- i0.ɵɵelementEnd()();
56889
- i0.ɵɵconditionalCreate(15, InitialTargetSettingComponent_Conditional_15_Template, 7, 4, "div", 8);
56891
+ i0.ɵɵelementStart(14, "p", 13);
56892
+ i0.ɵɵtext(15);
56893
+ i0.ɵɵelementEnd()()();
56894
+ i0.ɵɵconditionalCreate(16, InitialTargetSettingComponent_Conditional_16_Template, 8, 4, "div", 9);
56890
56895
  i0.ɵɵelementEnd();
56891
- i0.ɵɵconditionalCreate(16, InitialTargetSettingComponent_Conditional_16_Template, 7, 3);
56896
+ i0.ɵɵconditionalCreate(17, InitialTargetSettingComponent_Conditional_17_Template, 7, 3);
56892
56897
  i0.ɵɵelementEnd();
56893
- i0.ɵɵelementStart(17, "div", 13)(18, "div", 14);
56894
- i0.ɵɵconditionalCreate(19, InitialTargetSettingComponent_Conditional_19_Template, 25, 16, "div", 15);
56898
+ i0.ɵɵelementStart(18, "div", 14)(19, "div", 15);
56899
+ i0.ɵɵconditionalCreate(20, InitialTargetSettingComponent_Conditional_20_Template, 25, 16, "div", 16);
56895
56900
  i0.ɵɵelementEnd()()();
56896
- i0.ɵɵelementStart(20, "div")(21, "p", 16);
56897
- i0.ɵɵtext(22, " Year-over-Year Revenue Trend ");
56901
+ i0.ɵɵelementStart(21, "div", 17)(22, "p", 18);
56902
+ i0.ɵɵtext(23, " Year-over-Year Revenue Trend ");
56898
56903
  i0.ɵɵelementEnd();
56899
- i0.ɵɵelementStart(23, "div", 17);
56900
- i0.ɵɵconditionalCreate(24, InitialTargetSettingComponent_Conditional_24_Template, 1, 5, "symphiq-area-chart", 18)(25, InitialTargetSettingComponent_Conditional_25_Template, 3, 1, "div", 19);
56904
+ i0.ɵɵelementStart(24, "div", 19);
56905
+ i0.ɵɵconditionalCreate(25, InitialTargetSettingComponent_Conditional_25_Template, 1, 5, "symphiq-area-chart", 20)(26, InitialTargetSettingComponent_Conditional_26_Template, 3, 1, "div", 21);
56901
56906
  i0.ɵɵelementEnd()()()();
56902
- i0.ɵɵconditionalCreate(26, InitialTargetSettingComponent_Conditional_26_Template, 7, 7, "div", 3);
56903
- i0.ɵɵelementStart(27, "symphiq-sticky-submit-bar", 20);
56904
- i0.ɵɵlistener("submitClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_submitClick_27_listener() { return ctx.handleSubmitClick(); })("cancelClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_cancelClick_27_listener() { return ctx.handleCancel(); });
56907
+ i0.ɵɵconditionalCreate(27, InitialTargetSettingComponent_Conditional_27_Template, 7, 7, "div", 3);
56908
+ i0.ɵɵelementStart(28, "symphiq-sticky-submit-bar", 22);
56909
+ i0.ɵɵlistener("submitClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_submitClick_28_listener() { return ctx.handleSubmitClick(); })("cancelClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_cancelClick_28_listener() { return ctx.handleCancel(); });
56905
56910
  i0.ɵɵelementEnd()();
56906
56911
  } if (rf & 2) {
56907
56912
  i0.ɵɵadvance();
@@ -56910,34 +56915,34 @@ class InitialTargetSettingComponent {
56910
56915
  i0.ɵɵproperty("ngClass", ctx.sectionTitleClasses());
56911
56916
  i0.ɵɵadvance();
56912
56917
  i0.ɵɵtextInterpolate1(" Calculate Your ", ctx.currentYear(), " Revenue Target ");
56913
- i0.ɵɵadvance(4);
56914
- i0.ɵɵproperty("ngClass", ctx.baselineMetricsCardClasses());
56915
- i0.ɵɵadvance(2);
56918
+ i0.ɵɵadvance(3);
56919
+ i0.ɵɵproperty("ngClass", ctx.formAreaClasses());
56920
+ i0.ɵɵadvance(3);
56916
56921
  i0.ɵɵproperty("ngClass", ctx.baselineIconClasses());
56917
- i0.ɵɵadvance(2);
56922
+ i0.ɵɵadvance(3);
56918
56923
  i0.ɵɵproperty("ngClass", ctx.baselineLabelClasses());
56919
56924
  i0.ɵɵadvance();
56920
- i0.ɵɵtextInterpolate1(" ", ctx.priorYear(), " Revenue: ");
56925
+ i0.ɵɵtextInterpolate1(" ", ctx.priorYear(), " Revenue ");
56921
56926
  i0.ɵɵadvance();
56922
56927
  i0.ɵɵproperty("ngClass", ctx.baselineValueClasses());
56923
56928
  i0.ɵɵadvance();
56924
56929
  i0.ɵɵtextInterpolate1(" ", ctx.formatCurrency(ctx.priorYearRevenue()), " ");
56925
56930
  i0.ɵɵadvance();
56926
- i0.ɵɵconditional(ctx.currentPaceProjection() > 0 ? 15 : -1);
56931
+ i0.ɵɵconditional(ctx.currentPaceProjection() > 0 ? 16 : -1);
56927
56932
  i0.ɵɵadvance();
56928
- i0.ɵɵconditional(ctx.calculationState() !== "results" ? 16 : -1);
56933
+ i0.ɵɵconditional(ctx.calculationState() !== "results" ? 17 : -1);
56929
56934
  i0.ɵɵadvance();
56930
56935
  i0.ɵɵclassProp("calculated-card-enter-active", ctx.calculatedRevenue() > 0);
56931
56936
  i0.ɵɵadvance(2);
56932
- i0.ɵɵconditional(ctx.calculatedRevenue() > 0 ? 19 : -1);
56937
+ i0.ɵɵconditional(ctx.calculatedRevenue() > 0 ? 20 : -1);
56933
56938
  i0.ɵɵadvance(2);
56934
56939
  i0.ɵɵproperty("ngClass", ctx.chartTitleClasses());
56935
56940
  i0.ɵɵadvance(2);
56936
56941
  i0.ɵɵproperty("ngClass", ctx.chartContainerClasses());
56937
56942
  i0.ɵɵadvance();
56938
- i0.ɵɵconditional(ctx.revenueChartData() ? 24 : 25);
56943
+ i0.ɵɵconditional(ctx.revenueChartData() ? 25 : 26);
56939
56944
  i0.ɵɵadvance(2);
56940
- i0.ɵɵconditional(ctx.showMetricsVisualization() ? 26 : -1);
56945
+ i0.ɵɵconditional(ctx.showMetricsVisualization() ? 27 : -1);
56941
56946
  i0.ɵɵadvance();
56942
56947
  i0.ɵɵproperty("viewMode", ctx.viewMode())("isValid", ctx.isValid())("isSubmitting", ctx.isCalculating())("validationMessage", ctx.validationMessage())("buttonText", ctx.submitButtonText())("showCancelButton", ctx.calculationState() === "input" && ctx.hasStoredResponse());
56943
56948
  } }, 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,
@@ -56952,235 +56957,239 @@ class InitialTargetSettingComponent {
56952
56957
  FunnelMetricsVisualizationComponent,
56953
56958
  StickySubmitBarComponent,
56954
56959
  AreaChartComponent
56955
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: `
56956
- <div class="space-y-8 pb-32">
56957
- <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
56958
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-6">
56959
- Calculate Your {{ currentYear() }} Revenue Target
56960
- </h2>
56961
-
56962
- <div class="grid lg:grid-cols-2 gap-8">
56963
- <div class="space-y-6">
56964
- <div>
56965
- <div [ngClass]="baselineMetricsCardClasses()" class="p-4 rounded-lg mb-4 space-y-2">
56966
- <div class="flex items-center gap-2">
56967
- <svg class="w-4 h-4" [ngClass]="baselineIconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
56968
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
56969
- </svg>
56970
- <p [ngClass]="baselineLabelClasses()" class="text-sm font-semibold">
56971
- {{ priorYear() }} Revenue:
56972
- </p>
56973
- <p [ngClass]="baselineValueClasses()" class="text-sm font-bold ml-auto">
56974
- {{ formatCurrency(priorYearRevenue()) }}
56975
- </p>
56976
- </div>
56977
- @if (currentPaceProjection() > 0) {
56978
- <div class="flex items-center gap-2">
56979
- <svg class="w-4 h-4" [ngClass]="projectionIconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
56980
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path>
56981
- </svg>
56982
- <p [ngClass]="projectionLabelClasses()" class="text-sm font-semibold">
56983
- Current Pace Projection:
56984
- </p>
56985
- <p [ngClass]="projectionValueClasses()" class="text-sm font-bold ml-auto">
56986
- {{ formatCurrency(currentPaceProjection()) }}
56987
- </p>
56988
- </div>
56989
- }
56990
- </div>
56991
-
56992
- @if (calculationState() !== 'results') {
56993
- <div class="flex gap-2 mb-4">
56994
- <button
56995
- (click)="setInputMode('absolute')"
56996
- [ngClass]="inputModeButtonClasses('absolute')"
56997
- class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
56998
- Absolute Amount
56999
- </button>
57000
- <button
57001
- (click)="setInputMode('percentage')"
57002
- [ngClass]="inputModeButtonClasses('percentage')"
57003
- class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
57004
- % Increase
57005
- </button>
57006
- </div>
57007
-
57008
- @if (inputMode() === 'absolute') {
57009
- <div class="relative">
57010
- <span [ngClass]="inputPrefixClasses()" class="absolute left-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57011
- $
57012
- </span>
57013
- <input
57014
- #absoluteInputRef
57015
- type="number"
57016
- [(ngModel)]="absoluteInput"
57017
- (ngModelChange)="onAbsoluteInputChange()"
57018
- [ngClass]="inputClasses()"
57019
- class="w-full pl-10 pr-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57020
- placeholder="0"
57021
- min="0"
57022
- step="1000">
57023
- </div>
57024
- } @else {
57025
- <div class="relative">
57026
- <input
57027
- #percentageInputRef
57028
- type="number"
57029
- [(ngModel)]="percentageInput"
57030
- (ngModelChange)="onPercentageInputChange()"
57031
- [ngClass]="inputClasses()"
57032
- class="w-full pr-10 pl-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57033
- placeholder="0"
57034
- min="0"
57035
- max="1000"
57036
- step="0.1">
57037
- <span [ngClass]="inputSuffixClasses()" class="absolute right-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57038
- %
57039
- </span>
57040
- </div>
57041
- }
57042
- }
57043
- </div>
57044
-
57045
- <div class="calculated-card-enter" [class.calculated-card-enter-active]="calculatedRevenue() > 0">
57046
- <div class="calculated-card-content">
57047
- @if (calculatedRevenue() > 0) {
57048
- <div [ngClass]="calculatedValuesCardClasses()" class="p-6 rounded-xl border-2">
57049
- <div class="space-y-4">
57050
- <div class="flex items-center justify-between">
57051
- <div>
57052
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57053
- {{ currentYear() }} Revenue Target
57054
- </p>
57055
- <p [ngClass]="calculatedValueClasses()" class="text-3xl font-bold">
57056
- {{ formatCurrency(displayedTargetRevenue()) }}
57057
- </p>
57058
- </div>
57059
- @if (calculationState() === 'results') {
57060
- <button
57061
- (click)="handleAdjustTarget()"
57062
- [ngClass]="secondaryButtonClasses()"
57063
- class="px-4 py-2 rounded-lg text-sm font-semibold transition-all whitespace-nowrap">
57064
- Adjust Revenue Target
57065
- </button>
57066
- }
57067
- </div>
57068
-
57069
- <div class="relative pt-4" [ngClass]="calculatedDividerClasses()">
57070
- <div class="absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2">
57071
- <span [ngClass]="dividerLabelClasses()" class="px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap">
57072
- vs. {{ priorYear() }}
57073
- </span>
57074
- </div>
57075
- <div class="grid grid-cols-2 gap-4">
57076
- <div>
57077
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57078
- Increase Amount
57079
- </p>
57080
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57081
- {{ formatCurrency(calculatedRevenue() - priorYearRevenue()) }}
57082
- </p>
57083
- </div>
57084
- <div>
57085
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57086
- % Growth
57087
- </p>
57088
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57089
- +{{ formatPercentage(percentageIncrease(), 1) }}
57090
- </p>
57091
- </div>
57092
- </div>
57093
- </div>
57094
-
57095
- @if (currentPaceProjection() > 0 && gapToClose().amount !== 0) {
57096
- <div class="relative pt-4" [ngClass]="calculatedDividerClasses()">
57097
- <div class="absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2">
57098
- <span [ngClass]="dividerLabelClasses()" class="px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap">
57099
- {{ currentYear() }} YTD Gap
57100
- </span>
57101
- </div>
57102
- <div class="grid grid-cols-2 gap-4">
57103
- <div>
57104
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57105
- Gap to Close
57106
- </p>
57107
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57108
- {{ formatCurrency(absValue(gapToClose().amount)) }}
57109
- </p>
57110
- </div>
57111
- <div>
57112
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57113
- Additional Growth Needed
57114
- </p>
57115
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57116
- {{ gapToClose().amount > 0 ? '+' : '' }}{{ formatPercentage(gapToClose().percentage, 1) }}
57117
- </p>
57118
- </div>
57119
- </div>
57120
- </div>
57121
- }
57122
- </div>
57123
- </div>
57124
- }
57125
- </div>
57126
- </div>
57127
- </div>
57128
-
57129
- <div>
57130
- <p [ngClass]="chartTitleClasses()" class="text-sm font-semibold mb-3">
57131
- Year-over-Year Revenue Trend
57132
- </p>
57133
- <div [ngClass]="chartContainerClasses()" class="rounded-xl border p-4">
57134
- @if (revenueChartData()) {
57135
- <symphiq-area-chart
57136
- [chart]="revenueChartData()!"
57137
- [showAxisLabels]="true"
57138
- [viewMode]="viewMode()"
57139
- [currencySymbol]="'$'"
57140
- [height]="'320px'"
57141
- />
57142
- } @else {
57143
- <div class="h-64 flex items-center justify-center">
57144
- <p [ngClass]="noDataClasses()" class="text-sm">
57145
- No revenue data available
57146
- </p>
57147
- </div>
57148
- }
57149
- </div>
57150
- </div>
57151
- </div>
57152
- </div>
57153
-
57154
- @if (showMetricsVisualization()) {
57155
- <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
57156
- <div class="mb-6">
57157
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
57158
- Contributing Metrics
57159
- </h2>
57160
- <p [ngClass]="sectionDescriptionClasses()" class="text-sm">
57161
- To achieve your revenue target of {{ formatCurrency(displayedTargetRevenue()) }}, the following metrics need to improve by these amounts. These improvements compound through your funnel to drive revenue growth.
57162
- </p>
57163
- </div>
57164
-
57165
- <symphiq-funnel-metrics-visualization
57166
- [viewMode]="viewMode()"
57167
- [calculations]="displayedMetricCalculations()"
57168
- [pacingMetrics]="pacingMetrics()"
57169
- />
57170
- </div>
57171
- }
57172
-
57173
- <symphiq-sticky-submit-bar
57174
- [viewMode]="viewMode()"
57175
- [isValid]="isValid()"
57176
- [isSubmitting]="isCalculating()"
57177
- [validationMessage]="validationMessage()"
57178
- [buttonText]="submitButtonText()"
57179
- [showCancelButton]="calculationState() === 'input' && hasStoredResponse()"
57180
- (submitClick)="handleSubmitClick()"
57181
- (cancelClick)="handleCancel()"
57182
- />
57183
- </div>
56960
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: `
56961
+ <div class="space-y-8 pb-32">
56962
+ <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
56963
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-6">
56964
+ Calculate Your {{ currentYear() }} Revenue Target
56965
+ </h2>
56966
+
56967
+ <div class="flex flex-col gap-8">
56968
+ <div class="grid lg:grid-cols-2 gap-8">
56969
+ <div [ngClass]="formAreaClasses()" class="p-6 rounded-xl border-2 space-y-6">
56970
+ <div class="flex flex-wrap gap-4">
56971
+ <div class="flex items-center gap-2">
56972
+ <svg class="w-4 h-4" [ngClass]="baselineIconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
56973
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
56974
+ </svg>
56975
+ <div>
56976
+ <p [ngClass]="baselineLabelClasses()" class="text-xs font-medium uppercase tracking-wider">
56977
+ {{ priorYear() }} Revenue
56978
+ </p>
56979
+ <p [ngClass]="baselineValueClasses()" class="text-lg font-bold">
56980
+ {{ formatCurrency(priorYearRevenue()) }}
56981
+ </p>
56982
+ </div>
56983
+ </div>
56984
+ @if (currentPaceProjection() > 0) {
56985
+ <div class="flex items-center gap-2">
56986
+ <svg class="w-4 h-4" [ngClass]="projectionIconClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
56987
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path>
56988
+ </svg>
56989
+ <div>
56990
+ <p [ngClass]="projectionLabelClasses()" class="text-xs font-medium uppercase tracking-wider">
56991
+ Current Pace Projection
56992
+ </p>
56993
+ <p [ngClass]="projectionValueClasses()" class="text-lg font-bold">
56994
+ {{ formatCurrency(currentPaceProjection()) }}
56995
+ </p>
56996
+ </div>
56997
+ </div>
56998
+ }
56999
+ </div>
57000
+
57001
+ @if (calculationState() !== 'results') {
57002
+ <div class="flex gap-2">
57003
+ <button
57004
+ (click)="setInputMode('absolute')"
57005
+ [ngClass]="inputModeButtonClasses('absolute')"
57006
+ class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
57007
+ Absolute Amount
57008
+ </button>
57009
+ <button
57010
+ (click)="setInputMode('percentage')"
57011
+ [ngClass]="inputModeButtonClasses('percentage')"
57012
+ class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
57013
+ % Increase
57014
+ </button>
57015
+ </div>
57016
+
57017
+ @if (inputMode() === 'absolute') {
57018
+ <div class="relative">
57019
+ <span [ngClass]="inputPrefixClasses()" class="absolute left-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57020
+ $
57021
+ </span>
57022
+ <input
57023
+ #absoluteInputRef
57024
+ type="number"
57025
+ [(ngModel)]="absoluteInput"
57026
+ (ngModelChange)="onAbsoluteInputChange()"
57027
+ [ngClass]="inputClasses()"
57028
+ class="w-full pl-10 pr-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57029
+ placeholder="0"
57030
+ min="0"
57031
+ step="1000">
57032
+ </div>
57033
+ } @else {
57034
+ <div class="relative">
57035
+ <input
57036
+ #percentageInputRef
57037
+ type="number"
57038
+ [(ngModel)]="percentageInput"
57039
+ (ngModelChange)="onPercentageInputChange()"
57040
+ [ngClass]="inputClasses()"
57041
+ class="w-full pr-10 pl-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57042
+ placeholder="0"
57043
+ min="0"
57044
+ max="1000"
57045
+ step="0.1">
57046
+ <span [ngClass]="inputSuffixClasses()" class="absolute right-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57047
+ %
57048
+ </span>
57049
+ </div>
57050
+ }
57051
+ }
57052
+ </div>
57053
+
57054
+ <div class="calculated-card-enter order-first lg:order-last" [class.calculated-card-enter-active]="calculatedRevenue() > 0">
57055
+ <div class="calculated-card-content">
57056
+ @if (calculatedRevenue() > 0) {
57057
+ <div [ngClass]="calculatedValuesCardClasses()" class="p-6 rounded-xl border-2 h-full">
57058
+ <div class="space-y-6">
57059
+ <div class="flex items-center justify-between">
57060
+ <div>
57061
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57062
+ {{ currentYear() }} Revenue Target
57063
+ </p>
57064
+ <p [ngClass]="calculatedValueClasses()" class="text-3xl font-bold">
57065
+ {{ formatCurrency(displayedTargetRevenue()) }}
57066
+ </p>
57067
+ </div>
57068
+ @if (calculationState() === 'results') {
57069
+ <button
57070
+ (click)="handleAdjustTarget()"
57071
+ [ngClass]="secondaryButtonClasses()"
57072
+ class="px-4 py-2 rounded-lg text-sm font-semibold transition-all whitespace-nowrap">
57073
+ Adjust Revenue Target
57074
+ </button>
57075
+ }
57076
+ </div>
57077
+
57078
+ <div class="relative pt-6 mt-6" [ngClass]="calculatedDividerClasses()">
57079
+ <div class="absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2">
57080
+ <span [ngClass]="dividerLabelClasses()" class="px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap">
57081
+ vs. {{ priorYear() }}
57082
+ </span>
57083
+ </div>
57084
+ <div class="grid grid-cols-2 gap-4 pt-2">
57085
+ <div>
57086
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57087
+ Increase Amount
57088
+ </p>
57089
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57090
+ {{ formatCurrency(calculatedRevenue() - priorYearRevenue()) }}
57091
+ </p>
57092
+ </div>
57093
+ <div>
57094
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57095
+ % Growth
57096
+ </p>
57097
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57098
+ +{{ formatPercentage(percentageIncrease(), 1) }}
57099
+ </p>
57100
+ </div>
57101
+ </div>
57102
+ </div>
57103
+
57104
+ @if (currentPaceProjection() > 0 && gapToClose().amount !== 0) {
57105
+ <div class="relative pt-6 mt-6" [ngClass]="calculatedDividerClasses()">
57106
+ <div class="absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2">
57107
+ <span [ngClass]="dividerLabelClasses()" class="px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap">
57108
+ {{ currentYear() }} YTD Gap
57109
+ </span>
57110
+ </div>
57111
+ <div class="grid grid-cols-2 gap-4 pt-2">
57112
+ <div>
57113
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57114
+ Gap to Close
57115
+ </p>
57116
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57117
+ {{ formatCurrency(absValue(gapToClose().amount)) }}
57118
+ </p>
57119
+ </div>
57120
+ <div>
57121
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57122
+ Additional Growth Needed
57123
+ </p>
57124
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57125
+ {{ gapToClose().amount > 0 ? '+' : '' }}{{ formatPercentage(gapToClose().percentage, 1) }}
57126
+ </p>
57127
+ </div>
57128
+ </div>
57129
+ </div>
57130
+ }
57131
+ </div>
57132
+ </div>
57133
+ }
57134
+ </div>
57135
+ </div>
57136
+ </div>
57137
+
57138
+ <div class="w-full">
57139
+ <p [ngClass]="chartTitleClasses()" class="text-sm font-semibold mb-3">
57140
+ Year-over-Year Revenue Trend
57141
+ </p>
57142
+ <div [ngClass]="chartContainerClasses()" class="rounded-xl border p-4">
57143
+ @if (revenueChartData()) {
57144
+ <symphiq-area-chart
57145
+ [chart]="revenueChartData()!"
57146
+ [showAxisLabels]="true"
57147
+ [viewMode]="viewMode()"
57148
+ [currencySymbol]="'$'"
57149
+ [height]="'320px'"
57150
+ />
57151
+ } @else {
57152
+ <div class="h-64 flex items-center justify-center">
57153
+ <p [ngClass]="noDataClasses()" class="text-sm">
57154
+ No revenue data available
57155
+ </p>
57156
+ </div>
57157
+ }
57158
+ </div>
57159
+ </div>
57160
+ </div>
57161
+ </div>
57162
+
57163
+ @if (showMetricsVisualization()) {
57164
+ <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
57165
+ <div class="mb-6">
57166
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
57167
+ Contributing Metrics
57168
+ </h2>
57169
+ <p [ngClass]="sectionDescriptionClasses()" class="text-sm">
57170
+ To achieve your revenue target of {{ formatCurrency(displayedTargetRevenue()) }}, the following metrics need to improve by these amounts. These improvements compound through your funnel to drive revenue growth.
57171
+ </p>
57172
+ </div>
57173
+
57174
+ <symphiq-funnel-metrics-visualization
57175
+ [viewMode]="viewMode()"
57176
+ [calculations]="displayedMetricCalculations()"
57177
+ [pacingMetrics]="pacingMetrics()"
57178
+ />
57179
+ </div>
57180
+ }
57181
+
57182
+ <symphiq-sticky-submit-bar
57183
+ [viewMode]="viewMode()"
57184
+ [isValid]="isValid()"
57185
+ [isSubmitting]="isCalculating()"
57186
+ [validationMessage]="validationMessage()"
57187
+ [buttonText]="submitButtonText()"
57188
+ [showCancelButton]="calculationState() === 'input' && hasStoredResponse()"
57189
+ (submitClick)="handleSubmitClick()"
57190
+ (cancelClick)="handleCancel()"
57191
+ />
57192
+ </div>
57184
57193
  `, styles: [".calculated-card-enter{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out}.calculated-card-enter-active{grid-template-rows:1fr}.calculated-card-content{overflow:hidden}\n"] }]
57185
57194
  }], () => [], { absoluteInputRef: [{
57186
57195
  type: ViewChild,
@@ -57189,7 +57198,7 @@ class InitialTargetSettingComponent {
57189
57198
  type: ViewChild,
57190
57199
  args: ['percentageInputRef']
57191
57200
  }], 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"] }] }); })();
57192
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 295 }); })();
57201
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 299 }); })();
57193
57202
 
57194
57203
  function IndeterminateSpinnerComponent_For_5_Template(rf, ctx) { if (rf & 1) {
57195
57204
  i0.ɵɵelement(0, "div", 5);