@memberjunction/ng-skip-chat 2.75.0 → 2.77.0

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.
@@ -1,17 +1,18 @@
1
- import { Component, EventEmitter, Input, Output, ViewChildren, HostListener } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewChildren, HostListener, ChangeDetectionStrategy } from '@angular/core';
2
2
  import { CompositeKey, LogError, Metadata } from '@memberjunction/core';
3
3
  import { BuildComponentCompleteCode } from '@memberjunction/interactive-component-types';
4
4
  import { DrillDownInfo } from '../drill-down-info';
5
5
  import { marked } from 'marked';
6
6
  import { MJReactComponent } from '@memberjunction/ng-react';
7
7
  import { createRuntimeUtilities, SetupStyles } from '@memberjunction/react-runtime';
8
+ import { SKIP_CHAT_ADDITIONAL_LIBRARIES } from '../skip-chat-library-config';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/platform-browser";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@progress/kendo-angular-layout";
12
- import * as i4 from "@progress/kendo-angular-buttons";
13
- import * as i5 from "@memberjunction/ng-code-editor";
14
- import * as i6 from "@memberjunction/ng-react";
11
+ import * as i2 from "@memberjunction/ng-react";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "@progress/kendo-angular-layout";
14
+ import * as i5 from "@progress/kendo-angular-buttons";
15
+ import * as i6 from "@memberjunction/ng-code-editor";
15
16
  const _c0 = () => ({});
16
17
  function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
17
18
  i0.ɵɵelement(0, "i", 6);
@@ -166,7 +167,7 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_re
166
167
  } if (rf & 2) {
167
168
  const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index;
168
169
  const ctx_r1 = i0.ɵɵnextContext(2);
169
- i0.ɵɵproperty("component", ctx_r1.componentSpecs.get(ɵ$index_4_r3))("data", ctx_r1.getFlattenedDataContext())("state", ctx_r1.userStates.get(ɵ$index_4_r3) || i0.ɵɵpureFunction0(5, _c0))("utilities", ctx_r1.utilities)("styles", ctx_r1.componentStyles || undefined);
170
+ i0.ɵɵproperty("component", ctx_r1.reportOptions[ɵ$index_4_r3].option)("data", ctx_r1.getFlattenedDataContext())("state", ctx_r1.userStates.get(ɵ$index_4_r3) || i0.ɵɵpureFunction0(5, _c0))("utilities", ctx_r1.utilities)("styles", ctx_r1.componentStyles || undefined);
170
171
  } }
171
172
  function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Conditional_19_Template(rf, ctx) { if (rf & 1) {
172
173
  i0.ɵɵelementStart(0, "details", 45)(1, "summary", 51);
@@ -285,7 +286,7 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Templ
285
286
  i0.ɵɵadvance();
286
287
  i0.ɵɵattribute("data-tab-index", ɵ$index_4_r3);
287
288
  i0.ɵɵadvance();
288
- i0.ɵɵproperty("ngIf", !ctx_r1.currentError && ctx_r1.componentSpecs.has(ɵ$index_4_r3));
289
+ i0.ɵɵproperty("ngIf", !ctx_r1.currentError && ctx_r1.reportOptions[ɵ$index_4_r3] && ɵ$index_4_r3 === ctx_r1.selectedReportOptionIndex);
289
290
  i0.ɵɵadvance();
290
291
  i0.ɵɵconditional(ctx_r1.currentError && ctx_r1.selectedReportOptionIndex === ɵ$index_4_r3 ? 26 : -1);
291
292
  } }
@@ -504,7 +505,7 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_c
504
505
  i0.ɵɵelementEnd();
505
506
  } if (rf & 2) {
506
507
  const ctx_r1 = i0.ɵɵnextContext(3);
507
- i0.ɵɵproperty("component", ctx_r1.componentSpecs.get(0))("data", ctx_r1.getFlattenedDataContext())("state", ctx_r1.userStates.get(0) || i0.ɵɵpureFunction0(5, _c0))("utilities", ctx_r1.utilities)("styles", ctx_r1.componentStyles || undefined);
508
+ i0.ɵɵproperty("component", ctx_r1.reportOptions[0].option)("data", ctx_r1.getFlattenedDataContext())("state", ctx_r1.userStates.get(0) || i0.ɵɵpureFunction0(5, _c0))("utilities", ctx_r1.utilities)("styles", ctx_r1.componentStyles || undefined);
508
509
  } }
509
510
  function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_Template(rf, ctx) { if (rf & 1) {
510
511
  i0.ɵɵelementStart(0, "div", 21);
@@ -513,7 +514,7 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_Template(r
513
514
  } if (rf & 2) {
514
515
  const ctx_r1 = i0.ɵɵnextContext(2);
515
516
  i0.ɵɵadvance();
516
- i0.ɵɵproperty("ngIf", ctx_r1.componentSpecs.has(0));
517
+ i0.ɵɵproperty("ngIf", ctx_r1.reportOptions[0]);
517
518
  } }
518
519
  function SkipDynamicUIComponentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
519
520
  const _r11 = i0.ɵɵgetCurrentView();
@@ -570,6 +571,7 @@ export class SkipDynamicUIComponentComponent {
570
571
  sanitizer;
571
572
  cdr;
572
573
  ngZone;
574
+ adapter;
573
575
  UIComponentCode = null;
574
576
  ComponentObjectName = null;
575
577
  ShowPrintReport = true;
@@ -596,16 +598,20 @@ export class SkipDynamicUIComponentComponent {
596
598
  isResizing = false;
597
599
  startY = 0;
598
600
  startHeight = 0;
599
- // Cache for component specs and user states
600
- componentSpecs = new Map();
601
+ // Cache for user states only - component specs come from data
601
602
  userStates = new Map();
602
603
  utilities = null;
603
604
  componentStyles = null;
605
+ // Memoized flattened data context to prevent ExpressionChangedAfterItHasBeenCheckedError
606
+ _flattenedDataContext = null;
607
+ _lastDataContextHash = null;
604
608
  // Event handlers from React components
605
- constructor(sanitizer, cdr, ngZone) {
609
+ static librariesInitialized = false;
610
+ constructor(sanitizer, cdr, ngZone, adapter) {
606
611
  this.sanitizer = sanitizer;
607
612
  this.cdr = cdr;
608
613
  this.ngZone = ngZone;
614
+ this.adapter = adapter;
609
615
  }
610
616
  /**
611
617
  * Gets the currently selected report option
@@ -661,12 +667,9 @@ export class SkipDynamicUIComponentComponent {
661
667
  // Update the component info - this can fail if placeholders are missing
662
668
  this.UIComponentCode = BuildComponentCompleteCode(selectedOption.option);
663
669
  this.ComponentObjectName = selectedOption.option.name;
664
- // Create or update the component spec for this option
665
- if (!this.componentSpecs.has(this.selectedReportOptionIndex)) {
666
- this.createComponentSpecForOption(this.selectedReportOptionIndex);
667
- // Trigger change detection after modifying componentSpecs
668
- this.cdr.detectChanges();
669
- }
670
+ // No need to cache component specs - they come from the data
671
+ // Just trigger change detection to render the new component
672
+ this.cdr.detectChanges();
670
673
  }
671
674
  catch (error) {
672
675
  console.error('Failed to build component code:', error);
@@ -731,8 +734,8 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
731
734
  retryCurrentOption() {
732
735
  // Clear the error
733
736
  this.currentError = null;
734
- // Re-create the component spec
735
- this.createComponentSpecForOption(this.selectedReportOptionIndex);
737
+ // Just clear the error and re-render
738
+ // Component spec comes from reportOptions data
736
739
  // Trigger change detection
737
740
  this.cdr.detectChanges();
738
741
  }
@@ -915,7 +918,17 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
915
918
  this.detailsPanelHeight = `${maxHeight}px`;
916
919
  }
917
920
  }
918
- ngAfterViewInit() {
921
+ async ngAfterViewInit() {
922
+ // Initialize libraries once per application if not already done
923
+ if (!SkipDynamicUIComponentComponent.librariesInitialized) {
924
+ try {
925
+ await this.adapter.initialize(undefined, SKIP_CHAT_ADDITIONAL_LIBRARIES);
926
+ SkipDynamicUIComponentComponent.librariesInitialized = true;
927
+ }
928
+ catch (error) {
929
+ LogError('Failed to initialize Skip Chat libraries', error);
930
+ }
931
+ }
919
932
  if (this.SkipData) {
920
933
  this.setupReportOptions(this.SkipData);
921
934
  }
@@ -923,25 +936,33 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
923
936
  const runtimeUtils = createRuntimeUtilities();
924
937
  this.utilities = runtimeUtils.buildUtilities();
925
938
  this.componentStyles = SetupStyles();
926
- // Create component specs for all options
939
+ // Initialize user states for all options
927
940
  // Use Promise.resolve to avoid ExpressionChangedAfterItHasBeenCheckedError
928
941
  if (this.reportOptions.length > 0) {
929
942
  Promise.resolve().then(() => {
930
943
  this.reportOptions.forEach((_, index) => {
931
- this.createComponentSpecForOption(index);
944
+ if (!this.userStates.has(index)) {
945
+ this.userStates.set(index, {});
946
+ }
932
947
  });
933
948
  this.cdr.detectChanges();
934
949
  });
935
950
  }
936
951
  }
937
952
  ngOnDestroy() {
938
- // Clean up component specs and states
939
- this.componentSpecs.clear();
953
+ // Clean up user states
940
954
  this.userStates.clear();
955
+ // Ensure resize listeners are removed if still active
956
+ if (this.isResizing) {
957
+ this.stopResize();
958
+ }
941
959
  // The MJReactComponent handles its own cleanup
942
960
  }
943
961
  ngOnChanges(changes) {
944
962
  if (changes['SkipData']) {
963
+ // Clear cached data context when SkipData changes
964
+ this._flattenedDataContext = null;
965
+ this._lastDataContextHash = null;
945
966
  const skipData = changes['SkipData'].currentValue;
946
967
  if (skipData) {
947
968
  this.setupReportOptions(skipData);
@@ -1006,33 +1027,12 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1006
1027
  }
1007
1028
  }
1008
1029
  /**
1009
- * Create a component spec for a specific option index
1030
+ * Initialize user state for a specific option index
1010
1031
  */
1011
- createComponentSpecForOption(optionIndex) {
1012
- const option = this.reportOptions[optionIndex];
1013
- if (!option)
1014
- return;
1015
- try {
1016
- const component = option.option;
1017
- // Store the component spec
1018
- this.componentSpecs.set(optionIndex, component);
1019
- // Initialize user state if not exists
1020
- if (!this.userStates.has(optionIndex)) {
1021
- this.userStates.set(optionIndex, {});
1022
- }
1023
- }
1024
- catch (e) {
1025
- console.error('Error creating component spec:', e);
1026
- // Determine the type of error and create a user-friendly message
1027
- let errorType = 'Component Specification Error';
1028
- let errorMessage = 'Failed to create component specification.';
1029
- let technicalDetails = e.toString();
1030
- this.currentError = {
1031
- type: errorType,
1032
- message: errorMessage,
1033
- technicalDetails: technicalDetails + '\n\nComponent Option: ' + (optionIndex + 1) + '\nComponent Name: ' + option.option.name
1034
- };
1035
- LogError(e);
1032
+ initializeUserStateForOption(optionIndex) {
1033
+ // Initialize user state if not exists
1034
+ if (!this.userStates.has(optionIndex)) {
1035
+ this.userStates.set(optionIndex, {});
1036
1036
  }
1037
1037
  }
1038
1038
  /**
@@ -1069,6 +1069,17 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1069
1069
  this.handleOpenEntityRecord(event.entityName, event.key);
1070
1070
  }
1071
1071
  getFlattenedDataContext() {
1072
+ // Create a simple hash of the data context to detect changes
1073
+ let currentHash = '';
1074
+ if (this.SkipData?.dataContext) {
1075
+ const loadedItems = this.SkipData.dataContext.Items.filter((i) => i.DataLoaded && i._Data?.length > 0);
1076
+ currentHash = loadedItems.map((item) => `${item.ID}_${item._Data?.length || 0}`).join('_');
1077
+ }
1078
+ // Check if we need to recalculate (data changed)
1079
+ if (this._flattenedDataContext && this._lastDataContextHash === currentHash) {
1080
+ return this._flattenedDataContext;
1081
+ }
1082
+ // Recalculate and cache
1072
1083
  const flattenedDataContext = {};
1073
1084
  if (this.SkipData?.dataContext) {
1074
1085
  const loadedItems = this.SkipData.dataContext.Items.filter((i) => i.DataLoaded && i._Data?.length > 0);
@@ -1076,7 +1087,9 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1076
1087
  flattenedDataContext["data_item_" + i] = loadedItems[i]._Data;
1077
1088
  }
1078
1089
  }
1079
- return flattenedDataContext;
1090
+ this._flattenedDataContext = flattenedDataContext;
1091
+ this._lastDataContextHash = currentHash;
1092
+ return this._flattenedDataContext;
1080
1093
  }
1081
1094
  // Event handler implementations
1082
1095
  handleRefreshData() {
@@ -1123,57 +1136,13 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1123
1136
  }
1124
1137
  // TODO: Handle other custom events as needed
1125
1138
  }
1126
- // SetupUtilities method removed - now using React runtime's RuntimeUtilities
1127
- // CreateSimpleMetadata method removed - now using React runtime's RuntimeUtilities
1128
- // SetupStyles method removed - now using React runtime's SetupStyles function
1129
- // CreateSimpleRunQuery method removed - now using React runtime's RuntimeUtilities
1130
- // CreateSimpleRunView method removed - now using React runtime's RuntimeUtilities
1131
- SetupCallbacks() {
1132
- const cb = {
1133
- RefreshData: () => {
1134
- // this is a callback function that can be called from the component to refresh data
1135
- console.log('Component requested data refresh');
1136
- // need to implement this
1137
- },
1138
- OpenEntityRecord: (entityName, key) => {
1139
- // this is a callback function that can be called from the component to open an entity record
1140
- if (entityName) {
1141
- // bubble this up to our parent component as we don't directly open records in this component
1142
- const md = new Metadata();
1143
- const entityMatch = md.EntityByName(entityName);
1144
- if (!entityMatch) {
1145
- // couldn't find it, but sometimes the AI uses a table name or a view name, let's check for that
1146
- const altMatch = md.Entities.filter(e => e.BaseTable.toLowerCase() === entityName.toLowerCase() ||
1147
- e.BaseView.toLowerCase() === entityName.toLowerCase() ||
1148
- e.SchemaName.toLowerCase() + '.' + e.BaseTable.toLowerCase() === entityName.toLowerCase() ||
1149
- e.SchemaName.toLowerCase() + '.' + e.BaseView.toLowerCase() === entityName.toLowerCase());
1150
- if (altMatch && altMatch.length === 1) {
1151
- entityName = altMatch[0].Name;
1152
- }
1153
- }
1154
- const cKey = new CompositeKey(key);
1155
- this.DrillDownEvent.emit(new DrillDownInfo(entityName, cKey.ToWhereClause()));
1156
- }
1157
- },
1158
- UpdateUserState: (userState) => {
1159
- // this is a callback function that can be called from the component to update user state
1160
- console.log('Component updated user state:', userState);
1161
- // need to implement this
1162
- },
1163
- NotifyEvent: (eventName, eventData) => {
1164
- // this is a callback function that can be called from the component to notify an event
1165
- console.log(`Component raised event: ${eventName} notified with data:`, eventData);
1166
- }
1167
- };
1168
- return cb;
1169
- }
1170
1139
  async refreshReport(data) {
1171
1140
  const currentComponent = this.getCurrentReactComponent();
1172
1141
  if (currentComponent) {
1173
1142
  currentComponent.refresh(data);
1174
1143
  }
1175
1144
  }
1176
- static ɵfac = function SkipDynamicUIComponentComponent_Factory(t) { return new (t || SkipDynamicUIComponentComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1145
+ static ɵfac = function SkipDynamicUIComponentComponent_Factory(t) { return new (t || SkipDynamicUIComponentComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.AngularAdapterService)); };
1177
1146
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkipDynamicUIComponentComponent, selectors: [["skip-dynamic-ui-component"]], viewQuery: function SkipDynamicUIComponentComponent_Query(rf, ctx) { if (rf & 1) {
1178
1147
  i0.ɵɵviewQuery(MJReactComponent, 5);
1179
1148
  } if (rf & 2) {
@@ -1185,11 +1154,11 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1185
1154
  i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_Template, 3, 1, "kendo-tabstrip", 0)(1, SkipDynamicUIComponentComponent_Conditional_1_Template, 26, 12, "div", 1);
1186
1155
  } if (rf & 2) {
1187
1156
  i0.ɵɵconditional(ctx.reportOptions.length > 1 ? 0 : 1);
1188
- } }, dependencies: [i2.NgIf, i3.TabStripComponent, i3.TabStripTabComponent, i3.TabContentDirective, i3.TabTitleDirective, i4.ButtonComponent, i5.CodeEditorComponent, i6.MJReactComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n position: relative;\n }\n \n \n\n .tab-action-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background-color: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n }\n \n .tab-actions-left[_ngcontent-%COMP%], \n .tab-actions-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n \n \n\n .tab-action-button[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background-color: transparent;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #333;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n \n .tab-action-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n }\n \n .tab-action-button[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n \n .tab-action-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n \n \n\n .tab-action-button.create-button[_ngcontent-%COMP%], \n .tab-action-button.print-button[_ngcontent-%COMP%] {\n background-color: white;\n color: #333;\n border-color: #e0e0e0;\n }\n \n .tab-action-button.create-button[_ngcontent-%COMP%]:hover:not(:disabled), \n .tab-action-button.print-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n }\n \n \n\n .tab-action-button.toggle-button[_ngcontent-%COMP%] {\n background-color: white;\n color: #666;\n border-color: #e0e0e0;\n }\n \n .tab-action-button.toggle-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n color: #333;\n }\n \n .tab-action-button.toggle-button.active[_ngcontent-%COMP%] {\n background-color: #5B4FE9;\n color: white;\n border-color: #5B4FE9;\n }\n \n .tab-action-button.toggle-button.active[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #4940D4;\n border-color: #4940D4;\n }\n \n \n\n .details-panel[_ngcontent-%COMP%] {\n border-bottom: 1px solid #e0e0e0;\n background-color: #fafafa;\n overflow: hidden;\n transition: height 0.3s ease;\n }\n \n .details-content[_ngcontent-%COMP%] {\n padding: 16px;\n overflow-y: auto;\n height: 100%;\n font-size: 14px;\n line-height: 1.6;\n }\n \n .details-content.code-content[_ngcontent-%COMP%] {\n padding: 0;\n }\n \n \n\n .panel-resizer[_ngcontent-%COMP%] {\n height: 4px;\n background-color: #e0e0e0;\n cursor: ns-resize;\n position: relative;\n transition: background-color 0.2s ease;\n }\n \n .panel-resizer[_ngcontent-%COMP%]:hover {\n background-color: #d0d0d0;\n }\n \n .resizer-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 2px;\n background-color: #999;\n border-radius: 1px;\n }\n \n \n\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h1) { font-size: 1.5em; margin-top: 0; margin-bottom: 0.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h2) { font-size: 1.3em; margin-top: 1em; margin-bottom: 0.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h3) { font-size: 1.1em; margin-top: 1em; margin-bottom: 0.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(ul), .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(ol) { margin-left: 1.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(code) { \n background-color: #f4f4f4; \n padding: 2px 4px; \n border-radius: 3px; \n font-family: 'Courier New', monospace; \n font-size: 0.9em;\n }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(pre) { \n background-color: #f4f4f4; \n padding: 12px; \n border-radius: 4px; \n overflow-x: auto; \n }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(blockquote) { \n border-left: 4px solid #e0e0e0; \n padding-left: 16px; \n margin-left: 0; \n color: #666; \n }\n \n \n\n .k-tabstrip {\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n margin: 10px 5px 5px 5px;\n }\n \n .k-tabstrip-items {\n background: #f8f9fa;\n border: none;\n border-radius: 8px 8px 0 0;\n flex: 0 0 auto;\n padding: 8px 12px 0 12px;\n gap: 4px;\n display: flex;\n }\n \n .k-tabstrip-items-wrapper {\n height: 100%;\n }\n \n .k-content {\n flex: 1;\n overflow: hidden;\n padding: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-radius: 0 0 8px 8px;\n }\n \n .k-tabstrip .k-item {\n margin-right: 2px;\n border: none;\n background: transparent;\n border-radius: 6px 6px 0 0;\n padding: 2px;\n transition: all 0.2s ease;\n }\n \n .k-tabstrip .k-item.k-selected {\n background: white;\n border: 1px solid #e0e0e0;\n border-bottom: 1px solid white;\n margin-bottom: -1px;\n z-index: 1;\n }\n \n .k-tabstrip .k-link {\n padding: 8px 16px;\n font-weight: 500;\n font-size: 13px;\n color: #666;\n transition: all 0.15s ease;\n border-radius: 4px 4px 0 0;\n background: transparent;\n border: none;\n text-transform: lowercase;\n }\n \n .k-tabstrip .k-link:first-letter {\n text-transform: uppercase;\n }\n \n .k-tabstrip .k-item:hover:not(.k-selected) .k-link {\n color: #333;\n background: rgba(0, 0, 0, 0.04);\n }\n \n .k-tabstrip .k-item.k-selected .k-link {\n color: #1976d2;\n font-weight: 600;\n background: white;\n }\n \n \n\n .k-tabstrip .k-link .star-icon {\n display: inline-block;\n margin-right: 4px;\n color: #ffd700;\n font-size: 12px;\n vertical-align: middle;\n }\n \n \n\n .k-tabstrip-items::before, \n .k-tabstrip-items::after {\n display: none;\n }\n \n .k-tabstrip .k-item::before, \n .k-tabstrip .k-item::after {\n display: none;\n }\n \n \n\n .k-tabstrip .k-link:focus {\n outline: none;\n box-shadow: none;\n }\n \n \n\n .k-tabstrip .k-content.k-state-active {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n \n \n\n .react-host-container[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }"] });
1157
+ } }, dependencies: [i3.NgIf, i4.TabStripComponent, i4.TabStripTabComponent, i4.TabContentDirective, i4.TabTitleDirective, i5.ButtonComponent, i6.CodeEditorComponent, i2.MJReactComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n position: relative;\n }\n \n \n\n .tab-action-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background-color: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n }\n \n .tab-actions-left[_ngcontent-%COMP%], \n .tab-actions-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n \n \n\n .tab-action-button[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background-color: transparent;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #333;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n \n .tab-action-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n }\n \n .tab-action-button[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n \n .tab-action-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n \n \n\n .tab-action-button.create-button[_ngcontent-%COMP%], \n .tab-action-button.print-button[_ngcontent-%COMP%] {\n background-color: white;\n color: #333;\n border-color: #e0e0e0;\n }\n \n .tab-action-button.create-button[_ngcontent-%COMP%]:hover:not(:disabled), \n .tab-action-button.print-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n }\n \n \n\n .tab-action-button.toggle-button[_ngcontent-%COMP%] {\n background-color: white;\n color: #666;\n border-color: #e0e0e0;\n }\n \n .tab-action-button.toggle-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n color: #333;\n }\n \n .tab-action-button.toggle-button.active[_ngcontent-%COMP%] {\n background-color: #5B4FE9;\n color: white;\n border-color: #5B4FE9;\n }\n \n .tab-action-button.toggle-button.active[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #4940D4;\n border-color: #4940D4;\n }\n \n \n\n .details-panel[_ngcontent-%COMP%] {\n border-bottom: 1px solid #e0e0e0;\n background-color: #fafafa;\n overflow: hidden;\n transition: height 0.3s ease;\n }\n \n .details-content[_ngcontent-%COMP%] {\n padding: 16px;\n overflow-y: auto;\n height: 100%;\n font-size: 14px;\n line-height: 1.6;\n }\n \n .details-content.code-content[_ngcontent-%COMP%] {\n padding: 0;\n }\n \n \n\n .panel-resizer[_ngcontent-%COMP%] {\n height: 4px;\n background-color: #e0e0e0;\n cursor: ns-resize;\n position: relative;\n transition: background-color 0.2s ease;\n }\n \n .panel-resizer[_ngcontent-%COMP%]:hover {\n background-color: #d0d0d0;\n }\n \n .resizer-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 2px;\n background-color: #999;\n border-radius: 1px;\n }\n \n \n\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h1) { font-size: 1.5em; margin-top: 0; margin-bottom: 0.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h2) { font-size: 1.3em; margin-top: 1em; margin-bottom: 0.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h3) { font-size: 1.1em; margin-top: 1em; margin-bottom: 0.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(ul), .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(ol) { margin-left: 1.5em; }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(code) { \n background-color: #f4f4f4; \n padding: 2px 4px; \n border-radius: 3px; \n font-family: 'Courier New', monospace; \n font-size: 0.9em;\n }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(pre) { \n background-color: #f4f4f4; \n padding: 12px; \n border-radius: 4px; \n overflow-x: auto; \n }\n .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(blockquote) { \n border-left: 4px solid #e0e0e0; \n padding-left: 16px; \n margin-left: 0; \n color: #666; \n }\n \n \n\n .k-tabstrip {\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n margin: 10px 5px 5px 5px;\n }\n \n .k-tabstrip-items {\n background: #f8f9fa;\n border: none;\n border-radius: 8px 8px 0 0;\n flex: 0 0 auto;\n padding: 8px 12px 0 12px;\n gap: 4px;\n display: flex;\n }\n \n .k-tabstrip-items-wrapper {\n height: 100%;\n }\n \n .k-content {\n flex: 1;\n overflow: hidden;\n padding: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-radius: 0 0 8px 8px;\n }\n \n .k-tabstrip .k-item {\n margin-right: 2px;\n border: none;\n background: transparent;\n border-radius: 6px 6px 0 0;\n padding: 2px;\n transition: all 0.2s ease;\n }\n \n .k-tabstrip .k-item.k-selected {\n background: white;\n border: 1px solid #e0e0e0;\n border-bottom: 1px solid white;\n margin-bottom: -1px;\n z-index: 1;\n }\n \n .k-tabstrip .k-link {\n padding: 8px 16px;\n font-weight: 500;\n font-size: 13px;\n color: #666;\n transition: all 0.15s ease;\n border-radius: 4px 4px 0 0;\n background: transparent;\n border: none;\n text-transform: lowercase;\n }\n \n .k-tabstrip .k-link:first-letter {\n text-transform: uppercase;\n }\n \n .k-tabstrip .k-item:hover:not(.k-selected) .k-link {\n color: #333;\n background: rgba(0, 0, 0, 0.04);\n }\n \n .k-tabstrip .k-item.k-selected .k-link {\n color: #1976d2;\n font-weight: 600;\n background: white;\n }\n \n \n\n .k-tabstrip .k-link .star-icon {\n display: inline-block;\n margin-right: 4px;\n color: #ffd700;\n font-size: 12px;\n vertical-align: middle;\n }\n \n \n\n .k-tabstrip-items::before, \n .k-tabstrip-items::after {\n display: none;\n }\n \n .k-tabstrip .k-item::before, \n .k-tabstrip .k-item::after {\n display: none;\n }\n \n \n\n .k-tabstrip .k-link:focus {\n outline: none;\n box-shadow: none;\n }\n \n \n\n .k-tabstrip .k-content.k-state-active {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n \n \n\n .react-host-container[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }"], changeDetection: 0 });
1189
1158
  }
1190
1159
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipDynamicUIComponentComponent, [{
1191
1160
  type: Component,
1192
- args: [{ selector: 'skip-dynamic-ui-component', template: `
1161
+ args: [{ selector: 'skip-dynamic-ui-component', changeDetection: ChangeDetectionStrategy.OnPush, template: `
1193
1162
  @if (reportOptions.length > 1) {
1194
1163
  <!-- Multiple options: show tabs -->
1195
1164
  <kendo-tabstrip
@@ -1332,8 +1301,8 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1332
1301
  <div [attr.data-tab-index]="i"
1333
1302
  style="flex: 1; position: relative; min-height: 0; overflow: auto;">
1334
1303
  <mj-react-component
1335
- *ngIf="!currentError && componentSpecs.has(i)"
1336
- [component]="componentSpecs.get(i)!"
1304
+ *ngIf="!currentError && reportOptions[i] && i === selectedReportOptionIndex"
1305
+ [component]="reportOptions[i].option"
1337
1306
  [data]="getFlattenedDataContext()"
1338
1307
  [state]="userStates.get(i) || {}"
1339
1308
  [utilities]="utilities"
@@ -1598,8 +1567,8 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1598
1567
  <!-- React component container (only shown when no error) -->
1599
1568
  <div style="flex: 1; position: relative; min-height: 0; overflow: auto;">
1600
1569
  <mj-react-component
1601
- *ngIf="componentSpecs.has(0)"
1602
- [component]="componentSpecs.get(0)!"
1570
+ *ngIf="reportOptions[0]"
1571
+ [component]="reportOptions[0].option"
1603
1572
  [data]="getFlattenedDataContext()"
1604
1573
  [state]="userStates.get(0) || {}"
1605
1574
  [utilities]="utilities"
@@ -1617,7 +1586,7 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1617
1586
  }
1618
1587
 
1619
1588
  `, styles: ["\n :host {\n display: block;\n height: 100%;\n position: relative;\n }\n \n /* Tab Action Bar */\n .tab-action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background-color: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n }\n \n .tab-actions-left,\n .tab-actions-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n \n /* Tab Action Buttons */\n .tab-action-button {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background-color: transparent;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #333;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n \n .tab-action-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n }\n \n .tab-action-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n \n .tab-action-button i {\n font-size: 12px;\n }\n \n /* Both buttons use the same white/secondary style */\n .tab-action-button.create-button,\n .tab-action-button.print-button {\n background-color: white;\n color: #333;\n border-color: #e0e0e0;\n }\n \n .tab-action-button.create-button:hover:not(:disabled),\n .tab-action-button.print-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n }\n \n /* Toggle buttons styling */\n .tab-action-button.toggle-button {\n background-color: white;\n color: #666;\n border-color: #e0e0e0;\n }\n \n .tab-action-button.toggle-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n color: #333;\n }\n \n .tab-action-button.toggle-button.active {\n background-color: #5B4FE9;\n color: white;\n border-color: #5B4FE9;\n }\n \n .tab-action-button.toggle-button.active:hover:not(:disabled) {\n background-color: #4940D4;\n border-color: #4940D4;\n }\n \n /* Details panel styling */\n .details-panel {\n border-bottom: 1px solid #e0e0e0;\n background-color: #fafafa;\n overflow: hidden;\n transition: height 0.3s ease;\n }\n \n .details-content {\n padding: 16px;\n overflow-y: auto;\n height: 100%;\n font-size: 14px;\n line-height: 1.6;\n }\n \n .details-content.code-content {\n padding: 0;\n }\n \n /* Panel resizer */\n .panel-resizer {\n height: 4px;\n background-color: #e0e0e0;\n cursor: ns-resize;\n position: relative;\n transition: background-color 0.2s ease;\n }\n \n .panel-resizer:hover {\n background-color: #d0d0d0;\n }\n \n .resizer-handle {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 2px;\n background-color: #999;\n border-radius: 1px;\n }\n \n /* Markdown content styling */\n .details-content :deep(h1) { font-size: 1.5em; margin-top: 0; margin-bottom: 0.5em; }\n .details-content :deep(h2) { font-size: 1.3em; margin-top: 1em; margin-bottom: 0.5em; }\n .details-content :deep(h3) { font-size: 1.1em; margin-top: 1em; margin-bottom: 0.5em; }\n .details-content :deep(ul), .details-content :deep(ol) { margin-left: 1.5em; }\n .details-content :deep(code) { \n background-color: #f4f4f4; \n padding: 2px 4px; \n border-radius: 3px; \n font-family: 'Courier New', monospace; \n font-size: 0.9em;\n }\n .details-content :deep(pre) { \n background-color: #f4f4f4; \n padding: 12px; \n border-radius: 4px; \n overflow-x: auto; \n }\n .details-content :deep(blockquote) { \n border-left: 4px solid #e0e0e0; \n padding-left: 16px; \n margin-left: 0; \n color: #666; \n }\n \n /* Tab styling */\n ::ng-deep .k-tabstrip {\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n margin: 10px 5px 5px 5px;\n }\n \n ::ng-deep .k-tabstrip-items {\n background: #f8f9fa;\n border: none;\n border-radius: 8px 8px 0 0;\n flex: 0 0 auto;\n padding: 8px 12px 0 12px;\n gap: 4px;\n display: flex;\n }\n \n ::ng-deep .k-tabstrip-items-wrapper {\n height: 100%;\n }\n \n ::ng-deep .k-content {\n flex: 1;\n overflow: hidden;\n padding: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-radius: 0 0 8px 8px;\n }\n \n ::ng-deep .k-tabstrip .k-item {\n margin-right: 2px;\n border: none;\n background: transparent;\n border-radius: 6px 6px 0 0;\n padding: 2px;\n transition: all 0.2s ease;\n }\n \n ::ng-deep .k-tabstrip .k-item.k-selected {\n background: white;\n border: 1px solid #e0e0e0;\n border-bottom: 1px solid white;\n margin-bottom: -1px;\n z-index: 1;\n }\n \n ::ng-deep .k-tabstrip .k-link {\n padding: 8px 16px;\n font-weight: 500;\n font-size: 13px;\n color: #666;\n transition: all 0.15s ease;\n border-radius: 4px 4px 0 0;\n background: transparent;\n border: none;\n text-transform: lowercase;\n }\n \n ::ng-deep .k-tabstrip .k-link:first-letter {\n text-transform: uppercase;\n }\n \n ::ng-deep .k-tabstrip .k-item:hover:not(.k-selected) .k-link {\n color: #333;\n background: rgba(0, 0, 0, 0.04);\n }\n \n ::ng-deep .k-tabstrip .k-item.k-selected .k-link {\n color: #1976d2;\n font-weight: 600;\n background: white;\n }\n \n /* Star icon styling */\n ::ng-deep .k-tabstrip .k-link .star-icon {\n display: inline-block;\n margin-right: 4px;\n color: #ffd700;\n font-size: 12px;\n vertical-align: middle;\n }\n \n /* Hide default Kendo tab styling */\n ::ng-deep .k-tabstrip-items::before,\n ::ng-deep .k-tabstrip-items::after {\n display: none;\n }\n \n ::ng-deep .k-tabstrip .k-item::before,\n ::ng-deep .k-tabstrip .k-item::after {\n display: none;\n }\n \n /* Remove focus outline */\n ::ng-deep .k-tabstrip .k-link:focus {\n outline: none;\n box-shadow: none;\n }\n \n /* Make sure tab content fills available space */\n ::ng-deep .k-tabstrip .k-content.k-state-active {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n \n /* React host container */\n .react-host-container {\n width: 100%;\n height: 100%;\n }\n "] }]
1620
- }], () => [{ type: i1.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], { UIComponentCode: [{
1589
+ }], () => [{ type: i1.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i2.AngularAdapterService }], { UIComponentCode: [{
1621
1590
  type: Input
1622
1591
  }], ComponentObjectName: [{
1623
1592
  type: Input
@@ -1642,5 +1611,5 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1642
1611
  }], SkipData: [{
1643
1612
  type: Input
1644
1613
  }] }); })();
1645
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipDynamicUIComponentComponent, { className: "SkipDynamicUIComponentComponent", filePath: "src/lib/dynamic-report/dynamic-ui-component.ts", lineNumber: 720 }); })();
1614
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipDynamicUIComponentComponent, { className: "SkipDynamicUIComponentComponent", filePath: "src/lib/dynamic-report/dynamic-ui-component.ts", lineNumber: 722 }); })();
1646
1615
  //# sourceMappingURL=dynamic-ui-component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-ui-component.js","sourceRoot":"","sources":["../../../src/lib/dynamic-report/dynamic-ui-component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-ui-component.js","sourceRoot":"","sources":["../../../src/lib/dynamic-report/dynamic-ui-component.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export declare class SkipConversationReportCache extends BaseSingleton<SkipConve
10
10
  static get Instance(): SkipConversationReportCache;
11
11
  private _cache;
12
12
  private _loadingObservables;
13
+ constructor();
13
14
  /**
14
15
  * Loads and caches reports for a given conversation. If the reports are already loaded, it will return the cached version unless forceRefresh is true.
15
16
  * @param conversationId
@@ -1 +1 @@
1
- {"version":3,"file":"report-cache.d.ts","sourceRoot":"","sources":["../../src/lib/report-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAW,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,aAAa,CAAC,2BAA2B,CAAC;IACvF,WAAkB,QAAQ,IAAI,2BAA2B,CAExD;IAED,OAAO,CAAC,MAAM,CAAoD;IAElE,OAAO,CAAC,mBAAmB,CAAgE;IAE3F;;;;;;OAMG;IACI,sBAAsB,CACzB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE,gBAAgB,GAAG,IAAW,EACxC,YAAY,GAAE,OAAe,GAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;IAuB1B,OAAO,CAAC,uBAAuB;IA0BxB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;IAMlE,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAKjE,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAQ/E"}
1
+ {"version":3,"file":"report-cache.d.ts","sourceRoot":"","sources":["../../src/lib/report-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAW,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvD;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,aAAa,CAAC,2BAA2B,CAAC;IACvF,WAAkB,QAAQ,IAAI,2BAA2B,CAExD;IAED,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,mBAAmB,CAAgE;;IAa3F;;;;;;OAMG;IACI,sBAAsB,CACzB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE,gBAAgB,GAAG,IAAW,EACxC,YAAY,GAAE,OAAe,GAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;IAwB1B,OAAO,CAAC,uBAAuB;IA4BxB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;IAKlE,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAOjE,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAU/E"}
@@ -1,6 +1,7 @@
1
1
  import { RunView } from "@memberjunction/core";
2
2
  import { BaseSingleton } from "@memberjunction/global";
3
3
  import { firstValueFrom, Observable, shareReplay } from "rxjs";
4
+ import { CacheManager } from '@memberjunction/react-runtime';
4
5
  /**
5
6
  * This is a very simple _cache that tracks all of the reports for conversations that are in the context of Skip.
6
7
  * We update this whenever reports are created, deleted, or updated. This saves a lot of network traffic for
@@ -10,8 +11,18 @@ export class SkipConversationReportCache extends BaseSingleton {
10
11
  static get Instance() {
11
12
  return super.getInstance();
12
13
  }
13
- _cache = {};
14
+ _cache;
14
15
  _loadingObservables = {};
16
+ constructor() {
17
+ super();
18
+ // Initialize cache with 100 conversations max, 10MB memory limit, and 10 minute TTL
19
+ this._cache = new CacheManager({
20
+ maxSize: 100,
21
+ maxMemory: 10 * 1024 * 1024, // 10MB
22
+ defaultTTL: 10 * 60 * 1000, // 10 minutes
23
+ cleanupInterval: 60 * 1000 // 1 minute cleanup
24
+ });
25
+ }
15
26
  /**
16
27
  * Loads and caches reports for a given conversation. If the reports are already loaded, it will return the cached version unless forceRefresh is true.
17
28
  * @param conversationId
@@ -22,12 +33,13 @@ export class SkipConversationReportCache extends BaseSingleton {
22
33
  GetConversationReports(conversationId, provider = null, forceRefresh = false) {
23
34
  // If forceRefresh, clear the cache and observable for the conversationId
24
35
  if (forceRefresh) {
25
- delete this._cache[conversationId];
36
+ this._cache.delete(conversationId);
26
37
  delete this._loadingObservables[conversationId];
27
38
  }
28
39
  // If the data is already cached, return it immediately
29
- if (this._cache[conversationId]) {
30
- return Promise.resolve(this._cache[conversationId]);
40
+ const cached = this._cache.get(conversationId);
41
+ if (cached) {
42
+ return Promise.resolve(cached);
31
43
  }
32
44
  // If an observable already exists for this conversationId, reuse it
33
45
  if (!this._loadingObservables[conversationId]) {
@@ -46,13 +58,12 @@ export class SkipConversationReportCache extends BaseSingleton {
46
58
  ResultType: 'entity_object'
47
59
  })
48
60
  .then(result => {
49
- if (result && result.Success && result.Results.length > 0) {
50
- this._cache[conversationId] = result.Results;
51
- }
52
- else {
53
- this._cache[conversationId] = [];
54
- }
55
- subscriber.next(this._cache[conversationId]); // Emit the result
61
+ const reports = (result && result.Success && result.Results.length > 0)
62
+ ? result.Results
63
+ : [];
64
+ // Cache with default TTL
65
+ this._cache.set(conversationId, reports);
66
+ subscriber.next(reports); // Emit the result
56
67
  subscriber.complete(); // Complete the observable
57
68
  })
58
69
  .catch(err => {
@@ -61,21 +72,24 @@ export class SkipConversationReportCache extends BaseSingleton {
61
72
  });
62
73
  }
63
74
  AddConversationReport(conversationId, report) {
64
- if (!this._cache[conversationId]) {
65
- this._cache[conversationId] = [];
66
- }
67
- this._cache[conversationId].push(report);
75
+ const reports = this._cache.get(conversationId) || [];
76
+ reports.push(report);
77
+ this._cache.set(conversationId, reports);
68
78
  }
69
79
  RemoveConversationReport(conversationId, reportId) {
70
- if (this._cache[conversationId]) {
71
- this._cache[conversationId] = this._cache[conversationId].filter(x => x.ID !== reportId);
80
+ const reports = this._cache.get(conversationId);
81
+ if (reports) {
82
+ const filtered = reports.filter(x => x.ID !== reportId);
83
+ this._cache.set(conversationId, filtered);
72
84
  }
73
85
  }
74
86
  UpdateConversationReport(conversationId, report) {
75
- if (this._cache[conversationId]) {
76
- const index = this._cache[conversationId].findIndex(x => x.ID === report.ID);
87
+ const reports = this._cache.get(conversationId);
88
+ if (reports) {
89
+ const index = reports.findIndex(x => x.ID === report.ID);
77
90
  if (index >= 0) {
78
- this._cache[conversationId][index] = report;
91
+ reports[index] = report;
92
+ this._cache.set(conversationId, reports);
79
93
  }
80
94
  }
81
95
  }