@eric-emg/symphiq-components 1.2.35 → 1.2.37
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 +1000 -735
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +24 -3
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/styles.css +5 -0
|
@@ -5,7 +5,7 @@ import { Injectable, signal, input, ChangeDetectionStrategy, Component, output,
|
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
6
6
|
import * as i1 from '@angular/common';
|
|
7
7
|
import { NgClass, CommonModule } from '@angular/common';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i6 from '@angular/forms';
|
|
9
9
|
import { FormsModule } from '@angular/forms';
|
|
10
10
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
11
11
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
@@ -163,23 +163,45 @@ class TooltipService {
|
|
|
163
163
|
content: null,
|
|
164
164
|
position: 'top',
|
|
165
165
|
targetRect: null,
|
|
166
|
-
visible: false
|
|
166
|
+
visible: false,
|
|
167
|
+
scrollContainer: null,
|
|
168
|
+
checkHideCallback: undefined
|
|
167
169
|
});
|
|
168
170
|
this.tooltipState$ = this.tooltipState.asObservable();
|
|
171
|
+
this.scrollContainer = null;
|
|
172
|
+
this.isTooltipHovered = false;
|
|
169
173
|
}
|
|
170
|
-
|
|
174
|
+
setScrollContainer(container) {
|
|
175
|
+
this.scrollContainer = container;
|
|
176
|
+
}
|
|
177
|
+
setTooltipHovered(hovered) {
|
|
178
|
+
this.isTooltipHovered = hovered;
|
|
179
|
+
}
|
|
180
|
+
isHoveredOverTooltip() {
|
|
181
|
+
return this.isTooltipHovered;
|
|
182
|
+
}
|
|
183
|
+
triggerHideCheck() {
|
|
184
|
+
const callback = this.tooltipState.value.checkHideCallback;
|
|
185
|
+
if (callback) {
|
|
186
|
+
callback();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
show(type, content, targetRect, position = 'top', mousePosition, checkHideCallback) {
|
|
171
190
|
// Auto-adjust position if too close to screen edges
|
|
172
191
|
let adjustedPosition = position;
|
|
173
192
|
// Use different thresholds based on tooltip type
|
|
174
193
|
// Insight tooltips can be quite tall, so need more space
|
|
175
194
|
const HORIZONTAL_THRESHOLD = 200;
|
|
176
195
|
const VERTICAL_THRESHOLD = type === 'insight' ? 350 : 200;
|
|
196
|
+
// Get viewport dimensions - use scroll container if available, otherwise window
|
|
197
|
+
const viewportWidth = this.scrollContainer?.clientWidth || window.innerWidth;
|
|
198
|
+
const viewportHeight = this.scrollContainer?.clientHeight || window.innerHeight;
|
|
177
199
|
// Check left edge
|
|
178
200
|
if (position === 'left' && targetRect.left < HORIZONTAL_THRESHOLD) {
|
|
179
201
|
adjustedPosition = 'right';
|
|
180
202
|
}
|
|
181
203
|
// Check right edge
|
|
182
|
-
if (position === 'right' && (
|
|
204
|
+
if (position === 'right' && (viewportWidth - targetRect.right) < HORIZONTAL_THRESHOLD) {
|
|
183
205
|
adjustedPosition = 'left';
|
|
184
206
|
}
|
|
185
207
|
// Check top edge
|
|
@@ -187,12 +209,12 @@ class TooltipService {
|
|
|
187
209
|
adjustedPosition = 'bottom';
|
|
188
210
|
}
|
|
189
211
|
// Check bottom edge - prioritize flipping to top if not enough space
|
|
190
|
-
if (position === 'bottom' && (
|
|
212
|
+
if (position === 'bottom' && (viewportHeight - targetRect.bottom) < VERTICAL_THRESHOLD) {
|
|
191
213
|
adjustedPosition = 'top';
|
|
192
214
|
}
|
|
193
215
|
// Smart auto-detection for 'top' position tooltips near bottom
|
|
194
216
|
if (position === 'top') {
|
|
195
|
-
const spaceBelow =
|
|
217
|
+
const spaceBelow = viewportHeight - targetRect.bottom;
|
|
196
218
|
const spaceAbove = targetRect.top;
|
|
197
219
|
// If more space above and not enough space below, keep it on top
|
|
198
220
|
// If more space below, switch to bottom
|
|
@@ -203,15 +225,27 @@ class TooltipService {
|
|
|
203
225
|
adjustedPosition = 'bottom';
|
|
204
226
|
}
|
|
205
227
|
}
|
|
206
|
-
this.tooltipState.next({
|
|
228
|
+
this.tooltipState.next({
|
|
229
|
+
type,
|
|
230
|
+
content,
|
|
231
|
+
position: adjustedPosition,
|
|
232
|
+
targetRect,
|
|
233
|
+
mousePosition,
|
|
234
|
+
visible: true,
|
|
235
|
+
scrollContainer: this.scrollContainer,
|
|
236
|
+
checkHideCallback
|
|
237
|
+
});
|
|
207
238
|
}
|
|
208
239
|
hide() {
|
|
240
|
+
this.isTooltipHovered = false;
|
|
209
241
|
this.tooltipState.next({
|
|
210
242
|
type: null,
|
|
211
243
|
content: null,
|
|
212
244
|
position: 'top',
|
|
213
245
|
targetRect: null,
|
|
214
|
-
visible: false
|
|
246
|
+
visible: false,
|
|
247
|
+
scrollContainer: this.scrollContainer,
|
|
248
|
+
checkHideCallback: undefined
|
|
215
249
|
});
|
|
216
250
|
}
|
|
217
251
|
updatePosition(targetRect) {
|
|
@@ -1456,6 +1490,11 @@ class TooltipDirective {
|
|
|
1456
1490
|
this.isHovered.set(false);
|
|
1457
1491
|
this.scheduleHide();
|
|
1458
1492
|
}
|
|
1493
|
+
onMouseEnterAgain() {
|
|
1494
|
+
// If user returns to element while tooltip is still visible, cancel hide
|
|
1495
|
+
this.clearHideTimeout();
|
|
1496
|
+
this.isHovered.set(true);
|
|
1497
|
+
}
|
|
1459
1498
|
onFocus() {
|
|
1460
1499
|
this.clearHideTimeout();
|
|
1461
1500
|
this.isHovered.set(true);
|
|
@@ -1475,14 +1514,17 @@ class TooltipDirective {
|
|
|
1475
1514
|
const position = this.tooltipPosition();
|
|
1476
1515
|
if (content && this.isHovered()) {
|
|
1477
1516
|
const mousePos = position === 'auto' ? { x: this.mouseX, y: this.mouseY } : undefined;
|
|
1478
|
-
|
|
1517
|
+
// Pass a callback that the tooltip can use to trigger hide checks
|
|
1518
|
+
const checkHideCallback = () => this.scheduleHide();
|
|
1519
|
+
this.tooltipService.show(type, content, rect, position, mousePos, checkHideCallback);
|
|
1479
1520
|
}
|
|
1480
1521
|
}, this.tooltipDelay());
|
|
1481
1522
|
}
|
|
1482
1523
|
scheduleHide() {
|
|
1483
1524
|
this.clearHideTimeout();
|
|
1484
1525
|
this.hideTimeout = setTimeout(() => {
|
|
1485
|
-
if
|
|
1526
|
+
// Only hide if neither the element nor the tooltip is hovered
|
|
1527
|
+
if (!this.isHovered() && !this.tooltipService.isHoveredOverTooltip()) {
|
|
1486
1528
|
this.tooltipService.hide();
|
|
1487
1529
|
}
|
|
1488
1530
|
}, 100);
|
|
@@ -1506,7 +1548,7 @@ class TooltipDirective {
|
|
|
1506
1548
|
}
|
|
1507
1549
|
static { this.ɵfac = function TooltipDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TooltipDirective)(); }; }
|
|
1508
1550
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TooltipDirective, selectors: [["", "libSymphiqTooltip", ""]], hostBindings: function TooltipDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1509
|
-
i0.ɵɵlistener("mouseenter", function TooltipDirective_mouseenter_HostBindingHandler(
|
|
1551
|
+
i0.ɵɵlistener("mouseenter", function TooltipDirective_mouseenter_HostBindingHandler() { return ctx.onMouseEnterAgain(); })("mousemove", function TooltipDirective_mousemove_HostBindingHandler($event) { return ctx.onMouseMove($event); })("mouseleave", function TooltipDirective_mouseleave_HostBindingHandler() { return ctx.onMouseLeave(); })("focus", function TooltipDirective_focus_HostBindingHandler() { return ctx.onFocus(); })("blur", function TooltipDirective_blur_HostBindingHandler() { return ctx.onBlur(); });
|
|
1510
1552
|
} }, inputs: { symphiqTooltip: [1, "libSymphiqTooltip", "symphiqTooltip"], tooltipType: [1, "tooltipType"], tooltipPosition: [1, "tooltipPosition"], tooltipDelay: [1, "tooltipDelay"] } }); }
|
|
1511
1553
|
}
|
|
1512
1554
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TooltipDirective, [{
|
|
@@ -1524,6 +1566,9 @@ class TooltipDirective {
|
|
|
1524
1566
|
}], onMouseLeave: [{
|
|
1525
1567
|
type: HostListener,
|
|
1526
1568
|
args: ['mouseleave']
|
|
1569
|
+
}], onMouseEnterAgain: [{
|
|
1570
|
+
type: HostListener,
|
|
1571
|
+
args: ['mouseenter']
|
|
1527
1572
|
}], onFocus: [{
|
|
1528
1573
|
type: HostListener,
|
|
1529
1574
|
args: ['focus']
|
|
@@ -10778,110 +10823,110 @@ const _c0$6 = () => [];
|
|
|
10778
10823
|
function TooltipContainerComponent_Conditional_0_Case_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10779
10824
|
i0.ɵɵelement(0, "symphiq-metric-value-tooltip", 6);
|
|
10780
10825
|
} if (rf & 2) {
|
|
10781
|
-
const
|
|
10782
|
-
i0.ɵɵproperty("content",
|
|
10826
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10827
|
+
i0.ɵɵproperty("content", ctx_r1.metricContent())("isLightMode", ctx_r1.isLightMode());
|
|
10783
10828
|
} }
|
|
10784
10829
|
function TooltipContainerComponent_Conditional_0_Case_3_Template(rf, ctx) { if (rf & 1) {
|
|
10785
10830
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_3_Conditional_0_Template, 1, 2, "symphiq-metric-value-tooltip", 6);
|
|
10786
10831
|
} if (rf & 2) {
|
|
10787
|
-
const
|
|
10788
|
-
i0.ɵɵconditional(
|
|
10832
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10833
|
+
i0.ɵɵconditional(ctx_r1.metricContent() ? 0 : -1);
|
|
10789
10834
|
} }
|
|
10790
10835
|
function TooltipContainerComponent_Conditional_0_Case_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10791
10836
|
i0.ɵɵelement(0, "symphiq-status-badge-tooltip", 6);
|
|
10792
10837
|
} if (rf & 2) {
|
|
10793
|
-
const
|
|
10794
|
-
i0.ɵɵproperty("content",
|
|
10838
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10839
|
+
i0.ɵɵproperty("content", ctx_r1.statusContent())("isLightMode", ctx_r1.isLightMode());
|
|
10795
10840
|
} }
|
|
10796
10841
|
function TooltipContainerComponent_Conditional_0_Case_4_Template(rf, ctx) { if (rf & 1) {
|
|
10797
10842
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_4_Conditional_0_Template, 1, 2, "symphiq-status-badge-tooltip", 6);
|
|
10798
10843
|
} if (rf & 2) {
|
|
10799
|
-
const
|
|
10800
|
-
i0.ɵɵconditional(
|
|
10844
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10845
|
+
i0.ɵɵconditional(ctx_r1.statusContent() ? 0 : -1);
|
|
10801
10846
|
} }
|
|
10802
10847
|
function TooltipContainerComponent_Conditional_0_Case_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10803
10848
|
i0.ɵɵelement(0, "symphiq-trend-indicator-tooltip", 6);
|
|
10804
10849
|
} if (rf & 2) {
|
|
10805
|
-
const
|
|
10806
|
-
i0.ɵɵproperty("content",
|
|
10850
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10851
|
+
i0.ɵɵproperty("content", ctx_r1.trendContent())("isLightMode", ctx_r1.isLightMode());
|
|
10807
10852
|
} }
|
|
10808
10853
|
function TooltipContainerComponent_Conditional_0_Case_5_Template(rf, ctx) { if (rf & 1) {
|
|
10809
10854
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_5_Conditional_0_Template, 1, 2, "symphiq-trend-indicator-tooltip", 6);
|
|
10810
10855
|
} if (rf & 2) {
|
|
10811
|
-
const
|
|
10812
|
-
i0.ɵɵconditional(
|
|
10856
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10857
|
+
i0.ɵɵconditional(ctx_r1.trendContent() ? 0 : -1);
|
|
10813
10858
|
} }
|
|
10814
10859
|
function TooltipContainerComponent_Conditional_0_Case_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10815
10860
|
i0.ɵɵelement(0, "symphiq-priority-badge-tooltip", 6);
|
|
10816
10861
|
} if (rf & 2) {
|
|
10817
|
-
const
|
|
10818
|
-
i0.ɵɵproperty("content",
|
|
10862
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10863
|
+
i0.ɵɵproperty("content", ctx_r1.priorityContent())("isLightMode", ctx_r1.isLightMode());
|
|
10819
10864
|
} }
|
|
10820
10865
|
function TooltipContainerComponent_Conditional_0_Case_6_Template(rf, ctx) { if (rf & 1) {
|
|
10821
10866
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_6_Conditional_0_Template, 1, 2, "symphiq-priority-badge-tooltip", 6);
|
|
10822
10867
|
} if (rf & 2) {
|
|
10823
|
-
const
|
|
10824
|
-
i0.ɵɵconditional(
|
|
10868
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10869
|
+
i0.ɵɵconditional(ctx_r1.priorityContent() ? 0 : -1);
|
|
10825
10870
|
} }
|
|
10826
10871
|
function TooltipContainerComponent_Conditional_0_Case_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10827
10872
|
i0.ɵɵelement(0, "symphiq-badge-tooltip", 6);
|
|
10828
10873
|
} if (rf & 2) {
|
|
10829
|
-
const
|
|
10830
|
-
i0.ɵɵproperty("content",
|
|
10874
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10875
|
+
i0.ɵɵproperty("content", ctx_r1.badgeContent())("isLightMode", ctx_r1.isLightMode());
|
|
10831
10876
|
} }
|
|
10832
10877
|
function TooltipContainerComponent_Conditional_0_Case_7_Template(rf, ctx) { if (rf & 1) {
|
|
10833
10878
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_7_Conditional_0_Template, 1, 2, "symphiq-badge-tooltip", 6);
|
|
10834
10879
|
} if (rf & 2) {
|
|
10835
|
-
const
|
|
10836
|
-
i0.ɵɵconditional(
|
|
10880
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10881
|
+
i0.ɵɵconditional(ctx_r1.badgeContent() ? 0 : -1);
|
|
10837
10882
|
} }
|
|
10838
10883
|
function TooltipContainerComponent_Conditional_0_Case_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10839
10884
|
i0.ɵɵelement(0, "symphiq-breakdown-row-tooltip", 6);
|
|
10840
10885
|
} if (rf & 2) {
|
|
10841
|
-
const
|
|
10842
|
-
i0.ɵɵproperty("content",
|
|
10886
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10887
|
+
i0.ɵɵproperty("content", ctx_r1.breakdownContent())("isLightMode", ctx_r1.isLightMode());
|
|
10843
10888
|
} }
|
|
10844
10889
|
function TooltipContainerComponent_Conditional_0_Case_8_Template(rf, ctx) { if (rf & 1) {
|
|
10845
10890
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_8_Conditional_0_Template, 1, 2, "symphiq-breakdown-row-tooltip", 6);
|
|
10846
10891
|
} if (rf & 2) {
|
|
10847
|
-
const
|
|
10848
|
-
i0.ɵɵconditional(
|
|
10892
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10893
|
+
i0.ɵɵconditional(ctx_r1.breakdownContent() ? 0 : -1);
|
|
10849
10894
|
} }
|
|
10850
10895
|
function TooltipContainerComponent_Conditional_0_Case_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10851
10896
|
i0.ɵɵelement(0, "symphiq-competitive-benchmark-tooltip", 6);
|
|
10852
10897
|
} if (rf & 2) {
|
|
10853
|
-
const
|
|
10854
|
-
i0.ɵɵproperty("content",
|
|
10898
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10899
|
+
i0.ɵɵproperty("content", ctx_r1.competitiveContent())("isLightMode", ctx_r1.isLightMode());
|
|
10855
10900
|
} }
|
|
10856
10901
|
function TooltipContainerComponent_Conditional_0_Case_9_Template(rf, ctx) { if (rf & 1) {
|
|
10857
10902
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_9_Conditional_0_Template, 1, 2, "symphiq-competitive-benchmark-tooltip", 6);
|
|
10858
10903
|
} if (rf & 2) {
|
|
10859
|
-
const
|
|
10860
|
-
i0.ɵɵconditional(
|
|
10904
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10905
|
+
i0.ɵɵconditional(ctx_r1.competitiveContent() ? 0 : -1);
|
|
10861
10906
|
} }
|
|
10862
10907
|
function TooltipContainerComponent_Conditional_0_Case_10_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10863
10908
|
i0.ɵɵelement(0, "symphiq-insights-list-tooltip", 6);
|
|
10864
10909
|
} if (rf & 2) {
|
|
10865
|
-
const
|
|
10866
|
-
i0.ɵɵproperty("content",
|
|
10910
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10911
|
+
i0.ɵɵproperty("content", ctx_r1.insightsListContent())("isLightMode", ctx_r1.isLightMode());
|
|
10867
10912
|
} }
|
|
10868
10913
|
function TooltipContainerComponent_Conditional_0_Case_10_Template(rf, ctx) { if (rf & 1) {
|
|
10869
10914
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_10_Conditional_0_Template, 1, 2, "symphiq-insights-list-tooltip", 6);
|
|
10870
10915
|
} if (rf & 2) {
|
|
10871
|
-
const
|
|
10872
|
-
i0.ɵɵconditional(
|
|
10916
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10917
|
+
i0.ɵɵconditional(ctx_r1.insightsListContent() ? 0 : -1);
|
|
10873
10918
|
} }
|
|
10874
10919
|
function TooltipContainerComponent_Conditional_0_Case_11_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10875
10920
|
i0.ɵɵelement(0, "symphiq-narrative-tooltip", 6);
|
|
10876
10921
|
} if (rf & 2) {
|
|
10877
|
-
const
|
|
10878
|
-
i0.ɵɵproperty("content",
|
|
10922
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
10923
|
+
i0.ɵɵproperty("content", ctx_r1.narrativeContent())("isLightMode", ctx_r1.isLightMode());
|
|
10879
10924
|
} }
|
|
10880
10925
|
function TooltipContainerComponent_Conditional_0_Case_11_Template(rf, ctx) { if (rf & 1) {
|
|
10881
10926
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_11_Conditional_0_Template, 1, 2, "symphiq-narrative-tooltip", 6);
|
|
10882
10927
|
} if (rf & 2) {
|
|
10883
|
-
const
|
|
10884
|
-
i0.ɵɵconditional(
|
|
10928
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
10929
|
+
i0.ɵɵconditional(ctx_r1.narrativeContent() ? 0 : -1);
|
|
10885
10930
|
} }
|
|
10886
10931
|
function TooltipContainerComponent_Conditional_0_Case_12_Conditional_1_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
10887
10932
|
i0.ɵɵelementStart(0, "div", 7)(1, "div", 8);
|
|
@@ -10891,18 +10936,18 @@ function TooltipContainerComponent_Conditional_0_Case_12_Conditional_1_For_1_Tem
|
|
|
10891
10936
|
i0.ɵɵtext(4);
|
|
10892
10937
|
i0.ɵɵelementEnd()();
|
|
10893
10938
|
} if (rf & 2) {
|
|
10894
|
-
const
|
|
10939
|
+
const section_r3 = ctx.$implicit;
|
|
10895
10940
|
i0.ɵɵadvance(2);
|
|
10896
|
-
i0.ɵɵtextInterpolate(
|
|
10941
|
+
i0.ɵɵtextInterpolate(section_r3.title);
|
|
10897
10942
|
i0.ɵɵadvance(2);
|
|
10898
|
-
i0.ɵɵtextInterpolate(
|
|
10943
|
+
i0.ɵɵtextInterpolate(section_r3.content);
|
|
10899
10944
|
} }
|
|
10900
10945
|
function TooltipContainerComponent_Conditional_0_Case_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
10901
10946
|
i0.ɵɵrepeaterCreate(0, TooltipContainerComponent_Conditional_0_Case_12_Conditional_1_For_1_Template, 5, 2, "div", 7, i0.ɵɵrepeaterTrackByIndex);
|
|
10902
10947
|
} if (rf & 2) {
|
|
10903
10948
|
i0.ɵɵnextContext(2);
|
|
10904
|
-
const
|
|
10905
|
-
i0.ɵɵrepeater(
|
|
10949
|
+
const content_r4 = i0.ɵɵreadContextLet(2);
|
|
10950
|
+
i0.ɵɵrepeater(content_r4["sections"] || i0.ɵɵpureFunction0(0, _c0$6));
|
|
10906
10951
|
} }
|
|
10907
10952
|
function TooltipContainerComponent_Conditional_0_Case_12_Template(rf, ctx) { if (rf & 1) {
|
|
10908
10953
|
i0.ɵɵelementStart(0, "div", 3);
|
|
@@ -10910,25 +10955,25 @@ function TooltipContainerComponent_Conditional_0_Case_12_Template(rf, ctx) { if
|
|
|
10910
10955
|
i0.ɵɵelementEnd();
|
|
10911
10956
|
} if (rf & 2) {
|
|
10912
10957
|
i0.ɵɵnextContext();
|
|
10913
|
-
const
|
|
10914
|
-
const
|
|
10915
|
-
i0.ɵɵproperty("ngClass",
|
|
10958
|
+
const content_r4 = i0.ɵɵreadContextLet(2);
|
|
10959
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
10960
|
+
i0.ɵɵproperty("ngClass", ctx_r1.textClass());
|
|
10916
10961
|
i0.ɵɵadvance();
|
|
10917
|
-
i0.ɵɵconditional(
|
|
10962
|
+
i0.ɵɵconditional(content_r4 && typeof content_r4 === "object" && "sections" in content_r4 ? 1 : -1);
|
|
10918
10963
|
} }
|
|
10919
10964
|
function TooltipContainerComponent_Conditional_0_Case_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
10920
10965
|
i0.ɵɵtext(0);
|
|
10921
10966
|
} if (rf & 2) {
|
|
10922
10967
|
i0.ɵɵnextContext(2);
|
|
10923
|
-
const
|
|
10924
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
10968
|
+
const content_r4 = i0.ɵɵreadContextLet(2);
|
|
10969
|
+
i0.ɵɵtextInterpolate1(" ", content_r4["text"], " ");
|
|
10925
10970
|
} }
|
|
10926
10971
|
function TooltipContainerComponent_Conditional_0_Case_13_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
10927
10972
|
i0.ɵɵtext(0);
|
|
10928
10973
|
} if (rf & 2) {
|
|
10929
10974
|
i0.ɵɵnextContext(2);
|
|
10930
|
-
const
|
|
10931
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
10975
|
+
const content_r4 = i0.ɵɵreadContextLet(2);
|
|
10976
|
+
i0.ɵɵtextInterpolate1(" ", content_r4, " ");
|
|
10932
10977
|
} }
|
|
10933
10978
|
function TooltipContainerComponent_Conditional_0_Case_13_Template(rf, ctx) { if (rf & 1) {
|
|
10934
10979
|
i0.ɵɵelementStart(0, "div", 4);
|
|
@@ -10936,11 +10981,11 @@ function TooltipContainerComponent_Conditional_0_Case_13_Template(rf, ctx) { if
|
|
|
10936
10981
|
i0.ɵɵelementEnd();
|
|
10937
10982
|
} if (rf & 2) {
|
|
10938
10983
|
i0.ɵɵnextContext();
|
|
10939
|
-
const
|
|
10940
|
-
const
|
|
10941
|
-
i0.ɵɵproperty("ngClass",
|
|
10984
|
+
const content_r4 = i0.ɵɵreadContextLet(2);
|
|
10985
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
10986
|
+
i0.ɵɵproperty("ngClass", ctx_r1.textClass());
|
|
10942
10987
|
i0.ɵɵadvance();
|
|
10943
|
-
i0.ɵɵconditional(
|
|
10988
|
+
i0.ɵɵconditional(content_r4 && typeof content_r4 === "object" && "text" in content_r4 ? 1 : 2);
|
|
10944
10989
|
} }
|
|
10945
10990
|
function TooltipContainerComponent_Conditional_0_Case_14_Template(rf, ctx) { if (rf & 1) {
|
|
10946
10991
|
i0.ɵɵelementStart(0, "div", 5);
|
|
@@ -10948,28 +10993,30 @@ function TooltipContainerComponent_Conditional_0_Case_14_Template(rf, ctx) { if
|
|
|
10948
10993
|
i0.ɵɵelementEnd();
|
|
10949
10994
|
} if (rf & 2) {
|
|
10950
10995
|
i0.ɵɵnextContext();
|
|
10951
|
-
const
|
|
10952
|
-
const
|
|
10953
|
-
i0.ɵɵproperty("ngClass",
|
|
10996
|
+
const content_r4 = i0.ɵɵreadContextLet(2);
|
|
10997
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
10998
|
+
i0.ɵɵproperty("ngClass", ctx_r1.textClass());
|
|
10954
10999
|
i0.ɵɵadvance();
|
|
10955
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
11000
|
+
i0.ɵɵtextInterpolate1(" ", content_r4, " ");
|
|
10956
11001
|
} }
|
|
10957
11002
|
function TooltipContainerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
11003
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
10958
11004
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
|
|
11005
|
+
i0.ɵɵlistener("mouseenter", function TooltipContainerComponent_Conditional_0_Template_div_mouseenter_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTooltipMouseEnter()); })("mouseleave", function TooltipContainerComponent_Conditional_0_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTooltipMouseLeave()); });
|
|
10959
11006
|
i0.ɵɵdeclareLet(2);
|
|
10960
11007
|
i0.ɵɵconditionalCreate(3, TooltipContainerComponent_Conditional_0_Case_3_Template, 1, 1)(4, TooltipContainerComponent_Conditional_0_Case_4_Template, 1, 1)(5, TooltipContainerComponent_Conditional_0_Case_5_Template, 1, 1)(6, TooltipContainerComponent_Conditional_0_Case_6_Template, 1, 1)(7, TooltipContainerComponent_Conditional_0_Case_7_Template, 1, 1)(8, TooltipContainerComponent_Conditional_0_Case_8_Template, 1, 1)(9, TooltipContainerComponent_Conditional_0_Case_9_Template, 1, 1)(10, TooltipContainerComponent_Conditional_0_Case_10_Template, 1, 1)(11, TooltipContainerComponent_Conditional_0_Case_11_Template, 1, 1)(12, TooltipContainerComponent_Conditional_0_Case_12_Template, 2, 2, "div", 3)(13, TooltipContainerComponent_Conditional_0_Case_13_Template, 3, 2, "div", 4)(14, TooltipContainerComponent_Conditional_0_Case_14_Template, 2, 2, "div", 5);
|
|
10961
11008
|
i0.ɵɵelementEnd()();
|
|
10962
11009
|
} if (rf & 2) {
|
|
10963
11010
|
let tmp_7_0;
|
|
10964
|
-
const
|
|
10965
|
-
i0.ɵɵstyleProp("left",
|
|
10966
|
-
i0.ɵɵproperty("ngClass",
|
|
11011
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
11012
|
+
i0.ɵɵstyleProp("left", ctx_r1.tooltipLeft(), "px")("top", ctx_r1.tooltipTop(), "px");
|
|
11013
|
+
i0.ɵɵproperty("ngClass", ctx_r1.containerClass())("@fadeInScale", undefined);
|
|
10967
11014
|
i0.ɵɵadvance();
|
|
10968
|
-
i0.ɵɵproperty("ngClass",
|
|
11015
|
+
i0.ɵɵproperty("ngClass", ctx_r1.contentClass());
|
|
10969
11016
|
i0.ɵɵadvance();
|
|
10970
|
-
i0.ɵɵstoreLet(
|
|
11017
|
+
i0.ɵɵstoreLet(ctx_r1.tooltipContent());
|
|
10971
11018
|
i0.ɵɵadvance();
|
|
10972
|
-
i0.ɵɵconditional((tmp_7_0 =
|
|
11019
|
+
i0.ɵɵconditional((tmp_7_0 = ctx_r1.tooltipType()) === "metric" ? 3 : tmp_7_0 === "status" ? 4 : tmp_7_0 === "trend" ? 5 : tmp_7_0 === "priority" ? 6 : tmp_7_0 === "badge" ? 7 : tmp_7_0 === "breakdown" ? 8 : tmp_7_0 === "competitive" ? 9 : tmp_7_0 === "insightsList" ? 10 : tmp_7_0 === "narrative" ? 11 : tmp_7_0 === "insight" ? 12 : tmp_7_0 === "text" ? 13 : 14);
|
|
10973
11020
|
} }
|
|
10974
11021
|
class TooltipContainerComponent {
|
|
10975
11022
|
constructor() {
|
|
@@ -10983,7 +11030,8 @@ class TooltipContainerComponent {
|
|
|
10983
11030
|
position: 'top',
|
|
10984
11031
|
targetRect: null,
|
|
10985
11032
|
mousePosition: undefined,
|
|
10986
|
-
visible: false
|
|
11033
|
+
visible: false,
|
|
11034
|
+
scrollContainer: null
|
|
10987
11035
|
}, ...(ngDevMode ? [{ debugName: "tooltipStateSignal" }] : []));
|
|
10988
11036
|
this.isVisible = computed(() => this.tooltipStateSignal().visible, ...(ngDevMode ? [{ debugName: "isVisible" }] : []));
|
|
10989
11037
|
this.tooltipType = computed(() => this.tooltipStateSignal().type, ...(ngDevMode ? [{ debugName: "tooltipType" }] : []));
|
|
@@ -10991,6 +11039,7 @@ class TooltipContainerComponent {
|
|
|
10991
11039
|
this.tooltipPosition = computed(() => this.tooltipStateSignal().position, ...(ngDevMode ? [{ debugName: "tooltipPosition" }] : []));
|
|
10992
11040
|
this.targetRect = computed(() => this.tooltipStateSignal().targetRect, ...(ngDevMode ? [{ debugName: "targetRect" }] : []));
|
|
10993
11041
|
this.mousePosition = computed(() => this.tooltipStateSignal().mousePosition, ...(ngDevMode ? [{ debugName: "mousePosition" }] : []));
|
|
11042
|
+
this.scrollContainer = computed(() => this.tooltipStateSignal().scrollContainer, ...(ngDevMode ? [{ debugName: "scrollContainer" }] : []));
|
|
10994
11043
|
// Type-safe content accessors for each tooltip type
|
|
10995
11044
|
this.metricContent = computed(() => {
|
|
10996
11045
|
const content = this.tooltipContent();
|
|
@@ -11036,6 +11085,8 @@ class TooltipContainerComponent {
|
|
|
11036
11085
|
return true;
|
|
11037
11086
|
const position = this.tooltipPosition();
|
|
11038
11087
|
const tooltipWidth = 384;
|
|
11088
|
+
const container = this.scrollContainer();
|
|
11089
|
+
const viewportWidth = container?.clientWidth || window.innerWidth;
|
|
11039
11090
|
// For 'auto' positioning, always center horizontally
|
|
11040
11091
|
if (position === 'auto') {
|
|
11041
11092
|
return true;
|
|
@@ -11044,7 +11095,7 @@ class TooltipContainerComponent {
|
|
|
11044
11095
|
const centerPosition = rect.left + rect.width / 2;
|
|
11045
11096
|
const halfWidth = tooltipWidth / 2;
|
|
11046
11097
|
const wouldGoOffLeft = centerPosition - halfWidth < 10;
|
|
11047
|
-
const wouldGoOffRight = centerPosition + halfWidth >
|
|
11098
|
+
const wouldGoOffRight = centerPosition + halfWidth > viewportWidth - 10;
|
|
11048
11099
|
return !wouldGoOffLeft && !wouldGoOffRight;
|
|
11049
11100
|
}
|
|
11050
11101
|
return false;
|
|
@@ -11066,7 +11117,8 @@ class TooltipContainerComponent {
|
|
|
11066
11117
|
this.tooltipStateSignal.set({
|
|
11067
11118
|
...state,
|
|
11068
11119
|
mousePosition: state.mousePosition || undefined,
|
|
11069
|
-
content: state.content ?? undefined
|
|
11120
|
+
content: state.content ?? undefined,
|
|
11121
|
+
scrollContainer: state.scrollContainer || null
|
|
11070
11122
|
});
|
|
11071
11123
|
});
|
|
11072
11124
|
effect(() => {
|
|
@@ -11078,6 +11130,14 @@ class TooltipContainerComponent {
|
|
|
11078
11130
|
}
|
|
11079
11131
|
});
|
|
11080
11132
|
}
|
|
11133
|
+
onTooltipMouseEnter() {
|
|
11134
|
+
this.tooltipService.setTooltipHovered(true);
|
|
11135
|
+
}
|
|
11136
|
+
onTooltipMouseLeave() {
|
|
11137
|
+
this.tooltipService.setTooltipHovered(false);
|
|
11138
|
+
// Trigger the hide check callback from the directive
|
|
11139
|
+
this.tooltipService.triggerHideCheck();
|
|
11140
|
+
}
|
|
11081
11141
|
calculateLeft() {
|
|
11082
11142
|
const rect = this.targetRect();
|
|
11083
11143
|
if (!rect)
|
|
@@ -11085,6 +11145,8 @@ class TooltipContainerComponent {
|
|
|
11085
11145
|
const position = this.tooltipPosition();
|
|
11086
11146
|
const mousePos = this.mousePosition();
|
|
11087
11147
|
const tooltipWidth = 384;
|
|
11148
|
+
const container = this.scrollContainer();
|
|
11149
|
+
const viewportWidth = container?.clientWidth || window.innerWidth;
|
|
11088
11150
|
// Handle 'auto' positioning with mouse coordinates
|
|
11089
11151
|
if (position === 'auto' && mousePos) {
|
|
11090
11152
|
const halfWidth = tooltipWidth / 2;
|
|
@@ -11093,8 +11155,8 @@ class TooltipContainerComponent {
|
|
|
11093
11155
|
if (leftPos - halfWidth < 10) {
|
|
11094
11156
|
leftPos = halfWidth + 10;
|
|
11095
11157
|
}
|
|
11096
|
-
else if (leftPos + halfWidth >
|
|
11097
|
-
leftPos =
|
|
11158
|
+
else if (leftPos + halfWidth > viewportWidth - 10) {
|
|
11159
|
+
leftPos = viewportWidth - halfWidth - 10;
|
|
11098
11160
|
}
|
|
11099
11161
|
return leftPos;
|
|
11100
11162
|
}
|
|
@@ -11105,14 +11167,14 @@ class TooltipContainerComponent {
|
|
|
11105
11167
|
const halfWidth = tooltipWidth / 2;
|
|
11106
11168
|
// Check if centered tooltip would go off screen
|
|
11107
11169
|
const wouldGoOffLeft = centerPosition - halfWidth < 10;
|
|
11108
|
-
const wouldGoOffRight = centerPosition + halfWidth >
|
|
11170
|
+
const wouldGoOffRight = centerPosition + halfWidth > viewportWidth - 10;
|
|
11109
11171
|
if (wouldGoOffLeft) {
|
|
11110
11172
|
// Align to left edge with padding
|
|
11111
11173
|
return 10;
|
|
11112
11174
|
}
|
|
11113
11175
|
else if (wouldGoOffRight) {
|
|
11114
11176
|
// Align to right edge with padding
|
|
11115
|
-
return
|
|
11177
|
+
return viewportWidth - tooltipWidth - 10;
|
|
11116
11178
|
}
|
|
11117
11179
|
else {
|
|
11118
11180
|
// Center normally (transform will be applied)
|
|
@@ -11130,7 +11192,7 @@ class TooltipContainerComponent {
|
|
|
11130
11192
|
case 'right': {
|
|
11131
11193
|
const rightPosition = rect.right + 8;
|
|
11132
11194
|
// If tooltip would go off right edge, position it to the left instead
|
|
11133
|
-
if (rightPosition + tooltipWidth >
|
|
11195
|
+
if (rightPosition + tooltipWidth > viewportWidth - 10) {
|
|
11134
11196
|
return rect.left - tooltipWidth - 8;
|
|
11135
11197
|
}
|
|
11136
11198
|
return rightPosition;
|
|
@@ -11146,6 +11208,8 @@ class TooltipContainerComponent {
|
|
|
11146
11208
|
const position = this.tooltipPosition();
|
|
11147
11209
|
const mousePos = this.mousePosition();
|
|
11148
11210
|
const type = this.tooltipType();
|
|
11211
|
+
const container = this.scrollContainer();
|
|
11212
|
+
const viewportHeight = container?.clientHeight || window.innerHeight;
|
|
11149
11213
|
// Estimate tooltip height based on type
|
|
11150
11214
|
let estimatedHeight = 100;
|
|
11151
11215
|
if (type === 'insight') {
|
|
@@ -11159,7 +11223,7 @@ class TooltipContainerComponent {
|
|
|
11159
11223
|
const offset = 20; // Offset from mouse cursor
|
|
11160
11224
|
let topPos = mousePos.y + offset;
|
|
11161
11225
|
// If tooltip would go off bottom of screen, position above cursor
|
|
11162
|
-
if (topPos + estimatedHeight >
|
|
11226
|
+
if (topPos + estimatedHeight > viewportHeight - 10) {
|
|
11163
11227
|
topPos = mousePos.y - estimatedHeight - offset;
|
|
11164
11228
|
}
|
|
11165
11229
|
// Ensure it doesn't go off top
|
|
@@ -11180,7 +11244,7 @@ class TooltipContainerComponent {
|
|
|
11180
11244
|
case 'bottom': {
|
|
11181
11245
|
const bottomPosition = rect.bottom + 8;
|
|
11182
11246
|
// If tooltip would go off bottom of screen, position it above instead
|
|
11183
|
-
if (bottomPosition + estimatedHeight >
|
|
11247
|
+
if (bottomPosition + estimatedHeight > viewportHeight - 10) {
|
|
11184
11248
|
return rect.top - estimatedHeight - 8;
|
|
11185
11249
|
}
|
|
11186
11250
|
return bottomPosition;
|
|
@@ -11189,7 +11253,7 @@ class TooltipContainerComponent {
|
|
|
11189
11253
|
case 'right': {
|
|
11190
11254
|
const centerPosition = rect.top + rect.height / 2 - estimatedHeight / 2;
|
|
11191
11255
|
// Keep within viewport
|
|
11192
|
-
const maxTop =
|
|
11256
|
+
const maxTop = viewportHeight - estimatedHeight - 10;
|
|
11193
11257
|
return Math.max(10, Math.min(centerPosition, maxTop));
|
|
11194
11258
|
}
|
|
11195
11259
|
default:
|
|
@@ -11197,7 +11261,7 @@ class TooltipContainerComponent {
|
|
|
11197
11261
|
}
|
|
11198
11262
|
}
|
|
11199
11263
|
static { this.ɵfac = function TooltipContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TooltipContainerComponent)(); }; }
|
|
11200
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TooltipContainerComponent, selectors: [["symphiq-tooltip-container"]], decls: 1, vars: 1, consts: [[1, "fixed", "z-[100]", "pointer-events-none", 3, "left", "top", "ngClass"], [1, "fixed", "z-[100]", "pointer-events-none", 3, "ngClass"], [1, "rounded-lg", "shadow-2xl", "border", "backdrop-blur-xl", "px-4", "py-3", "max-w-sm", 3, "ngClass"], [1, "text-sm", "space-y-3", 3, "ngClass"], [1, "text-sm", "whitespace-pre-line", "leading-relaxed", 3, "ngClass"], [1, "text-sm", "whitespace-pre-line", 3, "ngClass"], [3, "content", "isLightMode"], [1, "space-y-2"], [1, "font-semibold"], [1, "whitespace-pre-line", "leading-relaxed"]], template: function TooltipContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
11264
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TooltipContainerComponent, selectors: [["symphiq-tooltip-container"]], decls: 1, vars: 1, consts: [[1, "fixed", "z-[100]", "pointer-events-none", 3, "left", "top", "ngClass"], [1, "fixed", "z-[100]", "pointer-events-none", 3, "ngClass"], [1, "rounded-lg", "shadow-2xl", "border", "backdrop-blur-xl", "px-4", "py-3", "max-w-sm", "pointer-events-auto", 3, "mouseenter", "mouseleave", "ngClass"], [1, "text-sm", "space-y-3", 3, "ngClass"], [1, "text-sm", "whitespace-pre-line", "leading-relaxed", 3, "ngClass"], [1, "text-sm", "whitespace-pre-line", 3, "ngClass"], [3, "content", "isLightMode"], [1, "space-y-2"], [1, "font-semibold"], [1, "whitespace-pre-line", "leading-relaxed"]], template: function TooltipContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
11201
11265
|
i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Template, 15, 9, "div", 0);
|
|
11202
11266
|
} if (rf & 2) {
|
|
11203
11267
|
i0.ɵɵconditional(ctx.isVisible() ? 0 : -1);
|
|
@@ -11258,7 +11322,11 @@ class TooltipContainerComponent {
|
|
|
11258
11322
|
[ngClass]="containerClass()"
|
|
11259
11323
|
class="fixed z-[100] pointer-events-none"
|
|
11260
11324
|
@fadeInScale>
|
|
11261
|
-
<div
|
|
11325
|
+
<div
|
|
11326
|
+
[ngClass]="contentClass()"
|
|
11327
|
+
class="rounded-lg shadow-2xl border backdrop-blur-xl px-4 py-3 max-w-sm pointer-events-auto"
|
|
11328
|
+
(mouseenter)="onTooltipMouseEnter()"
|
|
11329
|
+
(mouseleave)="onTooltipMouseLeave()">
|
|
11262
11330
|
@let content = tooltipContent();
|
|
11263
11331
|
@switch (tooltipType()) {
|
|
11264
11332
|
@case ('metric') {
|
|
@@ -11357,7 +11425,7 @@ class TooltipContainerComponent {
|
|
|
11357
11425
|
`
|
|
11358
11426
|
}]
|
|
11359
11427
|
}], () => [], null); })();
|
|
11360
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TooltipContainerComponent, { className: "TooltipContainerComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/tooltip-container.component.ts", lineNumber:
|
|
11428
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TooltipContainerComponent, { className: "TooltipContainerComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/tooltip-container.component.ts", lineNumber: 173 }); })();
|
|
11361
11429
|
|
|
11362
11430
|
function MobileFABComponent_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
11363
11431
|
i0.ɵɵnamespaceSVG();
|
|
@@ -19172,7 +19240,7 @@ class SearchBarComponent {
|
|
|
19172
19240
|
i0.ɵɵconditionalCreate(0, SearchBarComponent_Conditional_0_Template, 17, 10, "div", 1);
|
|
19173
19241
|
} if (rf & 2) {
|
|
19174
19242
|
i0.ɵɵconditional(ctx.searchService.isSearchOpen() ? 0 : -1);
|
|
19175
|
-
} }, dependencies: [CommonModule, i1.NgClass, FormsModule,
|
|
19243
|
+
} }, dependencies: [CommonModule, i1.NgClass, FormsModule, i6.DefaultValueAccessor, i6.NgControlStatus, i6.NgModel], styles: ["[_nghost-%COMP%]{display:contents}"], changeDetection: 0 }); }
|
|
19176
19244
|
}
|
|
19177
19245
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchBarComponent, [{
|
|
19178
19246
|
type: Component,
|
|
@@ -20191,30 +20259,35 @@ class CompetitiveIntelligenceViewComponent {
|
|
|
20191
20259
|
const _c0$4 = ["dashboardContainer"];
|
|
20192
20260
|
const _c1 = () => ({});
|
|
20193
20261
|
const _c2 = () => [1, 2, 3, 4, 5, 6];
|
|
20194
|
-
const _c3 = () => [1, 2, 3
|
|
20262
|
+
const _c3 = () => [1, 2, 3];
|
|
20263
|
+
const _c4 = () => [1, 2, 3, 4];
|
|
20264
|
+
const _c5 = () => [1, 2];
|
|
20195
20265
|
const _forTrack0$1 = ($index, $item) => $item.value;
|
|
20196
|
-
function
|
|
20266
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
20267
|
+
i0.ɵɵelement(0, "div", 16);
|
|
20268
|
+
} }
|
|
20269
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
20197
20270
|
i0.ɵɵnamespaceSVG();
|
|
20198
|
-
i0.ɵɵelementStart(0, "svg",
|
|
20199
|
-
i0.ɵɵelement(1, "path",
|
|
20271
|
+
i0.ɵɵelementStart(0, "svg", 21);
|
|
20272
|
+
i0.ɵɵelement(1, "path", 53);
|
|
20200
20273
|
i0.ɵɵelementEnd();
|
|
20201
20274
|
i0.ɵɵnamespaceHTML();
|
|
20202
20275
|
i0.ɵɵelementStart(2, "span");
|
|
20203
20276
|
i0.ɵɵtext(3, "Compact");
|
|
20204
20277
|
i0.ɵɵelementEnd();
|
|
20205
20278
|
} }
|
|
20206
|
-
function
|
|
20279
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
20207
20280
|
i0.ɵɵnamespaceSVG();
|
|
20208
|
-
i0.ɵɵelementStart(0, "svg",
|
|
20209
|
-
i0.ɵɵelement(1, "path",
|
|
20281
|
+
i0.ɵɵelementStart(0, "svg", 21);
|
|
20282
|
+
i0.ɵɵelement(1, "path", 54);
|
|
20210
20283
|
i0.ɵɵelementEnd();
|
|
20211
20284
|
i0.ɵɵnamespaceHTML();
|
|
20212
20285
|
i0.ɵɵelementStart(2, "span");
|
|
20213
20286
|
i0.ɵɵtext(3, "Expanded");
|
|
20214
20287
|
i0.ɵɵelementEnd();
|
|
20215
20288
|
} }
|
|
20216
|
-
function
|
|
20217
|
-
i0.ɵɵelementStart(0, "option",
|
|
20289
|
+
function SymphiqFunnelAnalysisDashboardComponent_For_39_Template(rf, ctx) { if (rf & 1) {
|
|
20290
|
+
i0.ɵɵelementStart(0, "option", 29);
|
|
20218
20291
|
i0.ɵɵtext(1);
|
|
20219
20292
|
i0.ɵɵelementEnd();
|
|
20220
20293
|
} if (rf & 2) {
|
|
@@ -20223,14 +20296,14 @@ function SymphiqFunnelAnalysisDashboardComponent_For_37_Template(rf, ctx) { if (
|
|
|
20223
20296
|
i0.ɵɵadvance();
|
|
20224
20297
|
i0.ɵɵtextInterpolate(section_r2.label);
|
|
20225
20298
|
} }
|
|
20226
|
-
function
|
|
20227
|
-
i0.ɵɵelementStart(0, "div",
|
|
20299
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_57_Template(rf, ctx) { if (rf & 1) {
|
|
20300
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "span", 55);
|
|
20228
20301
|
i0.ɵɵtext(2, "Revenue:");
|
|
20229
20302
|
i0.ɵɵelementEnd();
|
|
20230
|
-
i0.ɵɵelementStart(3, "span",
|
|
20303
|
+
i0.ɵɵelementStart(3, "span", 56);
|
|
20231
20304
|
i0.ɵɵtext(4);
|
|
20232
20305
|
i0.ɵɵelementEnd();
|
|
20233
|
-
i0.ɵɵelementStart(5, "span",
|
|
20306
|
+
i0.ɵɵelementStart(5, "span", 57);
|
|
20234
20307
|
i0.ɵɵtext(6);
|
|
20235
20308
|
i0.ɵɵelementEnd()();
|
|
20236
20309
|
} if (rf & 2) {
|
|
@@ -20247,20 +20320,20 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_55_Template(rf, ctx
|
|
|
20247
20320
|
i0.ɵɵadvance();
|
|
20248
20321
|
i0.ɵɵtextInterpolate2(" ", ctx_r2.revenueTrend() >= 0 ? "+" : "", "", ctx_r2.revenueTrend().toFixed(1), "% ");
|
|
20249
20322
|
} }
|
|
20250
|
-
function
|
|
20323
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_63_Template(rf, ctx) { if (rf & 1) {
|
|
20251
20324
|
i0.ɵɵnamespaceSVG();
|
|
20252
|
-
i0.ɵɵelementStart(0, "svg",
|
|
20253
|
-
i0.ɵɵelement(1, "path",
|
|
20325
|
+
i0.ɵɵelementStart(0, "svg", 40);
|
|
20326
|
+
i0.ɵɵelement(1, "path", 53);
|
|
20254
20327
|
i0.ɵɵelementEnd();
|
|
20255
20328
|
} }
|
|
20256
|
-
function
|
|
20329
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_64_Template(rf, ctx) { if (rf & 1) {
|
|
20257
20330
|
i0.ɵɵnamespaceSVG();
|
|
20258
|
-
i0.ɵɵelementStart(0, "svg",
|
|
20259
|
-
i0.ɵɵelement(1, "path",
|
|
20331
|
+
i0.ɵɵelementStart(0, "svg", 40);
|
|
20332
|
+
i0.ɵɵelement(1, "path", 54);
|
|
20260
20333
|
i0.ɵɵelementEnd();
|
|
20261
20334
|
} }
|
|
20262
|
-
function
|
|
20263
|
-
i0.ɵɵelementStart(0, "option",
|
|
20335
|
+
function SymphiqFunnelAnalysisDashboardComponent_For_68_Template(rf, ctx) { if (rf & 1) {
|
|
20336
|
+
i0.ɵɵelementStart(0, "option", 29);
|
|
20264
20337
|
i0.ɵɵtext(1);
|
|
20265
20338
|
i0.ɵɵelementEnd();
|
|
20266
20339
|
} if (rf & 2) {
|
|
@@ -20269,28 +20342,28 @@ function SymphiqFunnelAnalysisDashboardComponent_For_66_Template(rf, ctx) { if (
|
|
|
20269
20342
|
i0.ɵɵadvance();
|
|
20270
20343
|
i0.ɵɵtextInterpolate(section_r4.label);
|
|
20271
20344
|
} }
|
|
20272
|
-
function
|
|
20345
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_69_Template(rf, ctx) { if (rf & 1) {
|
|
20273
20346
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
20274
|
-
i0.ɵɵelementStart(0, "div",
|
|
20347
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "div", 34)(2, "div", 35)(3, "div", 58);
|
|
20275
20348
|
i0.ɵɵnamespaceSVG();
|
|
20276
|
-
i0.ɵɵelementStart(4, "svg",
|
|
20277
|
-
i0.ɵɵelement(5, "path",
|
|
20349
|
+
i0.ɵɵelementStart(4, "svg", 59);
|
|
20350
|
+
i0.ɵɵelement(5, "path", 22);
|
|
20278
20351
|
i0.ɵɵelementEnd();
|
|
20279
20352
|
i0.ɵɵnamespaceHTML();
|
|
20280
|
-
i0.ɵɵelementStart(6, "div",
|
|
20353
|
+
i0.ɵɵelementStart(6, "div", 60)(7, "span", 61);
|
|
20281
20354
|
i0.ɵɵtext(8, "Showing:");
|
|
20282
20355
|
i0.ɵɵelementEnd();
|
|
20283
|
-
i0.ɵɵelementStart(9, "span",
|
|
20356
|
+
i0.ɵɵelementStart(9, "span", 62);
|
|
20284
20357
|
i0.ɵɵtext(10);
|
|
20285
20358
|
i0.ɵɵelementEnd();
|
|
20286
|
-
i0.ɵɵelementStart(11, "span",
|
|
20359
|
+
i0.ɵɵelementStart(11, "span", 63);
|
|
20287
20360
|
i0.ɵɵtext(12);
|
|
20288
20361
|
i0.ɵɵelementEnd()()();
|
|
20289
|
-
i0.ɵɵelementStart(13, "button",
|
|
20290
|
-
i0.ɵɵlistener("click", function
|
|
20362
|
+
i0.ɵɵelementStart(13, "button", 64);
|
|
20363
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_69_Template_button_click_13_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.clearSearchResult(); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
20291
20364
|
i0.ɵɵnamespaceSVG();
|
|
20292
|
-
i0.ɵɵelementStart(14, "svg",
|
|
20293
|
-
i0.ɵɵelement(15, "path",
|
|
20365
|
+
i0.ɵɵelementStart(14, "svg", 40);
|
|
20366
|
+
i0.ɵɵelement(15, "path", 65);
|
|
20294
20367
|
i0.ɵɵelementEnd()()()()();
|
|
20295
20368
|
} if (rf & 2) {
|
|
20296
20369
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -20310,133 +20383,126 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_67_Template(rf, ctx
|
|
|
20310
20383
|
i0.ɵɵadvance();
|
|
20311
20384
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-blue-600 hover:text-blue-800 hover:bg-blue-100" : "text-blue-400 hover:text-blue-200 hover:bg-blue-800/50");
|
|
20312
20385
|
} }
|
|
20313
|
-
function
|
|
20386
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_71_Template(rf, ctx) { if (rf & 1) {
|
|
20314
20387
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
20315
|
-
i0.ɵɵelementStart(0, "button",
|
|
20316
|
-
i0.ɵɵlistener("click", function
|
|
20388
|
+
i0.ɵɵelementStart(0, "button", 66);
|
|
20389
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_71_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.scrollToTop()); });
|
|
20317
20390
|
i0.ɵɵelementEnd();
|
|
20318
20391
|
} if (rf & 2) {
|
|
20319
20392
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
20320
20393
|
i0.ɵɵproperty("title", "Scroll to Top")("ngClass", ctx_r2.isLightMode() ? "bg-slate-300 hover:bg-blue-500" : "bg-slate-600 hover:bg-blue-400");
|
|
20321
20394
|
} }
|
|
20322
|
-
function
|
|
20395
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_72_Template(rf, ctx) { if (rf & 1) {
|
|
20323
20396
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
20324
|
-
i0.ɵɵelementStart(0, "button",
|
|
20325
|
-
i0.ɵɵlistener("click", function
|
|
20397
|
+
i0.ɵɵelementStart(0, "button", 66);
|
|
20398
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_72_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.scrollToSection("insights-section")); });
|
|
20326
20399
|
i0.ɵɵelementEnd();
|
|
20327
20400
|
} if (rf & 2) {
|
|
20328
20401
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
20329
20402
|
i0.ɵɵproperty("title", "Key Insights")("ngClass", ctx_r2.isLightMode() ? "bg-slate-300 hover:bg-blue-500" : "bg-slate-600 hover:bg-blue-400");
|
|
20330
20403
|
} }
|
|
20331
|
-
function
|
|
20404
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_73_Template(rf, ctx) { if (rf & 1) {
|
|
20332
20405
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
20333
|
-
i0.ɵɵelementStart(0, "button",
|
|
20334
|
-
i0.ɵɵlistener("click", function
|
|
20406
|
+
i0.ɵɵelementStart(0, "button", 66);
|
|
20407
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_73_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.scrollToSection("metrics-section")); });
|
|
20335
20408
|
i0.ɵɵelementEnd();
|
|
20336
20409
|
} if (rf & 2) {
|
|
20337
20410
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
20338
20411
|
i0.ɵɵproperty("title", "Performance Metrics")("ngClass", ctx_r2.isLightMode() ? "bg-slate-300 hover:bg-blue-500" : "bg-slate-600 hover:bg-blue-400");
|
|
20339
20412
|
} }
|
|
20340
|
-
function
|
|
20413
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_74_Template(rf, ctx) { if (rf & 1) {
|
|
20341
20414
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
20342
|
-
i0.ɵɵelementStart(0, "button",
|
|
20343
|
-
i0.ɵɵlistener("click", function
|
|
20415
|
+
i0.ɵɵelementStart(0, "button", 66);
|
|
20416
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_74_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.scrollToSection("breakdowns-section")); });
|
|
20344
20417
|
i0.ɵɵelementEnd();
|
|
20345
20418
|
} if (rf & 2) {
|
|
20346
20419
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
20347
20420
|
i0.ɵɵproperty("title", "Performance Breakdowns")("ngClass", ctx_r2.isLightMode() ? "bg-slate-300 hover:bg-blue-500" : "bg-slate-600 hover:bg-blue-400");
|
|
20348
20421
|
} }
|
|
20349
|
-
function
|
|
20422
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_75_Template(rf, ctx) { if (rf & 1) {
|
|
20350
20423
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
20351
|
-
i0.ɵɵelementStart(0, "button",
|
|
20352
|
-
i0.ɵɵlistener("click", function
|
|
20424
|
+
i0.ɵɵelementStart(0, "button", 66);
|
|
20425
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_75_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.scrollToSection("competitive-section")); });
|
|
20353
20426
|
i0.ɵɵelementEnd();
|
|
20354
20427
|
} if (rf & 2) {
|
|
20355
20428
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
20356
20429
|
i0.ɵɵproperty("title", "Competitive Intelligence")("ngClass", ctx_r2.isLightMode() ? "bg-slate-300 hover:bg-indigo-500" : "bg-slate-600 hover:bg-indigo-400");
|
|
20357
20430
|
} }
|
|
20358
|
-
function
|
|
20359
|
-
i0.ɵɵelementStart(0, "div",
|
|
20360
|
-
i0.ɵɵelement(
|
|
20361
|
-
i0.ɵɵ
|
|
20362
|
-
|
|
20363
|
-
|
|
20364
|
-
i0.ɵɵ
|
|
20365
|
-
i0.ɵɵ
|
|
20366
|
-
} }
|
|
20367
|
-
function SymphiqFunnelAnalysisDashboardComponent_Conditional_77_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20368
|
-
i0.ɵɵelementStart(0, "div", 67)(1, "div", 78);
|
|
20369
|
-
i0.ɵɵelement(2, "div", 79);
|
|
20431
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
20432
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 69)(2, "div", 14);
|
|
20433
|
+
i0.ɵɵelement(3, "symphiq-skeleton-loader", 70);
|
|
20434
|
+
i0.ɵɵelementStart(4, "div", 71);
|
|
20435
|
+
i0.ɵɵelement(5, "symphiq-skeleton-loader", 70)(6, "symphiq-skeleton-loader", 70);
|
|
20436
|
+
i0.ɵɵelementEnd()();
|
|
20437
|
+
i0.ɵɵelementStart(7, "div", 72);
|
|
20438
|
+
i0.ɵɵelement(8, "symphiq-skeleton-loader", 70)(9, "symphiq-skeleton-loader", 70)(10, "symphiq-skeleton-loader", 70);
|
|
20370
20439
|
i0.ɵɵelementEnd();
|
|
20371
|
-
i0.ɵɵelementStart(
|
|
20372
|
-
i0.ɵɵ
|
|
20373
|
-
i0.ɵɵ
|
|
20374
|
-
i0.ɵɵelement(6, "path", 83);
|
|
20375
|
-
i0.ɵɵelementEnd()()()();
|
|
20440
|
+
i0.ɵɵelementStart(11, "div", 73);
|
|
20441
|
+
i0.ɵɵelement(12, "symphiq-skeleton-loader", 70)(13, "symphiq-skeleton-loader", 70);
|
|
20442
|
+
i0.ɵɵelementEnd()()();
|
|
20376
20443
|
} if (rf & 2) {
|
|
20377
20444
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
20445
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-white border-slate-200" : "bg-slate-800 border-slate-700");
|
|
20446
|
+
i0.ɵɵadvance(3);
|
|
20447
|
+
i0.ɵɵproperty("width", "48px")("height", "48px")("isLightMode", ctx_r2.isLightMode());
|
|
20378
20448
|
i0.ɵɵadvance(2);
|
|
20379
|
-
i0.ɵɵproperty("
|
|
20449
|
+
i0.ɵɵproperty("width", "40%")("height", "32px")("isLightMode", ctx_r2.isLightMode());
|
|
20450
|
+
i0.ɵɵadvance();
|
|
20451
|
+
i0.ɵɵproperty("width", "60%")("height", "20px")("isLightMode", ctx_r2.isLightMode());
|
|
20380
20452
|
i0.ɵɵadvance(2);
|
|
20381
|
-
i0.ɵɵproperty("
|
|
20453
|
+
i0.ɵɵproperty("width", "100%")("height", "18px")("isLightMode", ctx_r2.isLightMode());
|
|
20382
20454
|
i0.ɵɵadvance();
|
|
20383
|
-
i0.ɵɵproperty("
|
|
20384
|
-
} }
|
|
20385
|
-
function SymphiqFunnelAnalysisDashboardComponent_Conditional_77_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20386
|
-
i0.ɵɵelementStart(0, "div", 85);
|
|
20387
|
-
i0.ɵɵelement(1, "symphiq-funnel-analysis-insight-card", 86);
|
|
20388
|
-
i0.ɵɵelementEnd();
|
|
20389
|
-
} if (rf & 2) {
|
|
20390
|
-
const insight_r11 = ctx.$implicit;
|
|
20391
|
-
const $index_r12 = ctx.$index;
|
|
20392
|
-
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20393
|
-
i0.ɵɵclassMap(ctx_r2.getInsightCardClass(insight_r11));
|
|
20394
|
-
i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r12 * 0.1 + "s");
|
|
20395
|
-
i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r12);
|
|
20455
|
+
i0.ɵɵproperty("width", "95%")("height", "18px")("isLightMode", ctx_r2.isLightMode());
|
|
20396
20456
|
i0.ɵɵadvance();
|
|
20397
|
-
i0.ɵɵproperty("
|
|
20457
|
+
i0.ɵɵproperty("width", "90%")("height", "18px")("isLightMode", ctx_r2.isLightMode());
|
|
20458
|
+
i0.ɵɵadvance(2);
|
|
20459
|
+
i0.ɵɵproperty("width", "100%")("height", "200px")("isLightMode", ctx_r2.isLightMode());
|
|
20460
|
+
i0.ɵɵadvance();
|
|
20461
|
+
i0.ɵɵproperty("width", "100%")("height", "200px")("isLightMode", ctx_r2.isLightMode());
|
|
20398
20462
|
} }
|
|
20399
|
-
function
|
|
20400
|
-
i0.ɵɵ
|
|
20401
|
-
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_77_Conditional_14_For_2_Template, 2, 13, "div", 84, i0.ɵɵrepeaterTrackByIndex);
|
|
20402
|
-
i0.ɵɵelementEnd();
|
|
20463
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
20464
|
+
i0.ɵɵelement(0, "symphiq-funnel-analysis-overall-assessment", 68);
|
|
20403
20465
|
} if (rf & 2) {
|
|
20404
20466
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
20405
|
-
i0.ɵɵ
|
|
20406
|
-
i0.ɵɵrepeater(ctx_r2.insights());
|
|
20467
|
+
i0.ɵɵproperty("assessment", ctx_r2.performanceOverview().overallAssessment || i0.ɵɵpureFunction0(8, _c1))("revenueMetric", ctx_r2.revenueMetric())("charts", ctx_r2.chartsForItem("OVERALL_ASSESSMENT"))("metrics", ctx_r2.allMetrics())("isLightMode", ctx_r2.isLightMode())("isLoading", ctx_r2.isOverallAssessmentLoading())("isCompactMode", ctx_r2.viewModeService.isCompact())("isChartsLoading", ctx_r2.areChartsLoading());
|
|
20407
20468
|
} }
|
|
20408
|
-
function
|
|
20409
|
-
i0.ɵɵelementStart(0, "div",
|
|
20410
|
-
i0.ɵɵ
|
|
20469
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Template(rf, ctx) { if (rf & 1) {
|
|
20470
|
+
i0.ɵɵelementStart(0, "div", 48);
|
|
20471
|
+
i0.ɵɵconditionalCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Conditional_1_Template, 14, 25, "div", 67)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Conditional_2_Template, 1, 9, "symphiq-funnel-analysis-overall-assessment", 68);
|
|
20411
20472
|
i0.ɵɵelementEnd();
|
|
20412
20473
|
} if (rf & 2) {
|
|
20413
|
-
const
|
|
20414
|
-
const $index_r14 = ctx.$index;
|
|
20415
|
-
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20416
|
-
i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r14 * 0.1 + "s");
|
|
20417
|
-
i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r14);
|
|
20474
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
20418
20475
|
i0.ɵɵadvance();
|
|
20419
|
-
i0.ɵɵ
|
|
20476
|
+
i0.ɵɵconditional(ctx_r2.isDataLoading() ? 1 : 2);
|
|
20420
20477
|
} }
|
|
20421
|
-
function
|
|
20422
|
-
i0.ɵɵelementStart(0, "div",
|
|
20423
|
-
i0.ɵɵ
|
|
20478
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20479
|
+
i0.ɵɵelementStart(0, "div", 74)(1, "div", 85);
|
|
20480
|
+
i0.ɵɵelement(2, "div", 86);
|
|
20424
20481
|
i0.ɵɵelementEnd();
|
|
20482
|
+
i0.ɵɵelementStart(3, "div", 87)(4, "div", 88);
|
|
20483
|
+
i0.ɵɵnamespaceSVG();
|
|
20484
|
+
i0.ɵɵelementStart(5, "svg", 89);
|
|
20485
|
+
i0.ɵɵelement(6, "path", 90);
|
|
20486
|
+
i0.ɵɵelementEnd()()()();
|
|
20425
20487
|
} if (rf & 2) {
|
|
20426
20488
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
20489
|
+
i0.ɵɵadvance(2);
|
|
20490
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "from-transparent via-blue-500/30 to-transparent" : "from-transparent via-blue-400/20 to-transparent");
|
|
20491
|
+
i0.ɵɵadvance(2);
|
|
20492
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-gradient-to-br from-blue-50 to-indigo-50 border border-blue-200/50 shadow-lg shadow-blue-500/10" : "bg-gradient-to-br from-slate-900 to-slate-800 border border-blue-500/20 shadow-lg shadow-blue-500/5");
|
|
20427
20493
|
i0.ɵɵadvance();
|
|
20428
|
-
i0.ɵɵ
|
|
20494
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-blue-500" : "text-blue-400");
|
|
20429
20495
|
} }
|
|
20430
|
-
function
|
|
20431
|
-
i0.ɵɵelementStart(0, "div",
|
|
20432
|
-
i0.ɵɵelement(3, "symphiq-skeleton-loader",
|
|
20496
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20497
|
+
i0.ɵɵelementStart(0, "div", 91)(1, "div", 92)(2, "div", 93);
|
|
20498
|
+
i0.ɵɵelement(3, "symphiq-skeleton-loader", 70)(4, "symphiq-skeleton-loader", 70);
|
|
20433
20499
|
i0.ɵɵelementEnd();
|
|
20434
|
-
i0.ɵɵelement(5, "symphiq-skeleton-loader",
|
|
20435
|
-
i0.ɵɵelementStart(8, "div",
|
|
20436
|
-
i0.ɵɵelement(9, "symphiq-skeleton-loader",
|
|
20500
|
+
i0.ɵɵelement(5, "symphiq-skeleton-loader", 70)(6, "symphiq-skeleton-loader", 70)(7, "symphiq-skeleton-loader", 70);
|
|
20501
|
+
i0.ɵɵelementStart(8, "div", 94);
|
|
20502
|
+
i0.ɵɵelement(9, "symphiq-skeleton-loader", 70)(10, "symphiq-skeleton-loader", 70);
|
|
20437
20503
|
i0.ɵɵelementEnd();
|
|
20438
|
-
i0.ɵɵelementStart(11, "div",
|
|
20439
|
-
i0.ɵɵelement(12, "symphiq-skeleton-loader",
|
|
20504
|
+
i0.ɵɵelementStart(11, "div", 95);
|
|
20505
|
+
i0.ɵɵelement(12, "symphiq-skeleton-loader", 70)(13, "symphiq-skeleton-loader", 70);
|
|
20440
20506
|
i0.ɵɵelementEnd()()();
|
|
20441
20507
|
} if (rf & 2) {
|
|
20442
20508
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
@@ -20460,31 +20526,76 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_77_Conditional_16_F
|
|
|
20460
20526
|
i0.ɵɵadvance();
|
|
20461
20527
|
i0.ɵɵproperty("width", "80px")("height", "28px")("isLightMode", ctx_r2.isLightMode());
|
|
20462
20528
|
} }
|
|
20463
|
-
function
|
|
20464
|
-
i0.ɵɵelementStart(0, "div",
|
|
20465
|
-
i0.ɵɵrepeaterCreate(1,
|
|
20529
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
20530
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
20531
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_14_For_2_Template, 14, 28, "div", 91, i0.ɵɵrepeaterTrackByIdentity);
|
|
20466
20532
|
i0.ɵɵelementEnd();
|
|
20467
20533
|
} if (rf & 2) {
|
|
20468
20534
|
i0.ɵɵadvance();
|
|
20469
20535
|
i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c2));
|
|
20470
20536
|
} }
|
|
20471
|
-
function
|
|
20472
|
-
i0.ɵɵ
|
|
20473
|
-
i0.ɵɵ
|
|
20474
|
-
i0.ɵɵ
|
|
20475
|
-
|
|
20537
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_15_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20538
|
+
i0.ɵɵelementStart(0, "div", 97);
|
|
20539
|
+
i0.ɵɵelement(1, "symphiq-funnel-analysis-insight-card", 98);
|
|
20540
|
+
i0.ɵɵelementEnd();
|
|
20541
|
+
} if (rf & 2) {
|
|
20542
|
+
const insight_r11 = ctx.$implicit;
|
|
20543
|
+
const $index_r12 = ctx.$index;
|
|
20544
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20545
|
+
i0.ɵɵclassMap(ctx_r2.getInsightCardClass(insight_r11));
|
|
20546
|
+
i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r12 * 0.1 + "s");
|
|
20547
|
+
i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r12);
|
|
20548
|
+
i0.ɵɵadvance();
|
|
20549
|
+
i0.ɵɵproperty("insight", insight_r11)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r11))("allCharts", ctx_r2.allCharts())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", false);
|
|
20550
|
+
} }
|
|
20551
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
20552
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
20553
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_15_For_2_Template, 2, 13, "div", 96, i0.ɵɵrepeaterTrackByIndex);
|
|
20554
|
+
i0.ɵɵelementEnd();
|
|
20555
|
+
} if (rf & 2) {
|
|
20556
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
20557
|
+
i0.ɵɵadvance();
|
|
20558
|
+
i0.ɵɵrepeater(ctx_r2.insights());
|
|
20559
|
+
} }
|
|
20560
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20561
|
+
i0.ɵɵelementStart(0, "div", 97);
|
|
20562
|
+
i0.ɵɵelement(1, "symphiq-funnel-analysis-insight-card", 98);
|
|
20563
|
+
i0.ɵɵelementEnd();
|
|
20564
|
+
} if (rf & 2) {
|
|
20565
|
+
const insight_r13 = ctx.$implicit;
|
|
20566
|
+
const $index_r14 = ctx.$index;
|
|
20567
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20568
|
+
i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r14 * 0.1 + "s");
|
|
20569
|
+
i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r14);
|
|
20570
|
+
i0.ɵɵadvance();
|
|
20571
|
+
i0.ɵɵproperty("insight", insight_r13)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r13))("allCharts", ctx_r2.allCharts())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true);
|
|
20572
|
+
} }
|
|
20573
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
20574
|
+
i0.ɵɵelementStart(0, "div", 84);
|
|
20575
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_16_For_2_Template, 2, 11, "div", 99, i0.ɵɵrepeaterTrackByIndex);
|
|
20576
|
+
i0.ɵɵelementEnd();
|
|
20577
|
+
} if (rf & 2) {
|
|
20578
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
20579
|
+
i0.ɵɵadvance();
|
|
20580
|
+
i0.ɵɵrepeater(ctx_r2.insights());
|
|
20581
|
+
} }
|
|
20582
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Template(rf, ctx) { if (rf & 1) {
|
|
20583
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_0_Template, 7, 3, "div", 74);
|
|
20584
|
+
i0.ɵɵelementStart(1, "section", 75);
|
|
20585
|
+
i0.ɵɵelement(2, "div", 76);
|
|
20586
|
+
i0.ɵɵelementStart(3, "div", 77)(4, "div", 78)(5, "div", 14)(6, "div", 79)(7, "div", 14);
|
|
20476
20587
|
i0.ɵɵnamespaceSVG();
|
|
20477
|
-
i0.ɵɵelementStart(8, "svg",
|
|
20478
|
-
i0.ɵɵelement(9, "path",
|
|
20588
|
+
i0.ɵɵelementStart(8, "svg", 80);
|
|
20589
|
+
i0.ɵɵelement(9, "path", 81);
|
|
20479
20590
|
i0.ɵɵelementEnd();
|
|
20480
20591
|
i0.ɵɵnamespaceHTML();
|
|
20481
|
-
i0.ɵɵelementStart(10, "h2",
|
|
20592
|
+
i0.ɵɵelementStart(10, "h2", 82);
|
|
20482
20593
|
i0.ɵɵtext(11, "Key Insights");
|
|
20483
20594
|
i0.ɵɵelementEnd()()()();
|
|
20484
|
-
i0.ɵɵelementStart(12, "span",
|
|
20595
|
+
i0.ɵɵelementStart(12, "span", 32);
|
|
20485
20596
|
i0.ɵɵtext(13);
|
|
20486
20597
|
i0.ɵɵelementEnd()();
|
|
20487
|
-
i0.ɵɵconditionalCreate(14,
|
|
20598
|
+
i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_14_Template, 3, 1, "div", 83)(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_15_Template, 3, 0, "div", 83)(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_16_Template, 3, 0, "div", 84);
|
|
20488
20599
|
i0.ɵɵelementEnd()();
|
|
20489
20600
|
} if (rf & 2) {
|
|
20490
20601
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -20502,16 +20613,16 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_77_Template(rf, ctx
|
|
|
20502
20613
|
i0.ɵɵadvance();
|
|
20503
20614
|
i0.ɵɵtextInterpolate1("", ctx_r2.insights().length, " insights");
|
|
20504
20615
|
i0.ɵɵadvance();
|
|
20505
|
-
i0.ɵɵconditional(ctx_r2.viewModeService.isExpanded() ? 14 :
|
|
20616
|
+
i0.ɵɵconditional(ctx_r2.isDataLoading() || ctx_r2.viewModeService.isExpanded() && ctx_r2.viewModeService.getIsTransitioning() ? 14 : ctx_r2.viewModeService.isExpanded() ? 15 : 16);
|
|
20506
20617
|
} }
|
|
20507
|
-
function
|
|
20508
|
-
i0.ɵɵelementStart(0, "div",
|
|
20509
|
-
i0.ɵɵelement(2, "div",
|
|
20618
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20619
|
+
i0.ɵɵelementStart(0, "div", 100)(1, "div", 85);
|
|
20620
|
+
i0.ɵɵelement(2, "div", 86);
|
|
20510
20621
|
i0.ɵɵelementEnd();
|
|
20511
|
-
i0.ɵɵelementStart(3, "div",
|
|
20622
|
+
i0.ɵɵelementStart(3, "div", 87)(4, "div", 88);
|
|
20512
20623
|
i0.ɵɵnamespaceSVG();
|
|
20513
|
-
i0.ɵɵelementStart(5, "svg",
|
|
20514
|
-
i0.ɵɵelement(6, "path",
|
|
20624
|
+
i0.ɵɵelementStart(5, "svg", 89);
|
|
20625
|
+
i0.ɵɵelement(6, "path", 116);
|
|
20515
20626
|
i0.ɵɵelementEnd()()()();
|
|
20516
20627
|
} if (rf & 2) {
|
|
20517
20628
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -20522,13 +20633,13 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Conditional_0_Te
|
|
|
20522
20633
|
i0.ɵɵadvance();
|
|
20523
20634
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-emerald-500" : "text-emerald-400");
|
|
20524
20635
|
} }
|
|
20525
|
-
function
|
|
20526
|
-
i0.ɵɵelementStart(0, "div",
|
|
20527
|
-
i0.ɵɵelement(1, "div",
|
|
20636
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
20637
|
+
i0.ɵɵelementStart(0, "div", 107);
|
|
20638
|
+
i0.ɵɵelement(1, "div", 117);
|
|
20528
20639
|
i0.ɵɵelementEnd();
|
|
20529
20640
|
} }
|
|
20530
|
-
function
|
|
20531
|
-
i0.ɵɵelementStart(0, "option",
|
|
20641
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_17_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20642
|
+
i0.ɵɵelementStart(0, "option", 118);
|
|
20532
20643
|
i0.ɵɵtext(1);
|
|
20533
20644
|
i0.ɵɵelementEnd();
|
|
20534
20645
|
} if (rf & 2) {
|
|
@@ -20537,8 +20648,8 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_For_17_Condition
|
|
|
20537
20648
|
i0.ɵɵadvance();
|
|
20538
20649
|
i0.ɵɵtextInterpolate(cat_r16.label);
|
|
20539
20650
|
} }
|
|
20540
|
-
function
|
|
20541
|
-
i0.ɵɵelementStart(0, "option",
|
|
20651
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
20652
|
+
i0.ɵɵelementStart(0, "option", 29);
|
|
20542
20653
|
i0.ɵɵtext(1);
|
|
20543
20654
|
i0.ɵɵelementEnd();
|
|
20544
20655
|
} if (rf & 2) {
|
|
@@ -20547,24 +20658,24 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_For_17_Condition
|
|
|
20547
20658
|
i0.ɵɵadvance();
|
|
20548
20659
|
i0.ɵɵtextInterpolate(cat_r16.label);
|
|
20549
20660
|
} }
|
|
20550
|
-
function
|
|
20551
|
-
i0.ɵɵconditionalCreate(0,
|
|
20661
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_17_Template(rf, ctx) { if (rf & 1) {
|
|
20662
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_17_Conditional_0_Template, 2, 2, "option", 118)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_17_Conditional_1_Template, 2, 2, "option", 29);
|
|
20552
20663
|
} if (rf & 2) {
|
|
20553
20664
|
const cat_r16 = ctx.$implicit;
|
|
20554
20665
|
i0.ɵɵconditional(cat_r16.divider ? 0 : 1);
|
|
20555
20666
|
} }
|
|
20556
|
-
function
|
|
20667
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
20557
20668
|
i0.ɵɵnamespaceSVG();
|
|
20558
|
-
i0.ɵɵelement(0, "path",
|
|
20669
|
+
i0.ɵɵelement(0, "path", 110);
|
|
20559
20670
|
} }
|
|
20560
|
-
function
|
|
20671
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
20561
20672
|
i0.ɵɵnamespaceSVG();
|
|
20562
|
-
i0.ɵɵelement(0, "path",
|
|
20673
|
+
i0.ɵɵelement(0, "path", 111);
|
|
20563
20674
|
} }
|
|
20564
|
-
function
|
|
20675
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_27_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20565
20676
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
20566
|
-
i0.ɵɵelementStart(0, "button",
|
|
20567
|
-
i0.ɵɵlistener("click", function
|
|
20677
|
+
i0.ɵɵelementStart(0, "button", 120);
|
|
20678
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_27_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const cat_r18 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeCategoryFilter(cat_r18.value)); });
|
|
20568
20679
|
i0.ɵɵtext(1);
|
|
20569
20680
|
i0.ɵɵelementEnd();
|
|
20570
20681
|
} if (rf & 2) {
|
|
@@ -20575,71 +20686,110 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_For_27_Condition
|
|
|
20575
20686
|
i0.ɵɵadvance();
|
|
20576
20687
|
i0.ɵɵtextInterpolate1(" ", cat_r18.label, " ");
|
|
20577
20688
|
} }
|
|
20578
|
-
function
|
|
20579
|
-
i0.ɵɵconditionalCreate(0,
|
|
20689
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_27_Template(rf, ctx) { if (rf & 1) {
|
|
20690
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_27_Conditional_0_Template, 2, 4, "button", 119);
|
|
20580
20691
|
} if (rf & 2) {
|
|
20581
20692
|
const cat_r18 = ctx.$implicit;
|
|
20582
20693
|
i0.ɵɵconditional(!cat_r18.divider ? 0 : -1);
|
|
20583
20694
|
} }
|
|
20584
|
-
function
|
|
20585
|
-
i0.ɵɵ
|
|
20586
|
-
|
|
20695
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_28_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
20696
|
+
i0.ɵɵelement(0, "symphiq-skeleton-loader", 70);
|
|
20697
|
+
} if (rf & 2) {
|
|
20698
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
20699
|
+
i0.ɵɵproperty("width", "100%")("height", "120px")("isLightMode", ctx_r2.isLightMode());
|
|
20700
|
+
} }
|
|
20701
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_28_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20702
|
+
i0.ɵɵelementStart(0, "div", 121)(1, "div", 122)(2, "div", 14);
|
|
20703
|
+
i0.ɵɵelement(3, "symphiq-skeleton-loader", 70);
|
|
20704
|
+
i0.ɵɵelementStart(4, "div", 72);
|
|
20705
|
+
i0.ɵɵelement(5, "symphiq-skeleton-loader", 70)(6, "symphiq-skeleton-loader", 70);
|
|
20706
|
+
i0.ɵɵelementEnd()();
|
|
20707
|
+
i0.ɵɵelement(7, "symphiq-skeleton-loader", 70);
|
|
20708
|
+
i0.ɵɵelementEnd();
|
|
20709
|
+
i0.ɵɵelementStart(8, "div", 123);
|
|
20710
|
+
i0.ɵɵrepeaterCreate(9, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_28_For_2_For_10_Template, 1, 3, "symphiq-skeleton-loader", 70, i0.ɵɵrepeaterTrackByIdentity);
|
|
20711
|
+
i0.ɵɵelementEnd()();
|
|
20712
|
+
} if (rf & 2) {
|
|
20713
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20714
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-white border-slate-200" : "bg-slate-800 border-slate-700");
|
|
20715
|
+
i0.ɵɵadvance(3);
|
|
20716
|
+
i0.ɵɵproperty("width", "40px")("height", "40px")("isLightMode", ctx_r2.isLightMode());
|
|
20717
|
+
i0.ɵɵadvance(2);
|
|
20718
|
+
i0.ɵɵproperty("width", "150px")("height", "24px")("isLightMode", ctx_r2.isLightMode());
|
|
20719
|
+
i0.ɵɵadvance();
|
|
20720
|
+
i0.ɵɵproperty("width", "100px")("height", "16px")("isLightMode", ctx_r2.isLightMode());
|
|
20721
|
+
i0.ɵɵadvance();
|
|
20722
|
+
i0.ɵɵproperty("width", "80px")("height", "36px")("isLightMode", ctx_r2.isLightMode());
|
|
20723
|
+
i0.ɵɵadvance(2);
|
|
20724
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(13, _c4));
|
|
20725
|
+
} }
|
|
20726
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
20727
|
+
i0.ɵɵelementStart(0, "div", 114);
|
|
20728
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_28_For_2_Template, 11, 14, "div", 121, i0.ɵɵrepeaterTrackByIdentity);
|
|
20729
|
+
i0.ɵɵelementEnd();
|
|
20730
|
+
} if (rf & 2) {
|
|
20731
|
+
i0.ɵɵadvance();
|
|
20732
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c3));
|
|
20733
|
+
} }
|
|
20734
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20735
|
+
i0.ɵɵelementStart(0, "div", 130);
|
|
20736
|
+
i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 131);
|
|
20587
20737
|
i0.ɵɵelementEnd();
|
|
20588
20738
|
} if (rf & 2) {
|
|
20589
20739
|
const metric_r19 = ctx.$implicit;
|
|
20590
|
-
const ɵ$
|
|
20591
|
-
const ɵ$
|
|
20592
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
20593
|
-
i0.ɵɵclassMap(ctx_r2.getBentoCardClass(metric_r19, ɵ$
|
|
20594
|
-
i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$
|
|
20740
|
+
const ɵ$index_447_r20 = ctx.$index;
|
|
20741
|
+
const ɵ$index_438_r21 = i0.ɵɵnextContext(3).$index;
|
|
20742
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20743
|
+
i0.ɵɵclassMap(ctx_r2.getBentoCardClass(metric_r19, ɵ$index_447_r20));
|
|
20744
|
+
i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$index_438_r21 * 0.15 + ɵ$index_447_r20 * 0.08 + "s");
|
|
20595
20745
|
i0.ɵɵadvance();
|
|
20596
20746
|
i0.ɵɵproperty("metric", metric_r19)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r19))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.funnelAnalysis())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", false);
|
|
20597
20747
|
} }
|
|
20598
|
-
function
|
|
20599
|
-
i0.ɵɵelementStart(0, "div",
|
|
20600
|
-
i0.ɵɵrepeaterCreate(1,
|
|
20748
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20749
|
+
i0.ɵɵelementStart(0, "div", 127);
|
|
20750
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_0_For_2_Template, 2, 12, "div", 129, i0.ɵɵrepeaterTrackByIndex);
|
|
20601
20751
|
i0.ɵɵelementEnd();
|
|
20602
20752
|
} if (rf & 2) {
|
|
20603
20753
|
const funnelGroup_r22 = i0.ɵɵnextContext(2).$implicit;
|
|
20604
20754
|
i0.ɵɵadvance();
|
|
20605
20755
|
i0.ɵɵrepeater(funnelGroup_r22.relatedMetrics);
|
|
20606
20756
|
} }
|
|
20607
|
-
function
|
|
20608
|
-
i0.ɵɵelementStart(0, "div",
|
|
20609
|
-
i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card",
|
|
20757
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20758
|
+
i0.ɵɵelementStart(0, "div", 130);
|
|
20759
|
+
i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 126);
|
|
20610
20760
|
i0.ɵɵelementEnd();
|
|
20611
20761
|
} if (rf & 2) {
|
|
20612
20762
|
const metric_r23 = ctx.$implicit;
|
|
20613
|
-
const ɵ$
|
|
20614
|
-
const ɵ$
|
|
20615
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
20616
|
-
i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$
|
|
20763
|
+
const ɵ$index_455_r24 = ctx.$index;
|
|
20764
|
+
const ɵ$index_438_r21 = i0.ɵɵnextContext(3).$index;
|
|
20765
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20766
|
+
i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$index_438_r21 * 0.15 + ɵ$index_455_r24 * 0.08 + "s");
|
|
20617
20767
|
i0.ɵɵadvance();
|
|
20618
20768
|
i0.ɵɵproperty("metric", metric_r23)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r23))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.funnelAnalysis())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true);
|
|
20619
20769
|
} }
|
|
20620
|
-
function
|
|
20621
|
-
i0.ɵɵelementStart(0, "div",
|
|
20622
|
-
i0.ɵɵrepeaterCreate(1,
|
|
20770
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
20771
|
+
i0.ɵɵelementStart(0, "div", 128);
|
|
20772
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_1_For_2_Template, 2, 10, "div", 132, i0.ɵɵrepeaterTrackByIndex);
|
|
20623
20773
|
i0.ɵɵelementEnd();
|
|
20624
20774
|
} if (rf & 2) {
|
|
20625
20775
|
const funnelGroup_r22 = i0.ɵɵnextContext(2).$implicit;
|
|
20626
20776
|
i0.ɵɵadvance();
|
|
20627
20777
|
i0.ɵɵrepeater(funnelGroup_r22.relatedMetrics);
|
|
20628
20778
|
} }
|
|
20629
|
-
function
|
|
20630
|
-
i0.ɵɵelementStart(0, "div",
|
|
20631
|
-
i0.ɵɵelement(3, "symphiq-skeleton-loader",
|
|
20779
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20780
|
+
i0.ɵɵelementStart(0, "div", 133)(1, "div", 92)(2, "div", 104);
|
|
20781
|
+
i0.ɵɵelement(3, "symphiq-skeleton-loader", 70)(4, "symphiq-skeleton-loader", 70);
|
|
20632
20782
|
i0.ɵɵelementEnd();
|
|
20633
|
-
i0.ɵɵelement(5, "symphiq-skeleton-loader",
|
|
20634
|
-
i0.ɵɵelementStart(6, "div",
|
|
20635
|
-
i0.ɵɵelement(7, "symphiq-skeleton-loader",
|
|
20783
|
+
i0.ɵɵelement(5, "symphiq-skeleton-loader", 70);
|
|
20784
|
+
i0.ɵɵelementStart(6, "div", 134);
|
|
20785
|
+
i0.ɵɵelement(7, "symphiq-skeleton-loader", 70)(8, "symphiq-skeleton-loader", 70);
|
|
20636
20786
|
i0.ɵɵelementEnd();
|
|
20637
|
-
i0.ɵɵelement(9, "symphiq-skeleton-loader",
|
|
20638
|
-
i0.ɵɵelementStart(11, "div",
|
|
20639
|
-
i0.ɵɵelement(12, "symphiq-skeleton-loader",
|
|
20787
|
+
i0.ɵɵelement(9, "symphiq-skeleton-loader", 70)(10, "symphiq-skeleton-loader", 70);
|
|
20788
|
+
i0.ɵɵelementStart(11, "div", 135);
|
|
20789
|
+
i0.ɵɵelement(12, "symphiq-skeleton-loader", 70);
|
|
20640
20790
|
i0.ɵɵelementEnd()()();
|
|
20641
20791
|
} if (rf & 2) {
|
|
20642
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
20792
|
+
const ctx_r2 = i0.ɵɵnextContext(6);
|
|
20643
20793
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-white border-slate-200" : "bg-slate-800 border-slate-700");
|
|
20644
20794
|
i0.ɵɵadvance(3);
|
|
20645
20795
|
i0.ɵɵproperty("width", "60%")("height", "22px")("isLightMode", ctx_r2.isLightMode());
|
|
@@ -20658,51 +20808,51 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_For_30_Condition
|
|
|
20658
20808
|
i0.ɵɵadvance(2);
|
|
20659
20809
|
i0.ɵɵproperty("width", "100%")("height", "120px")("isLightMode", ctx_r2.isLightMode());
|
|
20660
20810
|
} }
|
|
20661
|
-
function
|
|
20662
|
-
i0.ɵɵelementStart(0, "div",
|
|
20663
|
-
i0.ɵɵrepeaterCreate(1,
|
|
20811
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
20812
|
+
i0.ɵɵelementStart(0, "div", 127);
|
|
20813
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_2_For_2_Template, 13, 25, "div", 133, i0.ɵɵrepeaterTrackByIdentity);
|
|
20664
20814
|
i0.ɵɵelementEnd();
|
|
20665
20815
|
} if (rf & 2) {
|
|
20666
20816
|
i0.ɵɵadvance();
|
|
20667
|
-
i0.ɵɵrepeater(i0.ɵɵpureFunction0(0,
|
|
20817
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c4));
|
|
20668
20818
|
} }
|
|
20669
|
-
function
|
|
20670
|
-
i0.ɵɵconditionalCreate(0,
|
|
20819
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
20820
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_0_Template, 3, 0, "div", 127)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_1_Template, 3, 0, "div", 128)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Conditional_2_Template, 3, 1, "div", 127);
|
|
20671
20821
|
} if (rf & 2) {
|
|
20672
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
20822
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
20673
20823
|
i0.ɵɵconditional(ctx_r2.viewModeService.isExpanded() ? 0 : !ctx_r2.viewModeService.isExpanded() ? 1 : 2);
|
|
20674
20824
|
} }
|
|
20675
|
-
function
|
|
20676
|
-
i0.ɵɵelementStart(0, "div",
|
|
20677
|
-
i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card",
|
|
20825
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
20826
|
+
i0.ɵɵelementStart(0, "div", 125);
|
|
20827
|
+
i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 126);
|
|
20678
20828
|
i0.ɵɵelementEnd();
|
|
20679
|
-
i0.ɵɵconditionalCreate(2,
|
|
20829
|
+
i0.ɵɵconditionalCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Conditional_2_Template, 3, 1);
|
|
20680
20830
|
} if (rf & 2) {
|
|
20681
20831
|
const funnelGroup_r22 = ctx.$implicit;
|
|
20682
|
-
const ɵ$
|
|
20683
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
20684
|
-
i0.ɵɵstyleProp("animation-delay", 0.5 + ɵ$
|
|
20685
|
-
i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "metric-" + ɵ$
|
|
20832
|
+
const ɵ$index_438_r21 = ctx.$index;
|
|
20833
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20834
|
+
i0.ɵɵstyleProp("animation-delay", 0.5 + ɵ$index_438_r21 * 0.15 + "s");
|
|
20835
|
+
i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "metric-" + ɵ$index_438_r21);
|
|
20686
20836
|
i0.ɵɵadvance();
|
|
20687
20837
|
i0.ɵɵproperty("metric", funnelGroup_r22.funnelMetric)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(funnelGroup_r22.funnelMetric))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.funnelAnalysis())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", ctx_r2.viewModeService.isCompact());
|
|
20688
20838
|
i0.ɵɵadvance();
|
|
20689
20839
|
i0.ɵɵconditional(funnelGroup_r22.relatedMetrics.length > 0 ? 2 : -1);
|
|
20690
20840
|
} }
|
|
20691
|
-
function
|
|
20692
|
-
i0.ɵɵelementStart(0, "div",
|
|
20841
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_ForEmpty_3_Template(rf, ctx) { if (rf & 1) {
|
|
20842
|
+
i0.ɵɵelementStart(0, "div", 124);
|
|
20693
20843
|
i0.ɵɵnamespaceSVG();
|
|
20694
|
-
i0.ɵɵelementStart(1, "svg",
|
|
20695
|
-
i0.ɵɵelement(2, "path",
|
|
20844
|
+
i0.ɵɵelementStart(1, "svg", 136);
|
|
20845
|
+
i0.ɵɵelement(2, "path", 105);
|
|
20696
20846
|
i0.ɵɵelementEnd();
|
|
20697
20847
|
i0.ɵɵnamespaceHTML();
|
|
20698
|
-
i0.ɵɵelementStart(3, "h3",
|
|
20848
|
+
i0.ɵɵelementStart(3, "h3", 137);
|
|
20699
20849
|
i0.ɵɵtext(4, "No Metrics Found");
|
|
20700
20850
|
i0.ɵɵelementEnd();
|
|
20701
|
-
i0.ɵɵelementStart(5, "p",
|
|
20851
|
+
i0.ɵɵelementStart(5, "p", 138);
|
|
20702
20852
|
i0.ɵɵtext(6, "No performance metrics match your current filter selection. Try adjusting your filters to see more results.");
|
|
20703
20853
|
i0.ɵɵelementEnd()();
|
|
20704
20854
|
} if (rf & 2) {
|
|
20705
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
20855
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20706
20856
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-slate-50 border-slate-200" : "bg-slate-800/50 border-slate-700");
|
|
20707
20857
|
i0.ɵɵadvance();
|
|
20708
20858
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-slate-300" : "text-slate-600");
|
|
@@ -20711,43 +20861,52 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_ForEmpty_31_Temp
|
|
|
20711
20861
|
i0.ɵɵadvance(2);
|
|
20712
20862
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-slate-600" : "text-slate-400");
|
|
20713
20863
|
} }
|
|
20714
|
-
function
|
|
20864
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
20865
|
+
i0.ɵɵelementStart(0, "div", 114);
|
|
20866
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_For_2_Template, 3, 13, null, null, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_ForEmpty_3_Template, 7, 4, "div", 124);
|
|
20867
|
+
i0.ɵɵelementEnd();
|
|
20868
|
+
} if (rf & 2) {
|
|
20869
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
20870
|
+
i0.ɵɵclassProp("animate-content-change", ctx_r2.isCategoryTransitioning())("transition-opacity-slow", ctx_r2.isCategoryTransitioning());
|
|
20871
|
+
i0.ɵɵadvance();
|
|
20872
|
+
i0.ɵɵrepeater(ctx_r2.groupedMetrics());
|
|
20873
|
+
} }
|
|
20874
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Template(rf, ctx) { if (rf & 1) {
|
|
20715
20875
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
20716
|
-
i0.ɵɵconditionalCreate(0,
|
|
20717
|
-
i0.ɵɵelementStart(1, "section",
|
|
20718
|
-
i0.ɵɵelement(2, "div",
|
|
20719
|
-
i0.ɵɵelementStart(3, "div",
|
|
20876
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_0_Template, 7, 3, "div", 100);
|
|
20877
|
+
i0.ɵɵelementStart(1, "section", 101);
|
|
20878
|
+
i0.ɵɵelement(2, "div", 102);
|
|
20879
|
+
i0.ɵɵelementStart(3, "div", 77)(4, "div", 103)(5, "div", 104)(6, "div", 14)(7, "div", 79)(8, "div", 14);
|
|
20720
20880
|
i0.ɵɵnamespaceSVG();
|
|
20721
|
-
i0.ɵɵelementStart(9, "svg",
|
|
20722
|
-
i0.ɵɵelement(10, "path",
|
|
20881
|
+
i0.ɵɵelementStart(9, "svg", 80);
|
|
20882
|
+
i0.ɵɵelement(10, "path", 105);
|
|
20723
20883
|
i0.ɵɵelementEnd();
|
|
20724
20884
|
i0.ɵɵnamespaceHTML();
|
|
20725
|
-
i0.ɵɵelementStart(11, "h2",
|
|
20885
|
+
i0.ɵɵelementStart(11, "h2", 82);
|
|
20726
20886
|
i0.ɵɵtext(12, "Performance Metrics");
|
|
20727
20887
|
i0.ɵɵelementEnd()()()();
|
|
20728
|
-
i0.ɵɵelementStart(13, "div",
|
|
20729
|
-
i0.ɵɵconditionalCreate(14,
|
|
20730
|
-
i0.ɵɵelementStart(15, "select",
|
|
20731
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
20732
|
-
i0.ɵɵrepeaterCreate(16,
|
|
20733
|
-
i0.ɵɵelementEnd();
|
|
20734
|
-
i0.ɵɵelementStart(18, "button",
|
|
20735
|
-
i0.ɵɵlistener("click", function
|
|
20888
|
+
i0.ɵɵelementStart(13, "div", 106);
|
|
20889
|
+
i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_14_Template, 2, 0, "div", 107);
|
|
20890
|
+
i0.ɵɵelementStart(15, "select", 108);
|
|
20891
|
+
i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Template_select_ngModelChange_15_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.changeCategoryFilter($event)); });
|
|
20892
|
+
i0.ɵɵrepeaterCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_17_Template, 2, 1, null, null, _forTrack0$1);
|
|
20893
|
+
i0.ɵɵelementEnd();
|
|
20894
|
+
i0.ɵɵelementStart(18, "button", 109);
|
|
20895
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleSortOrder()); });
|
|
20736
20896
|
i0.ɵɵnamespaceSVG();
|
|
20737
|
-
i0.ɵɵelementStart(19, "svg",
|
|
20738
|
-
i0.ɵɵconditionalCreate(20,
|
|
20739
|
-
i0.ɵɵconditionalCreate(21,
|
|
20897
|
+
i0.ɵɵelementStart(19, "svg", 21);
|
|
20898
|
+
i0.ɵɵconditionalCreate(20, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_20_Template, 1, 0, ":svg:path", 110);
|
|
20899
|
+
i0.ɵɵconditionalCreate(21, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_21_Template, 1, 0, ":svg:path", 111);
|
|
20740
20900
|
i0.ɵɵelementEnd();
|
|
20741
20901
|
i0.ɵɵnamespaceHTML();
|
|
20742
20902
|
i0.ɵɵelementStart(22, "span");
|
|
20743
20903
|
i0.ɵɵtext(23, "Sort");
|
|
20744
20904
|
i0.ɵɵelementEnd()()()();
|
|
20745
|
-
i0.ɵɵelementStart(24, "div",
|
|
20746
|
-
i0.ɵɵrepeaterCreate(26,
|
|
20747
|
-
i0.ɵɵelementEnd()()();
|
|
20748
|
-
i0.ɵɵelementStart(28, "div", 108);
|
|
20749
|
-
i0.ɵɵrepeaterCreate(29, SymphiqFunnelAnalysisDashboardComponent_Conditional_78_For_30_Template, 3, 13, null, null, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_78_ForEmpty_31_Template, 7, 4, "div", 109);
|
|
20905
|
+
i0.ɵɵelementStart(24, "div", 112)(25, "div", 113);
|
|
20906
|
+
i0.ɵɵrepeaterCreate(26, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_27_Template, 1, 1, null, null, _forTrack0$1);
|
|
20750
20907
|
i0.ɵɵelementEnd()()();
|
|
20908
|
+
i0.ɵɵconditionalCreate(28, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_28_Template, 3, 1, "div", 114)(29, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_29_Template, 4, 5, "div", 115);
|
|
20909
|
+
i0.ɵɵelementEnd()();
|
|
20751
20910
|
} if (rf & 2) {
|
|
20752
20911
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
20753
20912
|
i0.ɵɵconditional(ctx_r2.selectedSectionFilter() === "ALL" ? 0 : -1);
|
|
@@ -20777,18 +20936,16 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Template(rf, ctx
|
|
|
20777
20936
|
i0.ɵɵadvance(5);
|
|
20778
20937
|
i0.ɵɵrepeater(ctx_r2.categories);
|
|
20779
20938
|
i0.ɵɵadvance(2);
|
|
20780
|
-
i0.ɵɵ
|
|
20781
|
-
i0.ɵɵadvance();
|
|
20782
|
-
i0.ɵɵrepeater(ctx_r2.groupedMetrics());
|
|
20939
|
+
i0.ɵɵconditional(ctx_r2.isDataLoading() ? 28 : 29);
|
|
20783
20940
|
} }
|
|
20784
|
-
function
|
|
20785
|
-
i0.ɵɵelementStart(0, "div",
|
|
20786
|
-
i0.ɵɵelement(2, "div",
|
|
20941
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20942
|
+
i0.ɵɵelementStart(0, "div", 139)(1, "div", 85);
|
|
20943
|
+
i0.ɵɵelement(2, "div", 86);
|
|
20787
20944
|
i0.ɵɵelementEnd();
|
|
20788
|
-
i0.ɵɵelementStart(3, "div",
|
|
20945
|
+
i0.ɵɵelementStart(3, "div", 87)(4, "div", 88);
|
|
20789
20946
|
i0.ɵɵnamespaceSVG();
|
|
20790
|
-
i0.ɵɵelementStart(5, "svg",
|
|
20791
|
-
i0.ɵɵelement(6, "path",
|
|
20947
|
+
i0.ɵɵelementStart(5, "svg", 89);
|
|
20948
|
+
i0.ɵɵelement(6, "path", 105);
|
|
20792
20949
|
i0.ɵɵelementEnd()()()();
|
|
20793
20950
|
} if (rf & 2) {
|
|
20794
20951
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -20799,13 +20956,13 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Conditional_0_Te
|
|
|
20799
20956
|
i0.ɵɵadvance();
|
|
20800
20957
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-purple-500" : "text-purple-400");
|
|
20801
20958
|
} }
|
|
20802
|
-
function
|
|
20803
|
-
i0.ɵɵelementStart(0, "div",
|
|
20804
|
-
i0.ɵɵelement(1, "div",
|
|
20959
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
20960
|
+
i0.ɵɵelementStart(0, "div", 107);
|
|
20961
|
+
i0.ɵɵelement(1, "div", 147);
|
|
20805
20962
|
i0.ɵɵelementEnd();
|
|
20806
20963
|
} }
|
|
20807
|
-
function
|
|
20808
|
-
i0.ɵɵelementStart(0, "option",
|
|
20964
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_For_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20965
|
+
i0.ɵɵelementStart(0, "option", 118);
|
|
20809
20966
|
i0.ɵɵtext(1);
|
|
20810
20967
|
i0.ɵɵelementEnd();
|
|
20811
20968
|
} if (rf & 2) {
|
|
@@ -20814,8 +20971,8 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_For_15_Condition
|
|
|
20814
20971
|
i0.ɵɵadvance();
|
|
20815
20972
|
i0.ɵɵtextInterpolate(filter_r26.label);
|
|
20816
20973
|
} }
|
|
20817
|
-
function
|
|
20818
|
-
i0.ɵɵelementStart(0, "option",
|
|
20974
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_For_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
20975
|
+
i0.ɵɵelementStart(0, "option", 29);
|
|
20819
20976
|
i0.ɵɵtext(1);
|
|
20820
20977
|
i0.ɵɵelementEnd();
|
|
20821
20978
|
} if (rf & 2) {
|
|
@@ -20824,40 +20981,77 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_For_15_Condition
|
|
|
20824
20981
|
i0.ɵɵadvance();
|
|
20825
20982
|
i0.ɵɵtextInterpolate(filter_r26.label);
|
|
20826
20983
|
} }
|
|
20827
|
-
function
|
|
20828
|
-
i0.ɵɵconditionalCreate(0,
|
|
20984
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_For_15_Template(rf, ctx) { if (rf & 1) {
|
|
20985
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_For_15_Conditional_0_Template, 2, 2, "option", 118)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_For_15_Conditional_1_Template, 2, 2, "option", 29);
|
|
20829
20986
|
} if (rf & 2) {
|
|
20830
20987
|
const filter_r26 = ctx.$implicit;
|
|
20831
20988
|
i0.ɵɵconditional(filter_r26.divider ? 0 : 1);
|
|
20832
20989
|
} }
|
|
20833
|
-
function
|
|
20834
|
-
i0.ɵɵelementStart(0, "div",
|
|
20835
|
-
i0.ɵɵelement(1, "symphiq-
|
|
20990
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_16_For_2_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
20991
|
+
i0.ɵɵelementStart(0, "div", 149);
|
|
20992
|
+
i0.ɵɵelement(1, "symphiq-skeleton-loader", 70)(2, "symphiq-skeleton-loader", 70);
|
|
20993
|
+
i0.ɵɵelementEnd();
|
|
20994
|
+
} if (rf & 2) {
|
|
20995
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
20996
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-slate-50" : "bg-slate-700/50");
|
|
20997
|
+
i0.ɵɵadvance();
|
|
20998
|
+
i0.ɵɵproperty("width", "150px")("height", "18px")("isLightMode", ctx_r2.isLightMode());
|
|
20999
|
+
i0.ɵɵadvance();
|
|
21000
|
+
i0.ɵɵproperty("width", "80px")("height", "18px")("isLightMode", ctx_r2.isLightMode());
|
|
21001
|
+
} }
|
|
21002
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
21003
|
+
i0.ɵɵelementStart(0, "div", 121)(1, "div", 122);
|
|
21004
|
+
i0.ɵɵelement(2, "symphiq-skeleton-loader", 70)(3, "symphiq-skeleton-loader", 70);
|
|
21005
|
+
i0.ɵɵelementEnd();
|
|
21006
|
+
i0.ɵɵelementStart(4, "div", 148);
|
|
21007
|
+
i0.ɵɵrepeaterCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_16_For_2_For_6_Template, 3, 7, "div", 149, i0.ɵɵrepeaterTrackByIdentity);
|
|
21008
|
+
i0.ɵɵelementEnd()();
|
|
21009
|
+
} if (rf & 2) {
|
|
21010
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
21011
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-white border-slate-200" : "bg-slate-800 border-slate-700");
|
|
21012
|
+
i0.ɵɵadvance(2);
|
|
21013
|
+
i0.ɵɵproperty("width", "200px")("height", "28px")("isLightMode", ctx_r2.isLightMode());
|
|
21014
|
+
i0.ɵɵadvance();
|
|
21015
|
+
i0.ɵɵproperty("width", "100px")("height", "24px")("isLightMode", ctx_r2.isLightMode());
|
|
21016
|
+
i0.ɵɵadvance(2);
|
|
21017
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(7, _c4));
|
|
21018
|
+
} }
|
|
21019
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
21020
|
+
i0.ɵɵelementStart(0, "div", 69);
|
|
21021
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_16_For_2_Template, 7, 8, "div", 121, i0.ɵɵrepeaterTrackByIdentity);
|
|
21022
|
+
i0.ɵɵelementEnd();
|
|
21023
|
+
} if (rf & 2) {
|
|
21024
|
+
i0.ɵɵadvance();
|
|
21025
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c5));
|
|
21026
|
+
} }
|
|
21027
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
21028
|
+
i0.ɵɵelementStart(0, "div", 97);
|
|
21029
|
+
i0.ɵɵelement(1, "symphiq-funnel-analysis-breakdown-section", 150);
|
|
20836
21030
|
i0.ɵɵelementEnd();
|
|
20837
21031
|
} if (rf & 2) {
|
|
20838
21032
|
const breakdown_r27 = ctx.$implicit;
|
|
20839
21033
|
const $index_r28 = ctx.$index;
|
|
20840
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
21034
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20841
21035
|
i0.ɵɵstyleProp("animation-delay", 0.8 + $index_r28 * 0.1 + "s");
|
|
20842
21036
|
i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "breakdown-" + $index_r28);
|
|
20843
21037
|
i0.ɵɵadvance();
|
|
20844
21038
|
i0.ɵɵproperty("breakdown", breakdown_r27)("charts", ctx_r2.chartsForBreakdown(breakdown_r27))("isLightMode", ctx_r2.isLightMode())("isCompactMode", ctx_r2.viewModeService.isCompact());
|
|
20845
21039
|
} }
|
|
20846
|
-
function
|
|
20847
|
-
i0.ɵɵelementStart(0, "div",
|
|
21040
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_17_ForEmpty_3_Template(rf, ctx) { if (rf & 1) {
|
|
21041
|
+
i0.ɵɵelementStart(0, "div", 124);
|
|
20848
21042
|
i0.ɵɵnamespaceSVG();
|
|
20849
|
-
i0.ɵɵelementStart(1, "svg",
|
|
20850
|
-
i0.ɵɵelement(2, "path",
|
|
21043
|
+
i0.ɵɵelementStart(1, "svg", 136);
|
|
21044
|
+
i0.ɵɵelement(2, "path", 151);
|
|
20851
21045
|
i0.ɵɵelementEnd();
|
|
20852
21046
|
i0.ɵɵnamespaceHTML();
|
|
20853
|
-
i0.ɵɵelementStart(3, "h3",
|
|
21047
|
+
i0.ɵɵelementStart(3, "h3", 137);
|
|
20854
21048
|
i0.ɵɵtext(4, "No Breakdowns Found");
|
|
20855
21049
|
i0.ɵɵelementEnd();
|
|
20856
|
-
i0.ɵɵelementStart(5, "p",
|
|
21050
|
+
i0.ɵɵelementStart(5, "p", 138);
|
|
20857
21051
|
i0.ɵɵtext(6, "No performance breakdowns match your current filter selection. Try adjusting your filters to see more results.");
|
|
20858
21052
|
i0.ɵɵelementEnd()();
|
|
20859
21053
|
} if (rf & 2) {
|
|
20860
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
21054
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
20861
21055
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-slate-50 border-slate-200" : "bg-slate-800/50 border-slate-700");
|
|
20862
21056
|
i0.ɵɵadvance();
|
|
20863
21057
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-slate-300" : "text-slate-600");
|
|
@@ -20866,30 +21060,39 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_ForEmpty_19_Temp
|
|
|
20866
21060
|
i0.ɵɵadvance(2);
|
|
20867
21061
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-slate-600" : "text-slate-400");
|
|
20868
21062
|
} }
|
|
20869
|
-
function
|
|
21063
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
21064
|
+
i0.ɵɵelementStart(0, "div", 69);
|
|
21065
|
+
i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_17_For_2_Template, 2, 8, "div", 99, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_17_ForEmpty_3_Template, 7, 4, "div", 124);
|
|
21066
|
+
i0.ɵɵelementEnd();
|
|
21067
|
+
} if (rf & 2) {
|
|
21068
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
21069
|
+
i0.ɵɵclassProp("animate-content-change", ctx_r2.isBreakdownTransitioning())("transition-opacity-slow", ctx_r2.isBreakdownTransitioning());
|
|
21070
|
+
i0.ɵɵadvance();
|
|
21071
|
+
i0.ɵɵrepeater(ctx_r2.breakdowns());
|
|
21072
|
+
} }
|
|
21073
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Template(rf, ctx) { if (rf & 1) {
|
|
20870
21074
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
20871
|
-
i0.ɵɵconditionalCreate(0,
|
|
20872
|
-
i0.ɵɵelementStart(1, "section",
|
|
20873
|
-
i0.ɵɵelement(2, "div",
|
|
20874
|
-
i0.ɵɵelementStart(3, "div",
|
|
21075
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_0_Template, 7, 3, "div", 139);
|
|
21076
|
+
i0.ɵɵelementStart(1, "section", 140);
|
|
21077
|
+
i0.ɵɵelement(2, "div", 141);
|
|
21078
|
+
i0.ɵɵelementStart(3, "div", 77)(4, "div", 142)(5, "div", 79)(6, "div", 14);
|
|
20875
21079
|
i0.ɵɵnamespaceSVG();
|
|
20876
|
-
i0.ɵɵelementStart(7, "svg",
|
|
20877
|
-
i0.ɵɵelement(8, "path",
|
|
21080
|
+
i0.ɵɵelementStart(7, "svg", 80);
|
|
21081
|
+
i0.ɵɵelement(8, "path", 143);
|
|
20878
21082
|
i0.ɵɵelementEnd();
|
|
20879
21083
|
i0.ɵɵnamespaceHTML();
|
|
20880
|
-
i0.ɵɵelementStart(9, "h2",
|
|
21084
|
+
i0.ɵɵelementStart(9, "h2", 82);
|
|
20881
21085
|
i0.ɵɵtext(10, "Performance Breakdowns");
|
|
20882
21086
|
i0.ɵɵelementEnd()()();
|
|
20883
|
-
i0.ɵɵelementStart(11, "div",
|
|
20884
|
-
i0.ɵɵlistener("click", function
|
|
20885
|
-
i0.ɵɵconditionalCreate(12,
|
|
20886
|
-
i0.ɵɵelementStart(13, "select",
|
|
20887
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
20888
|
-
i0.ɵɵrepeaterCreate(14,
|
|
20889
|
-
i0.ɵɵelementEnd()()();
|
|
20890
|
-
i0.ɵɵelementStart(16, "div", 136);
|
|
20891
|
-
i0.ɵɵrepeaterCreate(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_For_18_Template, 2, 8, "div", 87, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_ForEmpty_19_Template, 7, 4, "div", 109);
|
|
21087
|
+
i0.ɵɵelementStart(11, "div", 144);
|
|
21088
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Template_div_click_11_listener($event) { i0.ɵɵrestoreView(_r25); return i0.ɵɵresetView($event.stopPropagation()); })("mousedown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Template_div_mousedown_11_listener($event) { i0.ɵɵrestoreView(_r25); return i0.ɵɵresetView($event.stopPropagation()); })("pointerdown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Template_div_pointerdown_11_listener($event) { i0.ɵɵrestoreView(_r25); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
21089
|
+
i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_12_Template, 2, 0, "div", 107);
|
|
21090
|
+
i0.ɵɵelementStart(13, "select", 145);
|
|
21091
|
+
i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Template_select_ngModelChange_13_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.changeBreakdownFilter($event)); });
|
|
21092
|
+
i0.ɵɵrepeaterCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_For_15_Template, 2, 1, null, null, _forTrack0$1);
|
|
20892
21093
|
i0.ɵɵelementEnd()()();
|
|
21094
|
+
i0.ɵɵconditionalCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_16_Template, 3, 1, "div", 69)(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Conditional_17_Template, 4, 5, "div", 146);
|
|
21095
|
+
i0.ɵɵelementEnd()();
|
|
20893
21096
|
} if (rf & 2) {
|
|
20894
21097
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
20895
21098
|
i0.ɵɵconditional(ctx_r2.selectedSectionFilter() === "ALL" ? 0 : -1);
|
|
@@ -20909,18 +21112,16 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Template(rf, ctx
|
|
|
20909
21112
|
i0.ɵɵadvance();
|
|
20910
21113
|
i0.ɵɵrepeater(ctx_r2.breakdownFilters);
|
|
20911
21114
|
i0.ɵɵadvance(2);
|
|
20912
|
-
i0.ɵɵ
|
|
20913
|
-
i0.ɵɵadvance();
|
|
20914
|
-
i0.ɵɵrepeater(ctx_r2.breakdowns());
|
|
21115
|
+
i0.ɵɵconditional(ctx_r2.isDataLoading() ? 16 : 17);
|
|
20915
21116
|
} }
|
|
20916
|
-
function
|
|
20917
|
-
i0.ɵɵelementStart(0, "div",
|
|
20918
|
-
i0.ɵɵelement(2, "div",
|
|
21117
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
21118
|
+
i0.ɵɵelementStart(0, "div", 152)(1, "div", 85);
|
|
21119
|
+
i0.ɵɵelement(2, "div", 86);
|
|
20919
21120
|
i0.ɵɵelementEnd();
|
|
20920
|
-
i0.ɵɵelementStart(3, "div",
|
|
21121
|
+
i0.ɵɵelementStart(3, "div", 87)(4, "div", 88);
|
|
20921
21122
|
i0.ɵɵnamespaceSVG();
|
|
20922
|
-
i0.ɵɵelementStart(5, "svg",
|
|
20923
|
-
i0.ɵɵelement(6, "path",
|
|
21123
|
+
i0.ɵɵelementStart(5, "svg", 89);
|
|
21124
|
+
i0.ɵɵelement(6, "path", 155);
|
|
20924
21125
|
i0.ɵɵelementEnd()()()();
|
|
20925
21126
|
} if (rf & 2) {
|
|
20926
21127
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -20931,13 +21132,13 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Conditional_0_Te
|
|
|
20931
21132
|
i0.ɵɵadvance();
|
|
20932
21133
|
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-indigo-500" : "text-indigo-400");
|
|
20933
21134
|
} }
|
|
20934
|
-
function
|
|
20935
|
-
i0.ɵɵelementStart(0, "div",
|
|
20936
|
-
i0.ɵɵelement(1, "div",
|
|
21135
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
21136
|
+
i0.ɵɵelementStart(0, "div", 107);
|
|
21137
|
+
i0.ɵɵelement(1, "div", 158);
|
|
20937
21138
|
i0.ɵɵelementEnd();
|
|
20938
21139
|
} }
|
|
20939
|
-
function
|
|
20940
|
-
i0.ɵɵelementStart(0, "option",
|
|
21140
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_For_16_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
21141
|
+
i0.ɵɵelementStart(0, "option", 118);
|
|
20941
21142
|
i0.ɵɵtext(1);
|
|
20942
21143
|
i0.ɵɵelementEnd();
|
|
20943
21144
|
} if (rf & 2) {
|
|
@@ -20946,8 +21147,8 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_16_Condition
|
|
|
20946
21147
|
i0.ɵɵadvance();
|
|
20947
21148
|
i0.ɵɵtextInterpolate(filter_r30.label);
|
|
20948
21149
|
} }
|
|
20949
|
-
function
|
|
20950
|
-
i0.ɵɵelementStart(0, "option",
|
|
21150
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_For_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
21151
|
+
i0.ɵɵelementStart(0, "option", 29);
|
|
20951
21152
|
i0.ɵɵtext(1);
|
|
20952
21153
|
i0.ɵɵelementEnd();
|
|
20953
21154
|
} if (rf & 2) {
|
|
@@ -20956,33 +21157,60 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_For_16_Condition
|
|
|
20956
21157
|
i0.ɵɵadvance();
|
|
20957
21158
|
i0.ɵɵtextInterpolate(filter_r30.label);
|
|
20958
21159
|
} }
|
|
20959
|
-
function
|
|
20960
|
-
i0.ɵɵconditionalCreate(0,
|
|
21160
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_For_16_Template(rf, ctx) { if (rf & 1) {
|
|
21161
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_For_16_Conditional_0_Template, 2, 2, "option", 118)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_For_16_Conditional_1_Template, 2, 2, "option", 29);
|
|
20961
21162
|
} if (rf & 2) {
|
|
20962
21163
|
const filter_r30 = ctx.$implicit;
|
|
20963
21164
|
i0.ɵɵconditional(filter_r30.divider ? 0 : 1);
|
|
20964
21165
|
} }
|
|
20965
|
-
function
|
|
21166
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_17_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
21167
|
+
i0.ɵɵelement(0, "symphiq-skeleton-loader", 70);
|
|
21168
|
+
} if (rf & 2) {
|
|
21169
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
21170
|
+
i0.ɵɵproperty("width", "100%")("height", "140px")("isLightMode", ctx_r2.isLightMode());
|
|
21171
|
+
} }
|
|
21172
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
21173
|
+
i0.ɵɵelementStart(0, "div", 69)(1, "div", 121);
|
|
21174
|
+
i0.ɵɵelement(2, "symphiq-skeleton-loader", 70);
|
|
21175
|
+
i0.ɵɵelementStart(3, "div", 159);
|
|
21176
|
+
i0.ɵɵrepeaterCreate(4, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_17_For_5_Template, 1, 3, "symphiq-skeleton-loader", 70, i0.ɵɵrepeaterTrackByIdentity);
|
|
21177
|
+
i0.ɵɵelementEnd()()();
|
|
21178
|
+
} if (rf & 2) {
|
|
21179
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
21180
|
+
i0.ɵɵadvance();
|
|
21181
|
+
i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "bg-white border-slate-200" : "bg-slate-800 border-slate-700");
|
|
21182
|
+
i0.ɵɵadvance();
|
|
21183
|
+
i0.ɵɵproperty("width", "60%")("height", "24px")("isLightMode", ctx_r2.isLightMode());
|
|
21184
|
+
i0.ɵɵadvance(2);
|
|
21185
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(4, _c3));
|
|
21186
|
+
} }
|
|
21187
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
21188
|
+
i0.ɵɵelement(0, "symphiq-competitive-intelligence-view", 157);
|
|
21189
|
+
} if (rf & 2) {
|
|
21190
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
21191
|
+
i0.ɵɵproperty("metrics", ctx_r2.competitiveMetrics())("allCharts", ctx_r2.allCharts())("isLightMode", ctx_r2.isLightMode())("isCompactMode", ctx_r2.viewModeService.isCompact());
|
|
21192
|
+
} }
|
|
21193
|
+
function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Template(rf, ctx) { if (rf & 1) {
|
|
20966
21194
|
const _r29 = i0.ɵɵgetCurrentView();
|
|
20967
|
-
i0.ɵɵconditionalCreate(0,
|
|
20968
|
-
i0.ɵɵelementStart(1, "section",
|
|
20969
|
-
i0.ɵɵelement(2, "div",
|
|
20970
|
-
i0.ɵɵelementStart(3, "div",
|
|
21195
|
+
i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_0_Template, 7, 3, "div", 152);
|
|
21196
|
+
i0.ɵɵelementStart(1, "section", 153);
|
|
21197
|
+
i0.ɵɵelement(2, "div", 76);
|
|
21198
|
+
i0.ɵɵelementStart(3, "div", 77)(4, "div", 154)(5, "div", 14)(6, "div", 79)(7, "div", 14);
|
|
20971
21199
|
i0.ɵɵnamespaceSVG();
|
|
20972
|
-
i0.ɵɵelementStart(8, "svg",
|
|
20973
|
-
i0.ɵɵelement(9, "path",
|
|
21200
|
+
i0.ɵɵelementStart(8, "svg", 80);
|
|
21201
|
+
i0.ɵɵelement(9, "path", 155);
|
|
20974
21202
|
i0.ɵɵelementEnd();
|
|
20975
21203
|
i0.ɵɵnamespaceHTML();
|
|
20976
|
-
i0.ɵɵelementStart(10, "h2",
|
|
21204
|
+
i0.ɵɵelementStart(10, "h2", 82);
|
|
20977
21205
|
i0.ɵɵtext(11, "Competitive Intelligence");
|
|
20978
21206
|
i0.ɵɵelementEnd()()()();
|
|
20979
|
-
i0.ɵɵelementStart(12, "div",
|
|
20980
|
-
i0.ɵɵconditionalCreate(13,
|
|
20981
|
-
i0.ɵɵelementStart(14, "select",
|
|
20982
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
20983
|
-
i0.ɵɵrepeaterCreate(15,
|
|
21207
|
+
i0.ɵɵelementStart(12, "div", 156);
|
|
21208
|
+
i0.ɵɵconditionalCreate(13, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_13_Template, 2, 0, "div", 107);
|
|
21209
|
+
i0.ɵɵelementStart(14, "select", 108);
|
|
21210
|
+
i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Template_select_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.changeCompetitiveFilter($event)); });
|
|
21211
|
+
i0.ɵɵrepeaterCreate(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_For_16_Template, 2, 1, null, null, _forTrack0$1);
|
|
20984
21212
|
i0.ɵɵelementEnd()()();
|
|
20985
|
-
i0.ɵɵ
|
|
21213
|
+
i0.ɵɵconditionalCreate(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_17_Template, 6, 5, "div", 69)(18, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Conditional_18_Template, 1, 4, "symphiq-competitive-intelligence-view", 157);
|
|
20986
21214
|
i0.ɵɵelementEnd()();
|
|
20987
21215
|
} if (rf & 2) {
|
|
20988
21216
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -21004,19 +21232,21 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Template(rf, ctx
|
|
|
21004
21232
|
i0.ɵɵadvance();
|
|
21005
21233
|
i0.ɵɵrepeater(ctx_r2.competitiveFilters);
|
|
21006
21234
|
i0.ɵɵadvance(2);
|
|
21007
|
-
i0.ɵɵ
|
|
21235
|
+
i0.ɵɵconditional(ctx_r2.isDataLoading() ? 17 : 18);
|
|
21008
21236
|
} }
|
|
21009
21237
|
class SymphiqFunnelAnalysisDashboardComponent {
|
|
21010
|
-
constructor(funnelOrderService, viewModeService, searchService) {
|
|
21238
|
+
constructor(funnelOrderService, viewModeService, searchService, tooltipService) {
|
|
21011
21239
|
this.funnelOrderService = funnelOrderService;
|
|
21012
21240
|
this.viewModeService = viewModeService;
|
|
21013
21241
|
this.searchService = searchService;
|
|
21242
|
+
this.tooltipService = tooltipService;
|
|
21014
21243
|
// Input signals (Angular 20 signal-based inputs)
|
|
21015
21244
|
this.requestedByUser = input(...(ngDevMode ? [undefined, { debugName: "requestedByUser" }] : []));
|
|
21016
21245
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
21017
21246
|
this.funnelAnalysis = input(FUNNEL_ANALYSIS, ...(ngDevMode ? [{ debugName: "funnelAnalysis" }] : []));
|
|
21018
21247
|
this.embedded = input(false, ...(ngDevMode ? [{ debugName: "embedded" }] : []));
|
|
21019
21248
|
this.scrollContainerId = input(...(ngDevMode ? [undefined, { debugName: "scrollContainerId" }] : []));
|
|
21249
|
+
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
21020
21250
|
// State signals
|
|
21021
21251
|
this.selectedCategory = signal('ALL', ...(ngDevMode ? [{ debugName: "selectedCategory" }] : []));
|
|
21022
21252
|
this.reverseSortOrder = signal(false, ...(ngDevMode ? [{ debugName: "reverseSortOrder" }] : []));
|
|
@@ -21035,11 +21265,20 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21035
21265
|
this.areChartsLoading = computed(() => {
|
|
21036
21266
|
return this.viewModeService.getIsTransitioning() && this.viewModeService.isExpanded();
|
|
21037
21267
|
}, ...(ngDevMode ? [{ debugName: "areChartsLoading" }] : []));
|
|
21268
|
+
// Loading state management
|
|
21269
|
+
this.loadingStartTime = signal(null, ...(ngDevMode ? [{ debugName: "loadingStartTime" }] : []));
|
|
21270
|
+
this.minLoadingDisplayTime = 300; // milliseconds
|
|
21271
|
+
this.loadingTimeoutId = null;
|
|
21272
|
+
this.isShowingLoader = signal(false, ...(ngDevMode ? [{ debugName: "isShowingLoader" }] : []));
|
|
21273
|
+
// Computed loading states that combine external input with internal states
|
|
21274
|
+
this.isDataLoading = computed(() => this.isLoading() || this.isShowingLoader(), ...(ngDevMode ? [{ debugName: "isDataLoading" }] : []));
|
|
21275
|
+
this.isContentReady = computed(() => !this.isDataLoading(), ...(ngDevMode ? [{ debugName: "isContentReady" }] : []));
|
|
21038
21276
|
this.scrollTimeout = null;
|
|
21039
21277
|
this.lastScrollPosition = 0;
|
|
21040
21278
|
this.isProgrammaticScroll = false;
|
|
21041
21279
|
this.lastStateChangeTime = 0;
|
|
21042
21280
|
this.STATE_CHANGE_COOLDOWN = 500; // milliseconds
|
|
21281
|
+
this.embeddedScrollContainer = null;
|
|
21043
21282
|
// Mobile navigation sections
|
|
21044
21283
|
this.navSections = [
|
|
21045
21284
|
{ id: 'overview', label: 'Overview', icon: 'overview' },
|
|
@@ -21350,6 +21589,35 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21350
21589
|
effect(() => {
|
|
21351
21590
|
this.searchService.setData(this.allMetrics(), this.insights(), this.allBreakdowns());
|
|
21352
21591
|
});
|
|
21592
|
+
// Manage loading state with minimum display time
|
|
21593
|
+
effect(() => {
|
|
21594
|
+
const loading = this.isLoading();
|
|
21595
|
+
if (loading) {
|
|
21596
|
+
// Starting to load
|
|
21597
|
+
if (!this.loadingStartTime()) {
|
|
21598
|
+
this.loadingStartTime.set(Date.now());
|
|
21599
|
+
this.isShowingLoader.set(true);
|
|
21600
|
+
}
|
|
21601
|
+
}
|
|
21602
|
+
else {
|
|
21603
|
+
// Finished loading
|
|
21604
|
+
const startTime = this.loadingStartTime();
|
|
21605
|
+
if (startTime !== null) {
|
|
21606
|
+
const elapsedTime = Date.now() - startTime;
|
|
21607
|
+
const remainingTime = Math.max(0, this.minLoadingDisplayTime - elapsedTime);
|
|
21608
|
+
// Clear any existing timeout
|
|
21609
|
+
if (this.loadingTimeoutId !== null) {
|
|
21610
|
+
clearTimeout(this.loadingTimeoutId);
|
|
21611
|
+
}
|
|
21612
|
+
// Hide loader after minimum display time
|
|
21613
|
+
this.loadingTimeoutId = setTimeout(() => {
|
|
21614
|
+
this.isShowingLoader.set(false);
|
|
21615
|
+
this.loadingStartTime.set(null);
|
|
21616
|
+
this.loadingTimeoutId = null;
|
|
21617
|
+
}, remainingTime);
|
|
21618
|
+
}
|
|
21619
|
+
}
|
|
21620
|
+
});
|
|
21353
21621
|
// Manage overall assessment loading state during view mode transitions
|
|
21354
21622
|
}
|
|
21355
21623
|
ngAfterViewInit() {
|
|
@@ -21360,169 +21628,80 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21360
21628
|
// Set up container scroll listener when in embedded mode
|
|
21361
21629
|
if (this.embedded()) {
|
|
21362
21630
|
let container = null;
|
|
21363
|
-
console.log('[Scroll Debug v6] Embedded mode detected, setting up scroll listener');
|
|
21364
|
-
console.log('[Scroll Debug v6] scrollContainerId:', this.scrollContainerId());
|
|
21365
21631
|
// If a scroll container ID is provided, use that element
|
|
21366
21632
|
if (this.scrollContainerId()) {
|
|
21367
|
-
const
|
|
21368
|
-
|
|
21369
|
-
|
|
21370
|
-
|
|
21371
|
-
|
|
21372
|
-
console.log('[Scroll Debug] Found external scroll container:', element);
|
|
21373
|
-
console.log('[Scroll Debug] Container tag name:', element.tagName);
|
|
21633
|
+
const setupScrollContainer = () => {
|
|
21634
|
+
const element = document.getElementById(this.scrollContainerId());
|
|
21635
|
+
if (!element) {
|
|
21636
|
+
return false;
|
|
21637
|
+
}
|
|
21374
21638
|
// Check if this is an Ionic ion-content element
|
|
21375
21639
|
if (element.tagName.toLowerCase() === 'ion-content') {
|
|
21376
|
-
console.log('[Scroll Debug] Detected Ionic ion-content, attempting to get scrollable element');
|
|
21377
|
-
// Try to get the scroll element from Ionic's ion-content
|
|
21378
|
-
// Ionic stores the scrollable element in the component itself
|
|
21379
21640
|
const ionContent = element;
|
|
21380
|
-
//
|
|
21641
|
+
// Get the scrollable element from Ionic
|
|
21381
21642
|
if (typeof ionContent.getScrollElement === 'function') {
|
|
21382
|
-
console.log('[Scroll Debug] Using getScrollElement() method');
|
|
21383
21643
|
ionContent.getScrollElement().then((scrollElement) => {
|
|
21384
|
-
|
|
21385
|
-
|
|
21386
|
-
|
|
21387
|
-
|
|
21388
|
-
scrollTop: scrollElement.scrollTop,
|
|
21389
|
-
hasOverflow: scrollElement.scrollHeight > scrollElement.clientHeight
|
|
21390
|
-
};
|
|
21391
|
-
console.log('[Scroll Debug] Ionic scroll element dimensions:', dimensions);
|
|
21392
|
-
if (!dimensions.hasOverflow) {
|
|
21393
|
-
console.warn('[Scroll Debug] ⚠️ WARNING: Scroll element has no overflow! Content may still be loading.');
|
|
21394
|
-
console.warn('[Scroll Debug] The dashboard content needs to be taller than', dimensions.clientHeight, 'px to enable scrolling');
|
|
21395
|
-
// Diagnostic: Check the dashboard component's actual rendered height
|
|
21396
|
-
setTimeout(() => {
|
|
21397
|
-
const dashboardEl = this.dashboardContainer?.nativeElement;
|
|
21398
|
-
if (dashboardEl) {
|
|
21399
|
-
const styles = window.getComputedStyle(dashboardEl);
|
|
21400
|
-
console.log('[Scroll Debug] Dashboard container computed styles:', {
|
|
21401
|
-
height: styles.height,
|
|
21402
|
-
minHeight: styles.minHeight,
|
|
21403
|
-
maxHeight: styles.maxHeight,
|
|
21404
|
-
display: styles.display,
|
|
21405
|
-
position: styles.position,
|
|
21406
|
-
overflow: styles.overflow,
|
|
21407
|
-
scrollHeight: dashboardEl.scrollHeight,
|
|
21408
|
-
clientHeight: dashboardEl.clientHeight,
|
|
21409
|
-
offsetHeight: dashboardEl.offsetHeight
|
|
21410
|
-
});
|
|
21411
|
-
// Check children
|
|
21412
|
-
const children = Array.from(dashboardEl.children);
|
|
21413
|
-
console.log('[Scroll Debug] Dashboard has', children.length, 'direct children');
|
|
21414
|
-
children.forEach((child, idx) => {
|
|
21415
|
-
const childStyles = window.getComputedStyle(child);
|
|
21416
|
-
console.log(`[Scroll Debug] Child ${idx}:`, {
|
|
21417
|
-
tagName: child.tagName,
|
|
21418
|
-
height: childStyles.height,
|
|
21419
|
-
display: childStyles.display,
|
|
21420
|
-
clientHeight: child.clientHeight,
|
|
21421
|
-
scrollHeight: child.scrollHeight
|
|
21422
|
-
});
|
|
21423
|
-
});
|
|
21424
|
-
// Check if content is actually rendering
|
|
21425
|
-
const hasVisibleContent = dashboardEl.scrollHeight > 100;
|
|
21426
|
-
if (!hasVisibleContent) {
|
|
21427
|
-
console.error('[Scroll Debug] ⚠️ CRITICAL: Dashboard has minimal content! Check if funnelAnalysis data is loaded.');
|
|
21428
|
-
}
|
|
21429
|
-
}
|
|
21430
|
-
}, 100);
|
|
21431
|
-
// Set up a MutationObserver to detect when content becomes scrollable
|
|
21432
|
-
const observer = new MutationObserver(() => {
|
|
21433
|
-
const newScrollHeight = scrollElement.scrollHeight;
|
|
21434
|
-
const newClientHeight = scrollElement.clientHeight;
|
|
21435
|
-
if (newScrollHeight > newClientHeight) {
|
|
21436
|
-
console.log('[Scroll Debug] ✓ Content is now scrollable!', {
|
|
21437
|
-
clientHeight: newClientHeight,
|
|
21438
|
-
scrollHeight: newScrollHeight,
|
|
21439
|
-
hasOverflow: true
|
|
21440
|
-
});
|
|
21441
|
-
observer.disconnect();
|
|
21442
|
-
}
|
|
21443
|
-
});
|
|
21444
|
-
observer.observe(scrollElement, {
|
|
21445
|
-
childList: true,
|
|
21446
|
-
subtree: true,
|
|
21447
|
-
attributes: true
|
|
21448
|
-
});
|
|
21449
|
-
console.log('[Scroll Debug] Monitoring for content changes...');
|
|
21450
|
-
}
|
|
21451
|
-
// Attach to BOTH the inner scroll element AND the ion-content itself
|
|
21644
|
+
// Store reference for use in scrollToSection and tooltips
|
|
21645
|
+
this.embeddedScrollContainer = scrollElement;
|
|
21646
|
+
this.tooltipService.setScrollContainer(scrollElement);
|
|
21647
|
+
// Attach scroll listeners
|
|
21452
21648
|
scrollElement.addEventListener('scroll', () => this.onContainerScroll(scrollElement), { passive: true });
|
|
21453
|
-
|
|
21454
|
-
//
|
|
21455
|
-
ionContent.addEventListener('ionScroll', (event) => {
|
|
21456
|
-
console.log('[Scroll Debug] ionScroll event fired:', event.detail?.scrollTop);
|
|
21457
|
-
this.onContainerScroll(scrollElement);
|
|
21458
|
-
}, { passive: true });
|
|
21459
|
-
console.log('[Scroll Debug] Attached ionScroll listener to ion-content');
|
|
21460
|
-
// FALLBACK: Poll scroll position directly from scrollElement
|
|
21461
|
-
// This ensures we catch scroll events even if neither 'scroll' nor 'ionScroll' fire
|
|
21649
|
+
ionContent.addEventListener('ionScroll', () => this.onContainerScroll(scrollElement), { passive: true });
|
|
21650
|
+
// Polling fallback for reliable scroll detection
|
|
21462
21651
|
let lastScrollTop = 0;
|
|
21463
|
-
let pollCount = 0;
|
|
21464
21652
|
const pollScroll = () => {
|
|
21465
|
-
pollCount++;
|
|
21466
21653
|
const currentScrollTop = scrollElement.scrollTop;
|
|
21467
21654
|
if (currentScrollTop !== lastScrollTop) {
|
|
21468
|
-
console.log('[Scroll Debug v6] Poll #', pollCount, '- Scroll detected:', lastScrollTop, '->', currentScrollTop);
|
|
21469
21655
|
lastScrollTop = currentScrollTop;
|
|
21470
21656
|
this.onContainerScroll(scrollElement);
|
|
21471
21657
|
}
|
|
21472
21658
|
requestAnimationFrame(pollScroll);
|
|
21473
21659
|
};
|
|
21474
21660
|
requestAnimationFrame(pollScroll);
|
|
21475
|
-
console.log('[Scroll Debug v6] Started polling scrollElement.scrollTop directly');
|
|
21476
|
-
// Test if scroll event fires by manually triggering a test
|
|
21477
|
-
console.log('[Scroll Debug] Testing scroll event by programmatically scrolling to 1px...');
|
|
21478
|
-
scrollElement.scrollTop = 1;
|
|
21479
|
-
setTimeout(() => {
|
|
21480
|
-
if (scrollElement.scrollTop === 1) {
|
|
21481
|
-
console.log('[Scroll Debug] ✓ Scroll position changed successfully');
|
|
21482
|
-
scrollElement.scrollTop = 0; // Reset
|
|
21483
|
-
}
|
|
21484
|
-
else {
|
|
21485
|
-
console.warn('[Scroll Debug] ⚠️ Could not change scroll position - element may not be scrollable');
|
|
21486
|
-
}
|
|
21487
|
-
}, 50);
|
|
21488
21661
|
}).catch((error) => {
|
|
21489
|
-
console.error('
|
|
21662
|
+
console.error('Error getting Ionic scroll element:', error);
|
|
21490
21663
|
});
|
|
21664
|
+
return true;
|
|
21491
21665
|
}
|
|
21492
21666
|
else {
|
|
21493
|
-
|
|
21494
|
-
|
|
21495
|
-
|
|
21667
|
+
// Fallback for older Ionic versions
|
|
21668
|
+
this.embeddedScrollContainer = element;
|
|
21669
|
+
this.tooltipService.setScrollContainer(element);
|
|
21670
|
+
element.addEventListener('scroll', () => this.onContainerScroll(element), { passive: true });
|
|
21671
|
+
return true;
|
|
21496
21672
|
}
|
|
21497
21673
|
}
|
|
21498
21674
|
else {
|
|
21499
21675
|
// Regular HTML element
|
|
21500
|
-
|
|
21501
|
-
|
|
21502
|
-
|
|
21503
|
-
|
|
21504
|
-
scrollTop: container.scrollTop,
|
|
21505
|
-
hasOverflow: container.scrollHeight > container.clientHeight
|
|
21506
|
-
});
|
|
21676
|
+
this.embeddedScrollContainer = element;
|
|
21677
|
+
this.tooltipService.setScrollContainer(element);
|
|
21678
|
+
element.addEventListener('scroll', () => this.onContainerScroll(element), { passive: true });
|
|
21679
|
+
return true;
|
|
21507
21680
|
}
|
|
21681
|
+
};
|
|
21682
|
+
// Try to set up immediately
|
|
21683
|
+
if (!setupScrollContainer()) {
|
|
21684
|
+
// If not found, retry with delays (element might not be in DOM yet)
|
|
21685
|
+
let retries = 0;
|
|
21686
|
+
const maxRetries = 10;
|
|
21687
|
+
const retryInterval = setInterval(() => {
|
|
21688
|
+
retries++;
|
|
21689
|
+
if (setupScrollContainer() || retries >= maxRetries) {
|
|
21690
|
+
clearInterval(retryInterval);
|
|
21691
|
+
if (retries >= maxRetries) {
|
|
21692
|
+
console.warn(`Scroll container with id "${this.scrollContainerId()}" not found after ${maxRetries} retries.`);
|
|
21693
|
+
}
|
|
21694
|
+
}
|
|
21695
|
+
}, 100);
|
|
21508
21696
|
}
|
|
21509
21697
|
}
|
|
21510
21698
|
else if (this.dashboardContainer) {
|
|
21511
21699
|
// Fall back to internal dashboard container
|
|
21512
21700
|
container = this.dashboardContainer.nativeElement;
|
|
21513
|
-
|
|
21514
|
-
|
|
21515
|
-
// Only attach listener for non-Ionic elements (Ionic handled above)
|
|
21516
|
-
if (container) {
|
|
21517
|
-
console.log('[Scroll Debug] Attaching scroll listener to container');
|
|
21701
|
+
this.embeddedScrollContainer = container;
|
|
21702
|
+
this.tooltipService.setScrollContainer(container);
|
|
21518
21703
|
container.addEventListener('scroll', () => this.onContainerScroll(container), { passive: true });
|
|
21519
21704
|
}
|
|
21520
|
-
else if (!this.scrollContainerId() || document.getElementById(this.scrollContainerId())?.tagName.toLowerCase() !== 'ion-content') {
|
|
21521
|
-
console.warn('[Scroll Debug] No scroll container found!');
|
|
21522
|
-
}
|
|
21523
|
-
}
|
|
21524
|
-
else {
|
|
21525
|
-
console.log('[Scroll Debug] Not in embedded mode, using window scroll');
|
|
21526
21705
|
}
|
|
21527
21706
|
}
|
|
21528
21707
|
handleSearchResult(result) {
|
|
@@ -21732,66 +21911,42 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21732
21911
|
}
|
|
21733
21912
|
onContainerScroll(container) {
|
|
21734
21913
|
if (!this.embedded()) {
|
|
21735
|
-
console.log('[Scroll Debug] onContainerScroll called but not in embedded mode, returning');
|
|
21736
21914
|
return;
|
|
21737
21915
|
}
|
|
21738
21916
|
const scrollPosition = container.scrollTop;
|
|
21739
|
-
// Update scroll progress
|
|
21917
|
+
// Update scroll progress for smooth bar animation
|
|
21740
21918
|
const containerHeight = container.clientHeight;
|
|
21741
21919
|
const scrollHeight = container.scrollHeight;
|
|
21742
21920
|
const maxScroll = scrollHeight - containerHeight;
|
|
21743
21921
|
const progress = maxScroll > 0 ? (scrollPosition / maxScroll) * 100 : 0;
|
|
21744
|
-
console.log('[Scroll Debug] Container scroll event:', {
|
|
21745
|
-
scrollPosition,
|
|
21746
|
-
containerHeight,
|
|
21747
|
-
scrollHeight,
|
|
21748
|
-
maxScroll,
|
|
21749
|
-
progress: progress.toFixed(2) + '%',
|
|
21750
|
-
currentScrollProgress: this.scrollProgress(),
|
|
21751
|
-
isScrolled: this.isScrolled()
|
|
21752
|
-
});
|
|
21753
21922
|
this.scrollProgress.set(Math.min(100, Math.max(0, progress)));
|
|
21754
|
-
// Skip header state updates during programmatic scrolling
|
|
21923
|
+
// Skip header state updates during programmatic scrolling or cooldown
|
|
21755
21924
|
if (this.isProgrammaticScroll) {
|
|
21756
|
-
console.log('[Scroll Debug] Skipping header update - programmatic scroll');
|
|
21757
21925
|
return;
|
|
21758
21926
|
}
|
|
21759
|
-
// Check if we're in cooldown period after a recent state change
|
|
21760
21927
|
const now = Date.now();
|
|
21761
21928
|
const timeSinceLastChange = now - this.lastStateChangeTime;
|
|
21762
21929
|
if (timeSinceLastChange < this.STATE_CHANGE_COOLDOWN) {
|
|
21763
|
-
console.log('[Scroll Debug] Skipping header update - in cooldown period', timeSinceLastChange + 'ms');
|
|
21764
21930
|
return;
|
|
21765
21931
|
}
|
|
21766
|
-
// Clear any pending timeout
|
|
21767
21932
|
if (this.scrollTimeout) {
|
|
21768
21933
|
clearTimeout(this.scrollTimeout);
|
|
21769
21934
|
}
|
|
21770
|
-
// Use hysteresis
|
|
21935
|
+
// Use hysteresis to prevent bounce
|
|
21771
21936
|
const COLLAPSE_THRESHOLD = 50;
|
|
21772
21937
|
const EXPAND_THRESHOLD = 30;
|
|
21773
21938
|
const currentState = this.isScrolled();
|
|
21774
|
-
// Determine new state based on current position and hysteresis logic
|
|
21775
21939
|
let newState = currentState;
|
|
21776
|
-
// If currently expanded and we scroll past collapse threshold, collapse
|
|
21777
21940
|
if (!currentState && scrollPosition > COLLAPSE_THRESHOLD) {
|
|
21778
21941
|
newState = true;
|
|
21779
|
-
console.log('[Scroll Debug] Triggering COLLAPSE - scrollPosition:', scrollPosition, '> threshold:', COLLAPSE_THRESHOLD);
|
|
21780
21942
|
}
|
|
21781
|
-
// If currently collapsed and we scroll back above expand threshold, expand
|
|
21782
21943
|
else if (currentState && scrollPosition < EXPAND_THRESHOLD) {
|
|
21783
21944
|
newState = false;
|
|
21784
|
-
console.log('[Scroll Debug] Triggering EXPAND - scrollPosition:', scrollPosition, '< threshold:', EXPAND_THRESHOLD);
|
|
21785
21945
|
}
|
|
21786
|
-
// Only update state if it actually changed
|
|
21787
21946
|
if (newState !== currentState) {
|
|
21788
|
-
console.log('[Scroll Debug] State change detected:', currentState, '->', newState);
|
|
21789
21947
|
this.isScrolled.set(newState);
|
|
21790
21948
|
this.lastStateChangeTime = Date.now();
|
|
21791
21949
|
}
|
|
21792
|
-
else {
|
|
21793
|
-
console.log('[Scroll Debug] No state change needed. Current state:', currentState, 'Position:', scrollPosition);
|
|
21794
|
-
}
|
|
21795
21950
|
this.lastScrollPosition = scrollPosition;
|
|
21796
21951
|
}
|
|
21797
21952
|
onScroll() {
|
|
@@ -21859,48 +22014,60 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21859
22014
|
this.lastScrollPosition = scrollPosition;
|
|
21860
22015
|
}
|
|
21861
22016
|
scrollToTop() {
|
|
21862
|
-
// Set flag to prevent header state changes during smooth scroll
|
|
21863
22017
|
this.isProgrammaticScroll = true;
|
|
21864
|
-
|
|
21865
|
-
|
|
21866
|
-
|
|
21867
|
-
|
|
21868
|
-
|
|
22018
|
+
if (this.embedded() && this.embeddedScrollContainer) {
|
|
22019
|
+
this.embeddedScrollContainer.scrollTo({
|
|
22020
|
+
top: 0,
|
|
22021
|
+
behavior: 'smooth'
|
|
22022
|
+
});
|
|
22023
|
+
}
|
|
22024
|
+
else {
|
|
22025
|
+
window.scrollTo({
|
|
22026
|
+
top: 0,
|
|
22027
|
+
behavior: 'smooth'
|
|
22028
|
+
});
|
|
22029
|
+
}
|
|
21869
22030
|
setTimeout(() => {
|
|
21870
22031
|
this.isProgrammaticScroll = false;
|
|
21871
|
-
// At top of page, header should be expanded
|
|
21872
22032
|
this.isScrolled.set(false);
|
|
21873
22033
|
}, 800);
|
|
21874
22034
|
}
|
|
21875
22035
|
scrollToSection(sectionId) {
|
|
21876
22036
|
const element = document.getElementById(sectionId);
|
|
21877
|
-
if (element)
|
|
21878
|
-
|
|
21879
|
-
|
|
21880
|
-
|
|
22037
|
+
if (!element)
|
|
22038
|
+
return;
|
|
22039
|
+
const offset = sectionId === 'overall-section' ? 50 : 100;
|
|
22040
|
+
this.isProgrammaticScroll = true;
|
|
22041
|
+
if (this.embedded() && this.embeddedScrollContainer) {
|
|
22042
|
+
// For embedded mode: calculate relative scroll position
|
|
22043
|
+
const elementTop = element.offsetTop;
|
|
22044
|
+
const scrollTop = elementTop - offset;
|
|
22045
|
+
this.embeddedScrollContainer.scrollTo({
|
|
22046
|
+
top: scrollTop,
|
|
22047
|
+
behavior: 'smooth'
|
|
22048
|
+
});
|
|
22049
|
+
}
|
|
22050
|
+
else {
|
|
22051
|
+
// For window mode: use getBoundingClientRect
|
|
21881
22052
|
const elementPosition = element.getBoundingClientRect().top + window.pageYOffset;
|
|
21882
22053
|
const offsetPosition = elementPosition - offset;
|
|
21883
|
-
// Set flag to prevent header state changes during smooth scroll
|
|
21884
|
-
this.isProgrammaticScroll = true;
|
|
21885
22054
|
window.scrollTo({
|
|
21886
22055
|
top: offsetPosition,
|
|
21887
22056
|
behavior: 'smooth'
|
|
21888
22057
|
});
|
|
21889
|
-
// Clear flag after smooth scroll completes (approximate duration)
|
|
21890
|
-
setTimeout(() => {
|
|
21891
|
-
this.isProgrammaticScroll = false;
|
|
21892
|
-
// Manually set the correct header state after scroll completes
|
|
21893
|
-
// Use hysteresis thresholds: collapse at 150px, expand below 100px
|
|
21894
|
-
const finalPosition = window.scrollY;
|
|
21895
|
-
if (finalPosition > 150) {
|
|
21896
|
-
this.isScrolled.set(true);
|
|
21897
|
-
}
|
|
21898
|
-
else if (finalPosition < 100) {
|
|
21899
|
-
this.isScrolled.set(false);
|
|
21900
|
-
}
|
|
21901
|
-
// If between 100-150, leave current state unchanged
|
|
21902
|
-
}, 800);
|
|
21903
22058
|
}
|
|
22059
|
+
setTimeout(() => {
|
|
22060
|
+
this.isProgrammaticScroll = false;
|
|
22061
|
+
const finalPosition = this.embedded() && this.embeddedScrollContainer
|
|
22062
|
+
? this.embeddedScrollContainer.scrollTop
|
|
22063
|
+
: window.scrollY;
|
|
22064
|
+
if (finalPosition > 50) {
|
|
22065
|
+
this.isScrolled.set(true);
|
|
22066
|
+
}
|
|
22067
|
+
else if (finalPosition < 30) {
|
|
22068
|
+
this.isScrolled.set(false);
|
|
22069
|
+
}
|
|
22070
|
+
}, 800);
|
|
21904
22071
|
}
|
|
21905
22072
|
handleMobileNavigation(sectionId) {
|
|
21906
22073
|
this.activeNavSection.set(sectionId);
|
|
@@ -21943,7 +22110,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21943
22110
|
}
|
|
21944
22111
|
return value.toLocaleString('en-US', { maximumFractionDigits: 0 });
|
|
21945
22112
|
}
|
|
21946
|
-
static { this.ɵfac = function SymphiqFunnelAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqFunnelAnalysisDashboardComponent)(i0.ɵɵdirectiveInject(FunnelOrderService), i0.ɵɵdirectiveInject(ViewModeService), i0.ɵɵdirectiveInject(SearchService)); }; }
|
|
22113
|
+
static { this.ɵfac = function SymphiqFunnelAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqFunnelAnalysisDashboardComponent)(i0.ɵɵdirectiveInject(FunnelOrderService), i0.ɵɵdirectiveInject(ViewModeService), i0.ɵɵdirectiveInject(SearchService), i0.ɵɵdirectiveInject(TooltipService)); }; }
|
|
21947
22114
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqFunnelAnalysisDashboardComponent, selectors: [["symphiq-funnel-analysis-dashboard"]], viewQuery: function SymphiqFunnelAnalysisDashboardComponent_Query(rf, ctx) { if (rf & 1) {
|
|
21948
22115
|
i0.ɵɵviewQuery(ModalComponent, 5);
|
|
21949
22116
|
i0.ɵɵviewQuery(_c0$4, 5);
|
|
@@ -21953,7 +22120,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21953
22120
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dashboardContainer = _t.first);
|
|
21954
22121
|
} }, hostBindings: function SymphiqFunnelAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
21955
22122
|
i0.ɵɵlistener("scroll", function SymphiqFunnelAnalysisDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onScroll($event); }, i0.ɵɵresolveWindow);
|
|
21956
|
-
} }, inputs: { requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], funnelAnalysis: [1, "funnelAnalysis"], embedded: [1, "embedded"], scrollContainerId: [1, "scrollContainerId"] }, decls: 86, vars: 101, consts: [["dashboardContainer", ""], [1, "bg-transparent"], [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, "absolute", "inset-0", 3, "ngClass"], [1, "absolute", "inset-0", "opacity-[0.03]", "z-20", 2, "background-image", "url('data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')"], [1, "absolute", "top-0", "right-0", "w-[800px]", "h-[800px]", "rounded-full", "blur-3xl", "z-0", 3, "ngClass"], [1, "absolute", "bottom-0", "left-0", "w-[600px]", "h-[600px]", "rounded-full", "blur-3xl", "z-0", 3, "ngClass"], [1, "absolute", "top-1/2", "left-1/2", "-translate-x-1/2", "-translate-y-1/2", "w-[700px]", "h-[700px]", "rounded-full", "blur-3xl", "z-0", 3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "sticky", "top-0", "z-50", "animate-fade-in", 2, "animation-delay", "0s"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8", "py-6", "sm:py-8"], [1, "flex", "flex-col", "sm:flex-row", "items-start", "sm:items-center", "justify-between", "gap-3", "sm:gap-0"], [1, "flex-1"], [1, "text-2xl", "sm:text-3xl", "font-bold", "mb-2", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], [1, "flex", "flex-wrap", "items-center", "justify-between", "gap-3", "sm:gap-4"], [1, "text-sm", "sm:text-base"], [1, "flex", "items-center", "gap-4"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "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"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"], [1, "flex", "items-center", "gap-2"], ["type", "button", 1, "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"], [1, "flex", "items-center", "gap-2", "sm:gap-3", "whitespace-nowrap"], [1, "text-xs", "sm:text-sm", "font-medium"], [3, "click", "mousedown", "pointerdown"], [1, "px-3", "sm:px-4", "py-1.5", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [3, "value"], [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-6", "sm:px-8", "py-3"], [1, "flex", "items-center", "justify-between", "gap-4"], [1, "flex", "items-center", "gap-4", "flex-1", "min-w-0"], [1, "text-lg", "font-bold", "truncate", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], [1, "hidden", "lg:flex", "items-center", "gap-3", "px-4", "py-1.5", "rounded-lg", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["type", "button", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click", "title"], [1, "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "sticky", "top-[var(--header-height)]", "z-40", "border-b", "backdrop-blur-md", "animate-slide-up-fade", 3, "ngClass"], [1, "fixed", "right-6", "top-1/2", "-translate-y-1/2", "z-40", "hidden", "xl:flex", "flex-col", "gap-3"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", 3, "title", "ngClass"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8"], [1, "pt-8", "sm:pt-12", "pb-16", "sm:pb-24"], ["id", "overall-section", 1, "animate-fade-in-up", "mb-20", "sm:mb-28", 2, "animation-delay", "0.1s"], [3, "isLightMode"], [3, "resultSelected", "isLightMode"], [3, "expandedChange", "scrollToTop", "toggleView", "isLightMode", "isCompactMode", "isExpanded"], [3, "navigate", "isLightMode", "sections", "activeSection"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 6h16M4 12h16M4 18h16"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"], [1, "text-xs", "font-medium"], [1, "text-sm", "font-bold"], [1, "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-3", "flex-1", "min-w-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "flex-shrink-0", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "flex-1", "min-w-0"], [1, "text-sm", "font-medium", 3, "ngClass"], [1, "text-sm", "font-semibold", "truncate", 3, "ngClass"], [1, "px-2", "py-0.5", "rounded", "text-xs", "font-medium", "uppercase", "border", "flex-shrink-0", 3, "ngClass"], ["title", "Clear search", 1, "p-2", "rounded-lg", "transition-colors", "flex-shrink-0", 3, "click", "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", 3, "click", "title", "ngClass"], [3, "assessment", "revenueMetric", "charts", "metrics", "isLightMode", "isLoading", "isCompactMode", "isChartsLoading"], [1, "relative", "mb-16", "sm:mb-20", "animate-fade-in", 2, "animation-delay", "0.15s"], ["id", "insights-section", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at center, black 0%, transparent 70%)", 3, "ngClass"], [1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.2s"], [1, "pl-4", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"], [1, "text-xl", "sm:text-2xl", "font-bold"], [1, "masonry-grid"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-4"], ["aria-hidden", "true", 1, "absolute", "inset-0", "flex", "items-center"], [1, "w-full", "h-px", "bg-gradient-to-r", 3, "ngClass"], [1, "relative", "flex", "justify-center"], [1, "px-4", "py-2", "rounded-full", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"], [1, "animate-fade-in-up", 3, "class", "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [3, "insight", "allMetrics", "charts", "allCharts", "isLightMode", "viewMode", "isCompactMode"], [1, "animate-fade-in-up", 3, "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[280px]", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-center", "gap-3", "mb-4"], [3, "width", "height", "isLightMode"], [1, "mt-6", "space-y-2"], [1, "flex", "gap-2", "mt-4"], [1, "relative", "mb-14", "sm:mb-24", "mt-24", "sm:mt-32", "animate-fade-in", 2, "animation-delay", "0.35s"], ["id", "metrics-section", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at top right, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.4s"], [1, "flex", "items-center", "justify-between"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"], [1, "hidden", "sm:flex", "gap-2", "sm:gap-3", "items-center", "relative"], [1, "absolute", "-right-2", "top-1/2", "-translate-y-1/2", "z-10"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-all", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "transition-all", "flex", "items-center", "gap-2", "cursor-pointer", "hover:scale-105", "active:scale-95", 3, "click", "title"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"], [1, "sm:hidden", "-mx-6", "px-6"], [1, "flex", "gap-2", "overflow-x-auto", "pb-2", "snap-x", "snap-mandatory", "scrollbar-hide"], [1, "space-y-8", "sm:space-y-10"], [1, "rounded-xl", "p-12", "border", "text-center", "animate-fade-in", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z"], [1, "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full", "animate-spin"], ["disabled", "", 1, "font-semibold", 3, "value"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "ngClass", "opacity-70"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "click", "ngClass"], [1, "w-full", "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode"], [1, "bento-grid", "mt-4"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-4", "gap-3", "sm:gap-4", "mt-4"], [1, "animate-fade-in-up", 3, "class", "animation-delay"], [1, "animate-fade-in-up"], [1, "h-full", 3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode"], [1, "animate-fade-in-up", 3, "animation-delay"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[240px]", 3, "ngClass"], [1, "flex", "items-center", "gap-3", "mt-4"], [1, "mt-4"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-16", "h-16", "mx-auto", "mb-4", 3, "ngClass"], [1, "text-lg", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "relative", "mb-16", "sm:mb-20", "mt-28", "sm:mt-36", "animate-fade-in", 2, "animation-delay", "0.65s"], ["id", "breakdowns-section", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at bottom left, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "sm:flex-row", "sm:items-center", "justify-between", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.7s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], [1, "relative", "inline-block", 3, "click", "mousedown", "pointerdown"], [1, "px-3", "py-2", "text-sm", "rounded-lg", "border", "transition-all", "duration-200", "cursor-pointer", "focus:ring-2", "focus:ring-blue-500", "focus:outline-none", 3, "ngModelChange", "ngModel", "ngClass"], [1, "space-y-6"], [1, "w-4", "h-4", "border-2", "border-purple-500/30", "border-t-purple-500", "rounded-full", "animate-spin"], [3, "breakdown", "charts", "isLightMode", "isCompactMode"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], [1, "relative", "mb-16", "sm:mb-20", "mt-28", "sm:mt-36", "animate-fade-in", 2, "animation-delay", "0.85s"], ["id", "competitive-section", 1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.9s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"], [1, "hidden", "sm:block", "relative"], [3, "metrics", "allCharts", "isLightMode", "isCompactMode"], [1, "w-4", "h-4", "border-2", "border-indigo-500/30", "border-t-indigo-500", "rounded-full", "animate-spin"]], template: function SymphiqFunnelAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
22123
|
+
} }, inputs: { requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], funnelAnalysis: [1, "funnelAnalysis"], embedded: [1, "embedded"], scrollContainerId: [1, "scrollContainerId"], isLoading: [1, "isLoading"] }, decls: 88, vars: 102, consts: [["dashboardContainer", ""], [1, "bg-transparent"], [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, "absolute", "inset-0", 3, "ngClass"], [1, "absolute", "inset-0", "opacity-[0.03]", "z-20", 2, "background-image", "url('data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')"], [1, "absolute", "top-0", "right-0", "w-[800px]", "h-[800px]", "rounded-full", "blur-3xl", "z-0", 3, "ngClass"], [1, "absolute", "bottom-0", "left-0", "w-[600px]", "h-[600px]", "rounded-full", "blur-3xl", "z-0", 3, "ngClass"], [1, "absolute", "top-1/2", "left-1/2", "-translate-x-1/2", "-translate-y-1/2", "w-[700px]", "h-[700px]", "rounded-full", "blur-3xl", "z-0", 3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "sticky", "top-0", "z-50", "animate-fade-in", 2, "animation-delay", "0s"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8", "py-6", "sm:py-8"], [1, "flex", "flex-col", "sm:flex-row", "items-start", "sm:items-center", "justify-between", "gap-3", "sm:gap-0"], [1, "flex-1"], [1, "flex", "items-center", "gap-3"], [1, "text-2xl", "sm:text-3xl", "font-bold", "mb-2", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], ["title", "Refreshing data...", 1, "animate-spin", "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full"], [1, "flex", "flex-wrap", "items-center", "justify-between", "gap-3", "sm:gap-4"], [1, "text-sm", "sm:text-base"], [1, "flex", "items-center", "gap-4"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "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"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"], [1, "flex", "items-center", "gap-2"], ["type", "button", 1, "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"], [1, "flex", "items-center", "gap-2", "sm:gap-3", "whitespace-nowrap"], [1, "text-xs", "sm:text-sm", "font-medium"], [3, "click", "mousedown", "pointerdown"], [1, "px-3", "sm:px-4", "py-1.5", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [3, "value"], [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-6", "sm:px-8", "py-3"], [1, "flex", "items-center", "justify-between", "gap-4"], [1, "flex", "items-center", "gap-4", "flex-1", "min-w-0"], [1, "text-lg", "font-bold", "truncate", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], [1, "hidden", "lg:flex", "items-center", "gap-3", "px-4", "py-1.5", "rounded-lg", 3, "ngClass"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["type", "button", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click", "title"], [1, "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "sticky", "top-[var(--header-height)]", "z-40", "border-b", "backdrop-blur-md", "animate-slide-up-fade", 3, "ngClass"], [1, "fixed", "right-6", "top-1/2", "-translate-y-1/2", "z-40", "hidden", "xl:flex", "flex-col", "gap-3"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", 3, "title", "ngClass"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8"], [1, "pt-8", "sm:pt-12", "pb-16", "sm:pb-24"], ["id", "overall-section", 1, "animate-fade-in-up", "mb-20", "sm:mb-28", 2, "animation-delay", "0.1s"], [3, "isLightMode"], [3, "resultSelected", "isLightMode"], [3, "expandedChange", "scrollToTop", "toggleView", "isLightMode", "isCompactMode", "isExpanded"], [3, "navigate", "isLightMode", "sections", "activeSection"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 6h16M4 12h16M4 18h16"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"], [1, "text-xs", "font-medium"], [1, "text-sm", "font-bold"], [1, "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-3", "flex-1", "min-w-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "flex-shrink-0", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "flex-1", "min-w-0"], [1, "text-sm", "font-medium", 3, "ngClass"], [1, "text-sm", "font-semibold", "truncate", 3, "ngClass"], [1, "px-2", "py-0.5", "rounded", "text-xs", "font-medium", "uppercase", "border", "flex-shrink-0", 3, "ngClass"], ["title", "Clear search", 1, "p-2", "rounded-lg", "transition-colors", "flex-shrink-0", 3, "click", "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", 3, "click", "title", "ngClass"], [1, "rounded-xl", "border", "p-6", "sm:p-8", "animate-pulse", 3, "ngClass"], [3, "assessment", "revenueMetric", "charts", "metrics", "isLightMode", "isLoading", "isCompactMode", "isChartsLoading"], [1, "space-y-6"], [3, "width", "height", "isLightMode"], [1, "flex-1", "space-y-2"], [1, "space-y-2"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-4", "mt-6"], [1, "relative", "mb-16", "sm:mb-20", "animate-fade-in", 2, "animation-delay", "0.15s"], ["id", "insights-section", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at center, black 0%, transparent 70%)", 3, "ngClass"], [1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.2s"], [1, "pl-4", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"], [1, "text-xl", "sm:text-2xl", "font-bold"], [1, "masonry-grid"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-4"], ["aria-hidden", "true", 1, "absolute", "inset-0", "flex", "items-center"], [1, "w-full", "h-px", "bg-gradient-to-r", 3, "ngClass"], [1, "relative", "flex", "justify-center"], [1, "px-4", "py-2", "rounded-full", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[280px]", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-center", "gap-3", "mb-4"], [1, "mt-6", "space-y-2"], [1, "flex", "gap-2", "mt-4"], [1, "animate-fade-in-up", 3, "class", "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [3, "insight", "allMetrics", "charts", "allCharts", "isLightMode", "viewMode", "isCompactMode"], [1, "animate-fade-in-up", 3, "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "relative", "mb-14", "sm:mb-24", "mt-24", "sm:mt-32", "animate-fade-in", 2, "animation-delay", "0.35s"], ["id", "metrics-section", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at top right, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.4s"], [1, "flex", "items-center", "justify-between"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"], [1, "hidden", "sm:flex", "gap-2", "sm:gap-3", "items-center", "relative"], [1, "absolute", "-right-2", "top-1/2", "-translate-y-1/2", "z-10"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-all", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "transition-all", "flex", "items-center", "gap-2", "cursor-pointer", "hover:scale-105", "active:scale-95", 3, "click", "title"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"], [1, "sm:hidden", "-mx-6", "px-6"], [1, "flex", "gap-2", "overflow-x-auto", "pb-2", "snap-x", "snap-mandatory", "scrollbar-hide"], [1, "space-y-8", "sm:space-y-10"], [1, "space-y-8", "sm:space-y-10", 3, "animate-content-change", "transition-opacity-slow"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z"], [1, "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full", "animate-spin"], ["disabled", "", 1, "font-semibold", 3, "value"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "ngClass", "opacity-70"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "click", "ngClass"], [1, "rounded-xl", "border", "p-6", "animate-pulse", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-4"], [1, "grid", "grid-cols-2", "md:grid-cols-4", "gap-4", "mt-6"], [1, "rounded-xl", "p-12", "border", "text-center", "animate-fade-in", 3, "ngClass"], [1, "w-full", "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode"], [1, "bento-grid", "mt-4"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-4", "gap-3", "sm:gap-4", "mt-4"], [1, "animate-fade-in-up", 3, "class", "animation-delay"], [1, "animate-fade-in-up"], [1, "h-full", 3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode"], [1, "animate-fade-in-up", 3, "animation-delay"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[240px]", 3, "ngClass"], [1, "flex", "items-center", "gap-3", "mt-4"], [1, "mt-4"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-16", "h-16", "mx-auto", "mb-4", 3, "ngClass"], [1, "text-lg", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "relative", "mb-16", "sm:mb-20", "mt-28", "sm:mt-36", "animate-fade-in", 2, "animation-delay", "0.65s"], ["id", "breakdowns-section", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at bottom left, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "sm:flex-row", "sm:items-center", "justify-between", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.7s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], [1, "relative", "inline-block", 3, "click", "mousedown", "pointerdown"], [1, "px-3", "py-2", "text-sm", "rounded-lg", "border", "transition-all", "duration-200", "cursor-pointer", "focus:ring-2", "focus:ring-blue-500", "focus:outline-none", 3, "ngModelChange", "ngModel", "ngClass"], [1, "space-y-6", 3, "animate-content-change", "transition-opacity-slow"], [1, "w-4", "h-4", "border-2", "border-purple-500/30", "border-t-purple-500", "rounded-full", "animate-spin"], [1, "space-y-3"], [1, "flex", "items-center", "justify-between", "p-3", "rounded-lg", 3, "ngClass"], [3, "breakdown", "charts", "isLightMode", "isCompactMode"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], [1, "relative", "mb-16", "sm:mb-20", "mt-28", "sm:mt-36", "animate-fade-in", 2, "animation-delay", "0.85s"], ["id", "competitive-section", 1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.9s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"], [1, "hidden", "sm:block", "relative"], [3, "metrics", "allCharts", "isLightMode", "isCompactMode"], [1, "w-4", "h-4", "border-2", "border-indigo-500/30", "border-t-indigo-500", "rounded-full", "animate-spin"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4", "mt-6"]], template: function SymphiqFunnelAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
21957
22124
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
21958
22125
|
i0.ɵɵelementStart(0, "div", 1, 0);
|
|
21959
22126
|
i0.ɵɵelement(2, "div", 2);
|
|
@@ -21963,96 +22130,98 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21963
22130
|
i0.ɵɵelementStart(9, "div");
|
|
21964
22131
|
i0.ɵɵelement(10, "div", 8);
|
|
21965
22132
|
i0.ɵɵelementEnd();
|
|
21966
|
-
i0.ɵɵelementStart(11, "header", 9)(12, "div", 10)(13, "div", 11)(14, "div", 12)(15, "div", 13)(16, "
|
|
21967
|
-
i0.ɵɵtext(
|
|
22133
|
+
i0.ɵɵelementStart(11, "header", 9)(12, "div", 10)(13, "div", 11)(14, "div", 12)(15, "div", 13)(16, "div", 14)(17, "h1", 15);
|
|
22134
|
+
i0.ɵɵtext(18);
|
|
21968
22135
|
i0.ɵɵelementEnd();
|
|
21969
|
-
i0.ɵɵ
|
|
21970
|
-
i0.ɵɵtext(20, "Revenue Orchestration & Funnel Analysis");
|
|
22136
|
+
i0.ɵɵconditionalCreate(19, SymphiqFunnelAnalysisDashboardComponent_Conditional_19_Template, 1, 0, "div", 16);
|
|
21971
22137
|
i0.ɵɵelementEnd();
|
|
21972
|
-
i0.ɵɵelementStart(
|
|
21973
|
-
i0.ɵɵ
|
|
22138
|
+
i0.ɵɵelementStart(20, "div", 17)(21, "p", 18);
|
|
22139
|
+
i0.ɵɵtext(22, "Revenue Orchestration & Funnel Analysis");
|
|
22140
|
+
i0.ɵɵelementEnd();
|
|
22141
|
+
i0.ɵɵelementStart(23, "div", 19)(24, "button", 20);
|
|
22142
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Template_button_click_24_listener($event) { i0.ɵɵrestoreView(_r1); ctx.searchService.openSearch(); return i0.ɵɵresetView($event.preventDefault()); });
|
|
21974
22143
|
i0.ɵɵnamespaceSVG();
|
|
21975
|
-
i0.ɵɵelementStart(
|
|
21976
|
-
i0.ɵɵelement(
|
|
22144
|
+
i0.ɵɵelementStart(25, "svg", 21);
|
|
22145
|
+
i0.ɵɵelement(26, "path", 22);
|
|
21977
22146
|
i0.ɵɵelementEnd();
|
|
21978
22147
|
i0.ɵɵnamespaceHTML();
|
|
21979
|
-
i0.ɵɵelementStart(
|
|
21980
|
-
i0.ɵɵtext(
|
|
22148
|
+
i0.ɵɵelementStart(27, "span");
|
|
22149
|
+
i0.ɵɵtext(28, "Search");
|
|
21981
22150
|
i0.ɵɵelementEnd()();
|
|
21982
|
-
i0.ɵɵelementStart(
|
|
21983
|
-
i0.ɵɵlistener("click", function
|
|
21984
|
-
i0.ɵɵconditionalCreate(
|
|
22151
|
+
i0.ɵɵelementStart(29, "div", 23)(30, "button", 24);
|
|
22152
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Template_button_click_30_listener($event) { i0.ɵɵrestoreView(_r1); ctx.viewModeService.toggleViewMode(); return i0.ɵɵresetView($event.preventDefault()); });
|
|
22153
|
+
i0.ɵɵconditionalCreate(31, SymphiqFunnelAnalysisDashboardComponent_Conditional_31_Template, 4, 0)(32, SymphiqFunnelAnalysisDashboardComponent_Conditional_32_Template, 4, 0);
|
|
21985
22154
|
i0.ɵɵelementEnd()();
|
|
21986
|
-
i0.ɵɵelementStart(
|
|
21987
|
-
i0.ɵɵtext(
|
|
22155
|
+
i0.ɵɵelementStart(33, "div", 25)(34, "label", 26);
|
|
22156
|
+
i0.ɵɵtext(35, "View:");
|
|
21988
22157
|
i0.ɵɵelementEnd();
|
|
21989
|
-
i0.ɵɵelementStart(
|
|
21990
|
-
i0.ɵɵlistener("click", function
|
|
21991
|
-
i0.ɵɵelementStart(
|
|
21992
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
21993
|
-
i0.ɵɵrepeaterCreate(
|
|
22158
|
+
i0.ɵɵelementStart(36, "div", 27);
|
|
22159
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Template_div_click_36_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("mousedown", function SymphiqFunnelAnalysisDashboardComponent_Template_div_mousedown_36_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("pointerdown", function SymphiqFunnelAnalysisDashboardComponent_Template_div_pointerdown_36_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
22160
|
+
i0.ɵɵelementStart(37, "select", 28);
|
|
22161
|
+
i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Template_select_ngModelChange_37_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeSectionFilter($event)); });
|
|
22162
|
+
i0.ɵɵrepeaterCreate(38, SymphiqFunnelAnalysisDashboardComponent_For_39_Template, 2, 2, "option", 29, _forTrack0$1);
|
|
21994
22163
|
i0.ɵɵelementEnd()()()()()();
|
|
21995
|
-
i0.ɵɵelementStart(
|
|
21996
|
-
i0.ɵɵtext(
|
|
22164
|
+
i0.ɵɵelementStart(40, "div", 30)(41, "div", 31)(42, "div", 32);
|
|
22165
|
+
i0.ɵɵtext(43, "Generated At");
|
|
21997
22166
|
i0.ɵɵelementEnd();
|
|
21998
|
-
i0.ɵɵelementStart(
|
|
21999
|
-
i0.ɵɵtext(
|
|
22167
|
+
i0.ɵɵelementStart(44, "div", 33);
|
|
22168
|
+
i0.ɵɵtext(45);
|
|
22000
22169
|
i0.ɵɵelementEnd()();
|
|
22001
|
-
i0.ɵɵelementStart(
|
|
22002
|
-
i0.ɵɵtext(
|
|
22170
|
+
i0.ɵɵelementStart(46, "div", 31)(47, "div", 32);
|
|
22171
|
+
i0.ɵɵtext(48, "Requested by");
|
|
22003
22172
|
i0.ɵɵelementEnd();
|
|
22004
|
-
i0.ɵɵelementStart(
|
|
22005
|
-
i0.ɵɵtext(
|
|
22173
|
+
i0.ɵɵelementStart(49, "div", 33);
|
|
22174
|
+
i0.ɵɵtext(50);
|
|
22006
22175
|
i0.ɵɵelementEnd()()()()()();
|
|
22007
|
-
i0.ɵɵelementStart(
|
|
22008
|
-
i0.ɵɵtext(
|
|
22176
|
+
i0.ɵɵelementStart(51, "div", 10)(52, "div", 34)(53, "div", 35)(54, "div", 36)(55, "h1", 37);
|
|
22177
|
+
i0.ɵɵtext(56);
|
|
22009
22178
|
i0.ɵɵelementEnd();
|
|
22010
|
-
i0.ɵɵconditionalCreate(
|
|
22179
|
+
i0.ɵɵconditionalCreate(57, SymphiqFunnelAnalysisDashboardComponent_Conditional_57_Template, 7, 9, "div", 38);
|
|
22011
22180
|
i0.ɵɵelementEnd();
|
|
22012
|
-
i0.ɵɵelementStart(
|
|
22013
|
-
i0.ɵɵlistener("click", function
|
|
22181
|
+
i0.ɵɵelementStart(58, "div", 14)(59, "button", 39);
|
|
22182
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Template_button_click_59_listener($event) { i0.ɵɵrestoreView(_r1); ctx.searchService.openSearch(); return i0.ɵɵresetView($event.preventDefault()); });
|
|
22014
22183
|
i0.ɵɵnamespaceSVG();
|
|
22015
|
-
i0.ɵɵelementStart(
|
|
22016
|
-
i0.ɵɵelement(
|
|
22184
|
+
i0.ɵɵelementStart(60, "svg", 40);
|
|
22185
|
+
i0.ɵɵelement(61, "path", 22);
|
|
22017
22186
|
i0.ɵɵelementEnd()();
|
|
22018
22187
|
i0.ɵɵnamespaceHTML();
|
|
22019
|
-
i0.ɵɵelementStart(
|
|
22020
|
-
i0.ɵɵlistener("click", function
|
|
22021
|
-
i0.ɵɵconditionalCreate(
|
|
22188
|
+
i0.ɵɵelementStart(62, "button", 41);
|
|
22189
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Template_button_click_62_listener($event) { i0.ɵɵrestoreView(_r1); ctx.viewModeService.toggleViewMode(); return i0.ɵɵresetView($event.preventDefault()); });
|
|
22190
|
+
i0.ɵɵconditionalCreate(63, SymphiqFunnelAnalysisDashboardComponent_Conditional_63_Template, 2, 0, ":svg:svg", 40)(64, SymphiqFunnelAnalysisDashboardComponent_Conditional_64_Template, 2, 0, ":svg:svg", 40);
|
|
22022
22191
|
i0.ɵɵelementEnd();
|
|
22023
|
-
i0.ɵɵelementStart(
|
|
22024
|
-
i0.ɵɵlistener("click", function
|
|
22025
|
-
i0.ɵɵelementStart(
|
|
22026
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
22027
|
-
i0.ɵɵrepeaterCreate(
|
|
22192
|
+
i0.ɵɵelementStart(65, "div", 27);
|
|
22193
|
+
i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Template_div_click_65_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("mousedown", function SymphiqFunnelAnalysisDashboardComponent_Template_div_mousedown_65_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("pointerdown", function SymphiqFunnelAnalysisDashboardComponent_Template_div_pointerdown_65_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
22194
|
+
i0.ɵɵelementStart(66, "select", 42);
|
|
22195
|
+
i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Template_select_ngModelChange_66_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeSectionFilter($event)); });
|
|
22196
|
+
i0.ɵɵrepeaterCreate(67, SymphiqFunnelAnalysisDashboardComponent_For_68_Template, 2, 2, "option", 29, _forTrack0$1);
|
|
22028
22197
|
i0.ɵɵelementEnd()()()()()()();
|
|
22029
|
-
i0.ɵɵconditionalCreate(
|
|
22030
|
-
i0.ɵɵelementStart(
|
|
22031
|
-
i0.ɵɵconditionalCreate(
|
|
22032
|
-
i0.ɵɵconditionalCreate(
|
|
22033
|
-
i0.ɵɵconditionalCreate(
|
|
22034
|
-
i0.ɵɵconditionalCreate(
|
|
22035
|
-
i0.ɵɵconditionalCreate(
|
|
22198
|
+
i0.ɵɵconditionalCreate(69, SymphiqFunnelAnalysisDashboardComponent_Conditional_69_Template, 16, 8, "div", 43);
|
|
22199
|
+
i0.ɵɵelementStart(70, "div", 44);
|
|
22200
|
+
i0.ɵɵconditionalCreate(71, SymphiqFunnelAnalysisDashboardComponent_Conditional_71_Template, 1, 2, "button", 45);
|
|
22201
|
+
i0.ɵɵconditionalCreate(72, SymphiqFunnelAnalysisDashboardComponent_Conditional_72_Template, 1, 2, "button", 45);
|
|
22202
|
+
i0.ɵɵconditionalCreate(73, SymphiqFunnelAnalysisDashboardComponent_Conditional_73_Template, 1, 2, "button", 45);
|
|
22203
|
+
i0.ɵɵconditionalCreate(74, SymphiqFunnelAnalysisDashboardComponent_Conditional_74_Template, 1, 2, "button", 45);
|
|
22204
|
+
i0.ɵɵconditionalCreate(75, SymphiqFunnelAnalysisDashboardComponent_Conditional_75_Template, 1, 2, "button", 45);
|
|
22036
22205
|
i0.ɵɵelementEnd();
|
|
22037
|
-
i0.ɵɵelementStart(
|
|
22038
|
-
i0.ɵɵconditionalCreate(
|
|
22039
|
-
i0.ɵɵconditionalCreate(
|
|
22040
|
-
i0.ɵɵconditionalCreate(
|
|
22041
|
-
i0.ɵɵconditionalCreate(
|
|
22042
|
-
i0.ɵɵconditionalCreate(
|
|
22206
|
+
i0.ɵɵelementStart(76, "main", 46)(77, "div", 47);
|
|
22207
|
+
i0.ɵɵconditionalCreate(78, SymphiqFunnelAnalysisDashboardComponent_Conditional_78_Template, 3, 1, "div", 48);
|
|
22208
|
+
i0.ɵɵconditionalCreate(79, SymphiqFunnelAnalysisDashboardComponent_Conditional_79_Template, 17, 10);
|
|
22209
|
+
i0.ɵɵconditionalCreate(80, SymphiqFunnelAnalysisDashboardComponent_Conditional_80_Template, 30, 18);
|
|
22210
|
+
i0.ɵɵconditionalCreate(81, SymphiqFunnelAnalysisDashboardComponent_Conditional_81_Template, 18, 12);
|
|
22211
|
+
i0.ɵɵconditionalCreate(82, SymphiqFunnelAnalysisDashboardComponent_Conditional_82_Template, 19, 13);
|
|
22043
22212
|
i0.ɵɵelementEnd()();
|
|
22044
|
-
i0.ɵɵelement(
|
|
22045
|
-
i0.ɵɵelementStart(
|
|
22046
|
-
i0.ɵɵlistener("resultSelected", function
|
|
22213
|
+
i0.ɵɵelement(83, "symphiq-funnel-analysis-modal", 49)(84, "symphiq-tooltip-container");
|
|
22214
|
+
i0.ɵɵelementStart(85, "symphiq-search-bar", 50);
|
|
22215
|
+
i0.ɵɵlistener("resultSelected", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_search_bar_resultSelected_85_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleSearchResult($event)); });
|
|
22047
22216
|
i0.ɵɵelementEnd();
|
|
22048
|
-
i0.ɵɵelementStart(
|
|
22049
|
-
i0.ɵɵlistener("expandedChange", function
|
|
22217
|
+
i0.ɵɵelementStart(86, "symphiq-mobile-fab", 51);
|
|
22218
|
+
i0.ɵɵlistener("expandedChange", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_expandedChange_86_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.fabExpanded.set($event)); })("scrollToTop", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_scrollToTop_86_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.scrollToTop()); })("toggleView", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_toggleView_86_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.viewModeService.toggleViewMode()); });
|
|
22050
22219
|
i0.ɵɵelementEnd();
|
|
22051
|
-
i0.ɵɵelementStart(
|
|
22052
|
-
i0.ɵɵlistener("navigate", function
|
|
22220
|
+
i0.ɵɵelementStart(87, "symphiq-mobile-bottom-nav", 52);
|
|
22221
|
+
i0.ɵɵlistener("navigate", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_bottom_nav_navigate_87_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleMobileNavigation($event)); });
|
|
22053
22222
|
i0.ɵɵelementEnd()();
|
|
22054
22223
|
} if (rf & 2) {
|
|
22055
|
-
let
|
|
22224
|
+
let tmp_36_0;
|
|
22056
22225
|
i0.ɵɵstyleProp("display", ctx.embedded() ? "block" : null)("min-height", ctx.embedded() ? "auto" : null);
|
|
22057
22226
|
i0.ɵɵclassProp("min-h-screen", !ctx.embedded())("relative", !ctx.embedded());
|
|
22058
22227
|
i0.ɵɵadvance(2);
|
|
@@ -22078,8 +22247,10 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22078
22247
|
i0.ɵɵclassProp("max-h-0", ctx.isScrolled())("opacity-0", ctx.isScrolled())("max-h-96", !ctx.isScrolled())("opacity-100", !ctx.isScrolled());
|
|
22079
22248
|
i0.ɵɵadvance();
|
|
22080
22249
|
i0.ɵɵclassProp("pointer-events-none", ctx.isScrolled())("pointer-events-auto", !ctx.isScrolled());
|
|
22081
|
-
i0.ɵɵadvance(
|
|
22250
|
+
i0.ɵɵadvance(5);
|
|
22082
22251
|
i0.ɵɵtextInterpolate(ctx.funnelAnalysis().title);
|
|
22252
|
+
i0.ɵɵadvance();
|
|
22253
|
+
i0.ɵɵconditional(ctx.isLoading() && !ctx.isShowingLoader() ? 19 : -1);
|
|
22083
22254
|
i0.ɵɵadvance(2);
|
|
22084
22255
|
i0.ɵɵclassMap(ctx.headerSubtitleClass());
|
|
22085
22256
|
i0.ɵɵadvance(3);
|
|
@@ -22087,7 +22258,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22087
22258
|
i0.ɵɵadvance(6);
|
|
22088
22259
|
i0.ɵɵclassMap(ctx.buttonClass());
|
|
22089
22260
|
i0.ɵɵadvance();
|
|
22090
|
-
i0.ɵɵconditional(ctx.viewModeService.isCompact() ?
|
|
22261
|
+
i0.ɵɵconditional(ctx.viewModeService.isCompact() ? 31 : 32);
|
|
22091
22262
|
i0.ɵɵadvance(3);
|
|
22092
22263
|
i0.ɵɵclassMap(ctx.metaLabelClass());
|
|
22093
22264
|
i0.ɵɵadvance(3);
|
|
@@ -22106,7 +22277,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22106
22277
|
i0.ɵɵadvance(2);
|
|
22107
22278
|
i0.ɵɵclassMap(ctx.headerTitleClass());
|
|
22108
22279
|
i0.ɵɵadvance();
|
|
22109
|
-
i0.ɵɵtextInterpolate2("", (
|
|
22280
|
+
i0.ɵɵtextInterpolate2("", (tmp_36_0 = ctx.requestedByUser()) == null ? null : tmp_36_0.firstName, " ", (tmp_36_0 = ctx.requestedByUser()) == null ? null : tmp_36_0.lastName);
|
|
22110
22281
|
i0.ɵɵadvance();
|
|
22111
22282
|
i0.ɵɵclassProp("max-h-0", !ctx.isScrolled())("opacity-0", !ctx.isScrolled())("max-h-20", ctx.isScrolled())("opacity-100", ctx.isScrolled());
|
|
22112
22283
|
i0.ɵɵadvance();
|
|
@@ -22114,41 +22285,41 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22114
22285
|
i0.ɵɵadvance(4);
|
|
22115
22286
|
i0.ɵɵtextInterpolate(ctx.funnelAnalysis().title);
|
|
22116
22287
|
i0.ɵɵadvance();
|
|
22117
|
-
i0.ɵɵconditional(ctx.revenueMetric() ?
|
|
22288
|
+
i0.ɵɵconditional(ctx.revenueMetric() ? 57 : -1);
|
|
22118
22289
|
i0.ɵɵadvance(2);
|
|
22119
22290
|
i0.ɵɵclassMap(ctx.buttonClass());
|
|
22120
22291
|
i0.ɵɵadvance(3);
|
|
22121
22292
|
i0.ɵɵclassMap(ctx.buttonClass());
|
|
22122
22293
|
i0.ɵɵproperty("title", ctx.viewModeService.isCompact() ? "Compact View (Click to Expand)" : "Expanded View (Click to Compact)");
|
|
22123
22294
|
i0.ɵɵadvance();
|
|
22124
|
-
i0.ɵɵconditional(ctx.viewModeService.isCompact() ?
|
|
22295
|
+
i0.ɵɵconditional(ctx.viewModeService.isCompact() ? 63 : 64);
|
|
22125
22296
|
i0.ɵɵadvance(3);
|
|
22126
22297
|
i0.ɵɵclassMap(ctx.selectClass());
|
|
22127
22298
|
i0.ɵɵproperty("ngModel", ctx.selectedSectionFilter());
|
|
22128
22299
|
i0.ɵɵadvance();
|
|
22129
22300
|
i0.ɵɵrepeater(ctx.sectionFilters);
|
|
22130
22301
|
i0.ɵɵadvance(2);
|
|
22131
|
-
i0.ɵɵconditional(ctx.searchService.activeSearchResult() ?
|
|
22302
|
+
i0.ɵɵconditional(ctx.searchService.activeSearchResult() ? 69 : -1);
|
|
22132
22303
|
i0.ɵɵadvance(2);
|
|
22133
|
-
i0.ɵɵconditional(ctx.showOverallPerformance() ?
|
|
22304
|
+
i0.ɵɵconditional(ctx.showOverallPerformance() ? 71 : -1);
|
|
22134
22305
|
i0.ɵɵadvance();
|
|
22135
|
-
i0.ɵɵconditional(ctx.showKeyInsights() ?
|
|
22306
|
+
i0.ɵɵconditional(ctx.showKeyInsights() ? 72 : -1);
|
|
22136
22307
|
i0.ɵɵadvance();
|
|
22137
|
-
i0.ɵɵconditional(ctx.showPerformanceMetrics() ?
|
|
22308
|
+
i0.ɵɵconditional(ctx.showPerformanceMetrics() ? 73 : -1);
|
|
22138
22309
|
i0.ɵɵadvance();
|
|
22139
|
-
i0.ɵɵconditional(ctx.showPerformanceBreakdowns() ?
|
|
22310
|
+
i0.ɵɵconditional(ctx.showPerformanceBreakdowns() ? 74 : -1);
|
|
22140
22311
|
i0.ɵɵadvance();
|
|
22141
|
-
i0.ɵɵconditional(ctx.showCompetitiveIntelligence() ?
|
|
22312
|
+
i0.ɵɵconditional(ctx.showCompetitiveIntelligence() ? 75 : -1);
|
|
22142
22313
|
i0.ɵɵadvance(3);
|
|
22143
|
-
i0.ɵɵconditional(ctx.showOverallPerformance() ?
|
|
22314
|
+
i0.ɵɵconditional(ctx.showOverallPerformance() ? 78 : -1);
|
|
22144
22315
|
i0.ɵɵadvance();
|
|
22145
|
-
i0.ɵɵconditional(ctx.showKeyInsights() ?
|
|
22316
|
+
i0.ɵɵconditional(ctx.showKeyInsights() ? 79 : -1);
|
|
22146
22317
|
i0.ɵɵadvance();
|
|
22147
|
-
i0.ɵɵconditional(ctx.showPerformanceMetrics() ?
|
|
22318
|
+
i0.ɵɵconditional(ctx.showPerformanceMetrics() ? 80 : -1);
|
|
22148
22319
|
i0.ɵɵadvance();
|
|
22149
|
-
i0.ɵɵconditional(ctx.showPerformanceBreakdowns() ?
|
|
22320
|
+
i0.ɵɵconditional(ctx.showPerformanceBreakdowns() ? 81 : -1);
|
|
22150
22321
|
i0.ɵɵadvance();
|
|
22151
|
-
i0.ɵɵconditional(ctx.showCompetitiveIntelligence() ?
|
|
22322
|
+
i0.ɵɵconditional(ctx.showCompetitiveIntelligence() ? 82 : -1);
|
|
22152
22323
|
i0.ɵɵadvance();
|
|
22153
22324
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode());
|
|
22154
22325
|
i0.ɵɵadvance(2);
|
|
@@ -22157,7 +22328,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22157
22328
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("isCompactMode", ctx.viewModeService.isCompact())("isExpanded", ctx.fabExpanded());
|
|
22158
22329
|
i0.ɵɵadvance();
|
|
22159
22330
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("sections", ctx.navSections)("activeSection", ctx.activeNavSection());
|
|
22160
|
-
} }, dependencies: [CommonModule, i1.NgClass, FormsModule,
|
|
22331
|
+
} }, dependencies: [CommonModule, i1.NgClass, FormsModule, i6.NgSelectOption, i6.ɵNgSelectMultipleOption, i6.SelectControlValueAccessor, i6.NgControlStatus, i6.NgModel, OverallAssessmentComponent,
|
|
22161
22332
|
InsightCardComponent,
|
|
22162
22333
|
MetricCardComponent,
|
|
22163
22334
|
BreakdownSectionComponent,
|
|
@@ -22257,7 +22428,13 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22257
22428
|
[class.pointer-events-auto]="!isScrolled()">
|
|
22258
22429
|
<div class="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-0">
|
|
22259
22430
|
<div class="flex-1">
|
|
22260
|
-
<
|
|
22431
|
+
<div class="flex items-center gap-3">
|
|
22432
|
+
<h1 class="text-2xl sm:text-3xl font-bold mb-2 bg-gradient-to-r from-blue-600 via-purple-600 to-indigo-600 bg-clip-text text-transparent">{{funnelAnalysis().title}}</h1>
|
|
22433
|
+
@if (isLoading() && !isShowingLoader()) {
|
|
22434
|
+
<!-- Subtle refresh indicator -->
|
|
22435
|
+
<div class="animate-spin w-4 h-4 border-2 border-blue-500/30 border-t-blue-500 rounded-full" title="Refreshing data..."></div>
|
|
22436
|
+
}
|
|
22437
|
+
</div>
|
|
22261
22438
|
<div class="flex flex-wrap items-center justify-between gap-3 sm:gap-4">
|
|
22262
22439
|
<p [class]="headerSubtitleClass()" class="text-sm sm:text-base">Revenue Orchestration & Funnel Analysis</p>
|
|
22263
22440
|
<div class="flex items-center gap-4">
|
|
@@ -22475,15 +22652,42 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22475
22652
|
<div class="pt-8 sm:pt-12 pb-16 sm:pb-24">
|
|
22476
22653
|
@if (showOverallPerformance()) {
|
|
22477
22654
|
<div id="overall-section" class="animate-fade-in-up mb-20 sm:mb-28" style="animation-delay: 0.1s;">
|
|
22478
|
-
|
|
22479
|
-
|
|
22480
|
-
[
|
|
22481
|
-
|
|
22482
|
-
|
|
22483
|
-
|
|
22484
|
-
|
|
22485
|
-
|
|
22486
|
-
|
|
22655
|
+
@if (isDataLoading()) {
|
|
22656
|
+
<!-- Overall Assessment Skeleton -->
|
|
22657
|
+
<div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 sm:p-8 animate-pulse">
|
|
22658
|
+
<div class="space-y-6">
|
|
22659
|
+
<!-- Header -->
|
|
22660
|
+
<div class="flex items-center gap-3">
|
|
22661
|
+
<symphiq-skeleton-loader [width]="'48px'" [height]="'48px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22662
|
+
<div class="flex-1 space-y-2">
|
|
22663
|
+
<symphiq-skeleton-loader [width]="'40%'" [height]="'32px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22664
|
+
<symphiq-skeleton-loader [width]="'60%'" [height]="'20px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22665
|
+
</div>
|
|
22666
|
+
</div>
|
|
22667
|
+
<!-- Summary text -->
|
|
22668
|
+
<div class="space-y-2">
|
|
22669
|
+
<symphiq-skeleton-loader [width]="'100%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22670
|
+
<symphiq-skeleton-loader [width]="'95%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22671
|
+
<symphiq-skeleton-loader [width]="'90%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22672
|
+
</div>
|
|
22673
|
+
<!-- Chart placeholder -->
|
|
22674
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-6">
|
|
22675
|
+
<symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22676
|
+
<symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22677
|
+
</div>
|
|
22678
|
+
</div>
|
|
22679
|
+
</div>
|
|
22680
|
+
} @else {
|
|
22681
|
+
<symphiq-funnel-analysis-overall-assessment
|
|
22682
|
+
[assessment]="performanceOverview().overallAssessment || {}"
|
|
22683
|
+
[revenueMetric]="revenueMetric()"
|
|
22684
|
+
[charts]="chartsForItem('OVERALL_ASSESSMENT')"
|
|
22685
|
+
[metrics]="allMetrics()"
|
|
22686
|
+
[isLightMode]="isLightMode()"
|
|
22687
|
+
[isLoading]="isOverallAssessmentLoading()"
|
|
22688
|
+
[isCompactMode]="viewModeService.isCompact()"
|
|
22689
|
+
[isChartsLoading]="areChartsLoading()" />
|
|
22690
|
+
}
|
|
22487
22691
|
</div>
|
|
22488
22692
|
}
|
|
22489
22693
|
|
|
@@ -22522,7 +22726,32 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22522
22726
|
<span [class]="metaLabelClass()" class="text-xs sm:text-sm">{{ insights().length }} insights</span>
|
|
22523
22727
|
</div>
|
|
22524
22728
|
<!-- Masonry Layout for Insights -->
|
|
22525
|
-
@if (viewModeService.isExpanded()) {
|
|
22729
|
+
@if (isDataLoading() || (viewModeService.isExpanded() && viewModeService.getIsTransitioning())) {
|
|
22730
|
+
<!-- Skeleton loaders during data loading or transition to expanded view -->
|
|
22731
|
+
<div class="masonry-grid">
|
|
22732
|
+
@for (i of [1,2,3,4,5,6]; track i) {
|
|
22733
|
+
<div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse min-h-[280px]">
|
|
22734
|
+
<div class="space-y-4">
|
|
22735
|
+
<div class="flex items-center gap-3 mb-4">
|
|
22736
|
+
<symphiq-skeleton-loader [width]="'48px'" [height]="'48px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22737
|
+
<symphiq-skeleton-loader [width]="'60%'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22738
|
+
</div>
|
|
22739
|
+
<symphiq-skeleton-loader [width]="'100%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22740
|
+
<symphiq-skeleton-loader [width]="'95%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22741
|
+
<symphiq-skeleton-loader [width]="'85%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22742
|
+
<div class="mt-6 space-y-2">
|
|
22743
|
+
<symphiq-skeleton-loader [width]="'40%'" [height]="'14px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22744
|
+
<symphiq-skeleton-loader [width]="'50%'" [height]="'36px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22745
|
+
</div>
|
|
22746
|
+
<div class="flex gap-2 mt-4">
|
|
22747
|
+
<symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22748
|
+
<symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22749
|
+
</div>
|
|
22750
|
+
</div>
|
|
22751
|
+
</div>
|
|
22752
|
+
}
|
|
22753
|
+
</div>
|
|
22754
|
+
} @else if (viewModeService.isExpanded()) {
|
|
22526
22755
|
<div class="masonry-grid">
|
|
22527
22756
|
@for (insight of insights(); track $index) {
|
|
22528
22757
|
<div
|
|
@@ -22542,7 +22771,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22542
22771
|
</div>
|
|
22543
22772
|
}
|
|
22544
22773
|
</div>
|
|
22545
|
-
} @else
|
|
22774
|
+
} @else {
|
|
22546
22775
|
<!-- Compact Grid for Insights -->
|
|
22547
22776
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
|
22548
22777
|
@for (insight of insights(); track $index) {
|
|
@@ -22560,31 +22789,6 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22560
22789
|
</div>
|
|
22561
22790
|
}
|
|
22562
22791
|
</div>
|
|
22563
|
-
} @else {
|
|
22564
|
-
<!-- Skeleton loaders during transition to expanded view -->
|
|
22565
|
-
<div class="masonry-grid">
|
|
22566
|
-
@for (i of [1,2,3,4,5,6]; track i) {
|
|
22567
|
-
<div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse min-h-[280px]">
|
|
22568
|
-
<div class="space-y-4">
|
|
22569
|
-
<div class="flex items-center gap-3 mb-4">
|
|
22570
|
-
<symphiq-skeleton-loader [width]="'48px'" [height]="'48px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22571
|
-
<symphiq-skeleton-loader [width]="'60%'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22572
|
-
</div>
|
|
22573
|
-
<symphiq-skeleton-loader [width]="'100%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22574
|
-
<symphiq-skeleton-loader [width]="'95%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22575
|
-
<symphiq-skeleton-loader [width]="'85%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22576
|
-
<div class="mt-6 space-y-2">
|
|
22577
|
-
<symphiq-skeleton-loader [width]="'40%'" [height]="'14px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22578
|
-
<symphiq-skeleton-loader [width]="'50%'" [height]="'36px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22579
|
-
</div>
|
|
22580
|
-
<div class="flex gap-2 mt-4">
|
|
22581
|
-
<symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22582
|
-
<symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22583
|
-
</div>
|
|
22584
|
-
</div>
|
|
22585
|
-
</div>
|
|
22586
|
-
}
|
|
22587
|
-
</div>
|
|
22588
22792
|
}
|
|
22589
22793
|
</div>
|
|
22590
22794
|
</section>
|
|
@@ -22679,8 +22883,32 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22679
22883
|
</div>
|
|
22680
22884
|
</div>
|
|
22681
22885
|
</div>
|
|
22682
|
-
|
|
22683
|
-
|
|
22886
|
+
@if (isDataLoading()) {
|
|
22887
|
+
<!-- Metrics Skeleton -->
|
|
22888
|
+
<div class="space-y-8 sm:space-y-10">
|
|
22889
|
+
@for (i of [1,2,3]; track i) {
|
|
22890
|
+
<div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
|
|
22891
|
+
<div class="flex items-center justify-between mb-4">
|
|
22892
|
+
<div class="flex items-center gap-3">
|
|
22893
|
+
<symphiq-skeleton-loader [width]="'40px'" [height]="'40px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22894
|
+
<div class="space-y-2">
|
|
22895
|
+
<symphiq-skeleton-loader [width]="'150px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22896
|
+
<symphiq-skeleton-loader [width]="'100px'" [height]="'16px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22897
|
+
</div>
|
|
22898
|
+
</div>
|
|
22899
|
+
<symphiq-skeleton-loader [width]="'80px'" [height]="'36px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22900
|
+
</div>
|
|
22901
|
+
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mt-6">
|
|
22902
|
+
@for (j of [1,2,3,4]; track j) {
|
|
22903
|
+
<symphiq-skeleton-loader [width]="'100%'" [height]="'120px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
22904
|
+
}
|
|
22905
|
+
</div>
|
|
22906
|
+
</div>
|
|
22907
|
+
}
|
|
22908
|
+
</div>
|
|
22909
|
+
} @else {
|
|
22910
|
+
<div class="space-y-8 sm:space-y-10" [class.animate-content-change]="isCategoryTransitioning()" [class.transition-opacity-slow]="isCategoryTransitioning()">
|
|
22911
|
+
@for (funnelGroup of groupedMetrics(); track $index; let groupIdx = $index) {
|
|
22684
22912
|
<div class="w-full animate-fade-in-up" [style.animation-delay]="(0.5 + groupIdx * 0.15) + 's'"
|
|
22685
22913
|
[libSymphiqSearchHighlight]="searchService.highlightedResultId()"
|
|
22686
22914
|
[highlightId]="'metric-' + groupIdx">
|
|
@@ -22759,16 +22987,17 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22759
22987
|
</div>
|
|
22760
22988
|
}
|
|
22761
22989
|
}
|
|
22762
|
-
|
|
22763
|
-
|
|
22764
|
-
|
|
22765
|
-
|
|
22766
|
-
|
|
22767
|
-
|
|
22768
|
-
|
|
22769
|
-
|
|
22770
|
-
|
|
22771
|
-
|
|
22990
|
+
} @empty {
|
|
22991
|
+
<div [ngClass]="isLightMode() ? 'bg-slate-50 border-slate-200' : 'bg-slate-800/50 border-slate-700'" class="rounded-xl p-12 border text-center animate-fade-in">
|
|
22992
|
+
<svg class="w-16 h-16 mx-auto mb-4" [ngClass]="isLightMode() ? 'text-slate-300' : 'text-slate-600'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
22993
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
|
|
22994
|
+
</svg>
|
|
22995
|
+
<h3 [ngClass]="isLightMode() ? 'text-slate-900' : 'text-white'" class="text-lg font-semibold mb-2">No Metrics Found</h3>
|
|
22996
|
+
<p [ngClass]="isLightMode() ? 'text-slate-600' : 'text-slate-400'" class="text-sm">No performance metrics match your current filter selection. Try adjusting your filters to see more results.</p>
|
|
22997
|
+
</div>
|
|
22998
|
+
}
|
|
22999
|
+
</div>
|
|
23000
|
+
}
|
|
22772
23001
|
</div>
|
|
22773
23002
|
</section>
|
|
22774
23003
|
}
|
|
@@ -22827,27 +23056,49 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22827
23056
|
</select>
|
|
22828
23057
|
</div>
|
|
22829
23058
|
</div>
|
|
22830
|
-
|
|
22831
|
-
|
|
22832
|
-
|
|
22833
|
-
|
|
22834
|
-
[
|
|
22835
|
-
|
|
22836
|
-
|
|
22837
|
-
|
|
22838
|
-
|
|
22839
|
-
|
|
22840
|
-
|
|
22841
|
-
|
|
22842
|
-
|
|
22843
|
-
|
|
22844
|
-
|
|
22845
|
-
|
|
22846
|
-
|
|
22847
|
-
|
|
22848
|
-
|
|
22849
|
-
|
|
22850
|
-
|
|
23059
|
+
@if (isDataLoading()) {
|
|
23060
|
+
<!-- Breakdowns Skeleton -->
|
|
23061
|
+
<div class="space-y-6">
|
|
23062
|
+
@for (i of [1,2]; track i) {
|
|
23063
|
+
<div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
|
|
23064
|
+
<div class="flex items-center justify-between mb-4">
|
|
23065
|
+
<symphiq-skeleton-loader [width]="'200px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
23066
|
+
<symphiq-skeleton-loader [width]="'100px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
23067
|
+
</div>
|
|
23068
|
+
<div class="space-y-3">
|
|
23069
|
+
@for (j of [1,2,3,4]; track j) {
|
|
23070
|
+
<div class="flex items-center justify-between p-3 rounded-lg" [ngClass]="isLightMode() ? 'bg-slate-50' : 'bg-slate-700/50'">
|
|
23071
|
+
<symphiq-skeleton-loader [width]="'150px'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
23072
|
+
<symphiq-skeleton-loader [width]="'80px'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
23073
|
+
</div>
|
|
23074
|
+
}
|
|
23075
|
+
</div>
|
|
23076
|
+
</div>
|
|
23077
|
+
}
|
|
23078
|
+
</div>
|
|
23079
|
+
} @else {
|
|
23080
|
+
<div class="space-y-6" [class.animate-content-change]="isBreakdownTransitioning()" [class.transition-opacity-slow]="isBreakdownTransitioning()">
|
|
23081
|
+
@for (breakdown of breakdowns(); track $index) {
|
|
23082
|
+
<div class="animate-fade-in-up" [style.animation-delay]="(0.8 + $index * 0.1) + 's'"
|
|
23083
|
+
[libSymphiqSearchHighlight]="searchService.highlightedResultId()"
|
|
23084
|
+
[highlightId]="'breakdown-' + $index">
|
|
23085
|
+
<symphiq-funnel-analysis-breakdown-section
|
|
23086
|
+
[breakdown]="breakdown"
|
|
23087
|
+
[charts]="chartsForBreakdown(breakdown)"
|
|
23088
|
+
[isLightMode]="isLightMode()"
|
|
23089
|
+
[isCompactMode]="viewModeService.isCompact()" />
|
|
23090
|
+
</div>
|
|
23091
|
+
} @empty {
|
|
23092
|
+
<div [ngClass]="isLightMode() ? 'bg-slate-50 border-slate-200' : 'bg-slate-800/50 border-slate-700'" class="rounded-xl p-12 border text-center animate-fade-in">
|
|
23093
|
+
<svg class="w-16 h-16 mx-auto mb-4" [ngClass]="isLightMode() ? 'text-slate-300' : 'text-slate-600'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
23094
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"></path>
|
|
23095
|
+
</svg>
|
|
23096
|
+
<h3 [ngClass]="isLightMode() ? 'text-slate-900' : 'text-white'" class="text-lg font-semibold mb-2">No Breakdowns Found</h3>
|
|
23097
|
+
<p [ngClass]="isLightMode() ? 'text-slate-600' : 'text-slate-400'" class="text-sm">No performance breakdowns match your current filter selection. Try adjusting your filters to see more results.</p>
|
|
23098
|
+
</div>
|
|
23099
|
+
}
|
|
23100
|
+
</div>
|
|
23101
|
+
}
|
|
22851
23102
|
</div>
|
|
22852
23103
|
</section>
|
|
22853
23104
|
}
|
|
@@ -22909,11 +23160,25 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22909
23160
|
</div>
|
|
22910
23161
|
</div>
|
|
22911
23162
|
|
|
22912
|
-
|
|
22913
|
-
|
|
22914
|
-
|
|
22915
|
-
|
|
22916
|
-
|
|
23163
|
+
@if (isDataLoading()) {
|
|
23164
|
+
<!-- Competitive Intelligence Skeleton -->
|
|
23165
|
+
<div class="space-y-6">
|
|
23166
|
+
<div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
|
|
23167
|
+
<symphiq-skeleton-loader [width]="'60%'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
23168
|
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mt-6">
|
|
23169
|
+
@for (i of [1,2,3]; track i) {
|
|
23170
|
+
<symphiq-skeleton-loader [width]="'100%'" [height]="'140px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
|
|
23171
|
+
}
|
|
23172
|
+
</div>
|
|
23173
|
+
</div>
|
|
23174
|
+
</div>
|
|
23175
|
+
} @else {
|
|
23176
|
+
<symphiq-competitive-intelligence-view
|
|
23177
|
+
[metrics]="competitiveMetrics()"
|
|
23178
|
+
[allCharts]="allCharts()"
|
|
23179
|
+
[isLightMode]="isLightMode()"
|
|
23180
|
+
[isCompactMode]="viewModeService.isCompact()" />
|
|
23181
|
+
}
|
|
22917
23182
|
</div>
|
|
22918
23183
|
</section>
|
|
22919
23184
|
}
|
|
@@ -22944,17 +23209,17 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
22944
23209
|
|
|
22945
23210
|
</div>
|
|
22946
23211
|
`, styles: [":host{display:block;min-height:100%}.bg-gradient-radial{background:radial-gradient(circle,var(--tw-gradient-stops))}.bento-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;grid-auto-flow:dense}@media (min-width: 768px){.bento-grid{grid-template-columns:repeat(6,1fr)}}.bento-small{grid-column:span 2;grid-row:span 1}.bento-medium{grid-column:span 3;grid-row:span 1}.bento-large{grid-column:span 4;grid-row:span 1}.bento-featured{grid-column:span 6;grid-row:span 1}@media (max-width: 767px){.bento-small,.bento-medium,.bento-large,.bento-featured{grid-column:span 1}}.masonry-grid{column-count:1;column-gap:1.5rem}@media (min-width: 768px){.masonry-grid{column-count:2}}@media (min-width: 1280px){.masonry-grid{column-count:3}}.masonry-grid>div{break-inside:avoid;margin-bottom:1.5rem}.masonry-featured{column-span:all}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@media (max-width: 640px){.animate-fade-in-up{animation-duration:.4s}}\n"] }]
|
|
22947
|
-
}], () => [{ type: FunnelOrderService }, { type: ViewModeService }, { type: SearchService }], { modalComponent: [{
|
|
23212
|
+
}], () => [{ type: FunnelOrderService }, { type: ViewModeService }, { type: SearchService }, { type: TooltipService }], { modalComponent: [{
|
|
22948
23213
|
type: ViewChild,
|
|
22949
23214
|
args: [ModalComponent]
|
|
22950
23215
|
}], dashboardContainer: [{
|
|
22951
23216
|
type: ViewChild,
|
|
22952
23217
|
args: ['dashboardContainer', { static: false }]
|
|
22953
|
-
}], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], scrollContainerId: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollContainerId", required: false }] }], onScroll: [{
|
|
23218
|
+
}], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], scrollContainerId: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollContainerId", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], onScroll: [{
|
|
22954
23219
|
type: HostListener,
|
|
22955
23220
|
args: ['window:scroll', ['$event']]
|
|
22956
23221
|
}] }); })();
|
|
22957
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisDashboardComponent, { className: "SymphiqFunnelAnalysisDashboardComponent", filePath: "lib/components/funnel-analysis-dashboard/symphiq-funnel-analysis-dashboard.component.ts", lineNumber:
|
|
23222
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisDashboardComponent, { className: "SymphiqFunnelAnalysisDashboardComponent", filePath: "lib/components/funnel-analysis-dashboard/symphiq-funnel-analysis-dashboard.component.ts", lineNumber: 1010 }); })();
|
|
22958
23223
|
|
|
22959
23224
|
/**
|
|
22960
23225
|
* Shared Theme Color Utilities
|