@eric-emg/symphiq-components 1.2.204 → 1.2.205

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