@seniorsistemas/components-ai 1.2.0-master-bcd4767a → 1.2.0-master-81a2b5fe

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,41 +84,66 @@ 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
+ // Hide existing data rows
95
+ const existingRows = tbody.querySelectorAll('tr');
96
+ existingRows.forEach((row) => {
97
+ this.renderer.setStyle(row, 'display', 'none');
98
+ });
99
+ // Count columns from thead
100
+ const colCount = this.getColumnCount(host);
101
+ // Create <tr>
102
+ this.loadingRow = this.renderer.createElement('tr');
103
+ this.renderer.addClass(this.loadingRow, 'sia-table-loading-row');
104
+ // Create <td colspan="N">
105
+ const td = this.renderer.createElement('td');
106
+ this.renderer.setAttribute(td, 'colspan', String(colCount || 99));
107
+ this.renderer.setStyle(td, 'text-align', 'center');
108
+ this.renderer.setStyle(td, 'padding', '2rem 0');
109
+ this.renderer.setStyle(td, 'border', 'none');
110
+ // Create LoadingComponent
118
111
  this.loadingRef = this.vcr.createComponent(LoadingComponent);
119
112
  this.loadingRef.instance.variant = this.siaLoadingVariant;
120
113
  this.loadingRef.instance.color = this.siaLoadingColor;
121
114
  this.loadingRef.instance.size = this.siaLoadingSize;
122
115
  this.loadingRef.instance.padding = '0';
123
116
  const loadingEl = this.loadingRef.location.nativeElement;
124
- this.renderer.appendChild(this.overlayEl, loadingEl);
125
- this.renderer.appendChild(wrapper, this.overlayEl);
117
+ this.renderer.appendChild(td, loadingEl);
118
+ this.renderer.appendChild(this.loadingRow, td);
119
+ this.renderer.appendChild(tbody, this.loadingRow);
126
120
  }
127
- removeOverlay() {
128
- if (this.overlayEl?.parentNode) {
129
- this.renderer.removeChild(this.overlayEl.parentNode, this.overlayEl);
121
+ removeLoading() {
122
+ const host = this.el.nativeElement;
123
+ const tbody = host.querySelector('tbody');
124
+ // Remove loading row
125
+ if (this.loadingRow?.parentNode) {
126
+ this.renderer.removeChild(this.loadingRow.parentNode, this.loadingRow);
130
127
  }
131
- this.overlayEl = null;
128
+ this.loadingRow = null;
132
129
  if (this.loadingRef) {
133
130
  this.loadingRef.destroy();
134
131
  this.loadingRef = null;
135
132
  }
133
+ // Restore hidden data rows
134
+ if (tbody) {
135
+ const rows = tbody.querySelectorAll('tr');
136
+ rows.forEach((row) => {
137
+ this.renderer.removeStyle(row, 'display');
138
+ });
139
+ }
140
+ }
141
+ getColumnCount(host) {
142
+ const headerRow = host.querySelector('thead tr');
143
+ if (headerRow) {
144
+ return headerRow.querySelectorAll('th').length;
145
+ }
146
+ return 99;
136
147
  }
137
148
  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
149
  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 });
@@ -152,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
152
163
  }], siaLoadingSize: [{
153
164
  type: Input
154
165
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbG9hZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvZGlyZWN0aXZlcy90YWJsZS1sb2FkaW5nL3RhYmxlLWxvYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQVNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0MsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFNUc7Ozs7Ozs7Ozs7O0dBV0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBWXRCO0lBQ0E7SUFDQTtJQWJELE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsaUJBQWlCLEdBQW1CLGVBQWUsQ0FBQztJQUNwRCxlQUFlLEdBQWlCLFFBQVEsQ0FBQztJQUN6QyxjQUFjLEdBQVcsRUFBRSxDQUFDO0lBRTdCLFNBQVMsR0FBdUIsSUFBSSxDQUFDO0lBQ3JDLFVBQVUsR0FBMEMsSUFBSSxDQUFDO0lBQ3pELFFBQVEsR0FBNEIsSUFBSSxDQUFDO0lBQ3pDLE9BQU8sR0FBNEIsSUFBSSxDQUFDO0lBRWhELFlBQ1UsRUFBYyxFQUNkLFFBQW1CLEVBQ25CLEdBQXFCO1FBRnJCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWtCO0lBQzVCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FB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RyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjIsXG4gIENvbXBvbmVudFJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgT25EZXN0cm95LFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQsIExvYWRpbmdWYXJpYW50LCBMb2FkaW5nQ29sb3IgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHJlcGxhY2VzIFByaW1lTkcgcC10YWJsZSdzIGRlZmF1bHQgbG9hZGluZyBzcGlubmVyXG4gKiB3aXRoIHRoZSBzaWEtbG9hZGluZyBjb21wb25lbnQgYXMgYW4gb3ZlcmxheS5cbiAqXG4gKiBVc2FnZTpcbiAqICAgPHAtdGFibGUgW2xvYWRpbmddPVwibG9hZGluZ1wiIHNpYVRhYmxlTG9hZGluZz5cbiAqXG4gKiBPcHRpb25hbCBpbnB1dHM6XG4gKiAgIFtzaWFMb2FkaW5nVmFyaWFudF09XCInc2VuaW9yLXJldmVhbCdcIlxuICogICBbc2lhTG9hZGluZ0NvbG9yXT1cIidzZW5pb3InXCJcbiAqICAgW3NpYUxvYWRpbmdTaXplXT1cIjM2XCJcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAncC10YWJsZVtzaWFUYWJsZUxvYWRpbmddJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVMb2FkaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNpYUxvYWRpbmdWYXJpYW50OiBMb2FkaW5nVmFyaWFudCA9ICdzZW5pb3ItcmV2ZWFsJztcbiAgQElucHV0KCkgc2lhTG9hZGluZ0NvbG9yOiBMb2FkaW5nQ29sb3IgPSAnc2VuaW9yJztcbiAgQElucHV0KCkgc2lhTG9hZGluZ1NpemU6IG51bWJlciA9IDM2O1xuXG4gIHByaXZhdGUgb3ZlcmxheUVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxvYWRpbmdSZWY6IENvbXBvbmVudFJlZjxMb2FkaW5nQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3R5bGVFbDogSFRNTFN0eWxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbmplY3RIaWRlU3R5bGVzKCk7XG4gICAgdGhpcy5zZXR1cE9ic2VydmVyKCk7XG4gICAgaWYgKHRoaXMubG9hZGluZykge1xuICAgICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbG9hZGluZyddICYmICFjaGFuZ2VzWydsb2FkaW5nJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVPdmVybGF5KCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYpIHtcbiAgICAgIGlmIChjaGFuZ2VzWydzaWFMb2FkaW5nVmFyaWFudCddKSB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UudmFyaWFudCA9IHRoaXMuc2lhTG9hZGluZ1ZhcmlhbnQ7XG4gICAgICBpZiAoY2hhbmdlc1snc2lhTG9hZGluZ0NvbG9yJ10pIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS5jb2xvciA9IHRoaXMuc2lhTG9hZGluZ0NvbG9yO1xuICAgICAgaWYgKGNoYW5nZXNbJ3NpYUxvYWRpbmdTaXplJ10pIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS5zaXplID0gdGhpcy5zaWFMb2FkaW5nU2l6ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgdGhpcy5zdHlsZUVsPy5yZW1vdmUoKTtcbiAgICB0aGlzLnN0eWxlRWwgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEluamVjdCBhIHNjb3BlZCA8c3R5bGU+IGludG8gdGhlIGhvc3QgdG8gaGlkZSBQcmltZU5HJ3MgZGVmYXVsdFxuICAgKiBsb2FkaW5nIG92ZXJsYXkgYW5kIG1hc2sgdmlhIENTUyAobW9yZSByZWxpYWJsZSB0aGFuIERPTSBtYW5pcHVsYXRpb24pLlxuICAgKi9cbiAgcHJpdmF0ZSBpbmplY3RIaWRlU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5zdHlsZUVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHRoaXMuc3R5bGVFbCEudGV4dENvbnRlbnQgPSBgXG4gICAgICA6aG9zdCAucC1kYXRhdGFibGUtbG9hZGluZy1vdmVybGF5LFxuICAgICAgLnAtZGF0YXRhYmxlLWxvYWRpbmctb3ZlcmxheSxcbiAgICAgIC5wLWRhdGF0YWJsZS1tYXNrIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIGA7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChob3N0LCB0aGlzLnN0eWxlRWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11dGF0aW9uT2JzZXJ2ZXIgYXMgZmFsbGJhY2s6IFByaW1lTkcgbWF5IHJlLWNyZWF0ZSB0aGUgb3ZlcmxheVxuICAgKiBhZnRlciBvdXIgaW5pdGlhbCBoaWRlLiBUaGlzIGNhdGNoZXMgdGhvc2UgY2FzZXMuXG4gICAqL1xuICBwcml2YXRlIHNldHVwT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgZm9yIChjb25zdCBtIG9mIG11dGF0aW9ucykge1xuICAgICAgICBtLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoJ3AtZGF0YXRhYmxlLWxvYWRpbmctb3ZlcmxheScpIHx8XG4gICAgICAgICAgICAgIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdwLWRhdGF0YWJsZS1tYXNrJylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBub2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoaG9zdCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlFbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIFVzZSB0aGUgcC1kYXRhdGFibGUgd3JhcHBlciAoZmlyc3QgY2hpbGQgZGl2KSBvciBob3N0IGl0c2VsZlxuICAgIGNvbnN0IHdyYXBwZXIgPVxuICAgICAgaG9zdC5xdWVyeVNlbGVjdG9yKCcucC1kYXRhdGFibGUtd3JhcHBlcicpIHx8XG4gICAgICBob3N0LnF1ZXJ5U2VsZWN0b3IoJy5wLWRhdGF0YWJsZS10YWJsZS1jb250YWluZXInKSB8fFxuICAgICAgaG9zdDtcblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUod3JhcHBlciwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG5cbiAgICB0aGlzLm92ZXJsYXlFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ2luc2V0JywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsLCAnZGlzcGxheScsICdmbGV4Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ2FsaWduLWl0ZW1zJywgJ2NlbnRlcicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWwsICdqdXN0aWZ5LWNvbnRlbnQnLCAnY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbCwgJ3otaW5kZXgnLCAnMTAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsLCAncG9pbnRlci1ldmVudHMnLCAnbm9uZScpO1xuXG4gICAgdGhpcy5sb2FkaW5nUmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KExvYWRpbmdDb21wb25lbnQpO1xuICAgIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS52YXJpYW50ID0gdGhpcy5zaWFMb2FkaW5nVmFyaWFudDtcbiAgICB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UuY29sb3IgPSB0aGlzLnNpYUxvYWRpbmdDb2xvcjtcbiAgICB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2Uuc2l6ZSA9IHRoaXMuc2lhTG9hZGluZ1NpemU7XG4gICAgdGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLnBhZGRpbmcgPSAnMCc7XG5cbiAgICBjb25zdCBsb2FkaW5nRWwgPSB0aGlzLmxvYWRpbmdSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUVsLCBsb2FkaW5nRWwpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQod3JhcHBlciwgdGhpcy5vdmVybGF5RWwpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlFbD8ucGFyZW50Tm9kZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLm92ZXJsYXlFbC5wYXJlbnROb2RlLCB0aGlzLm92ZXJsYXlFbCk7XG4gICAgfVxuICAgIHRoaXMub3ZlcmxheUVsID0gbnVsbDtcbiAgICBpZiAodGhpcy5sb2FkaW5nUmVmKSB7XG4gICAgICB0aGlzLmxvYWRpbmdSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5sb2FkaW5nUmVmID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbG9hZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvZGlyZWN0aXZlcy90YWJsZS1sb2FkaW5nL3RhYmxlLWxvYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQVNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0MsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFNUc7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQVl0QjtJQUNBO0lBQ0E7SUFiRCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLGlCQUFpQixHQUFtQixlQUFlLENBQUM7SUFDcEQsZUFBZSxHQUFpQixRQUFRLENBQUM7SUFDekMsY0FBYyxHQUFXLEVBQUUsQ0FBQztJQUU3QixVQUFVLEdBQStCLElBQUksQ0FBQztJQUM5QyxVQUFVLEdBQTBDLElBQUksQ0FBQztJQUN6RCxRQUFRLEdBQTRCLElBQUksQ0FBQztJQUN6QyxPQUFPLEdBQTRCLElBQUksQ0FBQztJQUVoRCxZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixHQUFxQjtRQUZyQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUM1QixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FB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QztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQWlCO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO3dHQXBKVSxxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7c0lBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgQ29tcG9uZW50UmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBPbkRlc3Ryb3ksXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCwgTG9hZGluZ1ZhcmlhbnQsIExvYWRpbmdDb2xvciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgcmVwbGFjZXMgUHJpbWVORyBwLXRhYmxlJ3MgZGVmYXVsdCBsb2FkaW5nIHNwaW5uZXJcbiAqIHdpdGggdGhlIHNpYS1sb2FkaW5nIGNvbXBvbmVudCBpbmplY3RlZCBhcyBhIHRhYmxlIHJvdyBpbiB0aGUgdGJvZHkuXG4gKlxuICogVXNhZ2U6XG4gKiAgIDxwLXRhYmxlIFtsb2FkaW5nXT1cImxvYWRpbmdcIiBzaWFUYWJsZUxvYWRpbmc+XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3AtdGFibGVbc2lhVGFibGVMb2FkaW5nXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlTG9hZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBzaWFMb2FkaW5nVmFyaWFudDogTG9hZGluZ1ZhcmlhbnQgPSAnc2VuaW9yLXJldmVhbCc7XG4gIEBJbnB1dCgpIHNpYUxvYWRpbmdDb2xvcjogTG9hZGluZ0NvbG9yID0gJ3Nlbmlvcic7XG4gIEBJbnB1dCgpIHNpYUxvYWRpbmdTaXplOiBudW1iZXIgPSAzNjtcblxuICBwcml2YXRlIGxvYWRpbmdSb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsb2FkaW5nUmVmOiBDb21wb25lbnRSZWY8TG9hZGluZ0NvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0eWxlRWw6IEhUTUxTdHlsZUVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0SGlkZVN0eWxlcygpO1xuICAgIHRoaXMuc2V0dXBPYnNlcnZlcigpO1xuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuc2hvd0xvYWRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2xvYWRpbmcnXSAmJiAhY2hhbmdlc1snbG9hZGluZyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBpZiAodGhpcy5sb2FkaW5nKSB7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTG9hZGluZygpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5sb2FkaW5nUmVmKSB7XG4gICAgICBpZiAoY2hhbmdlc1snc2lhTG9hZGluZ1ZhcmlhbnQnXSkgdGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLnZhcmlhbnQgPSB0aGlzLnNpYUxvYWRpbmdWYXJpYW50O1xuICAgICAgaWYgKGNoYW5nZXNbJ3NpYUxvYWRpbmdDb2xvciddKSB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UuY29sb3IgPSB0aGlzLnNpYUxvYWRpbmdDb2xvcjtcbiAgICAgIGlmIChjaGFuZ2VzWydzaWFMb2FkaW5nU2l6ZSddKSB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2Uuc2l6ZSA9IHRoaXMuc2lhTG9hZGluZ1NpemU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVMb2FkaW5nKCk7XG4gICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgIHRoaXMuc3R5bGVFbD8ucmVtb3ZlKCk7XG4gICAgdGhpcy5zdHlsZUVsID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5qZWN0SGlkZVN0eWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuc3R5bGVFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICB0aGlzLnN0eWxlRWwhLnRleHRDb250ZW50ID0gYFxuICAgICAgLnAtZGF0YXRhYmxlLWxvYWRpbmctb3ZlcmxheSxcbiAgICAgIC5wLWRhdGF0YWJsZS1tYXNrIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIGA7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChob3N0LCB0aGlzLnN0eWxlRWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE9ic2VydmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbSBvZiBtdXRhdGlvbnMpIHtcbiAgICAgICAgbS5hZGRlZE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdwLWRhdGF0YWJsZS1sb2FkaW5nLW92ZXJsYXknKSB8fFxuICAgICAgICAgICAgICBub2RlLmNsYXNzTGlzdC5jb250YWlucygncC1kYXRhdGFibGUtbWFzaycpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgbm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGhvc3QsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93TG9hZGluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nUm93KSByZXR1cm47XG5cbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHRib2R5ID0gaG9zdC5xdWVyeVNlbGVjdG9yKCd0Ym9keScpO1xuICAgIGlmICghdGJvZHkpIHJldHVybjtcblxuICAgIC8vIEhpZGUgZXhpc3RpbmcgZGF0YSByb3dzXG4gICAgY29uc3QgZXhpc3RpbmdSb3dzID0gdGJvZHkucXVlcnlTZWxlY3RvckFsbCgndHInKTtcbiAgICBleGlzdGluZ1Jvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJvdywgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgIH0pO1xuXG4gICAgLy8gQ291bnQgY29sdW1ucyBmcm9tIHRoZWFkXG4gICAgY29uc3QgY29sQ291bnQgPSB0aGlzLmdldENvbHVtbkNvdW50KGhvc3QpO1xuXG4gICAgLy8gQ3JlYXRlIDx0cj5cbiAgICB0aGlzLmxvYWRpbmdSb3cgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3RyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmxvYWRpbmdSb3csICdzaWEtdGFibGUtbG9hZGluZy1yb3cnKTtcblxuICAgIC8vIENyZWF0ZSA8dGQgY29sc3Bhbj1cIk5cIj5cbiAgICBjb25zdCB0ZCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgndGQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0ZCwgJ2NvbHNwYW4nLCBTdHJpbmcoY29sQ291bnQgfHwgOTkpKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRkLCAndGV4dC1hbGlnbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRkLCAncGFkZGluZycsICcycmVtIDAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRkLCAnYm9yZGVyJywgJ25vbmUnKTtcblxuICAgIC8vIENyZWF0ZSBMb2FkaW5nQ29tcG9uZW50XG4gICAgdGhpcy5sb2FkaW5nUmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KExvYWRpbmdDb21wb25lbnQpO1xuICAgIHRoaXMubG9hZGluZ1JlZi5pbnN0YW5jZS52YXJpYW50ID0gdGhpcy5zaWFMb2FkaW5nVmFyaWFudDtcbiAgICB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2UuY29sb3IgPSB0aGlzLnNpYUxvYWRpbmdDb2xvcjtcbiAgICB0aGlzLmxvYWRpbmdSZWYuaW5zdGFuY2Uuc2l6ZSA9IHRoaXMuc2lhTG9hZGluZ1NpemU7XG4gICAgdGhpcy5sb2FkaW5nUmVmLmluc3RhbmNlLnBhZGRpbmcgPSAnMCc7XG5cbiAgICBjb25zdCBsb2FkaW5nRWwgPSB0aGlzLmxvYWRpbmdSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRkLCBsb2FkaW5nRWwpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5sb2FkaW5nUm93LCB0ZCk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0Ym9keSwgdGhpcy5sb2FkaW5nUm93KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTG9hZGluZygpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHRib2R5ID0gaG9zdC5xdWVyeVNlbGVjdG9yKCd0Ym9keScpO1xuXG4gICAgLy8gUmVtb3ZlIGxvYWRpbmcgcm93XG4gICAgaWYgKHRoaXMubG9hZGluZ1Jvdz8ucGFyZW50Tm9kZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmxvYWRpbmdSb3cucGFyZW50Tm9kZSwgdGhpcy5sb2FkaW5nUm93KTtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nUm93ID0gbnVsbDtcbiAgICBpZiAodGhpcy5sb2FkaW5nUmVmKSB7XG4gICAgICB0aGlzLmxvYWRpbmdSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5sb2FkaW5nUmVmID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBSZXN0b3JlIGhpZGRlbiBkYXRhIHJvd3NcbiAgICBpZiAodGJvZHkpIHtcbiAgICAgIGNvbnN0IHJvd3MgPSB0Ym9keS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xuICAgICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShyb3csICdkaXNwbGF5Jyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldENvbHVtbkNvdW50KGhvc3Q6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBoZWFkZXJSb3cgPSBob3N0LnF1ZXJ5U2VsZWN0b3IoJ3RoZWFkIHRyJyk7XG4gICAgaWYgKGhlYWRlclJvdykge1xuICAgICAgcmV0dXJuIGhlYWRlclJvdy5xdWVyeVNlbGVjdG9yQWxsKCd0aCcpLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIDk5O1xuICB9XG59XG4iXX0=
@@ -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,41 +5511,66 @@ 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
+ // Hide existing data rows
5522
+ const existingRows = tbody.querySelectorAll('tr');
5523
+ existingRows.forEach((row) => {
5524
+ this.renderer.setStyle(row, 'display', 'none');
5525
+ });
5526
+ // Count columns from thead
5527
+ const colCount = this.getColumnCount(host);
5528
+ // Create <tr>
5529
+ this.loadingRow = this.renderer.createElement('tr');
5530
+ this.renderer.addClass(this.loadingRow, 'sia-table-loading-row');
5531
+ // Create <td colspan="N">
5532
+ const td = this.renderer.createElement('td');
5533
+ this.renderer.setAttribute(td, 'colspan', String(colCount || 99));
5534
+ this.renderer.setStyle(td, 'text-align', 'center');
5535
+ this.renderer.setStyle(td, 'padding', '2rem 0');
5536
+ this.renderer.setStyle(td, 'border', 'none');
5537
+ // Create LoadingComponent
5545
5538
  this.loadingRef = this.vcr.createComponent(LoadingComponent);
5546
5539
  this.loadingRef.instance.variant = this.siaLoadingVariant;
5547
5540
  this.loadingRef.instance.color = this.siaLoadingColor;
5548
5541
  this.loadingRef.instance.size = this.siaLoadingSize;
5549
5542
  this.loadingRef.instance.padding = '0';
5550
5543
  const loadingEl = this.loadingRef.location.nativeElement;
5551
- this.renderer.appendChild(this.overlayEl, loadingEl);
5552
- this.renderer.appendChild(wrapper, this.overlayEl);
5544
+ this.renderer.appendChild(td, loadingEl);
5545
+ this.renderer.appendChild(this.loadingRow, td);
5546
+ this.renderer.appendChild(tbody, this.loadingRow);
5553
5547
  }
5554
- removeOverlay() {
5555
- if (this.overlayEl?.parentNode) {
5556
- this.renderer.removeChild(this.overlayEl.parentNode, this.overlayEl);
5548
+ removeLoading() {
5549
+ const host = this.el.nativeElement;
5550
+ const tbody = host.querySelector('tbody');
5551
+ // Remove loading row
5552
+ if (this.loadingRow?.parentNode) {
5553
+ this.renderer.removeChild(this.loadingRow.parentNode, this.loadingRow);
5557
5554
  }
5558
- this.overlayEl = null;
5555
+ this.loadingRow = null;
5559
5556
  if (this.loadingRef) {
5560
5557
  this.loadingRef.destroy();
5561
5558
  this.loadingRef = null;
5562
5559
  }
5560
+ // Restore hidden data rows
5561
+ if (tbody) {
5562
+ const rows = tbody.querySelectorAll('tr');
5563
+ rows.forEach((row) => {
5564
+ this.renderer.removeStyle(row, 'display');
5565
+ });
5566
+ }
5567
+ }
5568
+ getColumnCount(host) {
5569
+ const headerRow = host.querySelector('thead tr');
5570
+ if (headerRow) {
5571
+ return headerRow.querySelectorAll('th').length;
5572
+ }
5573
+ return 99;
5563
5574
  }
5564
5575
  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
5576
  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 });