@seniorsistemas/components-ai 1.2.0-master-bcd4767a → 1.2.0-master-07d4af7d

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.
@@ -3,15 +3,10 @@ import { LoadingComponent } from '../../components/loading/loading.component';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Directive that replaces PrimeNG p-table's default loading spinner
6
- * with the sia-loading component as an overlay.
6
+ * with the sia-loading component injected as a table row in the tbody.
7
7
  *
8
8
  * Usage:
9
9
  * <p-table [loading]="loading" siaTableLoading>
10
- *
11
- * Optional inputs:
12
- * [siaLoadingVariant]="'senior-reveal'"
13
- * [siaLoadingColor]="'senior'"
14
- * [siaLoadingSize]="36"
15
10
  */
16
11
  export class TableLoadingDirective {
17
12
  el;
@@ -21,7 +16,7 @@ export class TableLoadingDirective {
21
16
  siaLoadingVariant = 'senior-reveal';
22
17
  siaLoadingColor = 'senior';
23
18
  siaLoadingSize = 36;
24
- overlayEl = null;
19
+ loadingRow = null;
25
20
  loadingRef = null;
26
21
  observer = null;
27
22
  styleEl = null;
@@ -34,16 +29,16 @@ export class TableLoadingDirective {
34
29
  this.injectHideStyles();
35
30
  this.setupObserver();
36
31
  if (this.loading) {
37
- this.showOverlay();
32
+ this.showLoading();
38
33
  }
39
34
  }
40
35
  ngOnChanges(changes) {
41
36
  if (changes['loading'] && !changes['loading'].firstChange) {
42
37
  if (this.loading) {
43
- this.showOverlay();
38
+ this.showLoading();
44
39
  }
45
40
  else {
46
- this.removeOverlay();
41
+ this.removeLoading();
47
42
  }
48
43
  }
49
44
  if (this.loadingRef) {
@@ -56,21 +51,16 @@ export class TableLoadingDirective {
56
51
  }
57
52
  }
58
53
  ngOnDestroy() {
59
- this.removeOverlay();
54
+ this.removeLoading();
60
55
  this.observer?.disconnect();
61
56
  this.observer = null;
62
57
  this.styleEl?.remove();
63
58
  this.styleEl = null;
64
59
  }
65
- /**
66
- * Inject a scoped <style> into the host to hide PrimeNG's default
67
- * loading overlay and mask via CSS (more reliable than DOM manipulation).
68
- */
69
60
  injectHideStyles() {
70
61
  const host = this.el.nativeElement;
71
62
  this.styleEl = this.renderer.createElement('style');
72
63
  this.styleEl.textContent = `
73
- :host .p-datatable-loading-overlay,
74
64
  .p-datatable-loading-overlay,
75
65
  .p-datatable-mask {
76
66
  display: none !important;
@@ -78,10 +68,6 @@ export class TableLoadingDirective {
78
68
  `;
79
69
  this.renderer.appendChild(host, this.styleEl);
80
70
  }
81
- /**
82
- * MutationObserver as fallback: PrimeNG may re-create the overlay
83
- * after our initial hide. This catches those cases.
84
- */
85
71
  setupObserver() {
86
72
  const host = this.el.nativeElement;
87
73
  this.observer = new MutationObserver((mutations) => {
@@ -98,42 +84,58 @@ export class TableLoadingDirective {
98
84
  });
99
85
  this.observer.observe(host, { childList: true, subtree: true });
100
86
  }
101
- showOverlay() {
102
- if (this.overlayEl)
87
+ showLoading() {
88
+ if (this.loadingRow)
103
89
  return;
104
90
  const host = this.el.nativeElement;
105
- // Use the p-datatable wrapper (first child div) or host itself
106
- const wrapper = host.querySelector('.p-datatable-wrapper') ||
107
- host.querySelector('.p-datatable-table-container') ||
108
- host;
109
- this.renderer.setStyle(wrapper, 'position', 'relative');
110
- this.overlayEl = this.renderer.createElement('div');
111
- this.renderer.setStyle(this.overlayEl, 'position', 'absolute');
112
- this.renderer.setStyle(this.overlayEl, 'inset', '0');
113
- this.renderer.setStyle(this.overlayEl, 'display', 'flex');
114
- this.renderer.setStyle(this.overlayEl, 'align-items', 'center');
115
- this.renderer.setStyle(this.overlayEl, 'justify-content', 'center');
116
- this.renderer.setStyle(this.overlayEl, 'z-index', '10');
117
- this.renderer.setStyle(this.overlayEl, 'pointer-events', 'none');
91
+ const tbody = host.querySelector('tbody');
92
+ if (!tbody)
93
+ return;
94
+ // Count columns from thead
95
+ const colCount = this.getColumnCount(host);
96
+ // Create <tr>
97
+ this.loadingRow = this.renderer.createElement('tr');
98
+ this.renderer.addClass(this.loadingRow, 'sia-table-loading-row');
99
+ // Create <td colspan="N">
100
+ const td = this.renderer.createElement('td');
101
+ this.renderer.setAttribute(td, 'colspan', String(colCount || 99));
102
+ this.renderer.setStyle(td, 'text-align', 'center');
103
+ this.renderer.setStyle(td, 'padding', '2rem 0');
104
+ this.renderer.setStyle(td, 'border', 'none');
105
+ // Create LoadingComponent
118
106
  this.loadingRef = this.vcr.createComponent(LoadingComponent);
119
107
  this.loadingRef.instance.variant = this.siaLoadingVariant;
120
108
  this.loadingRef.instance.color = this.siaLoadingColor;
121
109
  this.loadingRef.instance.size = this.siaLoadingSize;
122
110
  this.loadingRef.instance.padding = '0';
123
111
  const loadingEl = this.loadingRef.location.nativeElement;
124
- this.renderer.appendChild(this.overlayEl, loadingEl);
125
- this.renderer.appendChild(wrapper, this.overlayEl);
112
+ this.renderer.appendChild(td, loadingEl);
113
+ this.renderer.appendChild(this.loadingRow, td);
114
+ // Insert as first child of tbody (before any existing rows)
115
+ if (tbody.firstChild) {
116
+ this.renderer.insertBefore(tbody, this.loadingRow, tbody.firstChild);
117
+ }
118
+ else {
119
+ this.renderer.appendChild(tbody, this.loadingRow);
120
+ }
126
121
  }
127
- removeOverlay() {
128
- if (this.overlayEl?.parentNode) {
129
- this.renderer.removeChild(this.overlayEl.parentNode, this.overlayEl);
122
+ removeLoading() {
123
+ if (this.loadingRow?.parentNode) {
124
+ this.renderer.removeChild(this.loadingRow.parentNode, this.loadingRow);
130
125
  }
131
- this.overlayEl = null;
126
+ this.loadingRow = null;
132
127
  if (this.loadingRef) {
133
128
  this.loadingRef.destroy();
134
129
  this.loadingRef = null;
135
130
  }
136
131
  }
132
+ getColumnCount(host) {
133
+ const headerRow = host.querySelector('thead tr');
134
+ if (headerRow) {
135
+ return headerRow.querySelectorAll('th').length;
136
+ }
137
+ return 99;
138
+ }
137
139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableLoadingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
138
140
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableLoadingDirective, isStandalone: true, selector: "p-table[siaTableLoading]", inputs: { loading: "loading", siaLoadingVariant: "siaLoadingVariant", siaLoadingColor: "siaLoadingColor", siaLoadingSize: "siaLoadingSize" }, usesOnChanges: true, ngImport: i0 });
139
141
  }
@@ -152,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
152
154
  }], siaLoadingSize: [{
153
155
  type: Input
154
156
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbG9hZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvZGlyZWN0aXZlcy90YWJsZS1sb2FkaW5nL3RhYmxlLWxvYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQVNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0MsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFNUc7Ozs7Ozs7Ozs7O0dBV0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBWXRCO0lBQ0E7SUFDQTtJQWJELE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsaUJBQWlCLEdBQW1CLGVBQWUsQ0FBQztJQUNwRCxlQUFlLEdBQWlCLFFBQVEsQ0FBQztJQUN6QyxjQUFjLEdBQVcsRUFBRSxDQUFDO0lBRTdCLFNBQVMsR0FBdUIsSUFBSSxDQUFDO0lBQ3JDLFVBQVUsR0FBMEMsSUFBSSxDQUFDO0lBQ3pELFFBQVEsR0FBNEIsSUFBSSxDQUFDO0lBQ3pDLE9BQU8sR0FBNEIsSUFBSSxDQUFDO0lBRWhELFlBQ1UsRUFBYyxFQUNkLFFBQW1CLEVBQ25CLEdBQXFCO1FBRnJCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWtCO0lBQzVCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FB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RyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjIsXG4gIENvbXBvbmVudFJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgT25EZXN0cm95LFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQsIExvYWRpbmdWYXJpYW50LCBMb2FkaW5nQ29sb3IgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHJlcGxhY2VzIFByaW1lTkcgcC10YWJsZSdzIGRlZmF1bHQgbG9hZGluZyBzcGlubmVyXG4gKiB3aXRoIHRoZSBzaWEtbG9hZGluZyBjb21wb25lbnQgYXMgYW4gb3ZlcmxheS5cbiAqXG4gKiBVc2FnZTpcbiAqICAgPHAtdGFibGUgW2xvYWRpbmddPVwibG9hZGluZ1wiIHNpYVRhYmxlTG9hZGluZz5cbiAqXG4gKiBPcHRpb25hbCBpbnB1dHM6XG4gKiAgIFtzaWFMb2FkaW5nVmFyaWFudF09XCInc2VuaW9yLXJldmVhbCdcIlxuICogICBbc2lhTG9hZGluZ0NvbG9yXT1cIidzZW5pb3InXCJcbiAqICAgW3NpYUxvYWRpbmdTaXplXT1cIjM2XCJcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAncC10YWJsZVtzaWFUYWJsZUxvYWRpbmddJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVMb2FkaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNpYUxvYWRpbmdWYXJpYW50OiBMb2FkaW5nVmFyaWFudCA9ICdzZW5pb3ItcmV2ZWFsJztcbiAgQElucHV0KCkgc2lhTG9hZGluZ0NvbG9yOiBMb2FkaW5nQ29sb3IgPSAnc2VuaW9yJztcbiAgQElucHV0KCkgc2lhTG9hZGluZ1NpemU6IG51bWJlciA9IDM2O1xuXG4gIHByaXZhdGUgb3ZlcmxheUVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxvYWRpbmdSZWY6IENvbXBvbmVudFJlZjxMb2FkaW5nQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3R5bGVFbDogSFRNTFN0eWxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbmplY3RIaWRlU3R5bGVzKCk7XG4gICAgdGhpcy5zZXR1cE9ic2VydmVyKCk7XG4gICAgaWYgKHRoaXMubG9hZGluZykge1xuICAgICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbG9hZGluZyddICYmICFjaGFuZ2VzWydsb2FkaW5nJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVPdmVybGF5KCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYpIHtcbiAgICAgIGlmIChjaGFuZ2VzWydzaWFMb2FkaW5nVmFyaWFudCddKSB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UudmFyaWFudCA9IHRoaXMuc2lhTG9hZGluZ1ZhcmlhbnQ7XG4gICAgICBpZiAoY2hhbmdlc1snc2lhTG9hZGluZ0NvbG9yJ10pIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS5jb2xvciA9IHRoaXMuc2lhTG9hZGluZ0NvbG9yO1xuICAgICAgaWYgKGNoYW5nZXNbJ3NpYUxvYWRpbmdTaXplJ10pIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS5zaXplID0gdGhpcy5zaWFMb2FkaW5nU2l6ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgdGhpcy5zdHlsZUVsPy5yZW1vdmUoKTtcbiAgICB0aGlzLnN0eWxlRWwgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEluamVjdCBhIHNjb3BlZCA8c3R5bGU+IGludG8gdGhlIGhvc3QgdG8gaGlkZSBQcmltZU5HJ3MgZGVmYXVsdFxuICAgKiBsb2FkaW5nIG92ZXJsYXkgYW5kIG1hc2sgdmlhIENTUyAobW9yZSByZWxpYWJsZSB0aGFuIERPTSBtYW5pcHVsYXRpb24pLlxuICAgKi9cbiAgcHJpdmF0ZSBpbmplY3RIaWRlU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5zdHlsZUVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHRoaXMuc3R5bGVFbCEudGV4dENvbnRlbnQgPSBgXG4gICAgICA6aG9zdCAucC1kYXRhdGFibGUtbG9hZGluZy1vdmVybGF5LFxuICAgICAgLnAtZGF0YXRhYmxlLWxvYWRpbmctb3ZlcmxheSxcbiAgICAgIC5wLWRhdGF0YWJsZS1tYXNrIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIGA7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChob3N0LCB0aGlzLnN0eWxlRWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11dGF0aW9uT2JzZXJ2ZXIgYXMgZmFsbGJhY2s6IFByaW1lTkcgbWF5IHJlLWNyZWF0ZSB0aGUgb3ZlcmxheVxuICAgKiBhZnRlciBvdXIgaW5pdGlhbCBoaWRlLiBUaGlzIGNhdGNoZXMgdGhvc2UgY2FzZXMuXG4gICAqL1xuICBwcml2YXRlIHNldHVwT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgZm9yIChjb25zdCBtIG9mIG11dGF0aW9ucykge1xuICAgICAgICBtLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoJ3AtZGF0YXRhYmxlLWxvYWRpbmctb3ZlcmxheScpIHx8XG4gICAgICAgICAgICAgIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdwLWRhdGF0YWJsZS1tYXNrJylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBub2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoaG9zdCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlFbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIFVzZSB0aGUgcC1kYXRhdGFibGUgd3JhcHBlciAoZmlyc3QgY2hpbGQgZGl2KSBvciBob3N0IGl0c2VsZlxuICAgIGNvbnN0IHdyYXBwZXIgPVxuICAgICAgaG9zdC5xdWVyeVNlbGVjdG9yKCcucC1kYXRhdGFibGUtd3JhcHBlcicpIHx8XG4gICAgICBob3N0LnF1ZXJ5U2VsZWN0b3IoJy5wLWRhdGF0YWJsZS10YWJsZS1jb250YWluZXInKSB8fFxuICAgICAgaG9zdDtcblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUod3JhcHBlciwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG5cbiAgICB0aGlzLm92ZXJsYXlFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ2luc2V0JywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsLCAnZGlzcGxheScsICdmbGV4Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ2FsaWduLWl0ZW1zJywgJ2NlbnRlcicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWwsICdqdXN0aWZ5LWNvbnRlbnQnLCAnY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ3otaW5kZXgnLCAnMTAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsLCAncG9pbnRlci1ldmVudHMnLCAnbm9uZScpO1xuXG4gICAgdGhpcy5sb2FkaW5nUmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KExvYWRpbmdDb21wb25lbnQpO1xuICAgIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS52YXJpYW50ID0gdGhpcy5zaWFMb2FkaW5nVmFyaWFudDtcbiAgICB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UuY29sb3IgPSB0aGlzLnNpYUxvYWRpbmdDb2xvcjtcbiAgICB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2Uuc2l6ZSA9IHRoaXMuc2lhTG9hZGluZ1NpemU7XG4gICAgdGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLnBhZGRpbmcgPSAnMCc7XG5cbiAgICBjb25zdCBsb2FkaW5nRWwgPSB0aGlzLmxvYWRpbmdSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUVsLCBsb2FkaW5nRWwpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQod3JhcHBlciwgdGhpcy5vdmVybGF5RWwpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlFbD8ucGFyZW50Tm9kZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLm92ZXJsYXlFbC5wYXJlbnROb2RlLCB0aGlzLm92ZXJsYXlFbCk7XG4gICAgfVxuICAgIHRoaXMub3ZlcmxheUVsID0gbnVsbDtcbiAgICBpZiAodGhpcy5sb2FkaW5nUmVmKSB7XG4gICAgICB0aGlzLmxvYWRpbmdSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5sb2FkaW5nUmVmID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbG9hZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvZGlyZWN0aXZlcy90YWJsZS1sb2FkaW5nL3RhYmxlLWxvYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQVNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0MsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFNUc7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQVl0QjtJQUNBO0lBQ0E7SUFiRCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLGlCQUFpQixHQUFtQixlQUFlLENBQUM7SUFDcEQsZUFBZSxHQUFpQixRQUFRLENBQUM7SUFDekMsY0FBYyxHQUFXLEVBQUUsQ0FBQztJQUU3QixVQUFVLEdBQStCLElBQUksQ0FBQztJQUM5QyxVQUFVLEdBQTBDLElBQUksQ0FBQztJQUN6RCxRQUFRLEdBQTRCLElBQUksQ0FBQztJQUN6QyxPQUFPLEdBQTRCLElBQUksQ0FBQztJQUVoRCxZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixHQUFxQjtRQUZyQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUM1QixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FB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QUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO3dHQXhJVSxxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7c0lBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgQ29tcG9uZW50UmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBPbkRlc3Ryb3ksXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCwgTG9hZGluZ1ZhcmlhbnQsIExvYWRpbmdDb2xvciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgcmVwbGFjZXMgUHJpbWVORyBwLXRhYmxlJ3MgZGVmYXVsdCBsb2FkaW5nIHNwaW5uZXJcbiAqIHdpdGggdGhlIHNpYS1sb2FkaW5nIGNvbXBvbmVudCBpbmplY3RlZCBhcyBhIHRhYmxlIHJvdyBpbiB0aGUgdGJvZHkuXG4gKlxuICogVXNhZ2U6XG4gKiAgIDxwLXRhYmxlIFtsb2FkaW5nXT1cImxvYWRpbmdcIiBzaWFUYWJsZUxvYWRpbmc+XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3AtdGFibGVbc2lhVGFibGVMb2FkaW5nXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlTG9hZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBzaWFMb2FkaW5nVmFyaWFudDogTG9hZGluZ1ZhcmlhbnQgPSAnc2VuaW9yLXJldmVhbCc7XG4gIEBJbnB1dCgpIHNpYUxvYWRpbmdDb2xvcjogTG9hZGluZ0NvbG9yID0gJ3Nlbmlvcic7XG4gIEBJbnB1dCgpIHNpYUxvYWRpbmdTaXplOiBudW1iZXIgPSAzNjtcblxuICBwcml2YXRlIGxvYWRpbmdSb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsb2FkaW5nUmVmOiBDb21wb25lbnRSZWY8TG9hZGluZ0NvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0eWxlRWw6IEhUTUxTdHlsZUVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0SGlkZVN0eWxlcygpO1xuICAgIHRoaXMuc2V0dXBPYnNlcnZlcigpO1xuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuc2hvd0xvYWRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2xvYWRpbmcnXSAmJiAhY2hhbmdlc1snbG9hZGluZyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBpZiAodGhpcy5sb2FkaW5nKSB7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTG9hZGluZygpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5sb2FkaW5nUmVmKSB7XG4gICAgICBpZiAoY2hhbmdlc1snc2lhTG9hZGluZ1ZhcmlhbnQnXSkgdGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLnZhcmlhbnQgPSB0aGlzLnNpYUxvYWRpbmdWYXJpYW50O1xuICAgICAgaWYgKGNoYW5nZXNbJ3NpYUxvYWRpbmdDb2xvciddKSB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UuY29sb3IgPSB0aGlzLnNpYUxvYWRpbmdDb2xvcjtcbiAgICAgIGlmIChjaGFuZ2VzWydzaWFMb2FkaW5nU2l6ZSddKSB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2Uuc2l6ZSA9IHRoaXMuc2lhTG9hZGluZ1NpemU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVMb2FkaW5nKCk7XG4gICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgIHRoaXMuc3R5bGVFbD8ucmVtb3ZlKCk7XG4gICAgdGhpcy5zdHlsZUVsID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5qZWN0SGlkZVN0eWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuc3R5bGVFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICB0aGlzLnN0eWxlRWwhLnRleHRDb250ZW50ID0gYFxuICAgICAgLnAtZGF0YXRhYmxlLWxvYWRpbmctb3ZlcmxheSxcbiAgICAgIC5wLWRhdGF0YWJsZS1tYXNrIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIGA7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChob3N0LCB0aGlzLnN0eWxlRWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE9ic2VydmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbSBvZiBtdXRhdGlvbnMpIHtcbiAgICAgICAgbS5hZGRlZE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdwLWRhdGF0YWJsZS1sb2FkaW5nLW92ZXJsYXknKSB8fFxuICAgICAgICAgICAgICBub2RlLmNsYXNzTGlzdC5jb250YWlucygncC1kYXRhdGFibGUtbWFzaycpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGhvc3QsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93TG9hZGluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nUm93KSByZXR1cm47XG5cbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHRib2R5ID0gaG9zdC5xdWVyeVNlbGVjdG9yKCd0Ym9keScpO1xuICAgIGlmICghdGJvZHkpIHJldHVybjtcblxuICAgIC8vIENvdW50IGNvbHVtbnMgZnJvbSB0aGVhZFxuICAgIGNvbnN0IGNvbENvdW50ID0gdGhpcy5nZXRDb2x1bW5Db3VudChob3N0KTtcblxuICAgIC8vIENyZWF0ZSA8dHI+XG4gICAgdGhpcy5sb2FkaW5nUm93ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCd0cicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5sb2FkaW5nUm93LCAnc2lhLXRhYmxlLWxvYWRpbmctcm93Jyk7XG5cbiAgICAvLyBDcmVhdGUgPHRkIGNvbHNwYW49XCJOXCI+XG4gICAgY29uc3QgdGQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGQsICdjb2xzcGFuJywgU3RyaW5nKGNvbENvdW50IHx8IDk5KSk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0ZCwgJ3RleHQtYWxpZ24nLCAnY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0ZCwgJ3BhZGRpbmcnLCAnMnJlbSAwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0ZCwgJ2JvcmRlcicsICdub25lJyk7XG5cbiAgICAvLyBDcmVhdGUgTG9hZGluZ0NvbXBvbmVudFxuICAgIHRoaXMubG9hZGluZ1JlZiA9IHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChMb2FkaW5nQ29tcG9uZW50KTtcbiAgICB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UudmFyaWFudCA9IHRoaXMuc2lhTG9hZGluZ1ZhcmlhbnQ7XG4gICAgdGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLmNvbG9yID0gdGhpcy5zaWFMb2FkaW5nQ29sb3I7XG4gICAgdGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLnNpemUgPSB0aGlzLnNpYUxvYWRpbmdTaXplO1xuICAgIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS5wYWRkaW5nID0gJzAnO1xuXG4gICAgY29uc3QgbG9hZGluZ0VsID0gdGhpcy5sb2FkaW5nUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0ZCwgbG9hZGluZ0VsKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMubG9hZGluZ1JvdywgdGQpO1xuXG4gICAgLy8gSW5zZXJ0IGFzIGZpcnN0IGNoaWxkIG9mIHRib2R5IChiZWZvcmUgYW55IGV4aXN0aW5nIHJvd3MpXG4gICAgaWYgKHRib2R5LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRib2R5LCB0aGlzLmxvYWRpbmdSb3csIHRib2R5LmZpcnN0Q2hpbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRib2R5LCB0aGlzLmxvYWRpbmdSb3cpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTG9hZGluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nUm93Py5wYXJlbnROb2RlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMubG9hZGluZ1Jvdy5wYXJlbnROb2RlLCB0aGlzLmxvYWRpbmdSb3cpO1xuICAgIH1cbiAgICB0aGlzLmxvYWRpbmdSb3cgPSBudWxsO1xuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYpIHtcbiAgICAgIHRoaXMubG9hZGluZ1JlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmxvYWRpbmdSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1uQ291bnQoaG9zdDogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICAgIGNvbnN0IGhlYWRlclJvdyA9IGhvc3QucXVlcnlTZWxlY3RvcigndGhlYWQgdHInKTtcbiAgICBpZiAoaGVhZGVyUm93KSB7XG4gICAgICByZXR1cm4gaGVhZGVyUm93LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJykubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gOTk7XG4gIH1cbn1cbiJdfQ==
@@ -5430,15 +5430,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
5430
5430
 
5431
5431
  /**
5432
5432
  * Directive that replaces PrimeNG p-table's default loading spinner
5433
- * with the sia-loading component as an overlay.
5433
+ * with the sia-loading component injected as a table row in the tbody.
5434
5434
  *
5435
5435
  * Usage:
5436
5436
  * <p-table [loading]="loading" siaTableLoading>
5437
- *
5438
- * Optional inputs:
5439
- * [siaLoadingVariant]="'senior-reveal'"
5440
- * [siaLoadingColor]="'senior'"
5441
- * [siaLoadingSize]="36"
5442
5437
  */
5443
5438
  class TableLoadingDirective {
5444
5439
  el;
@@ -5448,7 +5443,7 @@ class TableLoadingDirective {
5448
5443
  siaLoadingVariant = 'senior-reveal';
5449
5444
  siaLoadingColor = 'senior';
5450
5445
  siaLoadingSize = 36;
5451
- overlayEl = null;
5446
+ loadingRow = null;
5452
5447
  loadingRef = null;
5453
5448
  observer = null;
5454
5449
  styleEl = null;
@@ -5461,16 +5456,16 @@ class TableLoadingDirective {
5461
5456
  this.injectHideStyles();
5462
5457
  this.setupObserver();
5463
5458
  if (this.loading) {
5464
- this.showOverlay();
5459
+ this.showLoading();
5465
5460
  }
5466
5461
  }
5467
5462
  ngOnChanges(changes) {
5468
5463
  if (changes['loading'] && !changes['loading'].firstChange) {
5469
5464
  if (this.loading) {
5470
- this.showOverlay();
5465
+ this.showLoading();
5471
5466
  }
5472
5467
  else {
5473
- this.removeOverlay();
5468
+ this.removeLoading();
5474
5469
  }
5475
5470
  }
5476
5471
  if (this.loadingRef) {
@@ -5483,21 +5478,16 @@ class TableLoadingDirective {
5483
5478
  }
5484
5479
  }
5485
5480
  ngOnDestroy() {
5486
- this.removeOverlay();
5481
+ this.removeLoading();
5487
5482
  this.observer?.disconnect();
5488
5483
  this.observer = null;
5489
5484
  this.styleEl?.remove();
5490
5485
  this.styleEl = null;
5491
5486
  }
5492
- /**
5493
- * Inject a scoped <style> into the host to hide PrimeNG's default
5494
- * loading overlay and mask via CSS (more reliable than DOM manipulation).
5495
- */
5496
5487
  injectHideStyles() {
5497
5488
  const host = this.el.nativeElement;
5498
5489
  this.styleEl = this.renderer.createElement('style');
5499
5490
  this.styleEl.textContent = `
5500
- :host .p-datatable-loading-overlay,
5501
5491
  .p-datatable-loading-overlay,
5502
5492
  .p-datatable-mask {
5503
5493
  display: none !important;
@@ -5505,10 +5495,6 @@ class TableLoadingDirective {
5505
5495
  `;
5506
5496
  this.renderer.appendChild(host, this.styleEl);
5507
5497
  }
5508
- /**
5509
- * MutationObserver as fallback: PrimeNG may re-create the overlay
5510
- * after our initial hide. This catches those cases.
5511
- */
5512
5498
  setupObserver() {
5513
5499
  const host = this.el.nativeElement;
5514
5500
  this.observer = new MutationObserver((mutations) => {
@@ -5525,42 +5511,58 @@ class TableLoadingDirective {
5525
5511
  });
5526
5512
  this.observer.observe(host, { childList: true, subtree: true });
5527
5513
  }
5528
- showOverlay() {
5529
- if (this.overlayEl)
5514
+ showLoading() {
5515
+ if (this.loadingRow)
5530
5516
  return;
5531
5517
  const host = this.el.nativeElement;
5532
- // Use the p-datatable wrapper (first child div) or host itself
5533
- const wrapper = host.querySelector('.p-datatable-wrapper') ||
5534
- host.querySelector('.p-datatable-table-container') ||
5535
- host;
5536
- this.renderer.setStyle(wrapper, 'position', 'relative');
5537
- this.overlayEl = this.renderer.createElement('div');
5538
- this.renderer.setStyle(this.overlayEl, 'position', 'absolute');
5539
- this.renderer.setStyle(this.overlayEl, 'inset', '0');
5540
- this.renderer.setStyle(this.overlayEl, 'display', 'flex');
5541
- this.renderer.setStyle(this.overlayEl, 'align-items', 'center');
5542
- this.renderer.setStyle(this.overlayEl, 'justify-content', 'center');
5543
- this.renderer.setStyle(this.overlayEl, 'z-index', '10');
5544
- this.renderer.setStyle(this.overlayEl, 'pointer-events', 'none');
5518
+ const tbody = host.querySelector('tbody');
5519
+ if (!tbody)
5520
+ return;
5521
+ // Count columns from thead
5522
+ const colCount = this.getColumnCount(host);
5523
+ // Create <tr>
5524
+ this.loadingRow = this.renderer.createElement('tr');
5525
+ this.renderer.addClass(this.loadingRow, 'sia-table-loading-row');
5526
+ // Create <td colspan="N">
5527
+ const td = this.renderer.createElement('td');
5528
+ this.renderer.setAttribute(td, 'colspan', String(colCount || 99));
5529
+ this.renderer.setStyle(td, 'text-align', 'center');
5530
+ this.renderer.setStyle(td, 'padding', '2rem 0');
5531
+ this.renderer.setStyle(td, 'border', 'none');
5532
+ // Create LoadingComponent
5545
5533
  this.loadingRef = this.vcr.createComponent(LoadingComponent);
5546
5534
  this.loadingRef.instance.variant = this.siaLoadingVariant;
5547
5535
  this.loadingRef.instance.color = this.siaLoadingColor;
5548
5536
  this.loadingRef.instance.size = this.siaLoadingSize;
5549
5537
  this.loadingRef.instance.padding = '0';
5550
5538
  const loadingEl = this.loadingRef.location.nativeElement;
5551
- this.renderer.appendChild(this.overlayEl, loadingEl);
5552
- this.renderer.appendChild(wrapper, this.overlayEl);
5539
+ this.renderer.appendChild(td, loadingEl);
5540
+ this.renderer.appendChild(this.loadingRow, td);
5541
+ // Insert as first child of tbody (before any existing rows)
5542
+ if (tbody.firstChild) {
5543
+ this.renderer.insertBefore(tbody, this.loadingRow, tbody.firstChild);
5544
+ }
5545
+ else {
5546
+ this.renderer.appendChild(tbody, this.loadingRow);
5547
+ }
5553
5548
  }
5554
- removeOverlay() {
5555
- if (this.overlayEl?.parentNode) {
5556
- this.renderer.removeChild(this.overlayEl.parentNode, this.overlayEl);
5549
+ removeLoading() {
5550
+ if (this.loadingRow?.parentNode) {
5551
+ this.renderer.removeChild(this.loadingRow.parentNode, this.loadingRow);
5557
5552
  }
5558
- this.overlayEl = null;
5553
+ this.loadingRow = null;
5559
5554
  if (this.loadingRef) {
5560
5555
  this.loadingRef.destroy();
5561
5556
  this.loadingRef = null;
5562
5557
  }
5563
5558
  }
5559
+ getColumnCount(host) {
5560
+ const headerRow = host.querySelector('thead tr');
5561
+ if (headerRow) {
5562
+ return headerRow.querySelectorAll('th').length;
5563
+ }
5564
+ return 99;
5565
+ }
5564
5566
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableLoadingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
5565
5567
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TableLoadingDirective, isStandalone: true, selector: "p-table[siaTableLoading]", inputs: { loading: "loading", siaLoadingVariant: "siaLoadingVariant", siaLoadingColor: "siaLoadingColor", siaLoadingSize: "siaLoadingSize" }, usesOnChanges: true, ngImport: i0 });
5566
5568
  }