@cqa-lib/cqa-ui 1.1.499 → 1.1.500

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.
@@ -5,6 +5,7 @@ export class DynamicCellContainerDirective {
5
5
  this.viewContainerRef = viewContainerRef;
6
6
  this.cdr = cdr;
7
7
  this.initialized = false;
8
+ this.isApplyingInputChanges = false;
8
9
  }
9
10
  ngOnInit() {
10
11
  if (this.componentConfig && !this.initialized) {
@@ -16,16 +17,25 @@ export class DynamicCellContainerDirective {
16
17
  if (this.componentRef &&
17
18
  this.componentConfig &&
18
19
  (changes['componentConfig'] || changes['row'] || changes['column'] || changes['rowIndex'] || changes['colId'])) {
19
- // Refresh component inputs when config or row context changes.
20
- const inputs = this.getComponentInputs(this.componentConfig);
21
- Object.keys(inputs).forEach(inputKey => {
22
- if (this.componentRef?.instance && inputKey in this.componentRef.instance) {
23
- this.componentRef.instance[inputKey] = inputs[inputKey];
24
- }
25
- });
26
- // Use detectChanges to ensure styles are updated immediately
27
- this.componentRef.changeDetectorRef.detectChanges();
28
- this.cdr.detectChanges();
20
+ if (this.isApplyingInputChanges) {
21
+ return;
22
+ }
23
+ this.isApplyingInputChanges = true;
24
+ try {
25
+ // Refresh component inputs when config or row context changes.
26
+ const inputs = this.getComponentInputs(this.componentConfig);
27
+ Object.keys(inputs).forEach(inputKey => {
28
+ if (this.componentRef?.instance && inputKey in this.componentRef.instance) {
29
+ this.componentRef.instance[inputKey] = inputs[inputKey];
30
+ }
31
+ });
32
+ // Avoid synchronous detectChanges inside ngOnChanges to prevent re-entrant CD loops.
33
+ this.componentRef.changeDetectorRef.markForCheck();
34
+ this.cdr.markForCheck();
35
+ }
36
+ finally {
37
+ this.isApplyingInputChanges = false;
38
+ }
29
39
  }
30
40
  else if (changes['componentConfig'] && this.componentConfig && !this.initialized) {
31
41
  // Create component if it wasn't created yet
@@ -68,9 +78,9 @@ export class DynamicCellContainerDirective {
68
78
  }
69
79
  }
70
80
  });
71
- // Mark for change detection - use detectChanges to ensure styles are applied
72
- this.componentRef.changeDetectorRef.detectChanges();
73
- this.cdr.detectChanges();
81
+ // Schedule checks without forcing nested synchronous cycles.
82
+ this.componentRef.changeDetectorRef.markForCheck();
83
+ this.cdr.markForCheck();
74
84
  }
75
85
  catch (err) {
76
86
  console.error('Failed to create component in table cell:', err);
@@ -117,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
117
127
  }], colId: [{
118
128
  type: Input
119
129
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jZWxsLWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RhYmxlL2R5bmFtaWMtdGFibGUvZHluYW1pYy1jZWxsLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsS0FBSyxFQUFzRixNQUFNLGVBQWUsQ0FBQzs7QUFPdkosTUFBTSxPQUFPLDZCQUE2QjtJQVV4QyxZQUNTLGdCQUFrQyxFQUNqQyxHQUFzQjtRQUR2QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSnhCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBS3pCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM3QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLGVBQWU7WUFDcEIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDOUc7WUFDQSwrREFBK0Q7WUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3RCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFB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cnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBDb21wb25lbnRSZWYsIFR5cGUsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZW5kZXJDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudC1yZW5kZXItY29uZmlnLmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjcWFDZWxsQ29udGFpbmVyXScsXG4gIGV4cG9ydEFzOiAnY3FhQ2VsbENvbnRhaW5lcidcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0NlbGxDb250YWluZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY29tcG9uZW50Q29uZmlnPzogVHlwZTxhbnk+IHwgQ29tcG9uZW50UmVuZGVyQ29uZmlnO1xuICBASW5wdXQoKSByb3c/OiBhbnk7XG4gIEBJbnB1dCgpIGNvbHVtbj86IGFueTtcbiAgQElucHV0KCkgcm93SW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbElkPzogc3RyaW5nO1xuICBcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8YW55PjtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50Q29uZmlnICYmICF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudCgpO1xuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmICYmXG4gICAgICB0aGlzLmNvbXBvbmVudENvbmZpZyAmJlxuICAgICAgKGNoYW5nZXNbJ2NvbXBvbmVudENvbmZpZyddIHx8IGNoYW5nZXNbJ3JvdyddIHx8IGNoYW5nZXNbJ2NvbHVtbiddIHx8IGNoYW5nZXNbJ3Jvd0luZGV4J10gfHwgY2hhbmdlc1snY29sSWQnXSlcbiAgICApIHtcbiAgICAgIC8vIFJlZnJlc2ggY29tcG9uZW50IGlucHV0cyB3aGVuIGNvbmZpZyBvciByb3cgY29udGV4dCBjaGFuZ2VzLlxuICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRDb21wb25lbnRJbnB1dHModGhpcy5jb21wb25lbnRDb25maWcpO1xuICAgICAgT2JqZWN0LmtleXMoaW5wdXRzKS5mb3JFYWNoKGlucHV0S2V5ID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSAmJiBpbnB1dEtleSBpbiB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkge1xuICAgICAgICAgICh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnkpW2lucHV0S2V5XSA9IGlucHV0c1tpbnB1dEtleV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gVXNlIGRldGVjdENoYW5nZXMgdG8gZW5zdXJlIHN0eWxlcyBhcmUgdXBkYXRlZCBpbW1lZGlhdGVseVxuICAgICAgdGhpcy5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snY29tcG9uZW50Q29uZmlnJ10gJiYgdGhpcy5jb21wb25lbnRDb25maWcgJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIC8vIENyZWF0ZSBjb21wb25lbnQgaWYgaXQgd2Fzbid0IGNyZWF0ZWQgeWV0XG4gICAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudCgpO1xuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50Q29uZmlnIHx8ICF0aGlzLnZpZXdDb250YWluZXJSZWYpIHJldHVybjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb21wb25lbnRDbGFzcyA9IHRoaXMuZ2V0Q29tcG9uZW50Q2xhc3ModGhpcy5jb21wb25lbnRDb25maWcpO1xuICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRDb21wb25lbnRJbnB1dHModGhpcy5jb21wb25lbnRDb25maWcpO1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IHRoaXMuZ2V0Q29tcG9uZW50T3V0cHV0cyh0aGlzLmNvbXBvbmVudENvbmZpZyk7XG5cbiAgICAgIC8vIENsZWFyIGFueSBleGlzdGluZyBjb250ZW50XG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgICAgLy8gQ3JlYXRlIHRoZSBjb21wb25lbnRcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRDbGFzcyk7XG4gICAgICBcbiAgICAgIC8vIFNldCBpbnB1dHMgaW1tZWRpYXRlbHkgYWZ0ZXIgY3JlYXRpb24sIGJlZm9yZSBhbnkgY2hhbmdlIGRldGVjdGlvblxuICAgICAgLy8gVXNlIE9iamVjdC5hc3NpZ24gdG8gc2V0IGFsbCBpbnB1dHMgYXQgb25jZVxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSAmJiBPYmplY3Qua2V5cyhpbnB1dHMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSwgaW5wdXRzKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3Vic2NyaWJlIHRvIG91dHB1dHNcbiAgICAgIE9iamVjdC5rZXlzKG91dHB1dHMpLmZvckVhY2gob3V0cHV0S2V5ID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSAmJiBvdXRwdXRLZXkgaW4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSAodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgYW55KVtvdXRwdXRLZXldO1xuICAgICAgICAgIGlmIChvdXRwdXQgJiYgdHlwZW9mIG91dHB1dC5zdWJzY3JpYmUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG91dHB1dC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IG91dHB1dHNbb3V0cHV0S2V5XTtcbiAgICAgICAgICAgICAgaWYgKGhhbmRsZXIpIGhhbmRsZXIoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gTWFyayBmb3IgY2hhbmdlIGRldGVjdGlvbiAtIHVzZSBkZXRlY3RDaGFuZ2VzIHRvIGVuc3VyZSBzdHlsZXMgYXJlIGFwcGxpZWRcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgY29tcG9uZW50IGluIHRhYmxlIGNlbGw6JywgZXJyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldENvbXBvbmVudENsYXNzKHZhbHVlOiBUeXBlPGFueT4gfCBDb21wb25lbnRSZW5kZXJDb25maWcpOiBUeXBlPGFueT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUuY29tcG9uZW50KSB7XG4gICAgICByZXR1cm4gdmFsdWUuY29tcG9uZW50O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29tcG9uZW50IHZhbHVlJyk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbXBvbmVudElucHV0cyh2YWx1ZTogVHlwZTxhbnk+IHwgQ29tcG9uZW50UmVuZGVyQ29uZmlnKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUuaW5wdXRzKSB7XG4gICAgICByZXR1cm4gdmFsdWUuaW5wdXRzO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwcml2YXRlIGdldENvbXBvbmVudE91dHB1dHModmFsdWU6IFR5cGU8YW55PiB8IENvbXBvbmVudFJlbmRlckNvbmZpZyk6IHsgW2tleTogc3RyaW5nXTogKGV2ZW50OiBhbnkpID0+IHZvaWQgfSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUub3V0cHV0cykge1xuICAgICAgcmV0dXJuIHZhbHVlLm91dHB1dHM7XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jZWxsLWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RhYmxlL2R5bmFtaWMtdGFibGUvZHluYW1pYy1jZWxsLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsS0FBSyxFQUFzRixNQUFNLGVBQWUsQ0FBQzs7QUFPdkosTUFBTSxPQUFPLDZCQUE2QjtJQVd4QyxZQUNTLGdCQUFrQyxFQUNqQyxHQUFzQjtRQUR2QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBTHhCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztJQUtwQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUNFLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxlQUFlO1lBQ3BCLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQzlHO1lBQ0EsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQy9CLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDbkMsSUFBSTtnQkFDRiwrREFBK0Q7Z0JBQy9ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNyQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTt3QkFDeEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDbEU7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gscUZBQXFGO2dCQUNyRixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3pCO29CQUFTO2dCQUNSLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7YUFDckM7U0FDRjthQUFNLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEYsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRTVELElBQUk7WUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUUvRCw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBRTlCLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFMUUscUVBQXFFO1lBQ3JFLDhDQUE4QztZQUM5QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNuRDtZQUVELHVCQUF1QjtZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7b0JBQzFFLE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRTt3QkFDcEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUM5QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7NEJBQ25DLElBQUksT0FBTztnQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzlCLENBQUMsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCw2REFBNkQ7WUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQXdDO1FBQ2hFLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ2hELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUN4QjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBd0M7UUFDakUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUM3QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDckI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUF3QztRQUNsRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQzlDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUN0QjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7MEhBNUhVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7dUlBRVUsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ29tcG9uZW50UmVmLCBUeXBlLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVuZGVyQ29uZmlnIH0gZnJvbSAnLi9jb21wb25lbnQtcmVuZGVyLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY3FhQ2VsbENvbnRhaW5lcl0nLFxuICBleHBvcnRBczogJ2NxYUNlbGxDb250YWluZXInXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDZWxsQ29udGFpbmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbXBvbmVudENvbmZpZz86IFR5cGU8YW55PiB8IENvbXBvbmVudFJlbmRlckNvbmZpZztcbiAgQElucHV0KCkgcm93PzogYW55O1xuICBASW5wdXQoKSBjb2x1bW4/OiBhbnk7XG4gIEBJbnB1dCgpIHJvd0luZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBjb2xJZD86IHN0cmluZztcbiAgXG4gIHByaXZhdGUgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPGFueT47XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0FwcGx5aW5nSW5wdXRDaGFuZ2VzID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRDb25maWcgJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50KCk7XG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgJiZcbiAgICAgIHRoaXMuY29tcG9uZW50Q29uZmlnICYmXG4gICAgICAoY2hhbmdlc1snY29tcG9uZW50Q29uZmlnJ10gfHwgY2hhbmdlc1sncm93J10gfHwgY2hhbmdlc1snY29sdW1uJ10gfHwgY2hhbmdlc1sncm93SW5kZXgnXSB8fCBjaGFuZ2VzWydjb2xJZCddKVxuICAgICkge1xuICAgICAgaWYgKHRoaXMuaXNBcHBseWluZ0lucHV0Q2hhbmdlcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmlzQXBwbHlpbmdJbnB1dENoYW5nZXMgPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gUmVmcmVzaCBjb21wb25lbnQgaW5wdXRzIHdoZW4gY29uZmlnIG9yIHJvdyBjb250ZXh0IGNoYW5nZXMuXG4gICAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0Q29tcG9uZW50SW5wdXRzKHRoaXMuY29tcG9uZW50Q29uZmlnKTtcbiAgICAgICAgT2JqZWN0LmtleXMoaW5wdXRzKS5mb3JFYWNoKGlucHV0S2V5ID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlICYmIGlucHV0S2V5IGluIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XG4gICAgICAgICAgICAodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgYW55KVtpbnB1dEtleV0gPSBpbnB1dHNbaW5wdXRLZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIEF2b2lkIHN5bmNocm9ub3VzIGRldGVjdENoYW5nZXMgaW5zaWRlIG5nT25DaGFuZ2VzIHRvIHByZXZlbnQgcmUtZW50cmFudCBDRCBsb29wcy5cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5pc0FwcGx5aW5nSW5wdXRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzWydjb21wb25lbnRDb25maWcnXSAmJiB0aGlzLmNvbXBvbmVudENvbmZpZyAmJiAhdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgLy8gQ3JlYXRlIGNvbXBvbmVudCBpZiBpdCB3YXNuJ3QgY3JlYXRlZCB5ZXRcbiAgICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50KCk7XG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb21wb25lbnRDb25maWcgfHwgIXRoaXMudmlld0NvbnRhaW5lclJlZikgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudENsYXNzID0gdGhpcy5nZXRDb21wb25lbnRDbGFzcyh0aGlzLmNvbXBvbmVudENvbmZpZyk7XG4gICAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldENvbXBvbmVudElucHV0cyh0aGlzLmNvbXBvbmVudENvbmZpZyk7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdGhpcy5nZXRDb21wb25lbnRPdXRwdXRzKHRoaXMuY29tcG9uZW50Q29uZmlnKTtcblxuICAgICAgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIGNvbnRlbnRcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuXG4gICAgICAvLyBDcmVhdGUgdGhlIGNvbXBvbmVudFxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudENsYXNzKTtcbiAgICAgIFxuICAgICAgLy8gU2V0IGlucHV0cyBpbW1lZGlhdGVseSBhZnRlciBjcmVhdGlvbiwgYmVmb3JlIGFueSBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICAvLyBVc2UgT2JqZWN0LmFzc2lnbiB0byBzZXQgYWxsIGlucHV0cyBhdCBvbmNlXG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlICYmIE9iamVjdC5rZXlzKGlucHV0cykubGVuZ3RoID4gMCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCBpbnB1dHMpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gb3V0cHV0c1xuICAgICAgT2JqZWN0LmtleXMob3V0cHV0cykuZm9yRWFjaChvdXRwdXRLZXkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlICYmIG91dHB1dEtleSBpbiB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkge1xuICAgICAgICAgIGNvbnN0IG91dHB1dCA9ICh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnkpW291dHB1dEtleV07XG4gICAgICAgICAgaWYgKG91dHB1dCAmJiB0eXBlb2Ygb3V0cHV0LnN1YnNjcmliZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgb3V0cHV0LnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gb3V0cHV0c1tvdXRwdXRLZXldO1xuICAgICAgICAgICAgICBpZiAoaGFuZGxlcikgaGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBTY2hlZHVsZSBjaGVja3Mgd2l0aG91dCBmb3JjaW5nIG5lc3RlZCBzeW5jaHJvbm91cyBjeWNsZXMuXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBjb21wb25lbnQgaW4gdGFibGUgY2VsbDonLCBlcnIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50Q2xhc3ModmFsdWU6IFR5cGU8YW55PiB8IENvbXBvbmVudFJlbmRlckNvbmZpZyk6IFR5cGU8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5jb21wb25lbnQpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5jb21wb25lbnQ7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb21wb25lbnQgdmFsdWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50SW5wdXRzKHZhbHVlOiBUeXBlPGFueT4gfCBDb21wb25lbnRSZW5kZXJDb25maWcpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5pbnB1dHMpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5pbnB1dHM7XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50T3V0cHV0cyh2YWx1ZTogVHlwZTxhbnk+IHwgQ29tcG9uZW50UmVuZGVyQ29uZmlnKTogeyBba2V5OiBzdHJpbmddOiAoZXZlbnQ6IGFueSkgPT4gdm9pZCB9IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5vdXRwdXRzKSB7XG4gICAgICByZXR1cm4gdmFsdWUub3V0cHV0cztcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbiJdfQ==
@@ -1067,6 +1067,7 @@ class DynamicCellContainerDirective {
1067
1067
  this.viewContainerRef = viewContainerRef;
1068
1068
  this.cdr = cdr;
1069
1069
  this.initialized = false;
1070
+ this.isApplyingInputChanges = false;
1070
1071
  }
1071
1072
  ngOnInit() {
1072
1073
  if (this.componentConfig && !this.initialized) {
@@ -1078,17 +1079,26 @@ class DynamicCellContainerDirective {
1078
1079
  if (this.componentRef &&
1079
1080
  this.componentConfig &&
1080
1081
  (changes['componentConfig'] || changes['row'] || changes['column'] || changes['rowIndex'] || changes['colId'])) {
1081
- // Refresh component inputs when config or row context changes.
1082
- const inputs = this.getComponentInputs(this.componentConfig);
1083
- Object.keys(inputs).forEach(inputKey => {
1084
- var _a;
1085
- if (((_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance) && inputKey in this.componentRef.instance) {
1086
- this.componentRef.instance[inputKey] = inputs[inputKey];
1087
- }
1088
- });
1089
- // Use detectChanges to ensure styles are updated immediately
1090
- this.componentRef.changeDetectorRef.detectChanges();
1091
- this.cdr.detectChanges();
1082
+ if (this.isApplyingInputChanges) {
1083
+ return;
1084
+ }
1085
+ this.isApplyingInputChanges = true;
1086
+ try {
1087
+ // Refresh component inputs when config or row context changes.
1088
+ const inputs = this.getComponentInputs(this.componentConfig);
1089
+ Object.keys(inputs).forEach(inputKey => {
1090
+ var _a;
1091
+ if (((_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.instance) && inputKey in this.componentRef.instance) {
1092
+ this.componentRef.instance[inputKey] = inputs[inputKey];
1093
+ }
1094
+ });
1095
+ // Avoid synchronous detectChanges inside ngOnChanges to prevent re-entrant CD loops.
1096
+ this.componentRef.changeDetectorRef.markForCheck();
1097
+ this.cdr.markForCheck();
1098
+ }
1099
+ finally {
1100
+ this.isApplyingInputChanges = false;
1101
+ }
1092
1102
  }
1093
1103
  else if (changes['componentConfig'] && this.componentConfig && !this.initialized) {
1094
1104
  // Create component if it wasn't created yet
@@ -1133,9 +1143,9 @@ class DynamicCellContainerDirective {
1133
1143
  }
1134
1144
  }
1135
1145
  });
1136
- // Mark for change detection - use detectChanges to ensure styles are applied
1137
- this.componentRef.changeDetectorRef.detectChanges();
1138
- this.cdr.detectChanges();
1146
+ // Schedule checks without forcing nested synchronous cycles.
1147
+ this.componentRef.changeDetectorRef.markForCheck();
1148
+ this.cdr.markForCheck();
1139
1149
  }
1140
1150
  catch (err) {
1141
1151
  console.error('Failed to create component in table cell:', err);