@eric-emg/symphiq-components 1.2.129 → 1.2.131

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.
@@ -13558,9 +13558,21 @@ class ProfileItemLookupService {
13558
13558
  return undefined;
13559
13559
  }
13560
13560
  findItemsByIds(ids) {
13561
- return ids
13562
- .map(id => this.findItemById(id))
13561
+ console.log('[ProfileItemLookupService] findItemsByIds called:', {
13562
+ inputIds: ids,
13563
+ hasProfileData: !!this.profileData(),
13564
+ hasProfileStructured: !!this.profileData()?.profileStructured,
13565
+ hasSections: !!this.profileData()?.profileStructured?.sections
13566
+ });
13567
+ const results = ids
13568
+ .map(id => {
13569
+ const found = this.findItemById(id);
13570
+ console.log('[ProfileItemLookupService] findItemById:', { id, found: !!found });
13571
+ return found;
13572
+ })
13563
13573
  .filter((item) => item !== undefined);
13574
+ console.log('[ProfileItemLookupService] findItemsByIds result:', { inputCount: ids.length, foundCount: results.length });
13575
+ return results;
13564
13576
  }
13565
13577
  findItemWithContext(id) {
13566
13578
  const profile = this.profileData();
@@ -13636,6 +13648,11 @@ class RelatedAreaChipsComponent {
13636
13648
  this.relatedItems = computed(() => {
13637
13649
  const ids = this.relatedAreaIds();
13638
13650
  const items = this.lookupService.findItemsByIds(ids);
13651
+ console.log('[RelatedAreaChips] relatedItems computed:', {
13652
+ inputIds: ids,
13653
+ foundItems: items,
13654
+ foundCount: items.length
13655
+ });
13639
13656
  return items;
13640
13657
  }, ...(ngDevMode ? [{ debugName: "relatedItems" }] : []));
13641
13658
  }
@@ -13739,8 +13756,16 @@ class CompetitorChipListComponent {
13739
13756
  this.modalService = inject(ModalService);
13740
13757
  this.competitorItems = computed(() => {
13741
13758
  const ids = this.relatedCompetitorIds();
13759
+ console.log('[CompetitorChipList] competitorItems computed:', {
13760
+ inputIds: ids,
13761
+ hasIds: ids && ids.length > 0
13762
+ });
13742
13763
  if (ids && ids.length > 0) {
13743
13764
  const items = this.lookupService.findItemsByIds(ids);
13765
+ console.log('[CompetitorChipList] lookupService.findItemsByIds result:', {
13766
+ foundItems: items,
13767
+ foundCount: items.length
13768
+ });
13744
13769
  return items;
13745
13770
  }
13746
13771
  return [];
@@ -13748,9 +13773,11 @@ class CompetitorChipListComponent {
13748
13773
  this.displayItems = computed(() => {
13749
13774
  const items = this.competitorItems();
13750
13775
  if (items.length > 0) {
13776
+ console.log('[CompetitorChipList] displayItems: using competitorItems', { count: items.length });
13751
13777
  return items;
13752
13778
  }
13753
13779
  const fallbackItems = this.competitors().map(name => ({ label: name }));
13780
+ console.log('[CompetitorChipList] displayItems: using fallback competitors', { count: fallbackItems.length, fallbackItems });
13754
13781
  return fallbackItems;
13755
13782
  }, ...(ngDevMode ? [{ debugName: "displayItems" }] : []));
13756
13783
  }
@@ -15131,13 +15158,32 @@ class RecommendationCardComponent {
15131
15158
  return displayItem;
15132
15159
  }, ...(ngDevMode ? [{ debugName: "displayItem" }] : []));
15133
15160
  this.detailedRecommendation = computed(() => {
15161
+ let result;
15134
15162
  if (this.recommendation) {
15135
- return this.recommendation;
15163
+ result = this.recommendation;
15164
+ console.log('[RecommendationCard] detailedRecommendation: using direct recommendation input', {
15165
+ id: result?.id,
15166
+ hasRelatedCompetitorIds: !!result?.relatedCompetitorIds,
15167
+ relatedCompetitorIds: result?.relatedCompetitorIds,
15168
+ hasRelatedProfileItemIds: !!result?.relatedProfileItemIds,
15169
+ relatedProfileItemIds: result?.relatedProfileItemIds
15170
+ });
15171
+ return result;
15136
15172
  }
15137
15173
  if (!this.item?.id) {
15174
+ console.log('[RecommendationCard] detailedRecommendation: no item id');
15138
15175
  return undefined;
15139
15176
  }
15140
- return this.profileContextService.getRecommendationById(this.item.id);
15177
+ result = this.profileContextService.getRecommendationById(this.item.id);
15178
+ console.log('[RecommendationCard] detailedRecommendation: from profileContextService', {
15179
+ itemId: this.item.id,
15180
+ found: !!result,
15181
+ hasRelatedCompetitorIds: !!result?.relatedCompetitorIds,
15182
+ relatedCompetitorIds: result?.relatedCompetitorIds,
15183
+ hasRelatedProfileItemIds: !!result?.relatedProfileItemIds,
15184
+ relatedProfileItemIds: result?.relatedProfileItemIds
15185
+ });
15186
+ return result;
15141
15187
  }, ...(ngDevMode ? [{ debugName: "detailedRecommendation" }] : []));
15142
15188
  this.businessContextItems = computed(() => {
15143
15189
  const itemIds = this.detailedRecommendation()?.relatedProfileItemIds;
@@ -15198,6 +15244,13 @@ class RecommendationCardComponent {
15198
15244
  const hasCompetitors = !!(detailed?.relatedCompetitorIds && detailed.relatedCompetitorIds.length > 0);
15199
15245
  const isExpanded = this.isActuallyExpanded();
15200
15246
  const shouldShow = hasCompetitors && isExpanded;
15247
+ console.log('[RecommendationCard] shouldShowRelatedCompetitors:', {
15248
+ hasDetailedRec: !!detailed,
15249
+ relatedCompetitorIds: detailed?.relatedCompetitorIds,
15250
+ hasCompetitors,
15251
+ isExpanded,
15252
+ shouldShow
15253
+ });
15201
15254
  return shouldShow;
15202
15255
  }, ...(ngDevMode ? [{ debugName: "shouldShowRelatedCompetitors" }] : []));
15203
15256
  this.shouldShowRelatedAreas = computed(() => {
@@ -15205,6 +15258,13 @@ class RecommendationCardComponent {
15205
15258
  const hasAreas = !!(detailed?.relatedProfileItemIds && detailed.relatedProfileItemIds.length > 0);
15206
15259
  const isExpanded = this.isActuallyExpanded();
15207
15260
  const shouldShow = hasAreas && isExpanded;
15261
+ console.log('[RecommendationCard] shouldShowRelatedAreas:', {
15262
+ hasDetailedRec: !!detailed,
15263
+ relatedProfileItemIds: detailed?.relatedProfileItemIds,
15264
+ hasAreas,
15265
+ isExpanded,
15266
+ shouldShow
15267
+ });
15208
15268
  return shouldShow;
15209
15269
  }, ...(ngDevMode ? [{ debugName: "shouldShowRelatedAreas" }] : []));
15210
15270
  this.shouldShowRelatedFocusAreas = computed(() => {
@@ -15381,9 +15441,23 @@ class RecommendationCardComponent {
15381
15441
  return detailed?.relatedFocusAreas || [];
15382
15442
  }
15383
15443
  logCompetitorData() {
15444
+ const detailed = this.detailedRecommendation();
15445
+ console.log('[RecommendationCard] logCompetitorData:', {
15446
+ recommendationId: this.item?.id,
15447
+ recommendationLabel: this.displayItem()?.label,
15448
+ relatedCompetitorIds: detailed?.relatedCompetitorIds,
15449
+ hasCompetitors: !!(detailed?.relatedCompetitorIds && detailed.relatedCompetitorIds.length > 0)
15450
+ });
15384
15451
  return false;
15385
15452
  }
15386
15453
  logAreaData() {
15454
+ const detailed = this.detailedRecommendation();
15455
+ console.log('[RecommendationCard] logAreaData:', {
15456
+ recommendationId: this.item?.id,
15457
+ recommendationLabel: this.displayItem()?.label,
15458
+ relatedProfileItemIds: detailed?.relatedProfileItemIds,
15459
+ hasAreas: !!(detailed?.relatedProfileItemIds && detailed.relatedProfileItemIds.length > 0)
15460
+ });
15387
15461
  return false;
15388
15462
  }
15389
15463
  onCardClick(event) {
@@ -73269,22 +73343,14 @@ class SymphiqProfileAnalysisDashboardComponent {
73269
73343
  this.embeddedScrollEffect = effect(() => {
73270
73344
  const scrollEvent = this.scrollEvent();
73271
73345
  const isEmbedded = this.embedded();
73272
- console.log('[ProfileAnalysis] embeddedScrollEffect triggered', {
73273
- isEmbedded,
73274
- hasScrollEvent: !!scrollEvent,
73275
- scrollEventDetail: scrollEvent?.detail
73276
- });
73277
73346
  if (isEmbedded && !scrollEvent) {
73278
- console.log('[ProfileAnalysis] Early return: embedded but no scrollEvent');
73279
73347
  return;
73280
73348
  }
73281
73349
  if (!scrollEvent || !isEmbedded) {
73282
- console.log('[ProfileAnalysis] Early return: no scrollEvent or not embedded');
73283
73350
  return;
73284
73351
  }
73285
73352
  const detail = scrollEvent.detail;
73286
73353
  if (!detail) {
73287
- console.log('[ProfileAnalysis] Early return: no detail in scrollEvent');
73288
73354
  return;
73289
73355
  }
73290
73356
  const scrollTop = detail.scrollTop || 0;
@@ -73296,27 +73362,14 @@ class SymphiqProfileAnalysisDashboardComponent {
73296
73362
  this.headerScrollService.isScrolled.set(false);
73297
73363
  }
73298
73364
  const scrollElement = this.scrollElement();
73299
- console.log('[ProfileAnalysis] Scroll progress calculation', {
73300
- scrollTop,
73301
- hasScrollElement: !!scrollElement,
73302
- scrollHeight: scrollElement?.scrollHeight,
73303
- clientHeight: scrollElement?.clientHeight
73304
- });
73305
73365
  if (scrollElement) {
73306
73366
  const scrollHeight = scrollElement.scrollHeight || 0;
73307
73367
  const clientHeight = scrollElement.clientHeight || 0;
73308
73368
  const maxScroll = scrollHeight - clientHeight;
73309
73369
  if (maxScroll > 0) {
73310
73370
  const progress = (scrollTop / maxScroll) * 100;
73311
- console.log('[ProfileAnalysis] Setting scrollProgress', { maxScroll, progress: Math.min(100, Math.max(0, progress)) });
73312
73371
  this.scrollProgress.set(Math.min(100, Math.max(0, progress)));
73313
73372
  }
73314
- else {
73315
- console.log('[ProfileAnalysis] maxScroll <= 0, not updating progress', { maxScroll });
73316
- }
73317
- }
73318
- else {
73319
- console.log('[ProfileAnalysis] No scrollElement available');
73320
73373
  }
73321
73374
  }, ...(ngDevMode ? [{ debugName: "embeddedScrollEffect" }] : []));
73322
73375
  // Signal version of funnelAnalysis for reactive computed signals
@@ -73618,13 +73671,21 @@ class SymphiqProfileAnalysisDashboardComponent {
73618
73671
  modal.setMetricsAndInsights(this.allMetrics(), [], this.allCharts());
73619
73672
  }
73620
73673
  });
73674
+ // Update ProfileItemLookupService when profile changes
73675
+ // This enables competitor and focus area chip lookups in business insights
73676
+ effect(() => {
73677
+ const profileValue = this.profile();
73678
+ console.log('[ProfileAnalysisDashboard] profile effect triggered:', {
73679
+ hasProfile: !!profileValue,
73680
+ hasProfileStructured: !!profileValue?.profileStructured,
73681
+ hasSections: !!profileValue?.profileStructured?.sections
73682
+ });
73683
+ if (profileValue) {
73684
+ this.profileItemLookupService.setProfile(profileValue);
73685
+ }
73686
+ });
73621
73687
  }
73622
73688
  onWindowScroll() {
73623
- console.log('[ProfileAnalysis] onWindowScroll fired', {
73624
- embedded: this.embedded(),
73625
- windowScrollY: window.scrollY,
73626
- docHeight: document.documentElement.scrollHeight - window.innerHeight
73627
- });
73628
73689
  this.headerScrollService.handleScroll(this.embedded());
73629
73690
  if (!this.embedded()) {
73630
73691
  const scrollTop = window.scrollY;