@memberjunction/ng-skip-chat 2.76.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.
@@ -0,0 +1,39 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Base class for Angular components that provides automatic resource cleanup.
6
+ * Uses React Runtime's resource manager for centralized management.
7
+ */
8
+ export declare abstract class BaseManagedComponent extends BaseAngularComponent implements OnDestroy {
9
+ protected componentId: string;
10
+ constructor();
11
+ /**
12
+ * Wrapper for setTimeout that automatically tracks and cleans up timeouts
13
+ */
14
+ protected setTimeout(callback: () => void, delay: number, metadata?: Record<string, any>): number;
15
+ /**
16
+ * Wrapper for setInterval that automatically tracks and cleans up intervals
17
+ */
18
+ protected setInterval(callback: () => void, delay: number, metadata?: Record<string, any>): number;
19
+ /**
20
+ * Clear a specific timeout
21
+ */
22
+ protected clearTimeout(id: number): void;
23
+ /**
24
+ * Clear a specific interval
25
+ */
26
+ protected clearInterval(id: number): void;
27
+ /**
28
+ * Register an event listener with automatic cleanup
29
+ */
30
+ protected addEventListener(target: EventTarget, type: string, listener: EventListener, options?: AddEventListenerOptions): void;
31
+ /**
32
+ * Register a cleanup callback to be called on component destroy
33
+ */
34
+ protected registerCleanup(cleanup: () => void): void;
35
+ ngOnDestroy(): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseManagedComponent, never>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseManagedComponent, never, never, {}, {}, never, never, false, never>;
38
+ }
39
+ //# sourceMappingURL=base-managed-component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-managed-component.d.ts","sourceRoot":"","sources":["../../src/lib/base-managed-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAErE;;;GAGG;AACH,8BACsB,oBAAqB,SAAQ,oBAAqB,YAAW,SAAS;IACxF,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;;IAQ9B;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIjG;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIlG;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACtB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,uBAAuB,GAClC,IAAI;IAIP;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpD,WAAW,IAAI,IAAI;yCAxDD,oBAAoB;2CAApB,oBAAoB;CA4DzC"}
@@ -0,0 +1,62 @@
1
+ import { Directive } from '@angular/core';
2
+ import { resourceManager } from '@memberjunction/react-runtime';
3
+ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Base class for Angular components that provides automatic resource cleanup.
7
+ * Uses React Runtime's resource manager for centralized management.
8
+ */
9
+ export class BaseManagedComponent extends BaseAngularComponent {
10
+ componentId;
11
+ constructor() {
12
+ super();
13
+ // Generate unique component ID for resource tracking
14
+ this.componentId = `${this.constructor.name}-${Date.now()}-${Math.random()}`;
15
+ }
16
+ /**
17
+ * Wrapper for setTimeout that automatically tracks and cleans up timeouts
18
+ */
19
+ setTimeout(callback, delay, metadata) {
20
+ return resourceManager.setTimeout(this.componentId, callback, delay, metadata);
21
+ }
22
+ /**
23
+ * Wrapper for setInterval that automatically tracks and cleans up intervals
24
+ */
25
+ setInterval(callback, delay, metadata) {
26
+ return resourceManager.setInterval(this.componentId, callback, delay, metadata);
27
+ }
28
+ /**
29
+ * Clear a specific timeout
30
+ */
31
+ clearTimeout(id) {
32
+ resourceManager.clearTimeout(this.componentId, id);
33
+ }
34
+ /**
35
+ * Clear a specific interval
36
+ */
37
+ clearInterval(id) {
38
+ resourceManager.clearInterval(this.componentId, id);
39
+ }
40
+ /**
41
+ * Register an event listener with automatic cleanup
42
+ */
43
+ addEventListener(target, type, listener, options) {
44
+ resourceManager.addEventListener(this.componentId, target, type, listener, options);
45
+ }
46
+ /**
47
+ * Register a cleanup callback to be called on component destroy
48
+ */
49
+ registerCleanup(cleanup) {
50
+ resourceManager.registerCleanup(this.componentId, cleanup);
51
+ }
52
+ ngOnDestroy() {
53
+ // Clean up all resources associated with this component
54
+ resourceManager.cleanupComponent(this.componentId);
55
+ }
56
+ static ɵfac = function BaseManagedComponent_Factory(t) { return new (t || BaseManagedComponent)(); };
57
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseManagedComponent, features: [i0.ɵɵInheritDefinitionFeature] });
58
+ }
59
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseManagedComponent, [{
60
+ type: Directive
61
+ }], () => [], null); })();
62
+ //# sourceMappingURL=base-managed-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-managed-component.js","sourceRoot":"","sources":["../../src/lib/base-managed-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAErE;;;GAGG;AAEH,MAAM,OAAgB,oBAAqB,SAAQ,oBAAoB;IACzD,WAAW,CAAS;IAE9B;QACI,KAAK,EAAE,CAAC;QACR,qDAAqD;QACrD,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IACjF,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,QAAoB,EAAE,KAAa,EAAE,QAA8B;QACpF,OAAO,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,QAAoB,EAAE,KAAa,EAAE,QAA8B;QACrF,OAAO,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,EAAU;QAC7B,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACO,aAAa,CAAC,EAAU;QAC9B,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACO,gBAAgB,CACtB,MAAmB,EACnB,IAAY,EACZ,QAAuB,EACvB,OAAiC;QAEjC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,OAAmB;QACzC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,WAAW;QACP,wDAAwD;QACxD,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;8EA3DiB,oBAAoB;6DAApB,oBAAoB;;iFAApB,oBAAoB;cADzC,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-report.d.ts","sourceRoot":"","sources":["../../../src/lib/dynamic-report/base-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAwB,YAAY,EAAyB,MAAM,eAAe,CAAC;AAE5H,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAmB,+BAA+B,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE9G,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;AAEnD,8BACsB,qBAAuB,SAAQ,oBAAqB,YAAW,aAAa;IA4BpF,SAAS,CAAC,KAAK,EAAE,iBAAiB;IA3BrC,QAAQ,EAAE,+BAA+B,GAAG,SAAS,CAAC;IACtD,sBAAsB,EAAE,OAAO,CAAS;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,WAAW,EAAG,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAE3B,gBAAgB;iBAA8B,MAAM;eAAS,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM;;OAAyB;IAEjJ;;;OAGG;IACO,wBAAwB,uBAA8B;IAEhE;;OAEG;IACO,gBAAgB,uBAA8B;IAExD;;OAEG;IACO,cAAc,8BAAqC;gBAGvC,KAAK,EAAE,iBAAiB;IAI9C,eAAe;IAKR,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAwG;IACnI,OAAO,CAAC,OAAO,CAAkB;IACpB,qBAAqB;IAmC3B,oBAAoB,CAAC,aAAa,EAAE,aAAa;IAKxD,IAAW,OAAO,IAAI,cAAc,EAAE,CAErC;IAED,SAAS,KAAK,UAAU,IAAI,MAAM,CAWjC;IACD,IAAW,OAAO,IAAI,OAAO,CAE5B;IACD,IAAW,OAAO,IAAI,OAAO,CAE5B;IACD,IAAW,aAAa,IAAI,OAAO,CAElC;IAED;;;OAGG;IACI,kBAAkB,IAAI,MAAM;IASnC;;OAEG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IACD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAS;IAE7C;;OAEG;IACU,cAAc;IA2B3B,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI7H;;OAEG;cACa,uBAAuB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAyBpI;;;OAGG;IACU,eAAe;yCAlMR,qBAAqB;2CAArB,qBAAqB;CAyQ1C"}
1
+ {"version":3,"file":"base-report.d.ts","sourceRoot":"","sources":["../../../src/lib/dynamic-report/base-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAwB,YAAY,EAAyB,MAAM,eAAe,CAAC;AAE5H,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAmB,+BAA+B,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE9G,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;AAGnD,8BACsB,qBAAuB,SAAQ,oBAAqB,YAAW,aAAa;IA4BpF,SAAS,CAAC,KAAK,EAAE,iBAAiB;IA3BrC,QAAQ,EAAE,+BAA+B,GAAG,SAAS,CAAC;IACtD,sBAAsB,EAAE,OAAO,CAAS;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,WAAW,EAAG,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAE3B,gBAAgB;iBAA8B,MAAM;eAAS,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM;;OAAyB;IAEjJ;;;OAGG;IACO,wBAAwB,uBAA8B;IAEhE;;OAEG;IACO,gBAAgB,uBAA8B;IAExD;;OAEG;IACO,cAAc,8BAAqC;gBAGvC,KAAK,EAAE,iBAAiB;IAI9C,eAAe;IAKR,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhD,OAAO,CAAC,MAAM,CAAC,YAAY,CAIxB;IACH,OAAO,CAAC,OAAO,CAAkB;IACpB,qBAAqB;IAoC3B,oBAAoB,CAAC,aAAa,EAAE,aAAa;IAKxD,IAAW,OAAO,IAAI,cAAc,EAAE,CAErC;IAED,SAAS,KAAK,UAAU,IAAI,MAAM,CAWjC;IACD,IAAW,OAAO,IAAI,OAAO,CAE5B;IACD,IAAW,OAAO,IAAI,OAAO,CAE5B;IACD,IAAW,aAAa,IAAI,OAAO,CAElC;IAED;;;OAGG;IACI,kBAAkB,IAAI,MAAM;IASnC;;OAEG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IACD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAS;IAE7C;;OAEG;IACU,cAAc;IA2B3B,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAI7H;;OAEG;cACa,uBAAuB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAyBpI;;;OAGG;IACU,eAAe;yCAxMR,qBAAqB;2CAArB,qBAAqB;CA+Q1C"}
@@ -3,6 +3,7 @@ import { LogError } from "@memberjunction/core";
3
3
  import { ConvertMarkdownStringToHtmlList } from "@memberjunction/global";
4
4
  import { BaseAngularComponent } from "@memberjunction/ng-base-types";
5
5
  import { SkipConversationReportCache } from "../report-cache";
6
+ import { CacheManager } from '@memberjunction/react-runtime';
6
7
  import * as i0 from "@angular/core";
7
8
  export class SkipDynamicReportBase extends BaseAngularComponent {
8
9
  cdRef;
@@ -36,7 +37,12 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
36
37
  }
37
38
  matchingReportID = null;
38
39
  matchingReportName = null;
39
- static _reportCache = [];
40
+ // Use CacheManager with TTL and size limits instead of unbounded static array
41
+ static _reportCache = new CacheManager({
42
+ maxSize: 100, // Maximum 100 report entries
43
+ defaultTTL: 30 * 60 * 1000, // 30 minute TTL
44
+ maxMemory: 1 * 1024 * 1024 // 1MB max memory
45
+ });
40
46
  _loaded = false;
41
47
  async RefreshMatchingReport() {
42
48
  if (this.SkipData && !this._loaded && this.ConversationDetailID && this.ConversationID) {
@@ -44,7 +50,9 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
44
50
  if (this.ShowCreateReportButton) {
45
51
  // check to see if a report has been created that is linked to this ConvoID/ConvoDetailID
46
52
  // if so don't allow the user to create another report, show a link to the existing one
47
- const cachedItem = SkipDynamicReportBase._reportCache.find((x) => x.conversationId === this.ConversationID && x.conversationDetailId === this.ConversationDetailID);
53
+ // Create cache key from conversation and detail IDs
54
+ const cacheKey = `${this.ConversationID}_${this.ConversationDetailID}`;
55
+ const cachedItem = SkipDynamicReportBase._reportCache.get(cacheKey);
48
56
  if (cachedItem) {
49
57
  this.matchingReportID = cachedItem.reportId;
50
58
  this.matchingReportName = cachedItem.reportName;
@@ -58,7 +66,8 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
58
66
  this.matchingReportID = item.ID;
59
67
  this.matchingReportName = item.Name;
60
68
  // cache for future to avoid db call
61
- SkipDynamicReportBase._reportCache.push({
69
+ const cacheKey = `${this.ConversationID}_${this.ConversationDetailID}`;
70
+ SkipDynamicReportBase._reportCache.set(cacheKey, {
62
71
  reportId: item.ID,
63
72
  conversationId: this.ConversationID,
64
73
  reportName: item.Name,
@@ -1 +1 @@
1
- {"version":3,"file":"base-report.js","sourceRoot":"","sources":["../../../src/lib/dynamic-report/base-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-report.js","sourceRoot":"","sources":["../../../src/lib/dynamic-report/base-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5H,OAAO,EAAuC,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AAGxG,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAG7D,MAAM,OAAgB,qBAAuB,SAAQ,oBAAoB;IA4BjD;IA3Bb,QAAQ,CAA8C;IACtD,sBAAsB,GAAY,KAAK,CAAC;IACxC,cAAc,GAAkB,IAAI,CAAC;IACrC,gBAAgB,GAAkB,IAAI,CAAC;IACvC,oBAAoB,GAAkB,IAAI,CAAC;IAC3C,WAAW,CAAe;IAC1B,YAAY,CAAgB;IAE3B,gBAAgB,GAAG,IAAI,YAAY,EAAmG,CAAC;IAEjJ;;;OAGG;IACO,wBAAwB,GAAG,IAAI,YAAY,EAAU,CAAC;IAEhE;;OAEG;IACO,gBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;IAExD;;OAEG;IACO,cAAc,GAAG,IAAI,YAAY,EAAiB,CAAC;IAG7D,YAAsB,KAAwB;QAC5C,KAAK,EAAE,CAAC;QADY,UAAK,GAAL,KAAK,CAAmB;IAE9C,CAAC;IAED,eAAe;QACb,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAGM,gBAAgB,GAAkB,IAAI,CAAC;IACvC,kBAAkB,GAAkB,IAAI,CAAC;IAChD,8EAA8E;IACtE,MAAM,CAAC,YAAY,GAAG,IAAI,YAAY,CAAiG;QAC7I,OAAO,EAAE,GAAG,EAAG,6BAA6B;QAC5C,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAG,gBAAgB;QAC7C,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAG,iBAAiB;KAC/C,CAAC,CAAC;IACK,OAAO,GAAY,KAAK,CAAC;IAC1B,KAAK,CAAC,qBAAqB;QAChC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,yFAAyF;gBACzF,uFAAuF;gBACvF,oDAAoD;gBACpD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACvE,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpE,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC;oBAC5C,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;gBAClD,CAAC;qBACI,CAAC;oBACJ,6FAA6F;oBAC7F,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC1H,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnH,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC;wBAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC;wBACpC,oCAAoC;wBACpC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBACvE,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;4BAC/C,QAAQ,EAAE,IAAI,CAAC,EAAE;4BACjB,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,UAAU,EAAE,IAAI,CAAC,IAAI;4BACrB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;yBAChD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,iFAAiF;YAC/G,CAAC;QACH,CAAC;IACH,CAAC;IAEM,oBAAoB,CAAC,aAA4B;QACtD,8CAA8C;QAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,EAAE,gBAAgB,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,IAAc,UAAU;QACtB,8HAA8H;QAC9H,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,6DAA6D;YAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAuB,CAAC,CAAC,gFAAgF;YACjJ,IAAI,gBAAgB,EAAE,CAAC;gBACrB,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC;IACpC,CAAC;IACD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;IACnE,CAAC;IACD,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,UAAU,KAAK,aAAa,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,+BAA+B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC;;YAEG,OAAO,+BAA+B,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACS,iBAAiB,GAAY,KAAK,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,cAAc;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACnG,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;QAC3H,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACpD,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACxC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC5C,wCAAwC;gBACxC,IAAI,CAAC,qBAAqB,CAAC,WAAW,MAAM,CAAC,UAAU,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAElF,oDAAoD;gBACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAe,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACjH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBACrC,uDAAuD;oBACvD,2BAA2B,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAe,EAAE,MAAM,CAAC,CAAC;gBAC3F,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB;YACxE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACjE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACjC,CAAC;QACH,CAAC;IACL,CAAC;IAES,qBAAqB,CAAC,OAAe,EAAE,KAAwD,EAAE,SAAkB;QACzH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,uBAAuB;QACnC,+HAA+H;QAC/H,MAAM,QAAQ,GAAG;;;;;;;QAOf,CAAC;QACH,MAAM,CAAC,GAAwB,IAAI,CAAC,aAAa,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;YACxC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAClD,CAAC,CAAC;QACH,IAAI,MAAM,IAAI,MAAM,CAAC,oCAAoC;YACrD,OAAO,MAAM,CAAC,oCAAoC,CAAC;;YAEnD,OAAO;gBACP,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,mBAAmB;gBACjC,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE;aACb,CAAC;IACV,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC;YAEH,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAC,CAAC;gBACjB,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YAED,IAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAC,CAAC;gBAC9C,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClE,OAAM;YACR,CAAC;YAED,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAEjE,MAAM,GAAG,GAAW;;;;;;;;;QASlB,CAAC;YAEH,MAAM,CAAC,GAAwB,IAAI,CAAC,aAAa,CAAC;YAClD,MAAM,MAAM,GAA+C,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;gBACjF,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa;gBAC9C,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU;aACtC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAoB,MAAM,CAAC,uBAAuB,CAAC;YAClE,IAAG,CAAC,SAAS,CAAC,OAAO,EAAC,CAAC;gBACrB,QAAQ,CAAC,sDAAsD,CAAC,CAAC;gBACjE,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,qCAAqC;YACrC,MAAM,WAAW,GAAoC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAClF,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,sBAAsB;YACrE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,kCAAkC;YACjG,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,kCAAkC;YAEvF,yJAAyJ;YACzJ,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC5D,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC5D,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAClD,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YACxD,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2JAA2J;YAC1M,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,8CAA8C;YACnG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,6HAA6H;YACnM,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,0DAA0D;YAE3G,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAE9D,MAAM,UAAU,GAAY,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC3D,IAAG,CAAC,UAAU,EAAC,CAAC;gBACd,QAAQ,CAAC,uDAAuD,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC7G,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACvE,CAAC;iBACG,CAAC;gBACH,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;+EA9QmB,qBAAqB;6DAArB,qBAAqB;;iFAArB,qBAAqB;cAD1C,SAAS;kDAEC,QAAQ;kBAAhB,KAAK;YACG,sBAAsB;kBAA9B,KAAK;YACG,cAAc;kBAAtB,KAAK;YACG,gBAAgB;kBAAxB,KAAK;YACG,oBAAoB;kBAA5B,KAAK;YACG,WAAW;kBAAnB,KAAK;YACG,YAAY;kBAApB,KAAK;YAEI,gBAAgB;kBAAzB,MAAM;YAMG,wBAAwB;kBAAjC,MAAM;YAKG,gBAAgB;kBAAzB,MAAM;YAKG,cAAc;kBAAvB,MAAM"}
@@ -37,10 +37,11 @@ export declare class SkipDynamicUIComponentComponent implements AfterViewInit, O
37
37
  private isResizing;
38
38
  private startY;
39
39
  private startHeight;
40
- componentSpecs: Map<number, any>;
41
40
  userStates: Map<number, any>;
42
41
  utilities: ComponentUtilities | null;
43
42
  componentStyles: ComponentStyles | null;
43
+ private _flattenedDataContext;
44
+ private _lastDataContextHash;
44
45
  private static librariesInitialized;
45
46
  constructor(sanitizer: DomSanitizer, cdr: ChangeDetectorRef, ngZone: NgZone, adapter: AngularAdapterService);
46
47
  /**
@@ -148,9 +149,9 @@ export declare class SkipDynamicUIComponentComponent implements AfterViewInit, O
148
149
  */
149
150
  private setupReportOptions;
150
151
  /**
151
- * Create a component spec for a specific option index
152
+ * Initialize user state for a specific option index
152
153
  */
153
- private createComponentSpecForOption;
154
+ private initializeUserStateForOption;
154
155
  /**
155
156
  * Handle state change events from React components
156
157
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-ui-component.d.ts","sourceRoot":"","sources":["../../../src/lib/dynamic-report/dynamic-ui-component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-ui-component.d.ts","sourceRoot":"","sources":["../../../src/lib/dynamic-report/dynamic-ui-component.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
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';
@@ -167,7 +167,7 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_re
167
167
  } if (rf & 2) {
168
168
  const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index;
169
169
  const ctx_r1 = i0.ɵɵnextContext(2);
170
- 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);
171
171
  } }
172
172
  function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Conditional_19_Template(rf, ctx) { if (rf & 1) {
173
173
  i0.ɵɵelementStart(0, "details", 45)(1, "summary", 51);
@@ -286,7 +286,7 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Templ
286
286
  i0.ɵɵadvance();
287
287
  i0.ɵɵattribute("data-tab-index", ɵ$index_4_r3);
288
288
  i0.ɵɵadvance();
289
- 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);
290
290
  i0.ɵɵadvance();
291
291
  i0.ɵɵconditional(ctx_r1.currentError && ctx_r1.selectedReportOptionIndex === ɵ$index_4_r3 ? 26 : -1);
292
292
  } }
@@ -505,7 +505,7 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_c
505
505
  i0.ɵɵelementEnd();
506
506
  } if (rf & 2) {
507
507
  const ctx_r1 = i0.ɵɵnextContext(3);
508
- 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);
509
509
  } }
510
510
  function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_Template(rf, ctx) { if (rf & 1) {
511
511
  i0.ɵɵelementStart(0, "div", 21);
@@ -514,7 +514,7 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_Template(r
514
514
  } if (rf & 2) {
515
515
  const ctx_r1 = i0.ɵɵnextContext(2);
516
516
  i0.ɵɵadvance();
517
- i0.ɵɵproperty("ngIf", ctx_r1.componentSpecs.has(0));
517
+ i0.ɵɵproperty("ngIf", ctx_r1.reportOptions[0]);
518
518
  } }
519
519
  function SkipDynamicUIComponentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
520
520
  const _r11 = i0.ɵɵgetCurrentView();
@@ -598,11 +598,13 @@ export class SkipDynamicUIComponentComponent {
598
598
  isResizing = false;
599
599
  startY = 0;
600
600
  startHeight = 0;
601
- // Cache for component specs and user states
602
- componentSpecs = new Map();
601
+ // Cache for user states only - component specs come from data
603
602
  userStates = new Map();
604
603
  utilities = null;
605
604
  componentStyles = null;
605
+ // Memoized flattened data context to prevent ExpressionChangedAfterItHasBeenCheckedError
606
+ _flattenedDataContext = null;
607
+ _lastDataContextHash = null;
606
608
  // Event handlers from React components
607
609
  static librariesInitialized = false;
608
610
  constructor(sanitizer, cdr, ngZone, adapter) {
@@ -665,12 +667,9 @@ export class SkipDynamicUIComponentComponent {
665
667
  // Update the component info - this can fail if placeholders are missing
666
668
  this.UIComponentCode = BuildComponentCompleteCode(selectedOption.option);
667
669
  this.ComponentObjectName = selectedOption.option.name;
668
- // Create or update the component spec for this option
669
- if (!this.componentSpecs.has(this.selectedReportOptionIndex)) {
670
- this.createComponentSpecForOption(this.selectedReportOptionIndex);
671
- // Trigger change detection after modifying componentSpecs
672
- this.cdr.detectChanges();
673
- }
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();
674
673
  }
675
674
  catch (error) {
676
675
  console.error('Failed to build component code:', error);
@@ -735,8 +734,8 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
735
734
  retryCurrentOption() {
736
735
  // Clear the error
737
736
  this.currentError = null;
738
- // Re-create the component spec
739
- this.createComponentSpecForOption(this.selectedReportOptionIndex);
737
+ // Just clear the error and re-render
738
+ // Component spec comes from reportOptions data
740
739
  // Trigger change detection
741
740
  this.cdr.detectChanges();
742
741
  }
@@ -937,25 +936,33 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
937
936
  const runtimeUtils = createRuntimeUtilities();
938
937
  this.utilities = runtimeUtils.buildUtilities();
939
938
  this.componentStyles = SetupStyles();
940
- // Create component specs for all options
939
+ // Initialize user states for all options
941
940
  // Use Promise.resolve to avoid ExpressionChangedAfterItHasBeenCheckedError
942
941
  if (this.reportOptions.length > 0) {
943
942
  Promise.resolve().then(() => {
944
943
  this.reportOptions.forEach((_, index) => {
945
- this.createComponentSpecForOption(index);
944
+ if (!this.userStates.has(index)) {
945
+ this.userStates.set(index, {});
946
+ }
946
947
  });
947
948
  this.cdr.detectChanges();
948
949
  });
949
950
  }
950
951
  }
951
952
  ngOnDestroy() {
952
- // Clean up component specs and states
953
- this.componentSpecs.clear();
953
+ // Clean up user states
954
954
  this.userStates.clear();
955
+ // Ensure resize listeners are removed if still active
956
+ if (this.isResizing) {
957
+ this.stopResize();
958
+ }
955
959
  // The MJReactComponent handles its own cleanup
956
960
  }
957
961
  ngOnChanges(changes) {
958
962
  if (changes['SkipData']) {
963
+ // Clear cached data context when SkipData changes
964
+ this._flattenedDataContext = null;
965
+ this._lastDataContextHash = null;
959
966
  const skipData = changes['SkipData'].currentValue;
960
967
  if (skipData) {
961
968
  this.setupReportOptions(skipData);
@@ -1020,33 +1027,12 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1020
1027
  }
1021
1028
  }
1022
1029
  /**
1023
- * Create a component spec for a specific option index
1030
+ * Initialize user state for a specific option index
1024
1031
  */
1025
- createComponentSpecForOption(optionIndex) {
1026
- const option = this.reportOptions[optionIndex];
1027
- if (!option)
1028
- return;
1029
- try {
1030
- const component = option.option;
1031
- // Store the component spec
1032
- this.componentSpecs.set(optionIndex, component);
1033
- // Initialize user state if not exists
1034
- if (!this.userStates.has(optionIndex)) {
1035
- this.userStates.set(optionIndex, {});
1036
- }
1037
- }
1038
- catch (e) {
1039
- console.error('Error creating component spec:', e);
1040
- // Determine the type of error and create a user-friendly message
1041
- let errorType = 'Component Specification Error';
1042
- let errorMessage = 'Failed to create component specification.';
1043
- let technicalDetails = e.toString();
1044
- this.currentError = {
1045
- type: errorType,
1046
- message: errorMessage,
1047
- technicalDetails: technicalDetails + '\n\nComponent Option: ' + (optionIndex + 1) + '\nComponent Name: ' + option.option.name
1048
- };
1049
- LogError(e);
1032
+ initializeUserStateForOption(optionIndex) {
1033
+ // Initialize user state if not exists
1034
+ if (!this.userStates.has(optionIndex)) {
1035
+ this.userStates.set(optionIndex, {});
1050
1036
  }
1051
1037
  }
1052
1038
  /**
@@ -1083,6 +1069,17 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1083
1069
  this.handleOpenEntityRecord(event.entityName, event.key);
1084
1070
  }
1085
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
1086
1083
  const flattenedDataContext = {};
1087
1084
  if (this.SkipData?.dataContext) {
1088
1085
  const loadedItems = this.SkipData.dataContext.Items.filter((i) => i.DataLoaded && i._Data?.length > 0);
@@ -1090,7 +1087,9 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1090
1087
  flattenedDataContext["data_item_" + i] = loadedItems[i]._Data;
1091
1088
  }
1092
1089
  }
1093
- return flattenedDataContext;
1090
+ this._flattenedDataContext = flattenedDataContext;
1091
+ this._lastDataContextHash = currentHash;
1092
+ return this._flattenedDataContext;
1094
1093
  }
1095
1094
  // Event handler implementations
1096
1095
  handleRefreshData() {
@@ -1155,11 +1154,11 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1155
1154
  i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_Template, 3, 1, "kendo-tabstrip", 0)(1, SkipDynamicUIComponentComponent_Conditional_1_Template, 26, 12, "div", 1);
1156
1155
  } if (rf & 2) {
1157
1156
  i0.ɵɵconditional(ctx.reportOptions.length > 1 ? 0 : 1);
1158
- } }, 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 }"] });
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 });
1159
1158
  }
1160
1159
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipDynamicUIComponentComponent, [{
1161
1160
  type: Component,
1162
- args: [{ selector: 'skip-dynamic-ui-component', template: `
1161
+ args: [{ selector: 'skip-dynamic-ui-component', changeDetection: ChangeDetectionStrategy.OnPush, template: `
1163
1162
  @if (reportOptions.length > 1) {
1164
1163
  <!-- Multiple options: show tabs -->
1165
1164
  <kendo-tabstrip
@@ -1302,8 +1301,8 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1302
1301
  <div [attr.data-tab-index]="i"
1303
1302
  style="flex: 1; position: relative; min-height: 0; overflow: auto;">
1304
1303
  <mj-react-component
1305
- *ngIf="!currentError && componentSpecs.has(i)"
1306
- [component]="componentSpecs.get(i)!"
1304
+ *ngIf="!currentError && reportOptions[i] && i === selectedReportOptionIndex"
1305
+ [component]="reportOptions[i].option"
1307
1306
  [data]="getFlattenedDataContext()"
1308
1307
  [state]="userStates.get(i) || {}"
1309
1308
  [utilities]="utilities"
@@ -1568,8 +1567,8 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1568
1567
  <!-- React component container (only shown when no error) -->
1569
1568
  <div style="flex: 1; position: relative; min-height: 0; overflow: auto;">
1570
1569
  <mj-react-component
1571
- *ngIf="componentSpecs.has(0)"
1572
- [component]="componentSpecs.get(0)!"
1570
+ *ngIf="reportOptions[0]"
1571
+ [component]="reportOptions[0].option"
1573
1572
  [data]="getFlattenedDataContext()"
1574
1573
  [state]="userStates.get(0) || {}"
1575
1574
  [utilities]="utilities"
@@ -1612,5 +1611,5 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
1612
1611
  }], SkipData: [{
1613
1612
  type: Input
1614
1613
  }] }); })();
1615
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipDynamicUIComponentComponent, { className: "SkipDynamicUIComponentComponent", filePath: "src/lib/dynamic-report/dynamic-ui-component.ts", lineNumber: 721 }); })();
1614
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipDynamicUIComponentComponent, { className: "SkipDynamicUIComponentComponent", filePath: "src/lib/dynamic-report/dynamic-ui-component.ts", lineNumber: 722 }); })();
1616
1615
  //# sourceMappingURL=dynamic-ui-component.js.map