@eric-emg/symphiq-components 1.2.395 → 1.2.397
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.
- package/fesm2022/symphiq-components.mjs +1078 -998
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +8 -1
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -68326,23 +68326,47 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
68326
68326
|
function DashboardHeaderComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
68327
68327
|
i0.ɵɵelement(0, "div", 6);
|
|
68328
68328
|
} }
|
|
68329
|
-
function
|
|
68330
|
-
i0.ɵɵ
|
|
68329
|
+
function DashboardHeaderComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
68330
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
68331
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "symphiq-search-button", 16);
|
|
68332
|
+
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_11_Template_symphiq_search_button_searchClick_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
|
|
68333
|
+
i0.ɵɵelementEnd();
|
|
68334
|
+
i0.ɵɵelementStart(2, "button", 17);
|
|
68335
|
+
i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_11_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
|
|
68336
|
+
i0.ɵɵnamespaceSVG();
|
|
68337
|
+
i0.ɵɵelementStart(3, "svg", 18);
|
|
68338
|
+
i0.ɵɵelement(4, "path", 19)(5, "path", 20);
|
|
68339
|
+
i0.ɵɵelementEnd();
|
|
68340
|
+
i0.ɵɵnamespaceHTML();
|
|
68341
|
+
i0.ɵɵelementStart(6, "span");
|
|
68342
|
+
i0.ɵɵtext(7);
|
|
68343
|
+
i0.ɵɵelementEnd()()();
|
|
68344
|
+
} if (rf & 2) {
|
|
68345
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
68346
|
+
i0.ɵɵadvance();
|
|
68347
|
+
i0.ɵɵproperty("isLightMode", ctx_r1.isLightMode());
|
|
68348
|
+
i0.ɵɵadvance();
|
|
68349
|
+
i0.ɵɵproperty("ngClass", ctx_r1.getViewModeButtonClasses());
|
|
68350
|
+
i0.ɵɵadvance(5);
|
|
68351
|
+
i0.ɵɵtextInterpolate(ctx_r1.viewModeLabel());
|
|
68352
|
+
} }
|
|
68353
|
+
function DashboardHeaderComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
68354
|
+
i0.ɵɵelementStart(0, "div", 9)(1, "div", 10);
|
|
68331
68355
|
i0.ɵɵtext(2, "Generated At");
|
|
68332
68356
|
i0.ɵɵelementEnd();
|
|
68333
|
-
i0.ɵɵelementStart(3, "div",
|
|
68357
|
+
i0.ɵɵelementStart(3, "div", 11);
|
|
68334
68358
|
i0.ɵɵtext(4);
|
|
68335
68359
|
i0.ɵɵelementEnd()();
|
|
68336
68360
|
} if (rf & 2) {
|
|
68337
|
-
const
|
|
68361
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
68338
68362
|
i0.ɵɵadvance();
|
|
68339
|
-
i0.ɵɵclassMap(
|
|
68363
|
+
i0.ɵɵclassMap(ctx_r1.metaLabelClass());
|
|
68340
68364
|
i0.ɵɵadvance(2);
|
|
68341
|
-
i0.ɵɵclassMap(
|
|
68365
|
+
i0.ɵɵclassMap(ctx_r1.headerTitleClass());
|
|
68342
68366
|
i0.ɵɵadvance();
|
|
68343
|
-
i0.ɵɵtextInterpolate(
|
|
68367
|
+
i0.ɵɵtextInterpolate(ctx_r1.formattedGeneratedDate());
|
|
68344
68368
|
} }
|
|
68345
|
-
function
|
|
68369
|
+
function DashboardHeaderComponent_Conditional_26_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
68346
68370
|
i0.ɵɵelementStart(0, "span", 5);
|
|
68347
68371
|
i0.ɵɵtext(1, "\u203A");
|
|
68348
68372
|
i0.ɵɵelementEnd();
|
|
@@ -68350,27 +68374,44 @@ function DashboardHeaderComponent_Conditional_33_Conditional_3_Template(rf, ctx)
|
|
|
68350
68374
|
i0.ɵɵtext(3);
|
|
68351
68375
|
i0.ɵɵelementEnd();
|
|
68352
68376
|
} if (rf & 2) {
|
|
68353
|
-
const
|
|
68354
|
-
i0.ɵɵproperty("ngClass",
|
|
68377
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
68378
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-400" : "text-slate-500");
|
|
68355
68379
|
i0.ɵɵadvance(2);
|
|
68356
|
-
i0.ɵɵproperty("ngClass",
|
|
68380
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-500" : "text-slate-500");
|
|
68357
68381
|
i0.ɵɵadvance();
|
|
68358
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
68382
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSubsection(), " ");
|
|
68359
68383
|
} }
|
|
68360
|
-
function
|
|
68361
|
-
i0.ɵɵelementStart(0, "div",
|
|
68384
|
+
function DashboardHeaderComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
68385
|
+
i0.ɵɵelementStart(0, "div", 15)(1, "span", 5);
|
|
68362
68386
|
i0.ɵɵtext(2);
|
|
68363
68387
|
i0.ɵɵelementEnd();
|
|
68364
|
-
i0.ɵɵconditionalCreate(3,
|
|
68388
|
+
i0.ɵɵconditionalCreate(3, DashboardHeaderComponent_Conditional_26_Conditional_3_Template, 4, 3);
|
|
68365
68389
|
i0.ɵɵelementEnd();
|
|
68366
68390
|
} if (rf & 2) {
|
|
68367
|
-
const
|
|
68391
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
68392
|
+
i0.ɵɵadvance();
|
|
68393
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-600 font-medium" : "text-slate-400 font-medium");
|
|
68368
68394
|
i0.ɵɵadvance();
|
|
68369
|
-
i0.ɵɵ
|
|
68395
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSection(), " ");
|
|
68370
68396
|
i0.ɵɵadvance();
|
|
68371
|
-
i0.ɵɵ
|
|
68397
|
+
i0.ɵɵconditional(ctx_r1.currentSubsection() ? 3 : -1);
|
|
68398
|
+
} }
|
|
68399
|
+
function DashboardHeaderComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
68400
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
68401
|
+
i0.ɵɵelementStart(0, "symphiq-search-button", 21);
|
|
68402
|
+
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_27_Template_symphiq_search_button_searchClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
|
|
68403
|
+
i0.ɵɵelementEnd();
|
|
68404
|
+
i0.ɵɵelementStart(1, "button", 22);
|
|
68405
|
+
i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_27_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
|
|
68406
|
+
i0.ɵɵnamespaceSVG();
|
|
68407
|
+
i0.ɵɵelementStart(2, "svg", 18);
|
|
68408
|
+
i0.ɵɵelement(3, "path", 19)(4, "path", 20);
|
|
68409
|
+
i0.ɵɵelementEnd()();
|
|
68410
|
+
} if (rf & 2) {
|
|
68411
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
68412
|
+
i0.ɵɵproperty("isLightMode", ctx_r1.isLightMode())("minimized", true);
|
|
68372
68413
|
i0.ɵɵadvance();
|
|
68373
|
-
i0.ɵɵ
|
|
68414
|
+
i0.ɵɵproperty("ngClass", ctx_r1.getViewModeButtonClasses());
|
|
68374
68415
|
} }
|
|
68375
68416
|
class DashboardHeaderComponent {
|
|
68376
68417
|
constructor() {
|
|
@@ -68383,6 +68424,7 @@ class DashboardHeaderComponent {
|
|
|
68383
68424
|
this.currentSection = input(...(ngDevMode ? [undefined, { debugName: "currentSection" }] : []));
|
|
68384
68425
|
this.currentSubsection = input(...(ngDevMode ? [undefined, { debugName: "currentSubsection" }] : []));
|
|
68385
68426
|
this.isLoading = input(...(ngDevMode ? [undefined, { debugName: "isLoading" }] : []));
|
|
68427
|
+
this.showControls = input(true, ...(ngDevMode ? [{ debugName: "showControls" }] : []));
|
|
68386
68428
|
this.searchClick = output();
|
|
68387
68429
|
this.viewModeClick = output();
|
|
68388
68430
|
this.headerScrollService = inject(HeaderScrollService);
|
|
@@ -68439,7 +68481,7 @@ class DashboardHeaderComponent {
|
|
|
68439
68481
|
: 'bg-slate-800 hover:bg-slate-700 text-slate-300 border border-slate-700';
|
|
68440
68482
|
}
|
|
68441
68483
|
static { this.ɵfac = function DashboardHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DashboardHeaderComponent)(); }; }
|
|
68442
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardHeaderComponent, selectors: [["symphiq-dashboard-header"]], inputs: { requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], viewModeLabel: [1, "viewModeLabel"], currentSection: [1, "currentSection"], currentSubsection: [1, "currentSubsection"], isLoading: [1, "isLoading"] }, outputs: { searchClick: "searchClick", viewModeClick: "viewModeClick" }, decls:
|
|
68484
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardHeaderComponent, selectors: [["symphiq-dashboard-header"]], inputs: { requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], viewModeLabel: [1, "viewModeLabel"], currentSection: [1, "currentSection"], currentSubsection: [1, "currentSubsection"], isLoading: [1, "isLoading"], showControls: [1, "showControls"] }, outputs: { searchClick: "searchClick", viewModeClick: "viewModeClick" }, decls: 28, vars: 42, consts: [[1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [3, "ngClass"], ["title", "Refreshing data...", 1, "animate-spin", "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full"], [1, "flex", "items-center", "gap-2"], [1, "flex", "flex-col", "gap-4", "min-w-[180px]"], [1, "text-left", "sm:text-right"], [1, "text-xs", "sm:text-sm"], [1, "text-sm", "sm:text-base", "font-medium"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"]], template: function DashboardHeaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
68443
68485
|
i0.ɵɵelementStart(0, "header", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div")(5, "div", 4)(6, "h1", 5);
|
|
68444
68486
|
i0.ɵɵtext(7);
|
|
68445
68487
|
i0.ɵɵelementEnd();
|
|
@@ -68448,43 +68490,24 @@ class DashboardHeaderComponent {
|
|
|
68448
68490
|
i0.ɵɵelementStart(9, "p", 5);
|
|
68449
68491
|
i0.ɵɵtext(10);
|
|
68450
68492
|
i0.ɵɵelementEnd()();
|
|
68451
|
-
i0.ɵɵ
|
|
68452
|
-
i0.ɵɵ
|
|
68453
|
-
i0.ɵɵ
|
|
68454
|
-
i0.ɵɵelementStart(
|
|
68455
|
-
i0.ɵɵ
|
|
68456
|
-
i0.ɵɵnamespaceSVG();
|
|
68457
|
-
i0.ɵɵelementStart(14, "svg", 10);
|
|
68458
|
-
i0.ɵɵelement(15, "path", 11)(16, "path", 12);
|
|
68493
|
+
i0.ɵɵconditionalCreate(11, DashboardHeaderComponent_Conditional_11_Template, 8, 3, "div", 7);
|
|
68494
|
+
i0.ɵɵelementStart(12, "div", 8);
|
|
68495
|
+
i0.ɵɵconditionalCreate(13, DashboardHeaderComponent_Conditional_13_Template, 5, 5, "div", 9);
|
|
68496
|
+
i0.ɵɵelementStart(14, "div", 9)(15, "div", 10);
|
|
68497
|
+
i0.ɵɵtext(16, "Requested by");
|
|
68459
68498
|
i0.ɵɵelementEnd();
|
|
68460
|
-
i0.ɵɵ
|
|
68461
|
-
i0.ɵɵelementStart(17, "span");
|
|
68499
|
+
i0.ɵɵelementStart(17, "div", 11);
|
|
68462
68500
|
i0.ɵɵtext(18);
|
|
68463
|
-
i0.ɵɵelementEnd()()();
|
|
68464
|
-
i0.ɵɵelementStart(19, "div", 13);
|
|
68465
|
-
i0.ɵɵconditionalCreate(20, DashboardHeaderComponent_Conditional_20_Template, 5, 5, "div", 14);
|
|
68466
|
-
i0.ɵɵelementStart(21, "div", 14)(22, "div", 15);
|
|
68467
|
-
i0.ɵɵtext(23, "Requested by");
|
|
68468
|
-
i0.ɵɵelementEnd();
|
|
68469
|
-
i0.ɵɵelementStart(24, "div", 16);
|
|
68470
|
-
i0.ɵɵtext(25);
|
|
68471
68501
|
i0.ɵɵelementEnd()()()()()();
|
|
68472
|
-
i0.ɵɵelementStart(
|
|
68473
|
-
i0.ɵɵtext(
|
|
68502
|
+
i0.ɵɵelementStart(19, "div", 1)(20, "div", 12)(21, "div", 3)(22, "div", 13)(23, "h1", 5);
|
|
68503
|
+
i0.ɵɵtext(24);
|
|
68474
68504
|
i0.ɵɵelementEnd()();
|
|
68475
|
-
i0.ɵɵelementStart(
|
|
68476
|
-
i0.ɵɵconditionalCreate(
|
|
68477
|
-
i0.ɵɵ
|
|
68478
|
-
i0.ɵɵ
|
|
68479
|
-
i0.ɵɵelementEnd();
|
|
68480
|
-
i0.ɵɵelementStart(35, "button", 22);
|
|
68481
|
-
i0.ɵɵlistener("click", function DashboardHeaderComponent_Template_button_click_35_listener() { return ctx.onViewModeClick(); });
|
|
68482
|
-
i0.ɵɵnamespaceSVG();
|
|
68483
|
-
i0.ɵɵelementStart(36, "svg", 10);
|
|
68484
|
-
i0.ɵɵelement(37, "path", 11)(38, "path", 12);
|
|
68485
|
-
i0.ɵɵelementEnd()()()()()()();
|
|
68505
|
+
i0.ɵɵelementStart(25, "div", 14);
|
|
68506
|
+
i0.ɵɵconditionalCreate(26, DashboardHeaderComponent_Conditional_26_Template, 4, 3, "div", 15);
|
|
68507
|
+
i0.ɵɵconditionalCreate(27, DashboardHeaderComponent_Conditional_27_Template, 5, 3);
|
|
68508
|
+
i0.ɵɵelementEnd()()()()();
|
|
68486
68509
|
} if (rf & 2) {
|
|
68487
|
-
let
|
|
68510
|
+
let tmp_16_0;
|
|
68488
68511
|
i0.ɵɵproperty("ngClass", ctx.getHeaderClasses());
|
|
68489
68512
|
i0.ɵɵadvance();
|
|
68490
68513
|
i0.ɵɵclassProp("max-h-0", ctx.headerScrollService.isScrolled())("opacity-0", ctx.headerScrollService.isScrolled())("max-h-96", !ctx.headerScrollService.isScrolled())("opacity-100", !ctx.headerScrollService.isScrolled());
|
|
@@ -68500,20 +68523,16 @@ class DashboardHeaderComponent {
|
|
|
68500
68523
|
i0.ɵɵproperty("ngClass", ctx.getSubtitleClasses());
|
|
68501
68524
|
i0.ɵɵadvance();
|
|
68502
68525
|
i0.ɵɵtextInterpolate1(" ", ctx.subtitle(), " ");
|
|
68503
|
-
i0.ɵɵadvance(2);
|
|
68504
|
-
i0.ɵɵproperty("isLightMode", ctx.isLightMode());
|
|
68505
68526
|
i0.ɵɵadvance();
|
|
68506
|
-
i0.ɵɵ
|
|
68507
|
-
i0.ɵɵadvance(5);
|
|
68508
|
-
i0.ɵɵtextInterpolate(ctx.viewModeLabel());
|
|
68527
|
+
i0.ɵɵconditional(ctx.showControls() ? 11 : -1);
|
|
68509
68528
|
i0.ɵɵadvance(2);
|
|
68510
|
-
i0.ɵɵconditional(ctx.formattedGeneratedDate() ?
|
|
68529
|
+
i0.ɵɵconditional(ctx.formattedGeneratedDate() ? 13 : -1);
|
|
68511
68530
|
i0.ɵɵadvance(2);
|
|
68512
68531
|
i0.ɵɵclassMap(ctx.metaLabelClass());
|
|
68513
68532
|
i0.ɵɵadvance(2);
|
|
68514
68533
|
i0.ɵɵclassMap(ctx.headerTitleClass());
|
|
68515
68534
|
i0.ɵɵadvance();
|
|
68516
|
-
i0.ɵɵtextInterpolate2("", (
|
|
68535
|
+
i0.ɵɵtextInterpolate2("", (tmp_16_0 = ctx.requestedByUser()) == null ? null : tmp_16_0.firstName, " ", (tmp_16_0 = ctx.requestedByUser()) == null ? null : tmp_16_0.lastName);
|
|
68517
68536
|
i0.ɵɵadvance();
|
|
68518
68537
|
i0.ɵɵclassProp("max-h-0", !ctx.headerScrollService.isScrolled())("opacity-0", !ctx.headerScrollService.isScrolled())("max-h-20", ctx.headerScrollService.isScrolled())("opacity-100", ctx.headerScrollService.isScrolled());
|
|
68519
68538
|
i0.ɵɵadvance();
|
|
@@ -68523,11 +68542,9 @@ class DashboardHeaderComponent {
|
|
|
68523
68542
|
i0.ɵɵadvance();
|
|
68524
68543
|
i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
|
|
68525
68544
|
i0.ɵɵadvance(2);
|
|
68526
|
-
i0.ɵɵconditional(ctx.currentSection() ?
|
|
68527
|
-
i0.ɵɵadvance();
|
|
68528
|
-
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("minimized", true);
|
|
68545
|
+
i0.ɵɵconditional(ctx.currentSection() ? 26 : -1);
|
|
68529
68546
|
i0.ɵɵadvance();
|
|
68530
|
-
i0.ɵɵ
|
|
68547
|
+
i0.ɵɵconditional(ctx.showControls() ? 27 : -1);
|
|
68531
68548
|
} }, dependencies: [CommonModule, i1$1.NgClass, SearchButtonComponent], encapsulation: 2, changeDetection: 0 }); }
|
|
68532
68549
|
}
|
|
68533
68550
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DashboardHeaderComponent, [{
|
|
@@ -68564,23 +68581,25 @@ class DashboardHeaderComponent {
|
|
|
68564
68581
|
{{ subtitle() }}
|
|
68565
68582
|
</p>
|
|
68566
68583
|
</div>
|
|
68567
|
-
|
|
68568
|
-
<
|
|
68569
|
-
|
|
68570
|
-
|
|
68571
|
-
|
|
68572
|
-
|
|
68573
|
-
|
|
68574
|
-
|
|
68575
|
-
|
|
68576
|
-
|
|
68577
|
-
|
|
68578
|
-
<
|
|
68579
|
-
|
|
68580
|
-
|
|
68581
|
-
|
|
68582
|
-
|
|
68583
|
-
|
|
68584
|
+
@if (showControls()) {
|
|
68585
|
+
<div class="flex items-center gap-2">
|
|
68586
|
+
<symphiq-search-button
|
|
68587
|
+
[isLightMode]="isLightMode()"
|
|
68588
|
+
(searchClick)="onSearchClick()"
|
|
68589
|
+
/>
|
|
68590
|
+
<button
|
|
68591
|
+
type="button"
|
|
68592
|
+
(click)="onViewModeClick()"
|
|
68593
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
68594
|
+
class="cursor-pointer flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
|
|
68595
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
68596
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
68597
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
|
|
68598
|
+
</svg>
|
|
68599
|
+
<span>{{ viewModeLabel() }}</span>
|
|
68600
|
+
</button>
|
|
68601
|
+
</div>
|
|
68602
|
+
}
|
|
68584
68603
|
<div class="flex flex-col gap-4 min-w-[180px]">
|
|
68585
68604
|
@if (formattedGeneratedDate()) {
|
|
68586
68605
|
<div class="text-left sm:text-right">
|
|
@@ -68628,21 +68647,23 @@ class DashboardHeaderComponent {
|
|
|
68628
68647
|
}
|
|
68629
68648
|
</div>
|
|
68630
68649
|
}
|
|
68631
|
-
|
|
68632
|
-
|
|
68633
|
-
|
|
68634
|
-
|
|
68635
|
-
|
|
68636
|
-
|
|
68637
|
-
|
|
68638
|
-
|
|
68639
|
-
|
|
68640
|
-
|
|
68641
|
-
|
|
68642
|
-
<
|
|
68643
|
-
|
|
68644
|
-
|
|
68645
|
-
|
|
68650
|
+
@if (showControls()) {
|
|
68651
|
+
<symphiq-search-button
|
|
68652
|
+
[isLightMode]="isLightMode()"
|
|
68653
|
+
[minimized]="true"
|
|
68654
|
+
(searchClick)="onSearchClick()"
|
|
68655
|
+
/>
|
|
68656
|
+
<button
|
|
68657
|
+
type="button"
|
|
68658
|
+
(click)="onViewModeClick()"
|
|
68659
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
68660
|
+
class="cursor-pointer flex items-center gap-2 px-2 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
|
|
68661
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
68662
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
68663
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
|
|
68664
|
+
</svg>
|
|
68665
|
+
</button>
|
|
68666
|
+
}
|
|
68646
68667
|
</div>
|
|
68647
68668
|
</div>
|
|
68648
68669
|
</div>
|
|
@@ -68650,8 +68671,8 @@ class DashboardHeaderComponent {
|
|
|
68650
68671
|
</header>
|
|
68651
68672
|
`
|
|
68652
68673
|
}]
|
|
68653
|
-
}], null, { requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], createdDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "createdDate", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], viewModeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewModeLabel", required: false }] }], currentSection: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentSection", required: false }] }], currentSubsection: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentSubsection", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], searchClick: [{ type: i0.Output, args: ["searchClick"] }], viewModeClick: [{ type: i0.Output, args: ["viewModeClick"] }] }); })();
|
|
68654
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardHeaderComponent, { className: "DashboardHeaderComponent", filePath: "lib/components/shared/dashboard-header.component.ts", lineNumber:
|
|
68674
|
+
}], null, { requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], createdDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "createdDate", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], viewModeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewModeLabel", required: false }] }], currentSection: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentSection", required: false }] }], currentSubsection: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentSubsection", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], showControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "showControls", required: false }] }], searchClick: [{ type: i0.Output, args: ["searchClick"] }], viewModeClick: [{ type: i0.Output, args: ["viewModeClick"] }] }); })();
|
|
68675
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardHeaderComponent, { className: "DashboardHeaderComponent", filePath: "lib/components/shared/dashboard-header.component.ts", lineNumber: 130 }); })();
|
|
68655
68676
|
|
|
68656
68677
|
class GradeBadgeComponent {
|
|
68657
68678
|
constructor() {
|
|
@@ -87912,6 +87933,7 @@ function ShopProfileCategoryListComponent_For_2_Template(rf, ctx) { if (rf & 1)
|
|
|
87912
87933
|
i0.ɵɵadvance(4);
|
|
87913
87934
|
i0.ɵɵproperty("ngClass", ctx_r2.getProgressBarContainerClasses());
|
|
87914
87935
|
i0.ɵɵadvance();
|
|
87936
|
+
i0.ɵɵclassMap(ctx_r2.delayAnimation() ? "h-full rounded-full" : "h-full transition-all duration-500 ease-out rounded-full");
|
|
87915
87937
|
i0.ɵɵstyleProp("width", item_r2.progress, "%");
|
|
87916
87938
|
i0.ɵɵproperty("ngClass", ctx_r2.getProgressBarFillClasses());
|
|
87917
87939
|
i0.ɵɵadvance(2);
|
|
@@ -87923,6 +87945,7 @@ class ShopProfileCategoryListComponent {
|
|
|
87923
87945
|
constructor() {
|
|
87924
87946
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
87925
87947
|
this.items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
87948
|
+
this.delayAnimation = input(false, ...(ngDevMode ? [{ debugName: "delayAnimation" }] : []));
|
|
87926
87949
|
this.itemClick = output();
|
|
87927
87950
|
}
|
|
87928
87951
|
onItemClick(item) {
|
|
@@ -87977,9 +88000,9 @@ class ShopProfileCategoryListComponent {
|
|
|
87977
88000
|
: 'text-emerald-600';
|
|
87978
88001
|
}
|
|
87979
88002
|
static { this.ɵfac = function ShopProfileCategoryListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ShopProfileCategoryListComponent)(); }; }
|
|
87980
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShopProfileCategoryListComponent, selectors: [["symphiq-shop-profile-category-list"]], inputs: { viewMode: [1, "viewMode"], items: [1, "items"] }, outputs: { itemClick: "itemClick" }, decls: 3, vars: 0, consts: [[1, "space-y-4"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", "hover:scale-[1.01]", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-lg", "font-semibold", "leading-tight", 3, "ngClass"], ["type", "button", 1, "flex-shrink-0", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-300", "flex", "items-center", "gap-2", "hover:scale-105", "active:scale-95", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "space-y-2"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [
|
|
88003
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShopProfileCategoryListComponent, selectors: [["symphiq-shop-profile-category-list"]], inputs: { viewMode: [1, "viewMode"], items: [1, "items"], delayAnimation: [1, "delayAnimation"] }, outputs: { itemClick: "itemClick" }, decls: 3, vars: 0, consts: [[1, "space-y-4"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", "hover:scale-[1.01]", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-lg", "font-semibold", "leading-tight", 3, "ngClass"], ["type", "button", 1, "flex-shrink-0", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-300", "flex", "items-center", "gap-2", "hover:scale-105", "active:scale-95", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "space-y-2"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [3, "ngClass"], [1, "flex", "justify-between", "items-center"], [1, "text-sm", "font-medium", 3, "ngClass"]], template: function ShopProfileCategoryListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
87981
88004
|
i0.ɵɵelementStart(0, "div", 0);
|
|
87982
|
-
i0.ɵɵrepeaterCreate(1, ShopProfileCategoryListComponent_For_2_Template, 19,
|
|
88005
|
+
i0.ɵɵrepeaterCreate(1, ShopProfileCategoryListComponent_For_2_Template, 19, 16, "div", 1, _forTrack0$5);
|
|
87983
88006
|
i0.ɵɵelementEnd();
|
|
87984
88007
|
} if (rf & 2) {
|
|
87985
88008
|
i0.ɵɵadvance();
|
|
@@ -87993,59 +88016,59 @@ class ShopProfileCategoryListComponent {
|
|
|
87993
88016
|
standalone: true,
|
|
87994
88017
|
imports: [CommonModule],
|
|
87995
88018
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
87996
|
-
template: `
|
|
87997
|
-
<div class="space-y-4">
|
|
87998
|
-
@for (item of items(); track item.id) {
|
|
87999
|
-
<div
|
|
88000
|
-
[ngClass]="getCardClasses()"
|
|
88001
|
-
class="rounded-xl p-6 transition-all duration-300 hover:scale-[1.01]"
|
|
88002
|
-
>
|
|
88003
|
-
<div class="space-y-4">
|
|
88004
|
-
<div class="flex items-start justify-between gap-4">
|
|
88005
|
-
<div class="flex-1 min-w-0">
|
|
88006
|
-
<div [ngClass]="getLabelClasses()" class="text-xs font-semibold uppercase tracking-wider mb-2">
|
|
88007
|
-
{{ item.label }}
|
|
88008
|
-
</div>
|
|
88009
|
-
<h3 [ngClass]="getNameClasses()" class="text-lg font-semibold leading-tight">
|
|
88010
|
-
{{ item.name }}
|
|
88011
|
-
</h3>
|
|
88012
|
-
</div>
|
|
88013
|
-
|
|
88014
|
-
<button
|
|
88015
|
-
type="button"
|
|
88016
|
-
(click)="onItemClick(item)"
|
|
88017
|
-
[ngClass]="getButtonClasses(item)"
|
|
88018
|
-
class="flex-shrink-0 px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-300 flex items-center gap-2 hover:scale-105 active:scale-95"
|
|
88019
|
-
>
|
|
88020
|
-
<span>{{ getButtonText(item) }}</span>
|
|
88021
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
88022
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
|
|
88023
|
-
</svg>
|
|
88024
|
-
</button>
|
|
88025
|
-
</div>
|
|
88026
|
-
|
|
88027
|
-
<div class="space-y-2">
|
|
88028
|
-
<div [ngClass]="getProgressBarContainerClasses()" class="h-2 rounded-full overflow-hidden">
|
|
88029
|
-
<div
|
|
88030
|
-
[ngClass]="getProgressBarFillClasses()"
|
|
88031
|
-
class="h-full transition-all duration-500 ease-out rounded-full"
|
|
88032
|
-
[style.width.%]="item.progress"
|
|
88033
|
-
></div>
|
|
88034
|
-
</div>
|
|
88035
|
-
|
|
88036
|
-
<div class="flex justify-between items-center">
|
|
88037
|
-
<span [ngClass]="getProgressTextClasses()" class="text-sm font-medium">
|
|
88038
|
-
{{ item.answeredQuestions }} / {{ item.totalQuestions }} questions answered
|
|
88039
|
-
</span>
|
|
88040
|
-
</div>
|
|
88041
|
-
</div>
|
|
88042
|
-
</div>
|
|
88043
|
-
</div>
|
|
88044
|
-
}
|
|
88045
|
-
</div>
|
|
88019
|
+
template: `
|
|
88020
|
+
<div class="space-y-4">
|
|
88021
|
+
@for (item of items(); track item.id) {
|
|
88022
|
+
<div
|
|
88023
|
+
[ngClass]="getCardClasses()"
|
|
88024
|
+
class="rounded-xl p-6 transition-all duration-300 hover:scale-[1.01]"
|
|
88025
|
+
>
|
|
88026
|
+
<div class="space-y-4">
|
|
88027
|
+
<div class="flex items-start justify-between gap-4">
|
|
88028
|
+
<div class="flex-1 min-w-0">
|
|
88029
|
+
<div [ngClass]="getLabelClasses()" class="text-xs font-semibold uppercase tracking-wider mb-2">
|
|
88030
|
+
{{ item.label }}
|
|
88031
|
+
</div>
|
|
88032
|
+
<h3 [ngClass]="getNameClasses()" class="text-lg font-semibold leading-tight">
|
|
88033
|
+
{{ item.name }}
|
|
88034
|
+
</h3>
|
|
88035
|
+
</div>
|
|
88036
|
+
|
|
88037
|
+
<button
|
|
88038
|
+
type="button"
|
|
88039
|
+
(click)="onItemClick(item)"
|
|
88040
|
+
[ngClass]="getButtonClasses(item)"
|
|
88041
|
+
class="flex-shrink-0 px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-300 flex items-center gap-2 hover:scale-105 active:scale-95"
|
|
88042
|
+
>
|
|
88043
|
+
<span>{{ getButtonText(item) }}</span>
|
|
88044
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
88045
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
|
|
88046
|
+
</svg>
|
|
88047
|
+
</button>
|
|
88048
|
+
</div>
|
|
88049
|
+
|
|
88050
|
+
<div class="space-y-2">
|
|
88051
|
+
<div [ngClass]="getProgressBarContainerClasses()" class="h-2 rounded-full overflow-hidden">
|
|
88052
|
+
<div
|
|
88053
|
+
[ngClass]="getProgressBarFillClasses()"
|
|
88054
|
+
[class]="delayAnimation() ? 'h-full rounded-full' : 'h-full transition-all duration-500 ease-out rounded-full'"
|
|
88055
|
+
[style.width.%]="item.progress"
|
|
88056
|
+
></div>
|
|
88057
|
+
</div>
|
|
88058
|
+
|
|
88059
|
+
<div class="flex justify-between items-center">
|
|
88060
|
+
<span [ngClass]="getProgressTextClasses()" class="text-sm font-medium">
|
|
88061
|
+
{{ item.answeredQuestions }} / {{ item.totalQuestions }} questions answered
|
|
88062
|
+
</span>
|
|
88063
|
+
</div>
|
|
88064
|
+
</div>
|
|
88065
|
+
</div>
|
|
88066
|
+
</div>
|
|
88067
|
+
}
|
|
88068
|
+
</div>
|
|
88046
88069
|
`
|
|
88047
88070
|
}]
|
|
88048
|
-
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] }); })();
|
|
88071
|
+
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], delayAnimation: [{ type: i0.Input, args: [{ isSignal: true, alias: "delayAnimation", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] }); })();
|
|
88049
88072
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileCategoryListComponent, { className: "ShopProfileCategoryListComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-category-list.component.ts", lineNumber: 71 }); })();
|
|
88050
88073
|
|
|
88051
88074
|
class ShopProfileViewToggleComponent {
|
|
@@ -90416,19 +90439,20 @@ class ShopProfileQuestionsModalComponent {
|
|
|
90416
90439
|
}, ...(ngDevMode ? [{ debugName: "displayTitle" }] : []));
|
|
90417
90440
|
this.filteredQuestions = computed(() => {
|
|
90418
90441
|
const allQuestions = this.questions();
|
|
90442
|
+
const sortQuestions = (questions) => [...questions].sort((a, b) => (a.id ?? 0) - (b.id ?? 0));
|
|
90419
90443
|
if (this.showAllQuestions()) {
|
|
90420
|
-
return allQuestions;
|
|
90444
|
+
return sortQuestions(allQuestions);
|
|
90421
90445
|
}
|
|
90422
90446
|
const categoryId = this.selectedCategoryId();
|
|
90423
90447
|
const focusAreaId = this.selectedFocusAreaId();
|
|
90424
90448
|
if (categoryId) {
|
|
90425
|
-
return allQuestions.filter(q => q.category === categoryId);
|
|
90449
|
+
return sortQuestions(allQuestions.filter(q => q.category === categoryId));
|
|
90426
90450
|
}
|
|
90427
90451
|
else if (focusAreaId) {
|
|
90428
|
-
return allQuestions.filter(q => {
|
|
90452
|
+
return sortQuestions(allQuestions.filter(q => {
|
|
90429
90453
|
const focusAreas = q.focusAreaDomains || [];
|
|
90430
90454
|
return focusAreas.includes(focusAreaId);
|
|
90431
|
-
});
|
|
90455
|
+
}));
|
|
90432
90456
|
}
|
|
90433
90457
|
return [];
|
|
90434
90458
|
}, ...(ngDevMode ? [{ debugName: "filteredQuestions" }] : []));
|
|
@@ -90583,8 +90607,22 @@ class ShopProfileQuestionsModalComponent {
|
|
|
90583
90607
|
const answers = this.profileAnswers();
|
|
90584
90608
|
const isAnswered = (q) => answers.some(a => a.profileQuestionId === q.id);
|
|
90585
90609
|
const currentIndex = questions.findIndex(q => q.id === currentQuestion.id);
|
|
90586
|
-
|
|
90587
|
-
|
|
90610
|
+
console.log('[NextQuestion] profileAnswers:', answers.map(a => ({ id: a.id, profileQuestionId: a.profileQuestionId, answer: a.answer?.substring(0, 30) })));
|
|
90611
|
+
console.log('[NextQuestion] filteredQuestions order:', questions.map((q, i) => ({
|
|
90612
|
+
index: i,
|
|
90613
|
+
id: q.id,
|
|
90614
|
+
question: q.question?.substring(0, 50) + '...',
|
|
90615
|
+
isAnswered: isAnswered(q)
|
|
90616
|
+
})));
|
|
90617
|
+
console.log('[NextQuestion] currentQuestion:', { id: currentQuestion.id, question: currentQuestion.question?.substring(0, 50) });
|
|
90618
|
+
console.log('[NextQuestion] currentIndex:', currentIndex);
|
|
90619
|
+
const afterCurrent = questions.slice(currentIndex + 1);
|
|
90620
|
+
const beforeCurrent = questions.slice(0, currentIndex);
|
|
90621
|
+
console.log('[NextQuestion] searching afterCurrent (indices', currentIndex + 1, 'to', questions.length - 1, '):', afterCurrent.map(q => ({ id: q.id, isAnswered: isAnswered(q) })));
|
|
90622
|
+
console.log('[NextQuestion] searching beforeCurrent (indices 0 to', currentIndex - 1, '):', beforeCurrent.map(q => ({ id: q.id, isAnswered: isAnswered(q) })));
|
|
90623
|
+
const nextUnanswered = afterCurrent.find(q => !isAnswered(q))
|
|
90624
|
+
|| beforeCurrent.find(q => !isAnswered(q));
|
|
90625
|
+
console.log('[NextQuestion] nextUnanswered:', nextUnanswered ? { id: nextUnanswered.id, question: nextUnanswered.question?.substring(0, 50) } : 'none');
|
|
90588
90626
|
if (nextUnanswered) {
|
|
90589
90627
|
this.questionForAnswer.set(nextUnanswered);
|
|
90590
90628
|
if (nextUnanswered.id) {
|
|
@@ -90986,37 +91024,54 @@ function ShopProfileStatusCardComponent_Conditional_25_Template(rf, ctx) { if (r
|
|
|
90986
91024
|
i0.ɵɵadvance();
|
|
90987
91025
|
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("currentView", ctx_r1.currentView());
|
|
90988
91026
|
i0.ɵɵadvance();
|
|
90989
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("items", ctx_r1.currentGroupedQuestions());
|
|
91027
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("items", ctx_r1.currentGroupedQuestions())("delayAnimation", ctx_r1.questionsModalOpen());
|
|
90990
91028
|
} }
|
|
90991
|
-
function
|
|
91029
|
+
function ShopProfileStatusCardComponent_Conditional_26_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
90992
91030
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
90993
|
-
i0.ɵɵelementStart(0, "
|
|
90994
|
-
i0.ɵɵlistener("click", function
|
|
91031
|
+
i0.ɵɵelementStart(0, "button", 27);
|
|
91032
|
+
i0.ɵɵlistener("click", function ShopProfileStatusCardComponent_Conditional_26_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.adminAnswerAction.emit(false)); });
|
|
90995
91033
|
i0.ɵɵnamespaceSVG();
|
|
90996
|
-
i0.ɵɵelementStart(
|
|
90997
|
-
i0.ɵɵelement(
|
|
91034
|
+
i0.ɵɵelementStart(1, "svg", 28);
|
|
91035
|
+
i0.ɵɵelement(2, "path", 29);
|
|
90998
91036
|
i0.ɵɵelementEnd();
|
|
90999
91037
|
i0.ɵɵnamespaceHTML();
|
|
91000
|
-
i0.ɵɵelementStart(
|
|
91001
|
-
i0.ɵɵtext(
|
|
91038
|
+
i0.ɵɵelementStart(3, "span");
|
|
91039
|
+
i0.ɵɵtext(4);
|
|
91002
91040
|
i0.ɵɵelementEnd()();
|
|
91003
|
-
|
|
91004
|
-
|
|
91041
|
+
} if (rf & 2) {
|
|
91042
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
91043
|
+
i0.ɵɵadvance(4);
|
|
91044
|
+
i0.ɵɵtextInterpolate1("Un-answer ", ctx_r1.computedAnsweredCount(), " ?s");
|
|
91045
|
+
} }
|
|
91046
|
+
function ShopProfileStatusCardComponent_Conditional_26_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
91047
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
91048
|
+
i0.ɵɵelementStart(0, "button", 27);
|
|
91049
|
+
i0.ɵɵlistener("click", function ShopProfileStatusCardComponent_Conditional_26_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.adminAnswerAction.emit(true)); });
|
|
91005
91050
|
i0.ɵɵnamespaceSVG();
|
|
91006
|
-
i0.ɵɵelementStart(
|
|
91007
|
-
i0.ɵɵelement(
|
|
91051
|
+
i0.ɵɵelementStart(1, "svg", 28);
|
|
91052
|
+
i0.ɵɵelement(2, "path", 30);
|
|
91008
91053
|
i0.ɵɵelementEnd();
|
|
91009
91054
|
i0.ɵɵnamespaceHTML();
|
|
91010
|
-
i0.ɵɵelementStart(
|
|
91011
|
-
i0.ɵɵtext(
|
|
91012
|
-
i0.ɵɵelementEnd()()
|
|
91055
|
+
i0.ɵɵelementStart(3, "span");
|
|
91056
|
+
i0.ɵɵtext(4);
|
|
91057
|
+
i0.ɵɵelementEnd()();
|
|
91013
91058
|
} if (rf & 2) {
|
|
91014
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
91015
|
-
i0.ɵɵadvance(
|
|
91016
|
-
i0.ɵɵtextInterpolate1("Un-answer ", ctx_r1.answeredQuestions(), " ?s");
|
|
91017
|
-
i0.ɵɵadvance(5);
|
|
91059
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
91060
|
+
i0.ɵɵadvance(4);
|
|
91018
91061
|
i0.ɵɵtextInterpolate1("Answer ", ctx_r1.unansweredQuestions(), " ?s");
|
|
91019
91062
|
} }
|
|
91063
|
+
function ShopProfileStatusCardComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
91064
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
91065
|
+
i0.ɵɵconditionalCreate(1, ShopProfileStatusCardComponent_Conditional_26_Conditional_1_Template, 5, 1, "button", 26);
|
|
91066
|
+
i0.ɵɵconditionalCreate(2, ShopProfileStatusCardComponent_Conditional_26_Conditional_2_Template, 5, 1, "button", 26);
|
|
91067
|
+
i0.ɵɵelementEnd();
|
|
91068
|
+
} if (rf & 2) {
|
|
91069
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
91070
|
+
i0.ɵɵadvance();
|
|
91071
|
+
i0.ɵɵconditional(ctx_r1.computedAnsweredCount() > 0 ? 1 : -1);
|
|
91072
|
+
i0.ɵɵadvance();
|
|
91073
|
+
i0.ɵɵconditional(ctx_r1.unansweredQuestions() > 0 ? 2 : -1);
|
|
91074
|
+
} }
|
|
91020
91075
|
class ShopProfileStatusCardComponent {
|
|
91021
91076
|
constructor() {
|
|
91022
91077
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
@@ -91038,17 +91093,22 @@ class ShopProfileStatusCardComponent {
|
|
|
91038
91093
|
this.selectedFocusAreaId = signal(null, ...(ngDevMode ? [{ debugName: "selectedFocusAreaId" }] : []));
|
|
91039
91094
|
this.showAllQuestions = signal(false, ...(ngDevMode ? [{ debugName: "showAllQuestions" }] : []));
|
|
91040
91095
|
this.startDirectAnswer = signal(false, ...(ngDevMode ? [{ debugName: "startDirectAnswer" }] : []));
|
|
91096
|
+
this.computedAnsweredCount = computed(() => {
|
|
91097
|
+
const questions = this.questions();
|
|
91098
|
+
const answers = this.profileAnswers();
|
|
91099
|
+
return questions.filter(q => answers.some(a => a.profileQuestionId === q.id)).length;
|
|
91100
|
+
}, ...(ngDevMode ? [{ debugName: "computedAnsweredCount" }] : []));
|
|
91041
91101
|
this.completionPercentage = computed(() => {
|
|
91042
91102
|
const total = this.totalQuestions();
|
|
91043
91103
|
if (total === 0)
|
|
91044
91104
|
return 0;
|
|
91045
|
-
return (this.
|
|
91105
|
+
return (this.computedAnsweredCount() / total) * 100;
|
|
91046
91106
|
}, ...(ngDevMode ? [{ debugName: "completionPercentage" }] : []));
|
|
91047
91107
|
this.notStartedPercentage = computed(() => {
|
|
91048
91108
|
return 100 - this.completionPercentage();
|
|
91049
91109
|
}, ...(ngDevMode ? [{ debugName: "notStartedPercentage" }] : []));
|
|
91050
91110
|
this.shouldShowFullIntro = computed(() => {
|
|
91051
|
-
return this.
|
|
91111
|
+
return this.computedAnsweredCount() === 0;
|
|
91052
91112
|
}, ...(ngDevMode ? [{ debugName: "shouldShowFullIntro" }] : []));
|
|
91053
91113
|
this.hasQuestions = computed(() => {
|
|
91054
91114
|
return this.questions().length > 0;
|
|
@@ -91057,7 +91117,7 @@ class ShopProfileStatusCardComponent {
|
|
|
91057
91117
|
return EMAIL_IS_EMG_APPS(this.currentUser()?.email);
|
|
91058
91118
|
}, ...(ngDevMode ? [{ debugName: "showAdminButtons" }] : []));
|
|
91059
91119
|
this.unansweredQuestions = computed(() => {
|
|
91060
|
-
return this.totalQuestions() - this.
|
|
91120
|
+
return this.totalQuestions() - this.computedAnsweredCount();
|
|
91061
91121
|
}, ...(ngDevMode ? [{ debugName: "unansweredQuestions" }] : []));
|
|
91062
91122
|
this.questionsByCategory = computed(() => {
|
|
91063
91123
|
const questions = this.questions();
|
|
@@ -91129,6 +91189,32 @@ class ShopProfileStatusCardComponent {
|
|
|
91129
91189
|
? this.questionsByCategory()
|
|
91130
91190
|
: this.questionsByFocusArea();
|
|
91131
91191
|
}, ...(ngDevMode ? [{ debugName: "currentGroupedQuestions" }] : []));
|
|
91192
|
+
effect(() => {
|
|
91193
|
+
const completionPct = this.completionPercentage();
|
|
91194
|
+
const notStartedPct = this.notStartedPercentage();
|
|
91195
|
+
this.updateChartData(completionPct, notStartedPct);
|
|
91196
|
+
});
|
|
91197
|
+
}
|
|
91198
|
+
updateChartData(completionPct, notStartedPct) {
|
|
91199
|
+
if (!this.chartSeries || !this.centerLabel)
|
|
91200
|
+
return;
|
|
91201
|
+
const pieData = [];
|
|
91202
|
+
if (completionPct > 0) {
|
|
91203
|
+
pieData.push({
|
|
91204
|
+
category: 'Complete',
|
|
91205
|
+
value: completionPct,
|
|
91206
|
+
sliceSettings: { fill: color(0x0BA5EC) }
|
|
91207
|
+
});
|
|
91208
|
+
}
|
|
91209
|
+
if (notStartedPct > 0) {
|
|
91210
|
+
pieData.push({
|
|
91211
|
+
category: 'Not started',
|
|
91212
|
+
value: notStartedPct,
|
|
91213
|
+
sliceSettings: { fill: color(0xF04438) }
|
|
91214
|
+
});
|
|
91215
|
+
}
|
|
91216
|
+
this.chartSeries.data.setAll(pieData);
|
|
91217
|
+
this.centerLabel.set('text', `${completionPct.toFixed(1)}%\nComplete`);
|
|
91132
91218
|
}
|
|
91133
91219
|
handleViewChange(view) {
|
|
91134
91220
|
this.currentView.set(view);
|
|
@@ -91191,6 +91277,8 @@ class ShopProfileStatusCardComponent {
|
|
|
91191
91277
|
this.root.dispose();
|
|
91192
91278
|
}
|
|
91193
91279
|
this.chartElement = undefined;
|
|
91280
|
+
this.chartSeries = undefined;
|
|
91281
|
+
this.centerLabel = undefined;
|
|
91194
91282
|
this.root = undefined;
|
|
91195
91283
|
}
|
|
91196
91284
|
createChart() {
|
|
@@ -91204,33 +91292,33 @@ class ShopProfileStatusCardComponent {
|
|
|
91204
91292
|
radius: percent(95),
|
|
91205
91293
|
innerRadius: percent(60)
|
|
91206
91294
|
}));
|
|
91207
|
-
|
|
91295
|
+
this.chartSeries = this.chartElement.series.push(PieSeries.new(this.root, {
|
|
91208
91296
|
valueField: 'value',
|
|
91209
91297
|
categoryField: 'category',
|
|
91210
91298
|
alignLabels: false
|
|
91211
91299
|
}));
|
|
91212
|
-
|
|
91300
|
+
this.chartSeries.slices.template.setAll({
|
|
91213
91301
|
templateField: 'sliceSettings',
|
|
91214
91302
|
strokeOpacity: 0
|
|
91215
91303
|
});
|
|
91216
|
-
|
|
91304
|
+
this.chartSeries.labels.template.setAll({
|
|
91217
91305
|
textType: 'circular',
|
|
91218
91306
|
fill: color(0xFFFFFF),
|
|
91219
91307
|
text: '{category}',
|
|
91220
91308
|
fontSize: 12
|
|
91221
91309
|
});
|
|
91222
|
-
|
|
91223
|
-
|
|
91310
|
+
this.chartSeries.ticks.template.set('forceHidden', true);
|
|
91311
|
+
this.chartSeries.states.create('hidden', {
|
|
91224
91312
|
startAngle: 180,
|
|
91225
91313
|
endAngle: 180
|
|
91226
91314
|
});
|
|
91227
|
-
|
|
91315
|
+
this.chartSeries.slices.template.states.create('hover', {
|
|
91228
91316
|
scale: 1
|
|
91229
91317
|
});
|
|
91230
|
-
|
|
91318
|
+
this.chartSeries.slices.template.states.create('active', {
|
|
91231
91319
|
shiftRadius: 0
|
|
91232
91320
|
});
|
|
91233
|
-
|
|
91321
|
+
this.chartSeries.labels.template.adapters.add('visible', function (visible, radialLabel) {
|
|
91234
91322
|
if (radialLabel.dataItem && radialLabel.dataItem.dataContext) {
|
|
91235
91323
|
const pieData = radialLabel.dataItem.dataContext;
|
|
91236
91324
|
if (pieData.value < 8) {
|
|
@@ -91239,30 +91327,9 @@ class ShopProfileStatusCardComponent {
|
|
|
91239
91327
|
}
|
|
91240
91328
|
return visible;
|
|
91241
91329
|
});
|
|
91242
|
-
const pieData = [];
|
|
91243
91330
|
const completionPct = this.completionPercentage();
|
|
91244
|
-
const notStartedPct = this.notStartedPercentage();
|
|
91245
|
-
if (completionPct > 0) {
|
|
91246
|
-
pieData.push({
|
|
91247
|
-
category: 'Complete',
|
|
91248
|
-
value: completionPct,
|
|
91249
|
-
sliceSettings: {
|
|
91250
|
-
fill: color(0x0BA5EC)
|
|
91251
|
-
}
|
|
91252
|
-
});
|
|
91253
|
-
}
|
|
91254
|
-
if (notStartedPct > 0) {
|
|
91255
|
-
pieData.push({
|
|
91256
|
-
category: 'Not started',
|
|
91257
|
-
value: notStartedPct,
|
|
91258
|
-
sliceSettings: {
|
|
91259
|
-
fill: color(0xF04438)
|
|
91260
|
-
}
|
|
91261
|
-
});
|
|
91262
|
-
}
|
|
91263
|
-
series.data.setAll(pieData);
|
|
91264
91331
|
const percentageText = `${completionPct.toFixed(1)}%\nComplete`;
|
|
91265
|
-
this.
|
|
91332
|
+
this.centerLabel = Label.new(this.root, {
|
|
91266
91333
|
text: percentageText,
|
|
91267
91334
|
fontSize: 16,
|
|
91268
91335
|
fill: color(0xFFFFFF),
|
|
@@ -91274,9 +91341,11 @@ class ShopProfileStatusCardComponent {
|
|
|
91274
91341
|
centerY: percent(50),
|
|
91275
91342
|
paddingTop: 0,
|
|
91276
91343
|
paddingBottom: 0
|
|
91277
|
-
})
|
|
91344
|
+
});
|
|
91345
|
+
this.chartElement.children.unshift(this.centerLabel);
|
|
91346
|
+
this.updateChartData(completionPct, this.notStartedPercentage());
|
|
91278
91347
|
this.chartElement.appear(1000, 100);
|
|
91279
|
-
|
|
91348
|
+
this.chartSeries.appear();
|
|
91280
91349
|
}
|
|
91281
91350
|
containerClasses() {
|
|
91282
91351
|
return this.viewMode() === ViewModeEnum.DARK
|
|
@@ -91334,7 +91403,7 @@ class ShopProfileStatusCardComponent {
|
|
|
91334
91403
|
} if (rf & 2) {
|
|
91335
91404
|
let _t;
|
|
91336
91405
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chartDiv = _t.first);
|
|
91337
|
-
} }, inputs: { viewMode: [1, "viewMode"], totalQuestions: [1, "totalQuestions"], answeredQuestions: [1, "answeredQuestions"], questions: [1, "questions"], profileAnswers: [1, "profileAnswers"], profileAnswerHistories: [1, "profileAnswerHistories"], users: [1, "users"], startAnsweringAll: [1, "startAnsweringAll"], currentUser: [1, "currentUser"] }, outputs: { startCategoryQuestions: "startCategoryQuestions", questionAnswerRequested: "questionAnswerRequested", answerSave: "answerSave", adminAnswerAction: "adminAnswerAction" }, decls: 28, vars: 23, consts: [["chartdiv", ""], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-6", "py-5", "border-b", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [1, "p-2.5", "rounded-lg", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "mt-0.5", 3, "ngClass"], [1, "p-6", 3, "ngClass"], [1, "flex", "flex-wrap", "items-center", "gap-6", "mb-8"], [1, "rounded-xl", "p-6", "flex-1", "min-w-[300px]", 3, "ngClass"], [1, "flex", "items-start", "gap-4"], [1, "flex-shrink-0", "p-2", "rounded-lg", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex-1"], [1, "leading-relaxed", 3, "ngClass"], [1, "flex-shrink-0"], [1, "w-[250px]", "h-[250px]"], [1, "flex", "items-center", "justify-center", "gap-4", "mt-6", "pt-6", "border-t", "border-slate-700/50"], [3, "close", "questionAnswerClick", "answerSave", "isOpen", "questions", "profileAnswers", "profileAnswerHistories", "users", "selectedCategoryId", "selectedFocusAreaId", "showAllQuestions", "startDirectAnswer", "viewMode"], [1, "font-semibold", "text-lg", "mb-3", 3, "ngClass"], [1, "flex", "justify-center", "mb-6"], [3, "viewChanged", "viewMode", "currentView"], [3, "itemClick", "viewMode", "items"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "border-2", "border-violet-500/70", "bg-transparent", "text-violet-400", "hover:bg-violet-500/10", "transition-colors", 3, "click"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M5 13l4 4L19 7"]], template: function ShopProfileStatusCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
91406
|
+
} }, inputs: { viewMode: [1, "viewMode"], totalQuestions: [1, "totalQuestions"], answeredQuestions: [1, "answeredQuestions"], questions: [1, "questions"], profileAnswers: [1, "profileAnswers"], profileAnswerHistories: [1, "profileAnswerHistories"], users: [1, "users"], startAnsweringAll: [1, "startAnsweringAll"], currentUser: [1, "currentUser"] }, outputs: { startCategoryQuestions: "startCategoryQuestions", questionAnswerRequested: "questionAnswerRequested", answerSave: "answerSave", adminAnswerAction: "adminAnswerAction" }, decls: 28, vars: 23, consts: [["chartdiv", ""], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-6", "py-5", "border-b", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [1, "p-2.5", "rounded-lg", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "mt-0.5", 3, "ngClass"], [1, "p-6", 3, "ngClass"], [1, "flex", "flex-wrap", "items-center", "gap-6", "mb-8"], [1, "rounded-xl", "p-6", "flex-1", "min-w-[300px]", 3, "ngClass"], [1, "flex", "items-start", "gap-4"], [1, "flex-shrink-0", "p-2", "rounded-lg", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex-1"], [1, "leading-relaxed", 3, "ngClass"], [1, "flex-shrink-0"], [1, "w-[250px]", "h-[250px]"], [1, "flex", "items-center", "justify-center", "gap-4", "mt-6", "pt-6", "border-t", "border-slate-700/50"], [3, "close", "questionAnswerClick", "answerSave", "isOpen", "questions", "profileAnswers", "profileAnswerHistories", "users", "selectedCategoryId", "selectedFocusAreaId", "showAllQuestions", "startDirectAnswer", "viewMode"], [1, "font-semibold", "text-lg", "mb-3", 3, "ngClass"], [1, "flex", "justify-center", "mb-6"], [3, "viewChanged", "viewMode", "currentView"], [3, "itemClick", "viewMode", "items", "delayAnimation"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "border-2", "border-violet-500/70", "bg-transparent", "text-violet-400", "hover:bg-violet-500/10", "transition-colors"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "border-2", "border-violet-500/70", "bg-transparent", "text-violet-400", "hover:bg-violet-500/10", "transition-colors", 3, "click"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M5 13l4 4L19 7"]], template: function ShopProfileStatusCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
91338
91407
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
91339
91408
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "div", 5);
|
|
91340
91409
|
i0.ɵɵnamespaceSVG();
|
|
@@ -91360,8 +91429,8 @@ class ShopProfileStatusCardComponent {
|
|
|
91360
91429
|
i0.ɵɵelementStart(22, "div", 18);
|
|
91361
91430
|
i0.ɵɵelement(23, "div", 19, 0);
|
|
91362
91431
|
i0.ɵɵelementEnd()();
|
|
91363
|
-
i0.ɵɵconditionalCreate(25, ShopProfileStatusCardComponent_Conditional_25_Template, 3,
|
|
91364
|
-
i0.ɵɵconditionalCreate(26, ShopProfileStatusCardComponent_Conditional_26_Template,
|
|
91432
|
+
i0.ɵɵconditionalCreate(25, ShopProfileStatusCardComponent_Conditional_25_Template, 3, 5);
|
|
91433
|
+
i0.ɵɵconditionalCreate(26, ShopProfileStatusCardComponent_Conditional_26_Template, 3, 2, "div", 20);
|
|
91365
91434
|
i0.ɵɵelementEnd()();
|
|
91366
91435
|
i0.ɵɵelementStart(27, "symphiq-shop-profile-questions-modal", 21);
|
|
91367
91436
|
i0.ɵɵlistener("close", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_close_27_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onQuestionsModalClose()); })("questionAnswerClick", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_questionAnswerClick_27_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onQuestionAnswerClick($event)); })("answerSave", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_answerSave_27_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onAnswerSave($event)); });
|
|
@@ -91401,129 +91470,134 @@ class ShopProfileStatusCardComponent {
|
|
|
91401
91470
|
standalone: true,
|
|
91402
91471
|
imports: [CommonModule, ShopProfileCategoryListComponent, ShopProfileViewToggleComponent, ShopProfileQuestionsModalComponent],
|
|
91403
91472
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
91404
|
-
template: `
|
|
91405
|
-
<div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
|
|
91406
|
-
<div [ngClass]="headerClasses()" class="px-6 py-5 border-b">
|
|
91407
|
-
<div class="flex items-center justify-between">
|
|
91408
|
-
<div class="flex items-center gap-3">
|
|
91409
|
-
<div [ngClass]="iconContainerClasses()" class="p-2.5 rounded-lg">
|
|
91410
|
-
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
91411
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"></path>
|
|
91412
|
-
</svg>
|
|
91413
|
-
</div>
|
|
91414
|
-
<div>
|
|
91415
|
-
<h2 [ngClass]="titleClasses()" class="text-xl font-bold">
|
|
91416
|
-
Shop Profile
|
|
91417
|
-
</h2>
|
|
91418
|
-
<p [ngClass]="subtitleClasses()" class="text-sm mt-0.5">
|
|
91419
|
-
{{ answeredQuestions() }} of {{ totalQuestions() }} questions answered
|
|
91420
|
-
</p>
|
|
91421
|
-
</div>
|
|
91422
|
-
</div>
|
|
91423
|
-
</div>
|
|
91424
|
-
</div>
|
|
91425
|
-
|
|
91426
|
-
<div [ngClass]="contentClasses()" class="p-6">
|
|
91427
|
-
<!-- Chart and Explanatory Text Side by Side -->
|
|
91428
|
-
<div class="flex flex-wrap items-center gap-6 mb-8">
|
|
91429
|
-
<!-- Explanatory Text -->
|
|
91430
|
-
<div [ngClass]="getIntroductionContainerClasses()" class="rounded-xl p-6 flex-1 min-w-[300px]">
|
|
91431
|
-
<div class="flex items-start gap-4">
|
|
91432
|
-
<div [ngClass]="getIntroIconClasses()" class="flex-shrink-0 p-2 rounded-lg">
|
|
91433
|
-
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
91434
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
|
91435
|
-
</svg>
|
|
91436
|
-
</div>
|
|
91437
|
-
<div class="flex-1">
|
|
91438
|
-
@if (shouldShowFullIntro()) {
|
|
91439
|
-
<h3 [ngClass]="getIntroTitleClasses()" class="font-semibold text-lg mb-3">
|
|
91440
|
-
Why Shop Profile Questions Matter
|
|
91441
|
-
</h3>
|
|
91442
|
-
<p [ngClass]="getIntroTextClasses()" class="leading-relaxed">
|
|
91443
|
-
Shop Profile questions are a <strong>critical part of your onboarding journey</strong>. These questions provide crucial qualitative data to the Symphiq engine, enabling personalized analysis and strategic recommendations tailored to your business. Your insights help us understand your unique operations, challenges, and goals.
|
|
91444
|
-
</p>
|
|
91445
|
-
} @else {
|
|
91446
|
-
<p [ngClass]="getIntroTextClasses()" class="leading-relaxed">
|
|
91447
|
-
<strong>Great progress!</strong> Continue answering questions to unlock deeper insights and more accurate recommendations. Each answer helps Symphiq better understand your business context.
|
|
91448
|
-
</p>
|
|
91449
|
-
}
|
|
91450
|
-
</div>
|
|
91451
|
-
</div>
|
|
91452
|
-
</div>
|
|
91453
|
-
|
|
91454
|
-
<!-- Donut Chart -->
|
|
91455
|
-
<div class="flex-shrink-0">
|
|
91456
|
-
<div #chartdiv class="w-[250px] h-[250px]"></div>
|
|
91457
|
-
</div>
|
|
91458
|
-
</div>
|
|
91459
|
-
|
|
91460
|
-
<!-- View Toggle -->
|
|
91461
|
-
@if (hasQuestions()) {
|
|
91462
|
-
<div class="flex justify-center mb-6">
|
|
91463
|
-
<symphiq-shop-profile-view-toggle
|
|
91464
|
-
[viewMode]="viewMode()"
|
|
91465
|
-
[currentView]="currentView()"
|
|
91466
|
-
(viewChanged)="handleViewChange($event)"
|
|
91467
|
-
/>
|
|
91468
|
-
</div>
|
|
91469
|
-
|
|
91470
|
-
<!-- Category/Focus Area List -->
|
|
91471
|
-
<symphiq-shop-profile-category-list
|
|
91472
|
-
[viewMode]="viewMode()"
|
|
91473
|
-
[items]="currentGroupedQuestions()"
|
|
91474
|
-
|
|
91475
|
-
|
|
91476
|
-
|
|
91477
|
-
|
|
91478
|
-
|
|
91479
|
-
|
|
91480
|
-
|
|
91481
|
-
|
|
91482
|
-
|
|
91483
|
-
|
|
91484
|
-
|
|
91485
|
-
|
|
91486
|
-
|
|
91487
|
-
|
|
91488
|
-
|
|
91489
|
-
|
|
91490
|
-
|
|
91491
|
-
|
|
91492
|
-
|
|
91493
|
-
|
|
91494
|
-
|
|
91495
|
-
|
|
91496
|
-
|
|
91497
|
-
|
|
91498
|
-
|
|
91499
|
-
|
|
91500
|
-
|
|
91501
|
-
|
|
91502
|
-
|
|
91503
|
-
|
|
91504
|
-
|
|
91505
|
-
|
|
91506
|
-
|
|
91507
|
-
|
|
91508
|
-
|
|
91509
|
-
|
|
91510
|
-
|
|
91511
|
-
|
|
91512
|
-
[
|
|
91513
|
-
[
|
|
91514
|
-
[
|
|
91515
|
-
[
|
|
91516
|
-
[
|
|
91517
|
-
|
|
91518
|
-
|
|
91519
|
-
|
|
91473
|
+
template: `
|
|
91474
|
+
<div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
|
|
91475
|
+
<div [ngClass]="headerClasses()" class="px-6 py-5 border-b">
|
|
91476
|
+
<div class="flex items-center justify-between">
|
|
91477
|
+
<div class="flex items-center gap-3">
|
|
91478
|
+
<div [ngClass]="iconContainerClasses()" class="p-2.5 rounded-lg">
|
|
91479
|
+
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
91480
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"></path>
|
|
91481
|
+
</svg>
|
|
91482
|
+
</div>
|
|
91483
|
+
<div>
|
|
91484
|
+
<h2 [ngClass]="titleClasses()" class="text-xl font-bold">
|
|
91485
|
+
Shop Profile
|
|
91486
|
+
</h2>
|
|
91487
|
+
<p [ngClass]="subtitleClasses()" class="text-sm mt-0.5">
|
|
91488
|
+
{{ answeredQuestions() }} of {{ totalQuestions() }} questions answered
|
|
91489
|
+
</p>
|
|
91490
|
+
</div>
|
|
91491
|
+
</div>
|
|
91492
|
+
</div>
|
|
91493
|
+
</div>
|
|
91494
|
+
|
|
91495
|
+
<div [ngClass]="contentClasses()" class="p-6">
|
|
91496
|
+
<!-- Chart and Explanatory Text Side by Side -->
|
|
91497
|
+
<div class="flex flex-wrap items-center gap-6 mb-8">
|
|
91498
|
+
<!-- Explanatory Text -->
|
|
91499
|
+
<div [ngClass]="getIntroductionContainerClasses()" class="rounded-xl p-6 flex-1 min-w-[300px]">
|
|
91500
|
+
<div class="flex items-start gap-4">
|
|
91501
|
+
<div [ngClass]="getIntroIconClasses()" class="flex-shrink-0 p-2 rounded-lg">
|
|
91502
|
+
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
91503
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
|
91504
|
+
</svg>
|
|
91505
|
+
</div>
|
|
91506
|
+
<div class="flex-1">
|
|
91507
|
+
@if (shouldShowFullIntro()) {
|
|
91508
|
+
<h3 [ngClass]="getIntroTitleClasses()" class="font-semibold text-lg mb-3">
|
|
91509
|
+
Why Shop Profile Questions Matter
|
|
91510
|
+
</h3>
|
|
91511
|
+
<p [ngClass]="getIntroTextClasses()" class="leading-relaxed">
|
|
91512
|
+
Shop Profile questions are a <strong>critical part of your onboarding journey</strong>. These questions provide crucial qualitative data to the Symphiq engine, enabling personalized analysis and strategic recommendations tailored to your business. Your insights help us understand your unique operations, challenges, and goals.
|
|
91513
|
+
</p>
|
|
91514
|
+
} @else {
|
|
91515
|
+
<p [ngClass]="getIntroTextClasses()" class="leading-relaxed">
|
|
91516
|
+
<strong>Great progress!</strong> Continue answering questions to unlock deeper insights and more accurate recommendations. Each answer helps Symphiq better understand your business context.
|
|
91517
|
+
</p>
|
|
91518
|
+
}
|
|
91519
|
+
</div>
|
|
91520
|
+
</div>
|
|
91521
|
+
</div>
|
|
91522
|
+
|
|
91523
|
+
<!-- Donut Chart -->
|
|
91524
|
+
<div class="flex-shrink-0">
|
|
91525
|
+
<div #chartdiv class="w-[250px] h-[250px]"></div>
|
|
91526
|
+
</div>
|
|
91527
|
+
</div>
|
|
91528
|
+
|
|
91529
|
+
<!-- View Toggle -->
|
|
91530
|
+
@if (hasQuestions()) {
|
|
91531
|
+
<div class="flex justify-center mb-6">
|
|
91532
|
+
<symphiq-shop-profile-view-toggle
|
|
91533
|
+
[viewMode]="viewMode()"
|
|
91534
|
+
[currentView]="currentView()"
|
|
91535
|
+
(viewChanged)="handleViewChange($event)"
|
|
91536
|
+
/>
|
|
91537
|
+
</div>
|
|
91538
|
+
|
|
91539
|
+
<!-- Category/Focus Area List -->
|
|
91540
|
+
<symphiq-shop-profile-category-list
|
|
91541
|
+
[viewMode]="viewMode()"
|
|
91542
|
+
[items]="currentGroupedQuestions()"
|
|
91543
|
+
[delayAnimation]="questionsModalOpen()"
|
|
91544
|
+
(itemClick)="handleItemClick($event)"
|
|
91545
|
+
/>
|
|
91546
|
+
}
|
|
91547
|
+
|
|
91548
|
+
@if (showAdminButtons()) {
|
|
91549
|
+
<div class="flex items-center justify-center gap-4 mt-6 pt-6 border-t border-slate-700/50">
|
|
91550
|
+
@if (computedAnsweredCount() > 0) {
|
|
91551
|
+
<button
|
|
91552
|
+
type="button"
|
|
91553
|
+
(click)="adminAnswerAction.emit(false)"
|
|
91554
|
+
class="flex items-center gap-2 px-4 py-2 rounded-lg border-2 border-violet-500/70 bg-transparent text-violet-400 hover:bg-violet-500/10 transition-colors"
|
|
91555
|
+
>
|
|
91556
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
91557
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
|
|
91558
|
+
</svg>
|
|
91559
|
+
<span>Un-answer {{ computedAnsweredCount() }} ?s</span>
|
|
91560
|
+
</button>
|
|
91561
|
+
}
|
|
91562
|
+
@if (unansweredQuestions() > 0) {
|
|
91563
|
+
<button
|
|
91564
|
+
type="button"
|
|
91565
|
+
(click)="adminAnswerAction.emit(true)"
|
|
91566
|
+
class="flex items-center gap-2 px-4 py-2 rounded-lg border-2 border-violet-500/70 bg-transparent text-violet-400 hover:bg-violet-500/10 transition-colors"
|
|
91567
|
+
>
|
|
91568
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
91569
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
|
|
91570
|
+
</svg>
|
|
91571
|
+
<span>Answer {{ unansweredQuestions() }} ?s</span>
|
|
91572
|
+
</button>
|
|
91573
|
+
}
|
|
91574
|
+
</div>
|
|
91575
|
+
}
|
|
91576
|
+
</div>
|
|
91577
|
+
</div>
|
|
91578
|
+
|
|
91579
|
+
<!-- Questions Modal -->
|
|
91580
|
+
<symphiq-shop-profile-questions-modal
|
|
91581
|
+
[isOpen]="questionsModalOpen()"
|
|
91582
|
+
[questions]="questions()"
|
|
91583
|
+
[profileAnswers]="profileAnswers()"
|
|
91584
|
+
[profileAnswerHistories]="profileAnswerHistories()"
|
|
91585
|
+
[users]="users()"
|
|
91586
|
+
[selectedCategoryId]="selectedCategoryId()"
|
|
91587
|
+
[selectedFocusAreaId]="selectedFocusAreaId()"
|
|
91588
|
+
[showAllQuestions]="showAllQuestions()"
|
|
91589
|
+
[startDirectAnswer]="startDirectAnswer()"
|
|
91590
|
+
[viewMode]="viewMode()"
|
|
91591
|
+
(close)="onQuestionsModalClose()"
|
|
91592
|
+
(questionAnswerClick)="onQuestionAnswerClick($event)"
|
|
91593
|
+
(answerSave)="onAnswerSave($event)" />
|
|
91520
91594
|
`
|
|
91521
91595
|
}]
|
|
91522
|
-
}],
|
|
91596
|
+
}], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], totalQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalQuestions", required: false }] }], answeredQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "answeredQuestions", required: false }] }], questions: [{ type: i0.Input, args: [{ isSignal: true, alias: "questions", required: false }] }], profileAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileAnswers", required: false }] }], profileAnswerHistories: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileAnswerHistories", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], startAnsweringAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAnsweringAll", required: false }] }], currentUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentUser", required: false }] }], startCategoryQuestions: [{ type: i0.Output, args: ["startCategoryQuestions"] }], questionAnswerRequested: [{ type: i0.Output, args: ["questionAnswerRequested"] }], answerSave: [{ type: i0.Output, args: ["answerSave"] }], adminAnswerAction: [{ type: i0.Output, args: ["adminAnswerAction"] }], chartDiv: [{
|
|
91523
91597
|
type: ViewChild,
|
|
91524
91598
|
args: ['chartdiv', { static: false }]
|
|
91525
91599
|
}] }); })();
|
|
91526
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileStatusCardComponent, { className: "ShopProfileStatusCardComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-status-card.component.ts", lineNumber:
|
|
91600
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileStatusCardComponent, { className: "ShopProfileStatusCardComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-status-card.component.ts", lineNumber: 159 }); })();
|
|
91527
91601
|
|
|
91528
91602
|
function ShopProfileStickyFooterComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
91529
91603
|
i0.ɵɵelementStart(0, "div", 5);
|
|
@@ -93069,11 +93143,16 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
93069
93143
|
const profileShop = this.profileShop();
|
|
93070
93144
|
return profileShop && profileShop.selfContentStatus === AiDynamicContentStatusEnum.GENERATED;
|
|
93071
93145
|
}, ...(ngDevMode ? [{ debugName: "shouldShowShopProfileStatus" }] : []));
|
|
93146
|
+
this.shouldShowHeaderControls = computed(() => {
|
|
93147
|
+
return !!this.profileAnalysis() && this.profileShop()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED;
|
|
93148
|
+
}, ...(ngDevMode ? [{ debugName: "shouldShowHeaderControls" }] : []));
|
|
93072
93149
|
this.totalShopQuestions = computed(() => {
|
|
93073
93150
|
return this.profileShopQuestions()?.length || 0;
|
|
93074
93151
|
}, ...(ngDevMode ? [{ debugName: "totalShopQuestions" }] : []));
|
|
93075
93152
|
this.answeredShopQuestions = computed(() => {
|
|
93076
|
-
|
|
93153
|
+
const questions = this.profileShopQuestions() || [];
|
|
93154
|
+
const answers = this.profileAnswers() || [];
|
|
93155
|
+
return questions.filter(q => answers.some(a => a.profileQuestionId === q.id)).length;
|
|
93077
93156
|
}, ...(ngDevMode ? [{ debugName: "answeredShopQuestions" }] : []));
|
|
93078
93157
|
this.shopQuestionsCompletionPercentage = computed(() => {
|
|
93079
93158
|
const total = this.totalShopQuestions();
|
|
@@ -93900,7 +93979,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
93900
93979
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.shopProfileStatusCard = _t.first);
|
|
93901
93980
|
} }, hostBindings: function SymphiqProfileAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
93902
93981
|
i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onWindowScroll($event); }, i0.ɵɵresolveWindow);
|
|
93903
|
-
} }, inputs: { viewMode: [1, "viewMode"], requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], embedded: [1, "embedded"], profileAnalysis: [1, "profileAnalysis"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], analysisType: [1, "analysisType"], focusAreaDetails: [1, "focusAreaDetails"], account: [1, "account"], profileShop: [1, "profileShop"], profileShopQuestions: [1, "profileShopQuestions"], profileAnswers: [1, "profileAnswers"], profileAnswerHistories: [1, "profileAnswerHistories"], itemStatusProfileShop: [1, "itemStatusProfileShop"], itemStatusProfileAnalysis: [1, "itemStatusProfileAnalysis"], planCardInfos: [1, "planCardInfos"], isOnboarded: [1, "isOnboarded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], users: [1, "users"], isLoading: [1, "isLoading"], forDemo: [1, "forDemo"], currentUser: [1, "currentUser"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", currencySelectionClick: "currencySelectionClick", editCurrencyClick: "editCurrencyClick", periodUnitChanged: "periodUnitChanged", planSelected: "planSelected", checkoutPlanClick: "checkoutPlanClick", answerShopProfileQuestions: "answerShopProfileQuestions", continueShopProfileQuestions: "continueShopProfileQuestions", profileQuestionAnswerSave: "profileQuestionAnswerSave", shopProfileAdminAnswerAction: "shopProfileAdminAnswerAction" }, features: [i0.ɵɵNgOnChangesFeature], decls: 30, vars:
|
|
93982
|
+
} }, inputs: { viewMode: [1, "viewMode"], requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], embedded: [1, "embedded"], profileAnalysis: [1, "profileAnalysis"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], analysisType: [1, "analysisType"], focusAreaDetails: [1, "focusAreaDetails"], account: [1, "account"], profileShop: [1, "profileShop"], profileShopQuestions: [1, "profileShopQuestions"], profileAnswers: [1, "profileAnswers"], profileAnswerHistories: [1, "profileAnswerHistories"], itemStatusProfileShop: [1, "itemStatusProfileShop"], itemStatusProfileAnalysis: [1, "itemStatusProfileAnalysis"], planCardInfos: [1, "planCardInfos"], isOnboarded: [1, "isOnboarded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], users: [1, "users"], isLoading: [1, "isLoading"], forDemo: [1, "forDemo"], currentUser: [1, "currentUser"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", currencySelectionClick: "currencySelectionClick", editCurrencyClick: "editCurrencyClick", periodUnitChanged: "periodUnitChanged", planSelected: "planSelected", checkoutPlanClick: "checkoutPlanClick", answerShopProfileQuestions: "answerShopProfileQuestions", continueShopProfileQuestions: "continueShopProfileQuestions", profileQuestionAnswerSave: "profileQuestionAnswerSave", shopProfileAdminAnswerAction: "shopProfileAdminAnswerAction" }, features: [i0.ɵɵNgOnChangesFeature], decls: 30, vars: 52, consts: [["shopProfileStatusCard", ""], [1, "min-h-screen", "relative", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "createdDate", "showControls"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], [1, "mb-12"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "close", "isOpen", "isLightMode"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode"], [3, "isLightMode", "allMetrics", "allInsights", "allBusinessInsights", "allCharts"], [3, "goal", "viewMode", "isInModal", "allMetrics", "allCharts", "allInsights", "currentModalState", "businessProfile"], [3, "goal", "viewMode"], [3, "objective", "goalTitle", "viewMode"], [3, "strategy", "objectiveTitle", "goalTitle", "viewMode", "allMetrics", "allCharts", "allInsights", "allBusinessInsights", "currentModalState"], [3, "category", "viewMode", "scrollToSection"], [3, "strength", "viewMode", "allFunnelStrengths", "currentModalState"], [3, "gap", "viewMode", "allGoals", "allWeaknesses", "currentModalState"], [3, "opportunity", "viewMode", "allStrengths", "currentModalState"], [3, "isLightMode", "viewMode", "allMetrics", "allInsights", "allCharts"], [3, "isLightMode"], [3, "viewMode", "isEnabled", "isLoading"], [3, "viewMode", "totalQuestions", "answeredQuestions"], [1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-lg", 3, "ngClass"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMode", "focusAreaDomain", "focusAreaName", "focusAreaDetails"], [3, "viewMode", "metricName", "isOnboarded"], [1, "mb-8"], [3, "startCategoryQuestions", "answerSave", "adminAnswerAction", "viewMode", "totalQuestions", "answeredQuestions", "questions", "profileAnswers", "profileAnswerHistories", "users", "currentUser"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [3, "goals", "viewMode"], ["title", "Generating Your Shop Profile", "subtitle", "We're analyzing your data to create shop specific questions and answers. They will appear when ready.", 3, "itemStatus", "viewMode"], [3, "viewMoreClick", "goals", "viewMode"], [1, "mb-32"], [3, "viewMode", "selectedCurrency"], [3, "currencySelected", "viewMode", "isLoading", "initialCurrency"], [3, "viewMode"], [3, "periodUnitChanged", "planSelected", "editCurrency", "checkout", "viewMode", "selectedCurrency", "planCardInfos", "isLoading", "selectedPeriodUnit"], [3, "editCurrency", "viewMode", "selectedCurrency"], [3, "sections", "viewMode", "executiveSummary", "focusAreaExecutiveSummary", "metricExecutiveSummary", "metricName", "allGoals", "allMetrics", "allCharts", "allInsights", "businessProfile"], ["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "summary", "allGoals"], [3, "viewMode", "summary", "metricName", "allGoals"], [1, "space-y-8"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [1, "rounded-xl", "p-6", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4"], ["type", "button", 1, "p-4", "rounded-xl", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "group", "cursor-pointer", 3, "click", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", "mb-2", 3, "ngClass"], [1, "flex", "items-center", "gap-1.5", "text-xs", "font-medium"], [3, "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-x-1", 3, "icon", "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-y-1", "animate-bounce", 3, "icon", "ngClass"], ["id", "quick-wins-section", 1, "space-y-4", "scroll-mt-24"], [1, "text-lg", "font-semibold", "mb-3", 3, "ngClass"], [1, "relative"], [1, "mb-6", "lg:float-left", "lg:mr-6", "lg:mb-4", "lg:max-w-[66%]"], [1, "text-sm", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "clear-both"], [3, "visual", "viewMode"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "grid", "grid-cols-1", "lg:grid-cols-2", "gap-6"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-start", "gap-3"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "font-semibold", "leading-tight", "flex-1", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "text-sm", 3, "ngClass"], [1, "space-y-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "relatedGoalIds", "allGoals", "viewMode"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "allGoals"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "metricName", "allGoals"], [3, "viewMode", "sectionIcon"], [1, "rounded-xl", "p-8", "scroll-mt-24", 3, "id", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-6"], [1, "flex-shrink-0", "w-12", "h-12", "rounded-xl", "flex", "items-center", "justify-center", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start", 3, "lg:flex-row-reverse"], [3, "section", "executiveSummary", "viewMode", "sectionIndex", "allGoals", "allMetrics", "allCharts", "allInsights", "businessProfile"], ["size", "w-6 h-6", 3, "icon"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start"], [1, "w-full", "lg:w-2/3"], [1, "w-full", 3, "lg:w-1/3", "lg:w-full"], [1, "w-full"], [3, "continueClick", "viewMode", "isEnabled", "isLoading"], [3, "continueClick", "viewMode", "totalQuestions", "answeredQuestions"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "items-center", "gap-4"], [1, "px-6", "py-4", "rounded-xl", "font-semibold", "text-lg", "transition-all", "duration-300", "cursor-pointer", 3, "click", "ngClass"], [1, "flex-1", "px-6", "py-4", "rounded-xl", "font-semibold", "text-lg", "transition-all", "duration-300", "flex", "items-center", "justify-center", "gap-3", "shadow-2xl", 3, "click", "disabled", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "transition-transform", "duration-200"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function SymphiqProfileAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
93904
93983
|
i0.ɵɵelementStart(0, "div", 1);
|
|
93905
93984
|
i0.ɵɵelement(1, "div", 2);
|
|
93906
93985
|
i0.ɵɵelementStart(2, "div");
|
|
@@ -93941,7 +94020,6 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
93941
94020
|
} if (rf & 2) {
|
|
93942
94021
|
let tmp_5_0;
|
|
93943
94022
|
let tmp_12_0;
|
|
93944
|
-
let tmp_30_0;
|
|
93945
94023
|
let tmp_31_0;
|
|
93946
94024
|
let tmp_32_0;
|
|
93947
94025
|
let tmp_33_0;
|
|
@@ -93949,6 +94027,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
93949
94027
|
let tmp_35_0;
|
|
93950
94028
|
let tmp_36_0;
|
|
93951
94029
|
let tmp_37_0;
|
|
94030
|
+
let tmp_38_0;
|
|
93952
94031
|
i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
|
|
93953
94032
|
i0.ɵɵadvance();
|
|
93954
94033
|
i0.ɵɵclassProp("light-mode", ctx.isLightMode());
|
|
@@ -93958,7 +94037,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
93958
94037
|
i0.ɵɵstyleProp("width", ctx.scrollProgress(), "%");
|
|
93959
94038
|
i0.ɵɵproperty("ngClass", ctx.isLightMode() ? "bg-gradient-to-r from-blue-500 to-purple-500" : "bg-gradient-to-r from-blue-400 to-purple-400");
|
|
93960
94039
|
i0.ɵɵadvance(2);
|
|
93961
|
-
i0.ɵɵproperty("title", ((tmp_5_0 = ctx.profileAnalysis()) == null ? null : tmp_5_0.profileAnalysisStructured == null ? null : tmp_5_0.profileAnalysisStructured.businessName) || "Profile Analysis")("subtitle", ctx.getAnalysisSubtitle())("currentSection", ctx.getAnalysisSubtitle())("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("createdDate", (tmp_12_0 = ctx.profileAnalysis()) == null ? null : tmp_12_0.selfContentCompletedDate);
|
|
94040
|
+
i0.ɵɵproperty("title", ((tmp_5_0 = ctx.profileAnalysis()) == null ? null : tmp_5_0.profileAnalysisStructured == null ? null : tmp_5_0.profileAnalysisStructured.businessName) || "Profile Analysis")("subtitle", ctx.getAnalysisSubtitle())("currentSection", ctx.getAnalysisSubtitle())("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("createdDate", (tmp_12_0 = ctx.profileAnalysis()) == null ? null : tmp_12_0.selfContentCompletedDate)("showControls", ctx.shouldShowHeaderControls());
|
|
93962
94041
|
i0.ɵɵadvance();
|
|
93963
94042
|
i0.ɵɵconditional(ctx.isSimplifiedView() && !ctx.isOnboarded() ? 6 : -1);
|
|
93964
94043
|
i0.ɵɵadvance();
|
|
@@ -93980,21 +94059,21 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
93980
94059
|
i0.ɵɵadvance();
|
|
93981
94060
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allMetrics", ctx.allMetrics())("allInsights", ctx.allInsights())("allBusinessInsights", ctx.allBusinessInsights())("allCharts", ctx.allCharts());
|
|
93982
94061
|
i0.ɵɵadvance();
|
|
93983
|
-
i0.ɵɵconditional((
|
|
94062
|
+
i0.ɵɵconditional((tmp_31_0 = ctx.modalType() === "goal-detail" && ctx.getGoalDetailData()) ? 16 : -1, tmp_31_0);
|
|
93984
94063
|
i0.ɵɵadvance();
|
|
93985
|
-
i0.ɵɵconditional((
|
|
94064
|
+
i0.ɵɵconditional((tmp_32_0 = ctx.modalType() === "goal-objectives" && ctx.getGoalDetailData()) ? 17 : -1, tmp_32_0);
|
|
93986
94065
|
i0.ɵɵadvance();
|
|
93987
|
-
i0.ɵɵconditional((
|
|
94066
|
+
i0.ɵɵconditional((tmp_33_0 = ctx.modalType() === "objective-strategies" && ctx.getObjectiveStrategiesData()) ? 18 : -1, tmp_33_0);
|
|
93988
94067
|
i0.ɵɵadvance();
|
|
93989
|
-
i0.ɵɵconditional((
|
|
94068
|
+
i0.ɵɵconditional((tmp_34_0 = ctx.modalType() === "strategy-recommendations" && ctx.getStrategyRecommendationsData()) ? 19 : -1, tmp_34_0);
|
|
93990
94069
|
i0.ɵɵadvance();
|
|
93991
|
-
i0.ɵɵconditional((
|
|
94070
|
+
i0.ɵɵconditional((tmp_35_0 = ctx.modalType() === "category-detail" && ctx.getCategoryDetailData()) ? 20 : -1, tmp_35_0);
|
|
93992
94071
|
i0.ɵɵadvance();
|
|
93993
|
-
i0.ɵɵconditional((
|
|
94072
|
+
i0.ɵɵconditional((tmp_36_0 = ctx.modalType() === "strength-detail" && ctx.getStrengthDetailData()) ? 21 : -1, tmp_36_0);
|
|
93994
94073
|
i0.ɵɵadvance();
|
|
93995
|
-
i0.ɵɵconditional((
|
|
94074
|
+
i0.ɵɵconditional((tmp_37_0 = ctx.modalType() === "gap-detail" && ctx.getGapDetailData()) ? 22 : -1, tmp_37_0);
|
|
93996
94075
|
i0.ɵɵadvance();
|
|
93997
|
-
i0.ɵɵconditional((
|
|
94076
|
+
i0.ɵɵconditional((tmp_38_0 = ctx.modalType() === "opportunity-detail" && ctx.getOpportunityDetailData()) ? 23 : -1, tmp_38_0);
|
|
93998
94077
|
i0.ɵɵadvance();
|
|
93999
94078
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("viewMode", ctx.viewMode())("allMetrics", ctx.allMetrics())("allInsights", ctx.allInsights())("allCharts", ctx.allCharts());
|
|
94000
94079
|
i0.ɵɵadvance();
|
|
@@ -94014,660 +94093,661 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
94014
94093
|
standalone: true,
|
|
94015
94094
|
imports: [CommonModule, DashboardHeaderComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, FloatingTocComponent, SectionNavigationComponent, GradeBadgeComponent, ShopWelcomeBannerComponent, FocusAreaWelcomeBannerComponent, MetricWelcomeBannerComponent, FocusAreaExecutiveSummaryComponent, MetricExecutiveSummaryComponent, NapkinVisualPlaceholderComponent, TooltipContainerComponent, ProfileSectionContentComponent, ProfileAnalysisModalComponent, ModalComponent, GoalCardComponent, GoalObjectivesModalContentComponent, ObjectiveStrategiesModalContentComponent, StrategyRecommendationsModalContentComponent, CategoryDetailModalContentComponent, StrengthDetailModalContentComponent, GapDetailModalContentComponent, OpportunityDetailModalContentComponent, BusinessAnalysisModalComponent, SectionDividerComponent, SymphiqIconComponent, RelatedGoalChipsComponent, StrategicGoalsTiledGridComponent, CollapsibleAnalysisSectionGroupComponent, BillingCurrencySelectorCardComponent, PlanSelectionPlaceholderCardComponent, PlanSelectionContainerComponent, SubscriptionValuePropositionCardComponent, StickySubscriptionContinueButtonComponent, ContentGenerationProgressComponent, ShopProfileStatusCardComponent, ShopProfileStickyFooterComponent],
|
|
94016
94095
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
94017
|
-
template: `
|
|
94018
|
-
<div [ngClass]="getContainerClasses()" class="min-h-screen relative">
|
|
94019
|
-
<div class="animated-bubbles" [class.light-mode]="isLightMode()"
|
|
94020
|
-
style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
|
|
94021
|
-
|
|
94022
|
-
<!-- Scroll Progress Bar -->
|
|
94023
|
-
<div
|
|
94024
|
-
[class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
|
|
94025
|
-
<div
|
|
94026
|
-
[style.width.%]="scrollProgress()"
|
|
94027
|
-
[ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
|
|
94028
|
-
class="h-full transition-all duration-200 ease-out">
|
|
94029
|
-
</div>
|
|
94030
|
-
</div>
|
|
94031
|
-
|
|
94032
|
-
<div class="relative z-[51]">
|
|
94033
|
-
<!-- Dashboard Header -->
|
|
94034
|
-
<symphiq-dashboard-header
|
|
94035
|
-
[title]="profileAnalysis()?.profileAnalysisStructured?.businessName || 'Profile Analysis'"
|
|
94036
|
-
[subtitle]="getAnalysisSubtitle()"
|
|
94037
|
-
[currentSection]="getAnalysisSubtitle()"
|
|
94038
|
-
[viewMode]="viewMode()"
|
|
94039
|
-
[viewModeLabel]="displayModeLabel()"
|
|
94040
|
-
[isLoading]="isLoading()"
|
|
94041
|
-
[requestedByUser]="requestedByUser()"
|
|
94042
|
-
[createdDate]="profileAnalysis()?.selfContentCompletedDate"
|
|
94043
|
-
|
|
94044
|
-
(
|
|
94045
|
-
|
|
94046
|
-
|
|
94047
|
-
|
|
94048
|
-
|
|
94049
|
-
|
|
94050
|
-
|
|
94051
|
-
[
|
|
94052
|
-
[
|
|
94053
|
-
[
|
|
94054
|
-
[
|
|
94055
|
-
|
|
94056
|
-
(
|
|
94057
|
-
|
|
94058
|
-
|
|
94059
|
-
|
|
94060
|
-
|
|
94061
|
-
|
|
94062
|
-
|
|
94063
|
-
|
|
94064
|
-
|
|
94065
|
-
|
|
94066
|
-
|
|
94067
|
-
|
|
94068
|
-
|
|
94069
|
-
|
|
94070
|
-
[
|
|
94071
|
-
[
|
|
94072
|
-
|
|
94073
|
-
|
|
94074
|
-
|
|
94075
|
-
|
|
94076
|
-
|
|
94077
|
-
[
|
|
94078
|
-
[
|
|
94079
|
-
[
|
|
94080
|
-
|
|
94081
|
-
|
|
94082
|
-
|
|
94083
|
-
|
|
94084
|
-
|
|
94085
|
-
[
|
|
94086
|
-
[
|
|
94087
|
-
|
|
94088
|
-
|
|
94089
|
-
|
|
94090
|
-
|
|
94091
|
-
|
|
94092
|
-
|
|
94093
|
-
|
|
94094
|
-
|
|
94095
|
-
|
|
94096
|
-
|
|
94097
|
-
|
|
94098
|
-
|
|
94099
|
-
|
|
94100
|
-
[
|
|
94101
|
-
[
|
|
94102
|
-
[
|
|
94103
|
-
[
|
|
94104
|
-
[
|
|
94105
|
-
[
|
|
94106
|
-
[
|
|
94107
|
-
|
|
94108
|
-
(
|
|
94109
|
-
(
|
|
94110
|
-
|
|
94111
|
-
|
|
94112
|
-
|
|
94113
|
-
|
|
94114
|
-
|
|
94115
|
-
|
|
94116
|
-
|
|
94117
|
-
|
|
94118
|
-
|
|
94119
|
-
|
|
94120
|
-
|
|
94121
|
-
|
|
94122
|
-
[
|
|
94123
|
-
|
|
94124
|
-
|
|
94125
|
-
|
|
94126
|
-
|
|
94127
|
-
|
|
94128
|
-
|
|
94129
|
-
|
|
94130
|
-
[
|
|
94131
|
-
|
|
94132
|
-
|
|
94133
|
-
|
|
94134
|
-
|
|
94135
|
-
|
|
94136
|
-
|
|
94137
|
-
|
|
94138
|
-
|
|
94139
|
-
|
|
94140
|
-
|
|
94141
|
-
|
|
94142
|
-
|
|
94143
|
-
|
|
94144
|
-
|
|
94145
|
-
|
|
94146
|
-
|
|
94147
|
-
|
|
94148
|
-
[
|
|
94149
|
-
[
|
|
94150
|
-
|
|
94151
|
-
|
|
94152
|
-
|
|
94153
|
-
|
|
94154
|
-
|
|
94155
|
-
|
|
94156
|
-
|
|
94157
|
-
|
|
94158
|
-
[
|
|
94159
|
-
[
|
|
94160
|
-
[
|
|
94161
|
-
[
|
|
94162
|
-
|
|
94163
|
-
(
|
|
94164
|
-
(
|
|
94165
|
-
(
|
|
94166
|
-
|
|
94167
|
-
|
|
94168
|
-
|
|
94169
|
-
|
|
94170
|
-
|
|
94171
|
-
[
|
|
94172
|
-
|
|
94173
|
-
|
|
94174
|
-
|
|
94175
|
-
|
|
94176
|
-
|
|
94177
|
-
|
|
94178
|
-
|
|
94179
|
-
|
|
94180
|
-
|
|
94181
|
-
|
|
94182
|
-
|
|
94183
|
-
|
|
94184
|
-
[
|
|
94185
|
-
[
|
|
94186
|
-
[
|
|
94187
|
-
[
|
|
94188
|
-
[
|
|
94189
|
-
[
|
|
94190
|
-
[
|
|
94191
|
-
[
|
|
94192
|
-
[
|
|
94193
|
-
[
|
|
94194
|
-
|
|
94195
|
-
|
|
94196
|
-
|
|
94197
|
-
|
|
94198
|
-
|
|
94199
|
-
|
|
94200
|
-
|
|
94201
|
-
|
|
94202
|
-
|
|
94203
|
-
|
|
94204
|
-
|
|
94205
|
-
|
|
94206
|
-
|
|
94207
|
-
|
|
94208
|
-
|
|
94209
|
-
|
|
94210
|
-
|
|
94211
|
-
|
|
94212
|
-
|
|
94213
|
-
|
|
94214
|
-
|
|
94215
|
-
|
|
94216
|
-
|
|
94217
|
-
|
|
94218
|
-
|
|
94219
|
-
[
|
|
94220
|
-
[
|
|
94221
|
-
|
|
94222
|
-
|
|
94223
|
-
|
|
94224
|
-
|
|
94225
|
-
|
|
94226
|
-
|
|
94227
|
-
|
|
94228
|
-
|
|
94229
|
-
|
|
94230
|
-
|
|
94231
|
-
|
|
94232
|
-
|
|
94233
|
-
|
|
94234
|
-
|
|
94235
|
-
[
|
|
94236
|
-
|
|
94237
|
-
|
|
94238
|
-
|
|
94239
|
-
|
|
94240
|
-
|
|
94241
|
-
|
|
94242
|
-
|
|
94243
|
-
|
|
94244
|
-
|
|
94245
|
-
|
|
94246
|
-
|
|
94247
|
-
|
|
94248
|
-
|
|
94249
|
-
|
|
94250
|
-
|
|
94251
|
-
|
|
94252
|
-
|
|
94253
|
-
|
|
94254
|
-
|
|
94255
|
-
|
|
94256
|
-
|
|
94257
|
-
|
|
94258
|
-
|
|
94259
|
-
|
|
94260
|
-
|
|
94261
|
-
|
|
94262
|
-
<
|
|
94263
|
-
|
|
94264
|
-
|
|
94265
|
-
|
|
94266
|
-
|
|
94267
|
-
|
|
94268
|
-
|
|
94269
|
-
|
|
94270
|
-
|
|
94271
|
-
|
|
94272
|
-
|
|
94273
|
-
|
|
94274
|
-
|
|
94275
|
-
|
|
94276
|
-
|
|
94277
|
-
|
|
94278
|
-
|
|
94279
|
-
|
|
94280
|
-
|
|
94281
|
-
|
|
94282
|
-
|
|
94283
|
-
<
|
|
94284
|
-
|
|
94285
|
-
|
|
94286
|
-
|
|
94287
|
-
|
|
94288
|
-
|
|
94289
|
-
|
|
94290
|
-
|
|
94291
|
-
|
|
94292
|
-
|
|
94293
|
-
|
|
94294
|
-
|
|
94295
|
-
|
|
94296
|
-
|
|
94297
|
-
|
|
94298
|
-
|
|
94299
|
-
|
|
94300
|
-
|
|
94301
|
-
|
|
94302
|
-
|
|
94303
|
-
|
|
94304
|
-
<
|
|
94305
|
-
|
|
94306
|
-
|
|
94307
|
-
|
|
94308
|
-
|
|
94309
|
-
|
|
94310
|
-
|
|
94311
|
-
|
|
94312
|
-
|
|
94313
|
-
|
|
94314
|
-
|
|
94315
|
-
|
|
94316
|
-
|
|
94317
|
-
|
|
94318
|
-
|
|
94319
|
-
|
|
94320
|
-
|
|
94321
|
-
|
|
94322
|
-
|
|
94323
|
-
|
|
94324
|
-
|
|
94325
|
-
|
|
94326
|
-
|
|
94327
|
-
|
|
94328
|
-
|
|
94329
|
-
|
|
94330
|
-
|
|
94331
|
-
|
|
94332
|
-
|
|
94333
|
-
|
|
94334
|
-
|
|
94335
|
-
|
|
94336
|
-
|
|
94337
|
-
|
|
94338
|
-
|
|
94339
|
-
|
|
94340
|
-
|
|
94341
|
-
|
|
94342
|
-
|
|
94343
|
-
|
|
94344
|
-
|
|
94345
|
-
|
|
94346
|
-
|
|
94347
|
-
|
|
94348
|
-
|
|
94349
|
-
|
|
94350
|
-
|
|
94351
|
-
|
|
94352
|
-
|
|
94353
|
-
|
|
94354
|
-
|
|
94355
|
-
|
|
94356
|
-
|
|
94357
|
-
|
|
94358
|
-
|
|
94359
|
-
|
|
94360
|
-
|
|
94361
|
-
|
|
94362
|
-
|
|
94363
|
-
|
|
94364
|
-
|
|
94365
|
-
|
|
94366
|
-
[
|
|
94367
|
-
[
|
|
94368
|
-
|
|
94369
|
-
|
|
94370
|
-
|
|
94371
|
-
|
|
94372
|
-
|
|
94373
|
-
|
|
94374
|
-
|
|
94375
|
-
|
|
94376
|
-
|
|
94377
|
-
|
|
94378
|
-
|
|
94379
|
-
|
|
94380
|
-
|
|
94381
|
-
|
|
94382
|
-
|
|
94383
|
-
|
|
94384
|
-
[
|
|
94385
|
-
[
|
|
94386
|
-
|
|
94387
|
-
(
|
|
94388
|
-
|
|
94389
|
-
|
|
94390
|
-
|
|
94391
|
-
|
|
94392
|
-
|
|
94393
|
-
|
|
94394
|
-
|
|
94395
|
-
[
|
|
94396
|
-
[
|
|
94397
|
-
[
|
|
94398
|
-
|
|
94399
|
-
(
|
|
94400
|
-
|
|
94401
|
-
|
|
94402
|
-
|
|
94403
|
-
|
|
94404
|
-
|
|
94405
|
-
|
|
94406
|
-
|
|
94407
|
-
|
|
94408
|
-
[
|
|
94409
|
-
|
|
94410
|
-
|
|
94411
|
-
|
|
94412
|
-
|
|
94413
|
-
|
|
94414
|
-
|
|
94415
|
-
|
|
94416
|
-
|
|
94417
|
-
|
|
94418
|
-
|
|
94419
|
-
|
|
94420
|
-
|
|
94421
|
-
|
|
94422
|
-
|
|
94423
|
-
|
|
94424
|
-
|
|
94425
|
-
|
|
94426
|
-
|
|
94427
|
-
|
|
94428
|
-
|
|
94429
|
-
|
|
94430
|
-
|
|
94431
|
-
|
|
94432
|
-
|
|
94433
|
-
|
|
94434
|
-
|
|
94435
|
-
|
|
94436
|
-
|
|
94437
|
-
|
|
94438
|
-
|
|
94439
|
-
|
|
94440
|
-
|
|
94441
|
-
|
|
94442
|
-
[
|
|
94443
|
-
|
|
94444
|
-
|
|
94445
|
-
|
|
94446
|
-
|
|
94447
|
-
|
|
94448
|
-
|
|
94449
|
-
|
|
94450
|
-
|
|
94451
|
-
|
|
94452
|
-
|
|
94453
|
-
</
|
|
94454
|
-
|
|
94455
|
-
|
|
94456
|
-
|
|
94457
|
-
|
|
94458
|
-
|
|
94459
|
-
|
|
94460
|
-
|
|
94461
|
-
[
|
|
94462
|
-
[
|
|
94463
|
-
[
|
|
94464
|
-
[
|
|
94465
|
-
[
|
|
94466
|
-
[
|
|
94467
|
-
[
|
|
94468
|
-
[
|
|
94469
|
-
|
|
94470
|
-
|
|
94471
|
-
|
|
94472
|
-
|
|
94473
|
-
|
|
94474
|
-
|
|
94475
|
-
|
|
94476
|
-
[
|
|
94477
|
-
|
|
94478
|
-
|
|
94479
|
-
|
|
94480
|
-
|
|
94481
|
-
|
|
94482
|
-
|
|
94483
|
-
|
|
94484
|
-
|
|
94485
|
-
|
|
94486
|
-
|
|
94487
|
-
|
|
94488
|
-
|
|
94489
|
-
|
|
94490
|
-
[
|
|
94491
|
-
[
|
|
94492
|
-
[
|
|
94493
|
-
|
|
94494
|
-
|
|
94495
|
-
|
|
94496
|
-
|
|
94497
|
-
|
|
94498
|
-
|
|
94499
|
-
|
|
94500
|
-
[
|
|
94501
|
-
[
|
|
94502
|
-
[
|
|
94503
|
-
|
|
94504
|
-
|
|
94505
|
-
|
|
94506
|
-
|
|
94507
|
-
|
|
94508
|
-
|
|
94509
|
-
[
|
|
94510
|
-
|
|
94511
|
-
|
|
94512
|
-
|
|
94513
|
-
|
|
94514
|
-
|
|
94515
|
-
|
|
94516
|
-
[
|
|
94517
|
-
[
|
|
94518
|
-
|
|
94519
|
-
(
|
|
94520
|
-
|
|
94521
|
-
|
|
94522
|
-
|
|
94523
|
-
|
|
94524
|
-
|
|
94525
|
-
[
|
|
94526
|
-
[
|
|
94527
|
-
[
|
|
94528
|
-
[
|
|
94529
|
-
|
|
94530
|
-
|
|
94531
|
-
|
|
94532
|
-
|
|
94533
|
-
[
|
|
94534
|
-
[
|
|
94535
|
-
[
|
|
94536
|
-
[
|
|
94537
|
-
[
|
|
94538
|
-
[
|
|
94539
|
-
[
|
|
94540
|
-
|
|
94541
|
-
|
|
94542
|
-
|
|
94543
|
-
|
|
94544
|
-
|
|
94545
|
-
[
|
|
94546
|
-
|
|
94547
|
-
|
|
94548
|
-
|
|
94549
|
-
|
|
94550
|
-
|
|
94551
|
-
[
|
|
94552
|
-
[
|
|
94553
|
-
|
|
94554
|
-
|
|
94555
|
-
|
|
94556
|
-
|
|
94557
|
-
|
|
94558
|
-
[
|
|
94559
|
-
[
|
|
94560
|
-
[
|
|
94561
|
-
[
|
|
94562
|
-
[
|
|
94563
|
-
[
|
|
94564
|
-
[
|
|
94565
|
-
[
|
|
94566
|
-
|
|
94567
|
-
|
|
94568
|
-
|
|
94569
|
-
|
|
94570
|
-
|
|
94571
|
-
[
|
|
94572
|
-
[
|
|
94573
|
-
|
|
94574
|
-
|
|
94575
|
-
|
|
94576
|
-
|
|
94577
|
-
|
|
94578
|
-
[
|
|
94579
|
-
[
|
|
94580
|
-
[
|
|
94581
|
-
|
|
94582
|
-
|
|
94583
|
-
|
|
94584
|
-
|
|
94585
|
-
|
|
94586
|
-
[
|
|
94587
|
-
[
|
|
94588
|
-
[
|
|
94589
|
-
[
|
|
94590
|
-
|
|
94591
|
-
|
|
94592
|
-
|
|
94593
|
-
|
|
94594
|
-
|
|
94595
|
-
[
|
|
94596
|
-
[
|
|
94597
|
-
[
|
|
94598
|
-
|
|
94599
|
-
|
|
94600
|
-
|
|
94601
|
-
|
|
94602
|
-
|
|
94603
|
-
|
|
94604
|
-
|
|
94605
|
-
[
|
|
94606
|
-
[
|
|
94607
|
-
[
|
|
94608
|
-
[
|
|
94609
|
-
|
|
94610
|
-
|
|
94611
|
-
|
|
94612
|
-
|
|
94613
|
-
|
|
94614
|
-
|
|
94615
|
-
|
|
94616
|
-
|
|
94617
|
-
|
|
94618
|
-
|
|
94619
|
-
|
|
94620
|
-
|
|
94621
|
-
[
|
|
94622
|
-
[
|
|
94623
|
-
|
|
94624
|
-
|
|
94625
|
-
|
|
94626
|
-
|
|
94627
|
-
|
|
94628
|
-
|
|
94629
|
-
|
|
94630
|
-
|
|
94631
|
-
[
|
|
94632
|
-
[
|
|
94633
|
-
|
|
94634
|
-
|
|
94635
|
-
|
|
94636
|
-
|
|
94637
|
-
|
|
94638
|
-
|
|
94639
|
-
|
|
94640
|
-
|
|
94641
|
-
|
|
94642
|
-
|
|
94643
|
-
|
|
94644
|
-
|
|
94645
|
-
|
|
94646
|
-
|
|
94647
|
-
|
|
94648
|
-
|
|
94649
|
-
|
|
94650
|
-
|
|
94651
|
-
|
|
94652
|
-
|
|
94653
|
-
|
|
94654
|
-
|
|
94655
|
-
[
|
|
94656
|
-
|
|
94657
|
-
|
|
94658
|
-
|
|
94659
|
-
<
|
|
94660
|
-
|
|
94661
|
-
|
|
94662
|
-
|
|
94663
|
-
|
|
94664
|
-
|
|
94665
|
-
|
|
94666
|
-
|
|
94667
|
-
|
|
94668
|
-
|
|
94669
|
-
|
|
94670
|
-
|
|
94096
|
+
template: `
|
|
94097
|
+
<div [ngClass]="getContainerClasses()" class="min-h-screen relative">
|
|
94098
|
+
<div class="animated-bubbles" [class.light-mode]="isLightMode()"
|
|
94099
|
+
style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
|
|
94100
|
+
|
|
94101
|
+
<!-- Scroll Progress Bar -->
|
|
94102
|
+
<div
|
|
94103
|
+
[class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
|
|
94104
|
+
<div
|
|
94105
|
+
[style.width.%]="scrollProgress()"
|
|
94106
|
+
[ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
|
|
94107
|
+
class="h-full transition-all duration-200 ease-out">
|
|
94108
|
+
</div>
|
|
94109
|
+
</div>
|
|
94110
|
+
|
|
94111
|
+
<div class="relative z-[51]">
|
|
94112
|
+
<!-- Dashboard Header -->
|
|
94113
|
+
<symphiq-dashboard-header
|
|
94114
|
+
[title]="profileAnalysis()?.profileAnalysisStructured?.businessName || 'Profile Analysis'"
|
|
94115
|
+
[subtitle]="getAnalysisSubtitle()"
|
|
94116
|
+
[currentSection]="getAnalysisSubtitle()"
|
|
94117
|
+
[viewMode]="viewMode()"
|
|
94118
|
+
[viewModeLabel]="displayModeLabel()"
|
|
94119
|
+
[isLoading]="isLoading()"
|
|
94120
|
+
[requestedByUser]="requestedByUser()"
|
|
94121
|
+
[createdDate]="profileAnalysis()?.selfContentCompletedDate"
|
|
94122
|
+
[showControls]="shouldShowHeaderControls()"
|
|
94123
|
+
(searchClick)="openSearch()"
|
|
94124
|
+
(viewModeClick)="openViewModeSwitcher()"
|
|
94125
|
+
/>
|
|
94126
|
+
|
|
94127
|
+
<!-- Journey Progress Banner -->
|
|
94128
|
+
@if (isSimplifiedView() && !isOnboarded()) {
|
|
94129
|
+
<symphiq-journey-progress-indicator
|
|
94130
|
+
[viewMode]="viewMode()"
|
|
94131
|
+
[currentStepId]="currentStepId()"
|
|
94132
|
+
[showNextStepAction]="shouldShowContinueButton()"
|
|
94133
|
+
[forDemo]="forDemo()"
|
|
94134
|
+
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
94135
|
+
(nextStepClick)="nextStepClick.emit()"
|
|
94136
|
+
(stepClick)="stepClick.emit($event)"
|
|
94137
|
+
/>
|
|
94138
|
+
}
|
|
94139
|
+
|
|
94140
|
+
<!-- Main Content -->
|
|
94141
|
+
<main class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12 space-y-12"
|
|
94142
|
+
[class.pb-32]="shouldShowStickyButton() || shouldShowShopProfileStickyFooter()">
|
|
94143
|
+
|
|
94144
|
+
<!-- Welcome Banner (Simplified View Only) -->
|
|
94145
|
+
@if (isSimplifiedView()) {
|
|
94146
|
+
<div class="mb-12">
|
|
94147
|
+
@if (!isFocusAreaAnalysis() && !isMetricAnalysis()) {
|
|
94148
|
+
<symphiq-shop-welcome-banner
|
|
94149
|
+
[viewMode]="viewMode()"
|
|
94150
|
+
[businessName]="profileAnalysis()?.profileAnalysisStructured?.businessName || 'your shop'"
|
|
94151
|
+
[isOnboarded]="isOnboarded()"
|
|
94152
|
+
/>
|
|
94153
|
+
}
|
|
94154
|
+
@if (isFocusAreaAnalysis()) {
|
|
94155
|
+
<symphiq-focus-area-welcome-banner
|
|
94156
|
+
[viewMode]="viewMode()"
|
|
94157
|
+
[focusAreaDomain]="focusAreaDomain()"
|
|
94158
|
+
[focusAreaName]="focusAreaName()"
|
|
94159
|
+
[focusAreaDetails]="focusAreaDetails()"
|
|
94160
|
+
/>
|
|
94161
|
+
}
|
|
94162
|
+
@if (isMetricAnalysis()) {
|
|
94163
|
+
<symphiq-metric-welcome-banner
|
|
94164
|
+
[viewMode]="viewMode()"
|
|
94165
|
+
[metricName]="profileAnalysis()?.profileAnalysisStructured?.metricExecutiveSummary?.metric"
|
|
94166
|
+
[isOnboarded]="isOnboarded()"
|
|
94167
|
+
/>
|
|
94168
|
+
}
|
|
94169
|
+
</div>
|
|
94170
|
+
}
|
|
94171
|
+
|
|
94172
|
+
<!-- Simplified View Content -->
|
|
94173
|
+
@if (isSimplifiedView()) {
|
|
94174
|
+
<!-- Shop Profile Status Card -->
|
|
94175
|
+
@if (shouldShowShopProfileStatus() && !isFocusAreaAnalysis() && !isMetricAnalysis()) {
|
|
94176
|
+
<div class="mb-8">
|
|
94177
|
+
<symphiq-shop-profile-status-card
|
|
94178
|
+
#shopProfileStatusCard
|
|
94179
|
+
[viewMode]="viewMode()"
|
|
94180
|
+
[totalQuestions]="totalShopQuestions()"
|
|
94181
|
+
[answeredQuestions]="answeredShopQuestions()"
|
|
94182
|
+
[questions]="profileShopQuestions() || []"
|
|
94183
|
+
[profileAnswers]="profileAnswers() || []"
|
|
94184
|
+
[profileAnswerHistories]="profileAnswerHistories() || []"
|
|
94185
|
+
[users]="users() || []"
|
|
94186
|
+
[currentUser]="currentUser()"
|
|
94187
|
+
(startCategoryQuestions)="handleStartCategoryQuestions($event)"
|
|
94188
|
+
(answerSave)="handleProfileQuestionAnswerSave($event)"
|
|
94189
|
+
(adminAnswerAction)="shopProfileAdminAnswerAction.emit($event)"
|
|
94190
|
+
/>
|
|
94191
|
+
</div>
|
|
94192
|
+
}
|
|
94193
|
+
|
|
94194
|
+
<!-- Strategic Insights & Goals (or Subscription Flow) -->
|
|
94195
|
+
@if (profileAnalysis()) {
|
|
94196
|
+
<div class="mb-8">
|
|
94197
|
+
@if (isSubscriptionActive() || isFocusAreaAnalysis() || isMetricAnalysis()) {
|
|
94198
|
+
@if (isProfileShopGenerating() && !isFocusAreaAnalysis() && !isMetricAnalysis()) {
|
|
94199
|
+
<div [ngClass]="getProgressCardClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
|
|
94200
|
+
<symphiq-content-generation-progress
|
|
94201
|
+
[itemStatus]="itemStatusProfileShop()"
|
|
94202
|
+
[viewMode]="viewMode()"
|
|
94203
|
+
title="Generating Your Shop Profile"
|
|
94204
|
+
subtitle="We're analyzing your data to create shop specific questions and answers. They will appear when ready."
|
|
94205
|
+
/>
|
|
94206
|
+
</div>
|
|
94207
|
+
} @else {
|
|
94208
|
+
<symphiq-strategic-goals-tiled-grid
|
|
94209
|
+
[goals]="strategicRoadmapGoals()"
|
|
94210
|
+
[viewMode]="viewMode()"
|
|
94211
|
+
(viewMoreClick)="openGoalModal($event)"
|
|
94212
|
+
/>
|
|
94213
|
+
}
|
|
94214
|
+
} @else {
|
|
94215
|
+
<!-- Subscription Value Proposition -->
|
|
94216
|
+
@if (!hasBillingCurrency() || isEditingCurrency()) {
|
|
94217
|
+
@if (!hasBillingCurrency()) {
|
|
94218
|
+
<div class="mb-8">
|
|
94219
|
+
<symphiq-subscription-value-proposition-card
|
|
94220
|
+
[viewMode]="viewMode()"
|
|
94221
|
+
/>
|
|
94222
|
+
</div>
|
|
94223
|
+
}
|
|
94224
|
+
|
|
94225
|
+
<!-- Currency Selection -->
|
|
94226
|
+
<symphiq-billing-currency-selector-card
|
|
94227
|
+
[viewMode]="viewMode()"
|
|
94228
|
+
[isLoading]="isCurrencySelectionLoading()"
|
|
94229
|
+
[initialCurrency]="isEditingCurrency() ? (account()?.billingCurrencyCode || null) : null"
|
|
94230
|
+
(currencySelected)="handleCurrencyChange($event)"
|
|
94231
|
+
/>
|
|
94232
|
+
} @else if (showPlanSelection()) {
|
|
94233
|
+
<!-- Plan Selection -->
|
|
94234
|
+
|
|
94235
|
+
<div class="mb-32">
|
|
94236
|
+
<symphiq-plan-selection-container
|
|
94237
|
+
[viewMode]="viewMode()"
|
|
94238
|
+
[selectedCurrency]="account()?.billingCurrencyCode || CurrencyCodeEnum.USD"
|
|
94239
|
+
[planCardInfos]="planCardInfos()"
|
|
94240
|
+
[isLoading]="isPlanLoading()"
|
|
94241
|
+
[selectedPeriodUnit]="selectedPeriodUnit()"
|
|
94242
|
+
(periodUnitChanged)="handlePeriodUnitChange($event)"
|
|
94243
|
+
(planSelected)="handlePlanSelection($event)"
|
|
94244
|
+
(editCurrency)="handleEditCurrencyClick()"
|
|
94245
|
+
(checkout)="checkoutPlanClick.emit($event)"
|
|
94246
|
+
/>
|
|
94247
|
+
</div>
|
|
94248
|
+
} @else {
|
|
94249
|
+
<symphiq-plan-selection-placeholder-card
|
|
94250
|
+
[viewMode]="viewMode()"
|
|
94251
|
+
[selectedCurrency]="account()?.billingCurrencyCode || CurrencyCodeEnum.USD"
|
|
94252
|
+
(editCurrency)="handleEditCurrencyClick()"
|
|
94253
|
+
/>
|
|
94254
|
+
}
|
|
94255
|
+
}
|
|
94256
|
+
</div>
|
|
94257
|
+
}
|
|
94258
|
+
|
|
94259
|
+
<!-- Supporting Business Context -->
|
|
94260
|
+
@if (nonStrategicSections().length > 0) {
|
|
94261
|
+
<div>
|
|
94262
|
+
<symphiq-collapsible-analysis-section-group
|
|
94263
|
+
[sections]="nonStrategicSections()"
|
|
94264
|
+
[viewMode]="viewMode()"
|
|
94265
|
+
[executiveSummary]="executiveSummary()"
|
|
94266
|
+
[focusAreaExecutiveSummary]="focusAreaExecutiveSummary()"
|
|
94267
|
+
[metricExecutiveSummary]="metricExecutiveSummary()"
|
|
94268
|
+
[metricName]="metricName()"
|
|
94269
|
+
[allGoals]="allGoals()"
|
|
94270
|
+
[allMetrics]="allMetrics()"
|
|
94271
|
+
[allCharts]="allCharts()"
|
|
94272
|
+
[allInsights]="allInsights()"
|
|
94273
|
+
[businessProfile]="profile()"
|
|
94274
|
+
/>
|
|
94275
|
+
</div>
|
|
94276
|
+
}
|
|
94277
|
+
}
|
|
94278
|
+
|
|
94279
|
+
<!-- Compact & Expanded View Content -->
|
|
94280
|
+
@if (!isSimplifiedView()) {
|
|
94281
|
+
<!-- SHOP Executive Summary -->
|
|
94282
|
+
@if (!isFocusAreaAnalysis() && executiveSummary(); as summary) {
|
|
94283
|
+
<section id="section-executive-summary" class="space-y-6 scroll-mt-24">
|
|
94284
|
+
<!-- Summary Banner -->
|
|
94285
|
+
<div [ngClass]="getBannerClasses()" class="rounded-2xl p-8 shadow-xl">
|
|
94286
|
+
<div class="space-y-6">
|
|
94287
|
+
<div class="flex items-start justify-between gap-4">
|
|
94288
|
+
<div class="flex-1">
|
|
94289
|
+
<h2 [ngClass]="getSectionTitleClasses()" class="text-2xl font-bold mb-3">
|
|
94290
|
+
Executive Summary
|
|
94291
|
+
</h2>
|
|
94292
|
+
<p [ngClass]="getTextClasses()" class="text-lg leading-relaxed">
|
|
94293
|
+
{{ summary.gradeRationale }}
|
|
94294
|
+
</p>
|
|
94295
|
+
</div>
|
|
94296
|
+
@if (summary.overallGrade) {
|
|
94297
|
+
<symphiq-grade-badge
|
|
94298
|
+
[grade]="summary.overallGrade"
|
|
94299
|
+
[gradeRationale]="summary.gradeRationale || ''"
|
|
94300
|
+
[viewMode]="viewMode()"
|
|
94301
|
+
/>
|
|
94302
|
+
}
|
|
94303
|
+
</div>
|
|
94304
|
+
|
|
94305
|
+
@if (summary.narrative) {
|
|
94306
|
+
<div [ngClass]="getNarrativeClasses()" class="rounded-xl p-6">
|
|
94307
|
+
<h3 [ngClass]="getSubheadingClasses()" class="text-lg font-semibold mb-3">
|
|
94308
|
+
Analysis Narrative
|
|
94309
|
+
</h3>
|
|
94310
|
+
<div class="relative">
|
|
94311
|
+
@if (summary.napkinVisual && summary.napkinVisual.enabled) {
|
|
94312
|
+
<div class="mb-6 lg:float-left lg:mr-6 lg:mb-4 lg:max-w-[66%]">
|
|
94313
|
+
<symphiq-napkin-visual-placeholder
|
|
94314
|
+
[visual]="summary.napkinVisual"
|
|
94315
|
+
[viewMode]="viewMode()"
|
|
94316
|
+
/>
|
|
94317
|
+
</div>
|
|
94318
|
+
}
|
|
94319
|
+
<p [ngClass]="getTextClasses()" class="text-sm leading-relaxed whitespace-pre-line">
|
|
94320
|
+
{{ summary.narrative }}
|
|
94321
|
+
</p>
|
|
94322
|
+
<div class="clear-both"></div>
|
|
94323
|
+
</div>
|
|
94324
|
+
</div>
|
|
94325
|
+
}
|
|
94326
|
+
|
|
94327
|
+
<!-- Stats -->
|
|
94328
|
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
94329
|
+
<button
|
|
94330
|
+
type="button"
|
|
94331
|
+
(click)="onKeyStrengthsClick(summary)"
|
|
94332
|
+
[ngClass]="getKeyStrengthsStatCardClasses()"
|
|
94333
|
+
class="p-4 rounded-xl text-left transition-all duration-200 hover:scale-[1.02] active:scale-[0.98] group cursor-pointer">
|
|
94334
|
+
<div [ngClass]="getKeyStrengthsStatLabelClasses()" class="text-xs font-semibold uppercase mb-1">
|
|
94335
|
+
Key Strengths
|
|
94336
|
+
</div>
|
|
94337
|
+
<div [ngClass]="getKeyStrengthsStatValueClasses()" class="text-3xl font-bold mb-2">
|
|
94338
|
+
{{ summary.keyStrengths?.length || 0 }}
|
|
94339
|
+
</div>
|
|
94340
|
+
<div class="flex items-center gap-1.5 text-xs font-medium">
|
|
94341
|
+
<span [ngClass]="getKeyStrengthsButtonTextClasses()">View Details</span>
|
|
94342
|
+
<symphiq-icon
|
|
94343
|
+
[icon]="{ name: 'chevron-right', source: IconSourceEnum.HEROICONS }"
|
|
94344
|
+
size="w-4 h-4"
|
|
94345
|
+
[ngClass]="getKeyStrengthsButtonTextClasses()"
|
|
94346
|
+
class="transition-transform group-hover:translate-x-1"
|
|
94347
|
+
/>
|
|
94348
|
+
</div>
|
|
94349
|
+
</button>
|
|
94350
|
+
<button
|
|
94351
|
+
type="button"
|
|
94352
|
+
(click)="onCriticalGapsClick(summary)"
|
|
94353
|
+
[ngClass]="getCriticalGapsStatCardClasses()"
|
|
94354
|
+
class="p-4 rounded-xl text-left transition-all duration-200 hover:scale-[1.02] active:scale-[0.98] group cursor-pointer">
|
|
94355
|
+
<div [ngClass]="getCriticalGapsStatLabelClasses()" class="text-xs font-semibold uppercase mb-1">
|
|
94356
|
+
Critical Gaps
|
|
94357
|
+
</div>
|
|
94358
|
+
<div [ngClass]="getCriticalGapsStatValueClasses()" class="text-3xl font-bold mb-2">
|
|
94359
|
+
{{ summary.criticalGaps?.length || 0 }}
|
|
94360
|
+
</div>
|
|
94361
|
+
<div class="flex items-center gap-1.5 text-xs font-medium">
|
|
94362
|
+
<span [ngClass]="getCriticalGapsButtonTextClasses()">View Details</span>
|
|
94363
|
+
<symphiq-icon
|
|
94364
|
+
[icon]="{ name: 'chevron-right', source: IconSourceEnum.HEROICONS }"
|
|
94365
|
+
size="w-4 h-4"
|
|
94366
|
+
[ngClass]="getCriticalGapsButtonTextClasses()"
|
|
94367
|
+
class="transition-transform group-hover:translate-x-1"
|
|
94368
|
+
/>
|
|
94369
|
+
</div>
|
|
94370
|
+
</button>
|
|
94371
|
+
<button
|
|
94372
|
+
type="button"
|
|
94373
|
+
(click)="scrollToQuickWins()"
|
|
94374
|
+
[ngClass]="getQuickWinsStatCardClasses()"
|
|
94375
|
+
class="p-4 rounded-xl text-left transition-all duration-200 hover:scale-[1.02] active:scale-[0.98] group cursor-pointer">
|
|
94376
|
+
<div [ngClass]="getQuickWinsStatLabelClasses()" class="text-xs font-semibold uppercase mb-1">
|
|
94377
|
+
Quick Wins
|
|
94378
|
+
</div>
|
|
94379
|
+
<div [ngClass]="getQuickWinsStatValueClasses()" class="text-3xl font-bold mb-2">
|
|
94380
|
+
{{ summary.quickWins?.length || 0 }}
|
|
94381
|
+
</div>
|
|
94382
|
+
<div class="flex items-center gap-1.5 text-xs font-medium">
|
|
94383
|
+
<span [ngClass]="getQuickWinsButtonTextClasses()">Details Below</span>
|
|
94384
|
+
<symphiq-icon
|
|
94385
|
+
[icon]="{ name: 'chevron-down', source: IconSourceEnum.HEROICONS }"
|
|
94386
|
+
size="w-4 h-4"
|
|
94387
|
+
[ngClass]="getQuickWinsButtonTextClasses()"
|
|
94388
|
+
class="transition-transform group-hover:translate-y-1 animate-bounce"
|
|
94389
|
+
/>
|
|
94390
|
+
</div>
|
|
94391
|
+
</button>
|
|
94392
|
+
</div>
|
|
94393
|
+
</div>
|
|
94394
|
+
</div>
|
|
94395
|
+
|
|
94396
|
+
<!-- Quick Wins -->
|
|
94397
|
+
@if (summary.quickWins && summary.quickWins.length > 0) {
|
|
94398
|
+
<div id="quick-wins-section" class="space-y-4 scroll-mt-24">
|
|
94399
|
+
<h3 [ngClass]="getSectionTitleClasses()" class="text-xl font-bold">
|
|
94400
|
+
Quick Wins
|
|
94401
|
+
</h3>
|
|
94402
|
+
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
|
94403
|
+
@for (win of summary.quickWins; track $index) {
|
|
94404
|
+
<div [ngClass]="getQuickWinCardClasses()"
|
|
94405
|
+
class="rounded-xl p-6 transition-all duration-300">
|
|
94406
|
+
<div class="space-y-4">
|
|
94407
|
+
<div class="flex items-start gap-3">
|
|
94408
|
+
<span [ngClass]="getNumberBadgeClasses()"
|
|
94409
|
+
class="flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center text-sm font-bold">
|
|
94410
|
+
{{ $index + 1 }}
|
|
94411
|
+
</span>
|
|
94412
|
+
<p [ngClass]="getQuickWinTextClasses()" class="font-semibold leading-tight flex-1">
|
|
94413
|
+
{{ win.action }}
|
|
94414
|
+
</p>
|
|
94415
|
+
</div>
|
|
94416
|
+
|
|
94417
|
+
<div class="flex flex-wrap gap-2">
|
|
94418
|
+
<span [ngClass]="getEffortBadgeClasses(win.effort)"
|
|
94419
|
+
class="px-3 py-1 rounded-full text-xs font-semibold">
|
|
94420
|
+
{{ formatLabel(win.effort) }} Effort
|
|
94421
|
+
</span>
|
|
94422
|
+
<span [ngClass]="getImpactBadgeClasses(win.impact)"
|
|
94423
|
+
class="px-3 py-1 rounded-full text-xs font-semibold">
|
|
94424
|
+
{{ formatLabel(win.impact) }} Impact
|
|
94425
|
+
</span>
|
|
94426
|
+
</div>
|
|
94427
|
+
|
|
94428
|
+
@if (win.estimatedTimeframe) {
|
|
94429
|
+
<div class="flex items-center gap-2 text-sm" [ngClass]="getMetaTextClasses()">
|
|
94430
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
94431
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
94432
|
+
d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
|
|
94433
|
+
</svg>
|
|
94434
|
+
<span>{{ win.estimatedTimeframe }}</span>
|
|
94435
|
+
</div>
|
|
94436
|
+
}
|
|
94437
|
+
|
|
94438
|
+
@if (win.relatedGoalId) {
|
|
94439
|
+
<div class="space-y-2">
|
|
94440
|
+
<h4 [ngClass]="getMetaTextClasses()"
|
|
94441
|
+
class="text-xs font-semibold uppercase tracking-wider">
|
|
94442
|
+
Related Goal
|
|
94443
|
+
</h4>
|
|
94444
|
+
<symphiq-related-goal-chips
|
|
94445
|
+
[relatedGoalIds]="[win.relatedGoalId]"
|
|
94446
|
+
[allGoals]="allGoals()"
|
|
94447
|
+
[viewMode]="viewMode()"
|
|
94448
|
+
/>
|
|
94449
|
+
</div>
|
|
94450
|
+
}
|
|
94451
|
+
</div>
|
|
94452
|
+
</div>
|
|
94453
|
+
}
|
|
94454
|
+
</div>
|
|
94455
|
+
</div>
|
|
94456
|
+
}
|
|
94457
|
+
</section>
|
|
94458
|
+
}
|
|
94459
|
+
|
|
94460
|
+
<!-- FOCUS_AREA Executive Summary -->
|
|
94461
|
+
@if (isFocusAreaAnalysis() && focusAreaExecutiveSummary(); as summary) {
|
|
94462
|
+
<symphiq-focus-area-executive-summary
|
|
94463
|
+
[viewMode]="viewMode()"
|
|
94464
|
+
[summary]="summary"
|
|
94465
|
+
[allGoals]="allGoals()"
|
|
94466
|
+
(topPrioritiesClick)="handleTopPrioritiesClick()"
|
|
94467
|
+
(priorityDetailClick)="handlePriorityDetailClick($event)"
|
|
94468
|
+
/>
|
|
94469
|
+
}
|
|
94470
|
+
|
|
94471
|
+
<!-- METRIC Executive Summary -->
|
|
94472
|
+
@if (isMetricAnalysis() && metricExecutiveSummary(); as summary) {
|
|
94473
|
+
<symphiq-metric-executive-summary
|
|
94474
|
+
[viewMode]="viewMode()"
|
|
94475
|
+
[summary]="summary"
|
|
94476
|
+
[metricName]="metricName()"
|
|
94477
|
+
[allGoals]="allGoals()"
|
|
94478
|
+
(topPrioritiesClick)="handleMetricTopPrioritiesClick()"
|
|
94479
|
+
(priorityDetailClick)="handleMetricPriorityDetailClick($event)"
|
|
94480
|
+
/>
|
|
94481
|
+
}
|
|
94482
|
+
|
|
94483
|
+
<!-- Divider Before First Section -->
|
|
94484
|
+
@if (sections(); as sectionList) {
|
|
94485
|
+
@if (sectionList.length > 0 && sectionList[0].icon) {
|
|
94486
|
+
<symphiq-section-divider
|
|
94487
|
+
[viewMode]="viewMode()"
|
|
94488
|
+
[sectionIcon]="sectionList[0].icon"
|
|
94489
|
+
/>
|
|
94490
|
+
}
|
|
94491
|
+
}
|
|
94492
|
+
|
|
94493
|
+
<!-- Profile Analysis Sections -->
|
|
94494
|
+
@if (sections(); as sectionList) {
|
|
94495
|
+
<section class="space-y-8">
|
|
94496
|
+
@for (section of sectionList; track section.id; let idx = $index; let last = $last) {
|
|
94497
|
+
<div [id]="'section-' + section.id" [ngClass]="getSectionCardClasses()"
|
|
94498
|
+
class="rounded-xl p-8 scroll-mt-24">
|
|
94499
|
+
<!-- Icon and Title -->
|
|
94500
|
+
<div class="flex items-start gap-3 mb-6">
|
|
94501
|
+
@if (section.icon) {
|
|
94502
|
+
<div [ngClass]="getSectionIconClasses()"
|
|
94503
|
+
class="flex-shrink-0 w-12 h-12 rounded-xl flex items-center justify-center">
|
|
94504
|
+
<symphiq-icon [icon]="section.icon" size="w-6 h-6"></symphiq-icon>
|
|
94505
|
+
</div>
|
|
94506
|
+
}
|
|
94507
|
+
<div class="flex-1">
|
|
94508
|
+
<h3 [ngClass]="getSectionTitleClasses()" class="text-2xl font-bold">
|
|
94509
|
+
{{ section.title }}
|
|
94510
|
+
</h3>
|
|
94511
|
+
</div>
|
|
94512
|
+
</div>
|
|
94513
|
+
|
|
94514
|
+
<!-- Description and Visual Side-by-Side -->
|
|
94515
|
+
@if (section.description || (section.visual && section.visual.enabled)) {
|
|
94516
|
+
<div class="mb-6 flex flex-col lg:flex-row gap-6 items-start"
|
|
94517
|
+
[class.lg:flex-row-reverse]="idx % 2 === 0">
|
|
94518
|
+
@if (section.visual && section.visual.enabled) {
|
|
94519
|
+
<div class="w-full lg:w-2/3">
|
|
94520
|
+
<symphiq-napkin-visual-placeholder
|
|
94521
|
+
[visual]="section.visual"
|
|
94522
|
+
[viewMode]="viewMode()"
|
|
94523
|
+
/>
|
|
94524
|
+
</div>
|
|
94525
|
+
}
|
|
94526
|
+
@if (section.description) {
|
|
94527
|
+
<div class="w-full"
|
|
94528
|
+
[class.lg:w-1/3]="section.visual && section.visual.enabled" [class.lg:w-full]="!section.visual || !section.visual.enabled">
|
|
94529
|
+
<p [ngClass]="getSectionDescriptionClasses()"
|
|
94530
|
+
class="text-sm leading-relaxed whitespace-pre-line">
|
|
94531
|
+
{{ section.description }}
|
|
94532
|
+
</p>
|
|
94533
|
+
</div>
|
|
94534
|
+
}
|
|
94535
|
+
</div>
|
|
94536
|
+
}
|
|
94537
|
+
|
|
94538
|
+
<!-- Section Content -->
|
|
94539
|
+
<symphiq-profile-section-content
|
|
94540
|
+
[section]="section"
|
|
94541
|
+
[executiveSummary]="section.id === 'executive-summary' ? executiveSummary() : undefined"
|
|
94542
|
+
[viewMode]="viewMode()"
|
|
94543
|
+
[sectionIndex]="idx"
|
|
94544
|
+
[allGoals]="allGoals()"
|
|
94545
|
+
[allMetrics]="allMetrics()"
|
|
94546
|
+
[allCharts]="allCharts()"
|
|
94547
|
+
[allInsights]="allInsights()"
|
|
94548
|
+
[businessProfile]="profile()"
|
|
94549
|
+
/>
|
|
94550
|
+
</div>
|
|
94551
|
+
|
|
94552
|
+
<!-- Section Divider (between sections) -->
|
|
94553
|
+
@if (!last) {
|
|
94554
|
+
<symphiq-section-divider
|
|
94555
|
+
[viewMode]="viewMode()"
|
|
94556
|
+
[sectionIcon]="sectionList[idx + 1].icon"
|
|
94557
|
+
/>
|
|
94558
|
+
}
|
|
94559
|
+
}
|
|
94560
|
+
</section>
|
|
94561
|
+
}
|
|
94562
|
+
}
|
|
94563
|
+
|
|
94564
|
+
</main>
|
|
94565
|
+
|
|
94566
|
+
<!-- Table of Contents (Compact & Expanded Views) -->
|
|
94567
|
+
@if (!isSimplifiedView() && sections()) {
|
|
94568
|
+
<symphiq-floating-toc
|
|
94569
|
+
[sections]="tocSections()"
|
|
94570
|
+
[viewMode]="viewMode()"
|
|
94571
|
+
[embedded]="embedded()"
|
|
94572
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
94573
|
+
/>
|
|
94574
|
+
}
|
|
94575
|
+
|
|
94576
|
+
<!-- Section Navigation Dots (Compact & Expanded Views) -->
|
|
94577
|
+
@if (!isSimplifiedView() && sections()) {
|
|
94578
|
+
<symphiq-section-navigation
|
|
94579
|
+
[sections]="tocSections()"
|
|
94580
|
+
[viewMode]="viewMode()"
|
|
94581
|
+
[embedded]="embedded()"
|
|
94582
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
94583
|
+
/>
|
|
94584
|
+
}
|
|
94585
|
+
|
|
94586
|
+
<!-- Search Modal -->
|
|
94587
|
+
<symphiq-search-modal
|
|
94588
|
+
[isOpen]="isSearchOpen()"
|
|
94589
|
+
[isLightMode]="isLightMode()"
|
|
94590
|
+
(close)="closeSearch()"
|
|
94591
|
+
/>
|
|
94592
|
+
|
|
94593
|
+
<!-- View Mode Switcher Modal -->
|
|
94594
|
+
<symphiq-view-mode-switcher-modal
|
|
94595
|
+
[isOpen]="isViewModeSwitcherOpen()"
|
|
94596
|
+
[currentMode]="currentDisplayMode()"
|
|
94597
|
+
[viewMode]="viewMode()"
|
|
94598
|
+
(close)="closeViewModeSwitcher()"
|
|
94599
|
+
(modeSelected)="handleDisplayModeChange($event)"
|
|
94600
|
+
/>
|
|
94601
|
+
|
|
94602
|
+
<!-- Profile Analysis Modal -->
|
|
94603
|
+
<symphiq-profile-analysis-modal
|
|
94604
|
+
[isLightMode]="isLightMode()"
|
|
94605
|
+
[allMetrics]="allMetrics()"
|
|
94606
|
+
[allInsights]="allInsights()"
|
|
94607
|
+
[allBusinessInsights]="allBusinessInsights()"
|
|
94608
|
+
[allCharts]="allCharts()"
|
|
94609
|
+
>
|
|
94610
|
+
@if (modalType() === 'goal-detail' && getGoalDetailData(); as data) {
|
|
94611
|
+
<symphiq-goal-card
|
|
94612
|
+
[goal]="data.goal"
|
|
94613
|
+
[viewMode]="data.viewMode"
|
|
94614
|
+
[isInModal]="true"
|
|
94615
|
+
[allMetrics]="allMetrics()"
|
|
94616
|
+
[allCharts]="allCharts()"
|
|
94617
|
+
[allInsights]="allInsights()"
|
|
94618
|
+
[currentModalState]="getCurrentModalState()"
|
|
94619
|
+
[businessProfile]="profile()"
|
|
94620
|
+
/>
|
|
94621
|
+
}
|
|
94622
|
+
@if (modalType() === 'goal-objectives' && getGoalDetailData(); as data) {
|
|
94623
|
+
<symphiq-goal-objectives-modal-content
|
|
94624
|
+
[goal]="data.goal"
|
|
94625
|
+
[viewMode]="data.viewMode"
|
|
94626
|
+
/>
|
|
94627
|
+
}
|
|
94628
|
+
@if (modalType() === 'objective-strategies' && getObjectiveStrategiesData(); as data) {
|
|
94629
|
+
<symphiq-objective-strategies-modal-content
|
|
94630
|
+
[objective]="data.objective"
|
|
94631
|
+
[goalTitle]="data.goalTitle"
|
|
94632
|
+
[viewMode]="data.viewMode"
|
|
94633
|
+
/>
|
|
94634
|
+
}
|
|
94635
|
+
@if (modalType() === 'strategy-recommendations' && getStrategyRecommendationsData(); as data) {
|
|
94636
|
+
<symphiq-strategy-recommendations-modal-content
|
|
94637
|
+
[strategy]="data.strategy"
|
|
94638
|
+
[objectiveTitle]="data.objectiveTitle"
|
|
94639
|
+
[goalTitle]="data.goalTitle"
|
|
94640
|
+
[viewMode]="data.viewMode"
|
|
94641
|
+
[allMetrics]="allMetrics()"
|
|
94642
|
+
[allCharts]="allCharts()"
|
|
94643
|
+
[allInsights]="allInsights()"
|
|
94644
|
+
[allBusinessInsights]="allBusinessInsights()"
|
|
94645
|
+
[currentModalState]="getCurrentModalState()"
|
|
94646
|
+
/>
|
|
94647
|
+
}
|
|
94648
|
+
@if (modalType() === 'category-detail' && getCategoryDetailData(); as data) {
|
|
94649
|
+
<symphiq-category-detail-modal-content
|
|
94650
|
+
[category]="data.category"
|
|
94651
|
+
[viewMode]="data.viewMode"
|
|
94652
|
+
[scrollToSection]="data.scrollToSection"
|
|
94653
|
+
/>
|
|
94654
|
+
}
|
|
94655
|
+
@if (modalType() === 'strength-detail' && getStrengthDetailData(); as data) {
|
|
94656
|
+
<symphiq-strength-detail-modal-content
|
|
94657
|
+
[strength]="data.strength"
|
|
94658
|
+
[viewMode]="data.viewMode"
|
|
94659
|
+
[allFunnelStrengths]="funnelStrengths()"
|
|
94660
|
+
[currentModalState]="getCurrentModalState()"
|
|
94661
|
+
/>
|
|
94662
|
+
}
|
|
94663
|
+
@if (modalType() === 'gap-detail' && getGapDetailData(); as data) {
|
|
94664
|
+
<symphiq-gap-detail-modal-content
|
|
94665
|
+
[gap]="data.gap"
|
|
94666
|
+
[viewMode]="data.viewMode"
|
|
94667
|
+
[allGoals]="allGoals()"
|
|
94668
|
+
[allWeaknesses]="funnelWeaknesses()"
|
|
94669
|
+
[currentModalState]="getCurrentModalState()"
|
|
94670
|
+
/>
|
|
94671
|
+
}
|
|
94672
|
+
@if (modalType() === 'opportunity-detail' && getOpportunityDetailData(); as data) {
|
|
94673
|
+
<symphiq-opportunity-detail-modal-content
|
|
94674
|
+
[opportunity]="data.opportunity"
|
|
94675
|
+
[viewMode]="data.viewMode"
|
|
94676
|
+
[allStrengths]="funnelStrengths()"
|
|
94677
|
+
[currentModalState]="getCurrentModalState()"
|
|
94678
|
+
/>
|
|
94679
|
+
}
|
|
94680
|
+
</symphiq-profile-analysis-modal>
|
|
94681
|
+
|
|
94682
|
+
<!-- Funnel Analysis Modal (for insights and metrics from profile goals) -->
|
|
94683
|
+
<symphiq-funnel-analysis-modal
|
|
94684
|
+
[isLightMode]="isLightMode()"
|
|
94685
|
+
[viewMode]="viewMode()"
|
|
94686
|
+
[allMetrics]="allMetrics()"
|
|
94687
|
+
[allInsights]="allInsights()"
|
|
94688
|
+
[allCharts]="allCharts()"
|
|
94689
|
+
/>
|
|
94690
|
+
|
|
94691
|
+
<!-- Business Analysis Modal (for napkin visuals and other content) -->
|
|
94692
|
+
<symphiq-business-analysis-modal [isLightMode]="isLightMode()"/>
|
|
94693
|
+
|
|
94694
|
+
<!-- Tooltip Container -->
|
|
94695
|
+
<symphiq-tooltip-container/>
|
|
94696
|
+
|
|
94697
|
+
<!-- Sticky Continue Button (Only shown when not subscribed and no currency selected) -->
|
|
94698
|
+
@if (!isSubscriptionActive() && !hasBillingCurrency() && isSimplifiedView() && !isFocusAreaAnalysis() && !isMetricAnalysis()) {
|
|
94699
|
+
<symphiq-sticky-subscription-continue-button
|
|
94700
|
+
[viewMode]="viewMode()"
|
|
94701
|
+
[isEnabled]="hasCurrencySelected()"
|
|
94702
|
+
[isLoading]="isCurrencySelectionLoading()"
|
|
94703
|
+
(continueClick)="handleStickyButtonClick()"
|
|
94704
|
+
/>
|
|
94705
|
+
}
|
|
94706
|
+
|
|
94707
|
+
<!-- Shop Profile Sticky Footer -->
|
|
94708
|
+
@if (shouldShowShopProfileStickyFooter()) {
|
|
94709
|
+
<symphiq-shop-profile-sticky-footer
|
|
94710
|
+
[viewMode]="viewMode()"
|
|
94711
|
+
[totalQuestions]="totalShopQuestions()"
|
|
94712
|
+
[answeredQuestions]="answeredShopQuestions()"
|
|
94713
|
+
(continueClick)="handleShopProfileContinueClick()"
|
|
94714
|
+
/>
|
|
94715
|
+
}
|
|
94716
|
+
|
|
94717
|
+
<!-- Sticky Footer for Edit Currency Mode -->
|
|
94718
|
+
@if (isEditingCurrency()) {
|
|
94719
|
+
<div
|
|
94720
|
+
[ngClass]="getEditCurrencyFooterClasses()"
|
|
94721
|
+
class="fixed bottom-0 left-0 right-0 z-50 border-t backdrop-blur-lg"
|
|
94722
|
+
>
|
|
94723
|
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
|
|
94724
|
+
<div class="flex items-center gap-4">
|
|
94725
|
+
<button
|
|
94726
|
+
(click)="handleCancelCurrencyEdit()"
|
|
94727
|
+
[ngClass]="getEditCurrencyCancelButtonClasses()"
|
|
94728
|
+
class="px-6 py-4 rounded-xl font-semibold text-lg transition-all duration-300 cursor-pointer"
|
|
94729
|
+
>
|
|
94730
|
+
Cancel
|
|
94731
|
+
</button>
|
|
94732
|
+
<button
|
|
94733
|
+
(click)="handleContinueToPlans()"
|
|
94734
|
+
[disabled]="!editingCurrencySelection()"
|
|
94735
|
+
[ngClass]="getEditCurrencyContinueButtonClasses()"
|
|
94736
|
+
class="flex-1 px-6 py-4 rounded-xl font-semibold text-lg transition-all duration-300 flex items-center justify-center gap-3 shadow-2xl"
|
|
94737
|
+
>
|
|
94738
|
+
<span>Continue to Plans</span>
|
|
94739
|
+
<svg class="w-6 h-6 transition-transform duration-200"
|
|
94740
|
+
[class.translate-x-1]="editingCurrencySelection()" fill="none" stroke="currentColor"
|
|
94741
|
+
viewBox="0 0 24 24">
|
|
94742
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
94743
|
+
d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
|
|
94744
|
+
</svg>
|
|
94745
|
+
</button>
|
|
94746
|
+
</div>
|
|
94747
|
+
</div>
|
|
94748
|
+
</div>
|
|
94749
|
+
}
|
|
94750
|
+
</div>
|
|
94671
94751
|
`
|
|
94672
94752
|
}]
|
|
94673
94753
|
}], () => [], { funnelModalComponent: [{
|
|
@@ -94680,7 +94760,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
94680
94760
|
type: HostListener,
|
|
94681
94761
|
args: ['window:scroll', ['$event']]
|
|
94682
94762
|
}] }); })();
|
|
94683
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber:
|
|
94763
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber: 782 }); })();
|
|
94684
94764
|
|
|
94685
94765
|
class ScrollProgressBarComponent {
|
|
94686
94766
|
constructor() {
|