ngx-st-tables 17.0.132 → 17.0.134

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.
Files changed (15) hide show
  1. package/esm2022/lib/components/material-table/material-table-caption/material-table-caption.component.mjs +59 -57
  2. package/esm2022/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component.mjs +44 -67
  3. package/esm2022/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter.component.mjs +101 -119
  4. package/esm2022/lib/components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component.mjs +24 -25
  5. package/esm2022/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.mjs +56 -38
  6. package/esm2022/lib/components/material-table/material-table.component.mjs +223 -205
  7. package/fesm2022/ngx-st-tables.mjs +491 -494
  8. package/fesm2022/ngx-st-tables.mjs.map +1 -1
  9. package/lib/components/material-table/material-table-caption/material-table-caption.component.d.ts +7 -9
  10. package/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component.d.ts +7 -14
  11. package/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter.component.d.ts +8 -7
  12. package/lib/components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component.d.ts +3 -8
  13. package/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.d.ts +11 -11
  14. package/lib/components/material-table/material-table.component.d.ts +18 -13
  15. package/package.json +1 -1
@@ -1,5 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, input, output, } from '@angular/core';
2
- import { StSubscribeDestroyComponent } from 'ngx-st-base-functions';
1
+ import { ChangeDetectionStrategy, Component, input, effect, output, computed, } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  import * as i1 from "../../../../services/st-tables-translations.service";
5
4
  import * as i2 from "@angular/forms";
@@ -8,19 +7,16 @@ import * as i4 from "@angular/material/input";
8
7
  import * as i5 from "@angular/material/select";
9
8
  import * as i6 from "@angular/material/core";
10
9
  import * as i7 from "@angular/material/datepicker";
11
- export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
12
- constructor(stTableTranslations, fb) {
13
- super();
10
+ export class MaterialTableFilterComponent {
11
+ constructor(stTableTranslations, fb, changeDetectorRef) {
14
12
  this.stTableTranslations = stTableTranslations;
15
13
  this.fb = fb;
16
- this.column = input.required({});
17
- this.filterValue = input({}, {
18
- transform: (filterValue) => {
19
- this.setFilterValue(filterValue);
20
- return filterValue || {};
21
- },
22
- });
14
+ this.changeDetectorRef = changeDetectorRef;
15
+ this.column = input.required();
16
+ this.filterValue = input({});
23
17
  this.filterValueChanged = output();
18
+ // Cache translations as computed signal
19
+ this.translations = computed(() => this.stTableTranslations.getTranslations()());
24
20
  this.formGroup = this.fb.group({
25
21
  matchMode: {
26
22
  value: 'contains',
@@ -31,16 +27,24 @@ export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
31
27
  dateTo: null,
32
28
  });
33
29
  this.isUpdatingFromOutside = false;
34
- }
35
- ngOnInit() {
36
- this.formGroup.valueChanges.subscribe(() => {
37
- if (!this.isUpdatingFromOutside) {
38
- this.updateAfterFormValueChanged();
30
+ // React to filterValue changes
31
+ effect(() => {
32
+ const filter = this.filterValue();
33
+ if (filter && Object.keys(filter).length > 0) {
34
+ this.isUpdatingFromOutside = true;
35
+ this.setFilterValue(filter);
36
+ this.isUpdatingFromOutside = false;
39
37
  }
40
38
  });
41
- // this.filtersValue.subscribe(filtersValue => {
42
- // console.log('Filters updated child');
43
- // });
39
+ // React to form value changes
40
+ effect(() => {
41
+ // Track form changes
42
+ this.formGroup.valueChanges.subscribe(() => {
43
+ if (!this.isUpdatingFromOutside) {
44
+ this.updateAfterFormValueChanged();
45
+ }
46
+ });
47
+ });
44
48
  }
45
49
  setFilterValue(newFilterValue) {
46
50
  if (newFilterValue) {
@@ -59,40 +63,42 @@ export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
59
63
  else {
60
64
  this.formGroup.controls.value.setValue(newFilterValue.value || '', { emitEvent: false });
61
65
  }
66
+ this.changeDetectorRef.markForCheck();
62
67
  }
63
68
  }
64
69
  updateAfterFormValueChanged() {
65
70
  let tmpValue = this.formGroup.controls.value.value || '';
66
71
  if (this.column().filterType === 'date') {
67
72
  tmpValue = [
68
- this.formGroup.controls.dateFrom.value
69
- ? `${this.formGroup.controls.dateFrom.value.getFullYear()}-${(this.formGroup.controls.dateFrom.value.getMonth() + 1).toString().padStart(2, '0')}-${this.formGroup.controls.dateFrom.value.getDate().toString().padStart(2, '0')}`
70
- : null,
71
- this.formGroup.controls.dateTo.value
72
- ? `${this.formGroup.controls.dateTo.value.getFullYear()}-${(this.formGroup.controls.dateTo.value.getMonth() + 1).toString().padStart(2, '0')}-${this.formGroup.controls.dateTo.value.getDate().toString().padStart(2, '0')}`
73
- : null,
73
+ this.formatDateToString(this.formGroup.controls.dateFrom.value),
74
+ this.formatDateToString(this.formGroup.controls.dateTo.value),
74
75
  ];
75
76
  }
76
77
  if (this.column().filterType === 'boolean' ||
77
78
  this.column().filterType === 'number') {
78
79
  tmpValue = this.formGroup.controls.value.value || null;
79
80
  }
80
- // this.formGroup.controls.value.setValue(tmpValue);
81
81
  const newFilter = {
82
82
  matchMode: this.formGroup.controls.matchMode.value,
83
83
  value: tmpValue,
84
84
  };
85
85
  this.filterValueChanged.emit(newFilter);
86
86
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTableFilterComponent, deps: [{ token: i1.StTablesTranslationsService }, { token: i2.NonNullableFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MaterialTableFilterComponent, selector: "ngx-st-material-table-filter", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterValueChanged: "filterValueChanged" }, usesInheritance: true, ngImport: i0, template: `
89
- <form class="row" [formGroup]="formGroup" style="width: 100%;">
87
+ formatDateToString(date) {
88
+ if (!date)
89
+ return null;
90
+ const year = date.getFullYear();
91
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
92
+ const day = date.getDate().toString().padStart(2, '0');
93
+ return `${year}-${month}-${day}`;
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTableFilterComponent, deps: [{ token: i1.StTablesTranslationsService }, { token: i2.NonNullableFormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MaterialTableFilterComponent, selector: "ngx-st-material-table-filter", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterValueChanged: "filterValueChanged" }, ngImport: i0, template: `
97
+ <form class="row" [formGroup]="formGroup">
90
98
  <div class="col-auto">
91
- <mat-form-field appearance="outline" style="width: 120px">
92
- <mat-label>
93
- {{ stTableTranslations.getTranslations()().matchMode }}</mat-label
94
- >
95
- <input matInput type="text" [formControlName]="'matchMode'" />
99
+ <mat-form-field appearance="outline" class="match-mode-field">
100
+ <mat-label>{{ translations().matchMode }}</mat-label>
101
+ <input matInput type="text" formControlName="matchMode" />
96
102
  </mat-form-field>
97
103
  </div>
98
104
 
@@ -100,14 +106,12 @@ export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
100
106
  column().filterType === 'string' || column().filterType === 'number'
101
107
  ) {
102
108
  <div class="col">
103
- <mat-form-field appearance="outline" style="width: 100%">
104
- <mat-label>{{
105
- stTableTranslations.getTranslations()().searchFilter
106
- }}</mat-label>
109
+ <mat-form-field appearance="outline" class="full-width">
110
+ <mat-label>{{ translations().searchFilter }}</mat-label>
107
111
  <input
108
112
  matInput
109
113
  [type]="column().filterType === 'string' ? 'text' : 'number'"
110
- [formControlName]="'value'"
114
+ formControlName="value"
111
115
  />
112
116
  </mat-form-field>
113
117
  </div>
@@ -115,14 +119,12 @@ export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
115
119
 
116
120
  @if (column().filterType === 'date') {
117
121
  <div class="col">
118
- <mat-form-field appearance="outline" style="width: 170px">
119
- <mat-label>{{
120
- stTableTranslations.getTranslations()().dateFrom
121
- }}</mat-label>
122
+ <mat-form-field appearance="outline" class="date-field">
123
+ <mat-label>{{ translations().dateFrom }}</mat-label>
122
124
  <input
123
125
  matInput
124
126
  [matDatepicker]="picker1"
125
- [formControlName]="'dateFrom'"
127
+ formControlName="dateFrom"
126
128
  />
127
129
  <mat-datepicker-toggle
128
130
  matIconSuffix
@@ -132,14 +134,12 @@ export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
132
134
  </mat-form-field>
133
135
  </div>
134
136
  <div class="col">
135
- <mat-form-field appearance="outline" style="width: 170px">
136
- <mat-label>{{
137
- stTableTranslations.getTranslations()().dateTo
138
- }}</mat-label>
137
+ <mat-form-field appearance="outline" class="date-field">
138
+ <mat-label>{{ translations().dateTo }}</mat-label>
139
139
  <input
140
140
  matInput
141
141
  [matDatepicker]="picker2"
142
- [formControlName]="'dateTo'"
142
+ formControlName="dateTo"
143
143
  />
144
144
  <mat-datepicker-toggle
145
145
  matIconSuffix
@@ -152,19 +152,15 @@ export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
152
152
 
153
153
  @if (column().filterType === 'boolean') {
154
154
  <div class="col">
155
- <mat-form-field appearance="outline" style="width: 100%">
156
- <mat-label>{{
157
- stTableTranslations.getTranslations()().booleanPickValue
158
- }}</mat-label>
159
- <mat-select [formControlName]="'value'">
160
- <mat-option value="">{{
161
- stTableTranslations.getTranslations()().booleanNone
162
- }}</mat-option>
155
+ <mat-form-field appearance="outline" class="full-width">
156
+ <mat-label>{{ translations().booleanPickValue }}</mat-label>
157
+ <mat-select formControlName="value">
158
+ <mat-option value="">{{ translations().booleanNone }}</mat-option>
163
159
  <mat-option [value]="true">{{
164
- stTableTranslations.getTranslations()().booleanYes
160
+ translations().booleanYes
165
161
  }}</mat-option>
166
162
  <mat-option [value]="false">{{
167
- stTableTranslations.getTranslations()().booleanNo
163
+ translations().booleanNo
168
164
  }}</mat-option>
169
165
  </mat-select>
170
166
  </mat-form-field>
@@ -173,36 +169,33 @@ export class MaterialTableFilterComponent extends StSubscribeDestroyComponent {
173
169
 
174
170
  @if (column().filterType === 'custom') {
175
171
  <div class="col">
176
- <mat-form-field appearance="outline" style="width: 100%">
177
- <mat-label>{{
178
- stTableTranslations.getTranslations()().customPickValue
179
- }}</mat-label>
180
- <mat-select [formControlName]="'value'">
181
- <mat-option value="">{{
182
- stTableTranslations.getTranslations()().customNone
183
- }}</mat-option>
184
- @for (option of column().customFilterOptions; track option) {
185
- <mat-option [value]="option.value">
186
- {{ option.label }}
187
- </mat-option>
172
+ <mat-form-field appearance="outline" class="full-width">
173
+ <mat-label>{{ translations().customPickValue }}</mat-label>
174
+ <mat-select formControlName="value">
175
+ <mat-option value="">{{ translations().customNone }}</mat-option>
176
+ @for (
177
+ option of column().customFilterOptions;
178
+ track option.value
179
+ ) {
180
+ <mat-option [value]="option.value">{{
181
+ option.label
182
+ }}</mat-option>
188
183
  }
189
184
  </mat-select>
190
185
  </mat-form-field>
191
186
  </div>
192
187
  }
193
188
  </form>
194
- `, isInline: true, styles: [":host{width:100%}form.row{gap:8px}form.row>:is(.col-auto,.col){padding:0}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
189
+ `, isInline: true, styles: [":host{width:100%}form.row{gap:8px;width:100%}form.row>:is(.col-auto,.col){padding:0}.match-mode-field{width:120px}.date-field{width:170px}.full-width{width:100%}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
195
190
  }
196
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTableFilterComponent, decorators: [{
197
192
  type: Component,
198
193
  args: [{ selector: 'ngx-st-material-table-filter', template: `
199
- <form class="row" [formGroup]="formGroup" style="width: 100%;">
194
+ <form class="row" [formGroup]="formGroup">
200
195
  <div class="col-auto">
201
- <mat-form-field appearance="outline" style="width: 120px">
202
- <mat-label>
203
- {{ stTableTranslations.getTranslations()().matchMode }}</mat-label
204
- >
205
- <input matInput type="text" [formControlName]="'matchMode'" />
196
+ <mat-form-field appearance="outline" class="match-mode-field">
197
+ <mat-label>{{ translations().matchMode }}</mat-label>
198
+ <input matInput type="text" formControlName="matchMode" />
206
199
  </mat-form-field>
207
200
  </div>
208
201
 
@@ -210,14 +203,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
210
203
  column().filterType === 'string' || column().filterType === 'number'
211
204
  ) {
212
205
  <div class="col">
213
- <mat-form-field appearance="outline" style="width: 100%">
214
- <mat-label>{{
215
- stTableTranslations.getTranslations()().searchFilter
216
- }}</mat-label>
206
+ <mat-form-field appearance="outline" class="full-width">
207
+ <mat-label>{{ translations().searchFilter }}</mat-label>
217
208
  <input
218
209
  matInput
219
210
  [type]="column().filterType === 'string' ? 'text' : 'number'"
220
- [formControlName]="'value'"
211
+ formControlName="value"
221
212
  />
222
213
  </mat-form-field>
223
214
  </div>
@@ -225,14 +216,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
225
216
 
226
217
  @if (column().filterType === 'date') {
227
218
  <div class="col">
228
- <mat-form-field appearance="outline" style="width: 170px">
229
- <mat-label>{{
230
- stTableTranslations.getTranslations()().dateFrom
231
- }}</mat-label>
219
+ <mat-form-field appearance="outline" class="date-field">
220
+ <mat-label>{{ translations().dateFrom }}</mat-label>
232
221
  <input
233
222
  matInput
234
223
  [matDatepicker]="picker1"
235
- [formControlName]="'dateFrom'"
224
+ formControlName="dateFrom"
236
225
  />
237
226
  <mat-datepicker-toggle
238
227
  matIconSuffix
@@ -242,14 +231,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
242
231
  </mat-form-field>
243
232
  </div>
244
233
  <div class="col">
245
- <mat-form-field appearance="outline" style="width: 170px">
246
- <mat-label>{{
247
- stTableTranslations.getTranslations()().dateTo
248
- }}</mat-label>
234
+ <mat-form-field appearance="outline" class="date-field">
235
+ <mat-label>{{ translations().dateTo }}</mat-label>
249
236
  <input
250
237
  matInput
251
238
  [matDatepicker]="picker2"
252
- [formControlName]="'dateTo'"
239
+ formControlName="dateTo"
253
240
  />
254
241
  <mat-datepicker-toggle
255
242
  matIconSuffix
@@ -262,19 +249,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
262
249
 
263
250
  @if (column().filterType === 'boolean') {
264
251
  <div class="col">
265
- <mat-form-field appearance="outline" style="width: 100%">
266
- <mat-label>{{
267
- stTableTranslations.getTranslations()().booleanPickValue
268
- }}</mat-label>
269
- <mat-select [formControlName]="'value'">
270
- <mat-option value="">{{
271
- stTableTranslations.getTranslations()().booleanNone
272
- }}</mat-option>
252
+ <mat-form-field appearance="outline" class="full-width">
253
+ <mat-label>{{ translations().booleanPickValue }}</mat-label>
254
+ <mat-select formControlName="value">
255
+ <mat-option value="">{{ translations().booleanNone }}</mat-option>
273
256
  <mat-option [value]="true">{{
274
- stTableTranslations.getTranslations()().booleanYes
257
+ translations().booleanYes
275
258
  }}</mat-option>
276
259
  <mat-option [value]="false">{{
277
- stTableTranslations.getTranslations()().booleanNo
260
+ translations().booleanNo
278
261
  }}</mat-option>
279
262
  </mat-select>
280
263
  </mat-form-field>
@@ -283,24 +266,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
283
266
 
284
267
  @if (column().filterType === 'custom') {
285
268
  <div class="col">
286
- <mat-form-field appearance="outline" style="width: 100%">
287
- <mat-label>{{
288
- stTableTranslations.getTranslations()().customPickValue
289
- }}</mat-label>
290
- <mat-select [formControlName]="'value'">
291
- <mat-option value="">{{
292
- stTableTranslations.getTranslations()().customNone
293
- }}</mat-option>
294
- @for (option of column().customFilterOptions; track option) {
295
- <mat-option [value]="option.value">
296
- {{ option.label }}
297
- </mat-option>
269
+ <mat-form-field appearance="outline" class="full-width">
270
+ <mat-label>{{ translations().customPickValue }}</mat-label>
271
+ <mat-select formControlName="value">
272
+ <mat-option value="">{{ translations().customNone }}</mat-option>
273
+ @for (
274
+ option of column().customFilterOptions;
275
+ track option.value
276
+ ) {
277
+ <mat-option [value]="option.value">{{
278
+ option.label
279
+ }}</mat-option>
298
280
  }
299
281
  </mat-select>
300
282
  </mat-form-field>
301
283
  </div>
302
284
  }
303
285
  </form>
304
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{width:100%}form.row{gap:8px}form.row>:is(.col-auto,.col){padding:0}\n"] }]
305
- }], ctorParameters: () => [{ type: i1.StTablesTranslationsService }, { type: i2.NonNullableFormBuilder }] });
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC10YWJsZXMvc3JjL2xpYi9jb21wb25lbnRzL21hdGVyaWFsLXRhYmxlL21hdGVyaWFsLXRhYmxlLWNhcHRpb24vbWF0ZXJpYWwtdGFibGUtZmlsdGVyLWRpYWxvZy9tYXRlcmlhbC10YWJsZS1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQXFJcEUsTUFBTSxPQUFPLDRCQUNYLFNBQVEsMkJBQTJCO0lBdUJuQyxZQUNTLG1CQUFnRCxFQUMvQyxFQUEwQjtRQUVsQyxLQUFLLEVBQUUsQ0FBQztRQUhELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNkI7UUFDL0MsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUF0QnBDLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFpQyxFQUFFLENBQUMsQ0FBQztRQUM1RCxnQkFBVyxHQUFHLEtBQUssQ0FBQyxFQUEyQixFQUFFO1lBQy9DLFNBQVMsRUFBRSxDQUFDLFdBQWtDLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDakMsT0FBTyxXQUFXLElBQUksRUFBRSxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCx1QkFBa0IsR0FBRyxNQUFNLEVBQXlCLENBQUM7UUFFckQsY0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQXNDLFVBQVU7Z0JBQ3JE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LENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQ2xELEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBM0dVLDRCQUE0QjttR0FBNUIsNEJBQTRCLGthQTVIN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwR1Q7OzRGQWtCVSw0QkFBNEI7a0JBOUh4QyxTQUFTOytCQUNFLDhCQUE4QixZQUM5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBHVCxtQkFnQmdCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBpbnB1dCxcclxuICBtb2RlbCxcclxuICBPbkluaXQsXHJcbiAgZWZmZWN0LFxyXG4gIG91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RUYWJsZXNUcmFuc2xhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc3QtdGFibGVzLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld1N0TWF0ZXJpYWxUYWJsZUNvbHVtbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3ZpZXcvdmlldy1zdC1tYXRlcmlhbC10YWJsZS1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBOb25OdWxsYWJsZUZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdFN1YnNjcmliZURlc3Ryb3lDb21wb25lbnQgfSBmcm9tICduZ3gtc3QtYmFzZS1mdW5jdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gIFN0TWF0ZXJpYWxUYWJsZUZpbHRlcixcclxuICBTdE1hdGVyaWFsVGFibGVGaWx0ZXJNYXRjaE1vZGVUeXBlLFxyXG4gIFN0TWF0ZXJpYWxUYWJsZUZpbHRlclZhbHVlVHlwZSxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LXN0LW1hdGVyaWFsLXRhYmxlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxmb3JtIGNsYXNzPVwicm93XCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdHlsZT1cIndpZHRoOiAxMjBweFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICAgICAge3sgc3RUYWJsZVRyYW5zbGF0aW9ucy5nZXRUcmFuc2xhdGlvbnMoKSgpLm1hdGNoTW9kZSB9fTwvbWF0LWxhYmVsXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIidtYXRjaE1vZGUnXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBpZiAoXHJcbiAgICAgICAgY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ3N0cmluZycgfHwgY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ251bWJlcidcclxuICAgICAgKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICAgICAgICAgc3RUYWJsZVRyYW5zbGF0aW9ucy5nZXRUcmFuc2xhdGlvbnMoKSgpLnNlYXJjaEZpbHRlclxyXG4gICAgICAgICAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIFt0eXBlXT1cImNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdzdHJpbmcnID8gJ3RleHQnIDogJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3ZhbHVlJ1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKGNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN0eWxlPVwid2lkdGg6IDE3MHB4XCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3tcclxuICAgICAgICAgICAgICBzdFRhYmxlVHJhbnNsYXRpb25zLmdldFRyYW5zbGF0aW9ucygpKCkuZGF0ZUZyb21cclxuICAgICAgICAgICAgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIxXCJcclxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidkYXRlRnJvbSdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXHJcbiAgICAgICAgICAgICAgbWF0SWNvblN1ZmZpeFxyXG4gICAgICAgICAgICAgIFtmb3JdPVwicGlja2VyMVwiXHJcbiAgICAgICAgICAgID48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIxPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN0eWxlPVwid2lkdGg6IDE3MHB4XCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3tcclxuICAgICAgICAgICAgICBzdFRhYmxlVHJhbnNsYXRpb25zLmdldFRyYW5zbGF0aW9ucygpKCkuZGF0ZVRvXHJcbiAgICAgICAgICAgIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyMlwiXHJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZGF0ZVRvJ1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGVcclxuICAgICAgICAgICAgICBtYXRJY29uU3VmZml4XHJcbiAgICAgICAgICAgICAgW2Zvcl09XCJwaWNrZXIyXCJcclxuICAgICAgICAgICAgPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcjI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAoY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICAgICAgICAgc3RUYWJsZVRyYW5zbGF0aW9ucy5nZXRUcmFuc2xhdGlvbnMoKSgpLmJvb2xlYW5QaWNrVmFsdWVcclxuICAgICAgICAgICAgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCIndmFsdWUnXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJcIj57e1xyXG4gICAgICAgICAgICAgICAgc3RUYWJsZVRyYW5zbGF0aW9ucy5nZXRUcmFuc2xhdGlvbnMoKSgpLmJvb2xlYW5Ob25lXHJcbiAgICAgICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInRydWVcIj57e1xyXG4gICAgICAgICAgICAgICAgc3RUYWJsZVRyYW5zbGF0aW9ucy5nZXRUcmFuc2xhdGlvbnMoKSgpLmJvb2xlYW5ZZXNcclxuICAgICAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZmFsc2VcIj57e1xyXG4gICAgICAgICAgICAgICAgc3RUYWJsZVRyYW5zbGF0aW9ucy5nZXRUcmFuc2xhdGlvbnMoKSgpLmJvb2xlYW5Ob1xyXG4gICAgICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKGNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICAgICAgICAgc3RUYWJsZVRyYW5zbGF0aW9ucy5nZXRUcmFuc2xhdGlvbnMoKSgpLmN1c3RvbVBpY2tWYWx1ZVxyXG4gICAgICAgICAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cIid2YWx1ZSdcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlwiPnt7XHJcbiAgICAgICAgICAgICAgICBzdFRhYmxlVHJhbnNsYXRpb25zLmdldFRyYW5zbGF0aW9ucygpKCkuY3VzdG9tTm9uZVxyXG4gICAgICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjb2x1bW4oKS5jdXN0b21GaWx0ZXJPcHRpb25zOyB0cmFjayBvcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Zvcm0+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGBcclxuICAgICAgOmhvc3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICAgIGZvcm0ucm93IHtcclxuICAgICAgICBnYXA6IDhweDtcclxuXHJcbiAgICAgICAgJiA+IC5jb2wtYXV0byxcclxuICAgICAgICAmID4gLmNvbCB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgYCxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZUZpbHRlckNvbXBvbmVudFxyXG4gIGV4dGVuZHMgU3RTdWJzY3JpYmVEZXN0cm95Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIGNvbHVtbiA9IGlucHV0LnJlcXVpcmVkPFZpZXdTdE1hdGVyaWFsVGFibGVDb2x1bW5Nb2RlbD4oe30pO1xyXG4gIGZpbHRlclZhbHVlID0gaW5wdXQoe30gYXMgU3RNYXRlcmlhbFRhYmxlRmlsdGVyLCB7XHJcbiAgICB0cmFuc2Zvcm06IChmaWx0ZXJWYWx1ZTogU3RNYXRlcmlhbFRhYmxlRmlsdGVyKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RmlsdGVyVmFsdWUoZmlsdGVyVmFsdWUpO1xyXG4gICAgICByZXR1cm4gZmlsdGVyVmFsdWUgfHwge307XHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICBmaWx0ZXJWYWx1ZUNoYW5nZWQgPSBvdXRwdXQ8U3RNYXRlcmlhbFRhYmxlRmlsdGVyPigpO1xyXG5cclxuICBmb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgIG1hdGNoTW9kZToge1xyXG4gICAgICB2YWx1ZTogPFN0TWF0ZXJpYWxUYWJsZUZpbHRlck1hdGNoTW9kZVR5cGU+J2NvbnRhaW5zJyxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgdmFsdWU6IDxudWxsIHwgc3RyaW5nIHwgbnVtYmVyPicnLFxyXG4gICAgZGF0ZUZyb206IDxudWxsIHwgRGF0ZT5udWxsLFxyXG4gICAgZGF0ZVRvOiA8bnVsbCB8IERhdGU+bnVsbCxcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc3RUYWJsZVRyYW5zbGF0aW9uczogU3RUYWJsZXNUcmFuc2xhdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogTm9uTnVsbGFibGVGb3JtQnVpbGRlclxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pc1VwZGF0aW5nRnJvbU91dHNpZGUpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFmdGVyRm9ybVZhbHVlQ2hhbmdlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIHRoaXMuZmlsdGVyc1ZhbHVlLnN1YnNjcmliZShmaWx0ZXJzVmFsdWUgPT4ge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZygnRmlsdGVycyB1cGRhdGVkIGNoaWxkJyk7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNVcGRhdGluZ0Zyb21PdXRzaWRlID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgc2V0RmlsdGVyVmFsdWUobmV3RmlsdGVyVmFsdWU6IFN0TWF0ZXJpYWxUYWJsZUZpbHRlcikge1xyXG4gICAgaWYgKG5ld0ZpbHRlclZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLm1hdGNoTW9kZS5zZXRWYWx1ZShuZXdGaWx0ZXJWYWx1ZS5tYXRjaE1vZGUsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICAgIGNvbnN0IHRtcFZhbHVlID0gbmV3RmlsdGVyVmFsdWUudmFsdWUgYXMgW3N0cmluZyB8IG51bGwsIHN0cmluZyB8IG51bGxdO1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmRhdGVGcm9tLnNldFZhbHVlKFxyXG4gICAgICAgICAgdG1wVmFsdWVbMF0gPyBuZXcgRGF0ZSh0bXBWYWx1ZVswXSEpIDogbnVsbCxcclxuICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kYXRlVG8uc2V0VmFsdWUoXHJcbiAgICAgICAgICB0bXBWYWx1ZVsxXSA/IG5ldyBEYXRlKHRtcFZhbHVlWzFdKSA6IG51bGwsXHJcbiAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5jb2x1bW4oKS5maWx0ZXJUeXBlID09PSAnYm9vbGVhbicgfHxcclxuICAgICAgICB0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdudW1iZXInXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnZhbHVlLnNldFZhbHVlKFxyXG4gICAgICAgICAgKG5ld0ZpbHRlclZhbHVlLnZhbHVlIGFzIHN0cmluZyB8IG51bWJlciB8IG51bGwpIHx8IG51bGwsXHJcbiAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudmFsdWUuc2V0VmFsdWUoXHJcbiAgICAgICAgICAobmV3RmlsdGVyVmFsdWUudmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkgfHwgJycsXHJcbiAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQWZ0ZXJGb3JtVmFsdWVDaGFuZ2VkKCkge1xyXG4gICAgbGV0IHRtcFZhbHVlOiBTdE1hdGVyaWFsVGFibGVGaWx0ZXJWYWx1ZVR5cGUgPVxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy52YWx1ZS52YWx1ZSB8fCAnJztcclxuXHJcbiAgICBpZiAodGhpcy5jb2x1bW4oKS5maWx0ZXJUeXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgdG1wVmFsdWUgPSBbXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGF0ZUZyb20udmFsdWVcclxuICAgICAgICAgID8gYCR7dGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGF0ZUZyb20udmFsdWUuZ2V0RnVsbFllYXIoKX0tJHsodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGF0ZUZyb20udmFsdWUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0tJHt0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kYXRlRnJvbS52YWx1ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWBcclxuICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kYXRlVG8udmFsdWVcclxuICAgICAgICAgID8gYCR7dGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGF0ZVRvLnZhbHVlLmdldEZ1bGxZZWFyKCl9LSR7KHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmRhdGVUby52YWx1ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS0ke3RoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmRhdGVUby52YWx1ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWBcclxuICAgICAgICAgIDogbnVsbCxcclxuICAgICAgXSBhcyBbc3RyaW5nIHwgbnVsbCwgc3RyaW5nIHwgbnVsbF07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdib29sZWFuJyB8fFxyXG4gICAgICB0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdudW1iZXInXHJcbiAgICApIHtcclxuICAgICAgdG1wVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy52YWx1ZS52YWx1ZSB8fCBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnZhbHVlLnNldFZhbHVlKHRtcFZhbHVlKTtcclxuXHJcbiAgICBjb25zdCBuZXdGaWx0ZXI6IFN0TWF0ZXJpYWxUYWJsZUZpbHRlciA9IHtcclxuICAgICAgbWF0Y2hNb2RlOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5tYXRjaE1vZGUudmFsdWUsXHJcbiAgICAgIHZhbHVlOiB0bXBWYWx1ZSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZWQuZW1pdChuZXdGaWx0ZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
286
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{width:100%}form.row{gap:8px;width:100%}form.row>:is(.col-auto,.col){padding:0}.match-mode-field{width:120px}.date-field{width:170px}.full-width{width:100%}\n"] }]
287
+ }], ctorParameters: () => [{ type: i1.StTablesTranslationsService }, { type: i2.NonNullableFormBuilder }, { type: i0.ChangeDetectorRef }] });
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC10YWJsZXMvc3JjL2xpYi9jb21wb25lbnRzL21hdGVyaWFsLXRhYmxlL21hdGVyaWFsLXRhYmxlLWNhcHRpb24vbWF0ZXJpYWwtdGFibGUtZmlsdGVyLWRpYWxvZy9tYXRlcmlhbC10YWJsZS1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsR0FFVCxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBeUl2QixNQUFNLE9BQU8sNEJBQTRCO0lBcUJ2QyxZQUNVLG1CQUFnRCxFQUNoRCxFQUEwQixFQUMxQixpQkFBb0M7UUFGcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE2QjtRQUNoRCxPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBdkI5QyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBa0MsQ0FBQztRQUMxRCxnQkFBVyxHQUFHLEtBQUssQ0FBd0IsRUFBMkIsQ0FBQyxDQUFDO1FBRXhFLHVCQUFrQixHQUFHLE1BQU0sRUFBeUIsQ0FBQztRQUVyRCx3Q0FBd0M7UUFDeEMsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1RSxjQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBc0MsVUFBVTtnQkFDckQsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELEtBQUssRUFBMEIsRUFBRTtZQUNqQyxR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O1FBQ2hFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZELE9BQU8sR0FBRyxJQUFJLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ25DLENBQUM7K0dBcEhVLDRCQUE0QjttR0FBNUIsNEJBQTRCLDJZQTdIN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZGVDs7NEZBZ0NVLDRCQUE0QjtrQkEvSHhDLFNBQVM7K0JBQ0UsOEJBQThCLFlBQzlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2RlQsbUJBOEJnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgaW5wdXQsXHJcbiAgZWZmZWN0LFxyXG4gIG91dHB1dCxcclxuICBjb21wdXRlZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RUYWJsZXNUcmFuc2xhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc3QtdGFibGVzLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld1N0TWF0ZXJpYWxUYWJsZUNvbHVtbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3ZpZXcvdmlldy1zdC1tYXRlcmlhbC10YWJsZS1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBOb25OdWxsYWJsZUZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIFN0TWF0ZXJpYWxUYWJsZUZpbHRlcixcclxuICBTdE1hdGVyaWFsVGFibGVGaWx0ZXJNYXRjaE1vZGVUeXBlLFxyXG4gIFN0TWF0ZXJpYWxUYWJsZUZpbHRlclZhbHVlVHlwZSxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LXN0LW1hdGVyaWFsLXRhYmxlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxmb3JtIGNsYXNzPVwicm93XCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJtYXRjaC1tb2RlLWZpZWxkXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7IHRyYW5zbGF0aW9ucygpLm1hdGNoTW9kZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwibWF0Y2hNb2RlXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBpZiAoXHJcbiAgICAgICAgY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ3N0cmluZycgfHwgY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ251bWJlcidcclxuICAgICAgKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgdHJhbnNsYXRpb25zKCkuc2VhcmNoRmlsdGVyIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ3N0cmluZycgPyAndGV4dCcgOiAnbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmIChjb2x1bW4oKS5maWx0ZXJUeXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImRhdGUtZmllbGRcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyB0cmFuc2xhdGlvbnMoKS5kYXRlRnJvbSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlcjFcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVGcm9tXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZVxyXG4gICAgICAgICAgICAgIG1hdEljb25TdWZmaXhcclxuICAgICAgICAgICAgICBbZm9yXT1cInBpY2tlcjFcIlxyXG4gICAgICAgICAgICA+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyMT48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImRhdGUtZmllbGRcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyB0cmFuc2xhdGlvbnMoKS5kYXRlVG8gfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIyXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlVG9cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXHJcbiAgICAgICAgICAgICAgbWF0SWNvblN1ZmZpeFxyXG4gICAgICAgICAgICAgIFtmb3JdPVwicGlja2VyMlwiXHJcbiAgICAgICAgICAgID48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIyPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKGNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7IHRyYW5zbGF0aW9ucygpLmJvb2xlYW5QaWNrVmFsdWUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlwiPnt7IHRyYW5zbGF0aW9ucygpLmJvb2xlYW5Ob25lIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0cnVlXCI+e3tcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9ucygpLmJvb2xlYW5ZZXNcclxuICAgICAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZmFsc2VcIj57e1xyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zKCkuYm9vbGVhbk5vXHJcbiAgICAgICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAoY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ2N1c3RvbScpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyB0cmFuc2xhdGlvbnMoKS5jdXN0b21QaWNrVmFsdWUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlwiPnt7IHRyYW5zbGF0aW9ucygpLmN1c3RvbU5vbmUgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgQGZvciAoXHJcbiAgICAgICAgICAgICAgICBvcHRpb24gb2YgY29sdW1uKCkuY3VzdG9tRmlsdGVyT3B0aW9ucztcclxuICAgICAgICAgICAgICAgIHRyYWNrIG9wdGlvbi52YWx1ZVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbFxyXG4gICAgICAgICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Zvcm0+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGBcclxuICAgICAgOmhvc3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3JtLnJvdyB7XHJcbiAgICAgICAgZ2FwOiA4cHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICYgPiAuY29sLWF1dG8sXHJcbiAgICAgICAgJiA+IC5jb2wge1xyXG4gICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tYXRjaC1tb2RlLWZpZWxkIHtcclxuICAgICAgICB3aWR0aDogMTIwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5kYXRlLWZpZWxkIHtcclxuICAgICAgICB3aWR0aDogMTcwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mdWxsLXdpZHRoIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgYCxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZUZpbHRlckNvbXBvbmVudCB7XHJcbiAgY29sdW1uID0gaW5wdXQucmVxdWlyZWQ8Vmlld1N0TWF0ZXJpYWxUYWJsZUNvbHVtbk1vZGVsPigpO1xyXG4gIGZpbHRlclZhbHVlID0gaW5wdXQ8U3RNYXRlcmlhbFRhYmxlRmlsdGVyPih7fSBhcyBTdE1hdGVyaWFsVGFibGVGaWx0ZXIpO1xyXG5cclxuICBmaWx0ZXJWYWx1ZUNoYW5nZWQgPSBvdXRwdXQ8U3RNYXRlcmlhbFRhYmxlRmlsdGVyPigpO1xyXG5cclxuICAvLyBDYWNoZSB0cmFuc2xhdGlvbnMgYXMgY29tcHV0ZWQgc2lnbmFsXHJcbiAgdHJhbnNsYXRpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdFRhYmxlVHJhbnNsYXRpb25zLmdldFRyYW5zbGF0aW9ucygpKCkpO1xyXG5cclxuICBmb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgIG1hdGNoTW9kZToge1xyXG4gICAgICB2YWx1ZTogPFN0TWF0ZXJpYWxUYWJsZUZpbHRlck1hdGNoTW9kZVR5cGU+J2NvbnRhaW5zJyxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgdmFsdWU6IDxudWxsIHwgc3RyaW5nIHwgbnVtYmVyPicnLFxyXG4gICAgZGF0ZUZyb206IDxudWxsIHwgRGF0ZT5udWxsLFxyXG4gICAgZGF0ZVRvOiA8bnVsbCB8IERhdGU+bnVsbCxcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBpc1VwZGF0aW5nRnJvbU91dHNpZGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN0VGFibGVUcmFuc2xhdGlvbnM6IFN0VGFibGVzVHJhbnNsYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgLy8gUmVhY3QgdG8gZmlsdGVyVmFsdWUgY2hhbmdlc1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXJWYWx1ZSgpO1xyXG4gICAgICBpZiAoZmlsdGVyICYmIE9iamVjdC5rZXlzKGZpbHRlcikubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuaXNVcGRhdGluZ0Zyb21PdXRzaWRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldEZpbHRlclZhbHVlKGZpbHRlcik7XHJcbiAgICAgICAgdGhpcy5pc1VwZGF0aW5nRnJvbU91dHNpZGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gUmVhY3QgdG8gZm9ybSB2YWx1ZSBjaGFuZ2VzXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICAvLyBUcmFjayBmb3JtIGNoYW5nZXNcclxuICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVXBkYXRpbmdGcm9tT3V0c2lkZSkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVBZnRlckZvcm1WYWx1ZUNoYW5nZWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEZpbHRlclZhbHVlKG5ld0ZpbHRlclZhbHVlOiBTdE1hdGVyaWFsVGFibGVGaWx0ZXIpIHtcclxuICAgIGlmIChuZXdGaWx0ZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5tYXRjaE1vZGUuc2V0VmFsdWUobmV3RmlsdGVyVmFsdWUubWF0Y2hNb2RlLCB7XHJcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb2x1bW4oKS5maWx0ZXJUeXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgICBjb25zdCB0bXBWYWx1ZSA9IG5ld0ZpbHRlclZhbHVlLnZhbHVlIGFzIFtzdHJpbmcgfCBudWxsLCBzdHJpbmcgfCBudWxsXTtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kYXRlRnJvbS5zZXRWYWx1ZShcclxuICAgICAgICAgIHRtcFZhbHVlWzBdID8gbmV3IERhdGUodG1wVmFsdWVbMF0hKSA6IG51bGwsXHJcbiAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGF0ZVRvLnNldFZhbHVlKFxyXG4gICAgICAgICAgdG1wVmFsdWVbMV0gPyBuZXcgRGF0ZSh0bXBWYWx1ZVsxXSkgOiBudWxsLFxyXG4gICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIHRoaXMuY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gJ2Jvb2xlYW4nIHx8XHJcbiAgICAgICAgdGhpcy5jb2x1bW4oKS5maWx0ZXJUeXBlID09PSAnbnVtYmVyJ1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy52YWx1ZS5zZXRWYWx1ZShcclxuICAgICAgICAgIChuZXdGaWx0ZXJWYWx1ZS52YWx1ZSBhcyBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB8fCBudWxsLFxyXG4gICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnZhbHVlLnNldFZhbHVlKFxyXG4gICAgICAgICAgKG5ld0ZpbHRlclZhbHVlLnZhbHVlIGFzIHN0cmluZyB8IG51bWJlciB8IG51bGwpIHx8ICcnLFxyXG4gICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVBZnRlckZvcm1WYWx1ZUNoYW5nZWQoKSB7XHJcbiAgICBsZXQgdG1wVmFsdWU6IFN0TWF0ZXJpYWxUYWJsZUZpbHRlclZhbHVlVHlwZSA9XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnZhbHVlLnZhbHVlIHx8ICcnO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICB0bXBWYWx1ZSA9IFtcclxuICAgICAgICB0aGlzLmZvcm1hdERhdGVUb1N0cmluZyh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5kYXRlRnJvbS52YWx1ZSksXHJcbiAgICAgICAgdGhpcy5mb3JtYXREYXRlVG9TdHJpbmcodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZGF0ZVRvLnZhbHVlKSxcclxuICAgICAgXSBhcyBbc3RyaW5nIHwgbnVsbCwgc3RyaW5nIHwgbnVsbF07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdib29sZWFuJyB8fFxyXG4gICAgICB0aGlzLmNvbHVtbigpLmZpbHRlclR5cGUgPT09ICdudW1iZXInXHJcbiAgICApIHtcclxuICAgICAgdG1wVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy52YWx1ZS52YWx1ZSB8fCBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0ZpbHRlcjogU3RNYXRlcmlhbFRhYmxlRmlsdGVyID0ge1xyXG4gICAgICBtYXRjaE1vZGU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLm1hdGNoTW9kZS52YWx1ZSxcclxuICAgICAgdmFsdWU6IHRtcFZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmZpbHRlclZhbHVlQ2hhbmdlZC5lbWl0KG5ld0ZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERhdGVUb1N0cmluZyhkYXRlOiBEYXRlIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKCFkYXRlKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG5cclxuICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,38 +1,37 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
1
+ import { ChangeDetectionStrategy, Component, inject, signal, } from '@angular/core';
2
+ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
3
  import { moveItemInArray } from '@angular/cdk/drag-drop';
4
+ import { StTablesTranslationsService } from '../../../../services/st-tables-translations.service';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/dialog";
6
- import * as i2 from "../../../../services/st-tables-translations.service";
7
- import * as i3 from "@angular/material/button";
8
- import * as i4 from "@angular/material/icon";
9
- import * as i5 from "@angular/cdk/drag-drop";
6
+ import * as i1 from "@angular/material/button";
7
+ import * as i2 from "@angular/material/icon";
8
+ import * as i3 from "@angular/material/dialog";
9
+ import * as i4 from "@angular/cdk/drag-drop";
10
10
  export class MaterialTableOrderColumnDialogComponent {
11
- constructor(dialogData, dialogRef, stTablesTranslations) {
12
- this.dialogData = dialogData;
13
- this.dialogRef = dialogRef;
14
- this.stTablesTranslations = stTablesTranslations;
15
- this.columns = [];
16
- }
17
- ngOnInit() {
18
- this.columns = this.dialogData.columns.map(column => ({ ...column }));
11
+ constructor() {
12
+ this.dialogData = inject(MAT_DIALOG_DATA);
13
+ this.dialogRef = inject((MatDialogRef));
14
+ this.stTablesTranslations = inject(StTablesTranslationsService);
15
+ // Use signal for reactive columns array
16
+ this.columns = signal(this.dialogData.columns.map(column => ({ ...column })));
19
17
  }
20
18
  drop(event) {
21
- moveItemInArray(this.columns, event.previousIndex, event.currentIndex);
19
+ this.columns.update(cols => {
20
+ const newCols = [...cols];
21
+ moveItemInArray(newCols, event.previousIndex, event.currentIndex);
22
+ return newCols;
23
+ });
22
24
  }
23
25
  saveOrder() {
24
26
  this.dialogRef.close({
25
- columnsOrder: this.columns.map(column => column.field),
27
+ columnsOrder: this.columns().map(column => column.field),
26
28
  });
27
29
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTableOrderColumnDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.StTablesTranslationsService }], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MaterialTableOrderColumnDialogComponent, selector: "st-material-table-order-column-dialog", ngImport: i0, template: "<h3 mat-dialog-title>\r\n {{ stTablesTranslations.getTranslations()().reorderColumns }}\r\n</h3>\r\n<mat-dialog-content>\r\n <div\r\n cdkDropList\r\n class=\"reorder-column-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @for (column of columns; track column.field) {\r\n <div class=\"reorder-column-element\" cdkDrag>\r\n <div class=\"row\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n <p>{{ column.selectColumnLabel || column.header }}</p>\r\n </div>\r\n @if (!column.visible) {\r\n <mat-icon class=\"column-hidden\">visibility_off</mat-icon>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button type=\"button\" mat-flat-button mat-dialog-close>\r\n {{ stTablesTranslations.getTranslations()().close }}\r\n </button>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"saveOrder()\">\r\n {{ stTablesTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n", styles: [".reorder-column-list{width:100%;border:solid 1px #ccc}.reorder-column-list .reorder-column-element{width:100%;padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff}.reorder-column-list .reorder-column-element:last-child{border-bottom:none}.reorder-column-list .reorder-column-element .column-hidden{opacity:.3}.reorder-column-list .reorder-column-element p{margin-bottom:0;font-size:1.1rem}.cdk-drag-preview{overflow-y:hidden;padding:10px;border:none;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-preview p{margin-top:5px}.cdk-drag-preview mat-icon{display:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.reorder-column-element:last-child{border:none}.reorder-column-list.cdk-drop-list-dragging .reorder-column-element:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTableOrderColumnDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MaterialTableOrderColumnDialogComponent, selector: "st-material-table-order-column-dialog", ngImport: i0, template: "<h3 mat-dialog-title>\r\n {{ stTablesTranslations.getTranslations()().reorderColumns }}\r\n</h3>\r\n<mat-dialog-content>\r\n <div\r\n cdkDropList\r\n class=\"reorder-column-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @for (column of columns(); track column.field) {\r\n <div class=\"reorder-column-element\" cdkDrag>\r\n <div class=\"row\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n <p>{{ column.selectColumnLabel || column.header }}</p>\r\n </div>\r\n @if (!column.visible) {\r\n <mat-icon class=\"column-hidden\">visibility_off</mat-icon>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button type=\"button\" mat-flat-button mat-dialog-close>\r\n {{ stTablesTranslations.getTranslations()().close }}\r\n </button>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"saveOrder()\">\r\n {{ stTablesTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n", styles: [".reorder-column-list{width:100%;border:solid 1px #ccc}.reorder-column-list .reorder-column-element{width:100%;padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff}.reorder-column-list .reorder-column-element:last-child{border-bottom:none}.reorder-column-list .reorder-column-element .column-hidden{opacity:.3}.reorder-column-list .reorder-column-element p{margin-bottom:0;font-size:1.1rem}.cdk-drag-preview{overflow-y:hidden;padding:10px;border:none;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-preview p{margin-top:5px}.cdk-drag-preview mat-icon{display:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.reorder-column-element:last-child{border:none}.reorder-column-list.cdk-drop-list-dragging .reorder-column-element:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
32
  }
31
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTableOrderColumnDialogComponent, decorators: [{
32
34
  type: Component,
33
- args: [{ selector: 'st-material-table-order-column-dialog', template: "<h3 mat-dialog-title>\r\n {{ stTablesTranslations.getTranslations()().reorderColumns }}\r\n</h3>\r\n<mat-dialog-content>\r\n <div\r\n cdkDropList\r\n class=\"reorder-column-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @for (column of columns; track column.field) {\r\n <div class=\"reorder-column-element\" cdkDrag>\r\n <div class=\"row\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n <p>{{ column.selectColumnLabel || column.header }}</p>\r\n </div>\r\n @if (!column.visible) {\r\n <mat-icon class=\"column-hidden\">visibility_off</mat-icon>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button type=\"button\" mat-flat-button mat-dialog-close>\r\n {{ stTablesTranslations.getTranslations()().close }}\r\n </button>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"saveOrder()\">\r\n {{ stTablesTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n", styles: [".reorder-column-list{width:100%;border:solid 1px #ccc}.reorder-column-list .reorder-column-element{width:100%;padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff}.reorder-column-list .reorder-column-element:last-child{border-bottom:none}.reorder-column-list .reorder-column-element .column-hidden{opacity:.3}.reorder-column-list .reorder-column-element p{margin-bottom:0;font-size:1.1rem}.cdk-drag-preview{overflow-y:hidden;padding:10px;border:none;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-preview p{margin-top:5px}.cdk-drag-preview mat-icon{display:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.reorder-column-element:last-child{border:none}.reorder-column-list.cdk-drop-list-dragging .reorder-column-element:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
34
- }], ctorParameters: () => [{ type: undefined, decorators: [{
35
- type: Inject,
36
- args: [MAT_DIALOG_DATA]
37
- }] }, { type: i1.MatDialogRef }, { type: i2.StTablesTranslationsService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3QtdGFibGVzL3NyYy9saWIvY29tcG9uZW50cy9tYXRlcmlhbC10YWJsZS9tYXRlcmlhbC10YWJsZS1jYXB0aW9uL21hdGVyaWFsLXRhYmxlLW9yZGVyLWNvbHVtbi1kaWFsb2cvbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3QtdGFibGVzL3NyYy9saWIvY29tcG9uZW50cy9tYXRlcmlhbC10YWJsZS9tYXRlcmlhbC10YWJsZS1jYXB0aW9uL21hdGVyaWFsLXRhYmxlLW9yZGVyLWNvbHVtbi1kaWFsb2cvbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sdUNBQXVDO0lBR2xELFlBRVMsVUFBeUQsRUFDekQsU0FHTixFQUNNLG9CQUFpRDtRQUxqRCxlQUFVLEdBQVYsVUFBVSxDQUErQztRQUN6RCxjQUFTLEdBQVQsU0FBUyxDQUdmO1FBQ00seUJBQW9CLEdBQXBCLG9CQUFvQixDQUE2QjtRQVQxRCxZQUFPLEdBQXFDLEVBQUUsQ0FBQztJQVU1QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7UUFDL0IsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3ZELENBQUMsQ0FBQztJQUNMLENBQUM7K0dBekJVLHVDQUF1QyxrQkFJeEMsZUFBZTttR0FKZCx1Q0FBdUMsNkVDWHBELDJuQ0FnQ0E7OzRGRHJCYSx1Q0FBdUM7a0JBTG5ELFNBQVM7K0JBQ0UsdUNBQXVDOzswQkFROUMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgVmlld1N0TWF0ZXJpYWxUYWJsZUNvbHVtbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3ZpZXcvdmlldy1zdC1tYXRlcmlhbC10YWJsZS1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBTdFRhYmxlc1RyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zdC10YWJsZXMtdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdC1tYXRlcmlhbC10YWJsZS1vcmRlci1jb2x1bW4tZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZU9yZGVyQ29sdW1uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb2x1bW5zOiBWaWV3U3RNYXRlcmlhbFRhYmxlQ29sdW1uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxyXG4gICAgcHVibGljIGRpYWxvZ0RhdGE6IHsgY29sdW1uczogVmlld1N0TWF0ZXJpYWxUYWJsZUNvbHVtbk1vZGVsW10gfSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxcclxuICAgICAgTWF0ZXJpYWxUYWJsZU9yZGVyQ29sdW1uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICBNYXRlcmlhbFRhYmxlT3JkZXJDb2x1bW5EaWFsb2dSZXN1bHRcclxuICAgID4sXHJcbiAgICBwdWJsaWMgc3RUYWJsZXNUcmFuc2xhdGlvbnM6IFN0VGFibGVzVHJhbnNsYXRpb25zU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmRpYWxvZ0RhdGEuY29sdW1ucy5tYXAoY29sdW1uID0+ICh7IC4uLmNvbHVtbiB9KSk7XHJcbiAgfVxyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbHVtbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBzYXZlT3JkZXIoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgIGNvbHVtbnNPcmRlcjogdGhpcy5jb2x1bW5zLm1hcChjb2x1bW4gPT4gY29sdW1uLmZpZWxkKSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbFRhYmxlT3JkZXJDb2x1bW5EaWFsb2dSZXN1bHQge1xyXG4gIGNvbHVtbnNPcmRlcjogc3RyaW5nW107XHJcbn1cclxuIiwiPGgzIG1hdC1kaWFsb2ctdGl0bGU+XHJcbiAge3sgc3RUYWJsZXNUcmFuc2xhdGlvbnMuZ2V0VHJhbnNsYXRpb25zKCkoKS5yZW9yZGVyQ29sdW1ucyB9fVxyXG48L2gzPlxyXG48bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxkaXZcclxuICAgIGNka0Ryb3BMaXN0XHJcbiAgICBjbGFzcz1cInJlb3JkZXItY29sdW1uLWxpc3RcIlxyXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gID5cclxuICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW4uZmllbGQpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInJlb3JkZXItY29sdW1uLWVsZW1lbnRcIiBjZGtEcmFnPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8cD57eyBjb2x1bW4uc2VsZWN0Q29sdW1uTGFiZWwgfHwgY29sdW1uLmhlYWRlciB9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAaWYgKCFjb2x1bW4udmlzaWJsZSkge1xyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY29sdW1uLWhpZGRlblwiPnZpc2liaWxpdHlfb2ZmPC9tYXQtaWNvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L21hdC1kaWFsb2ctY29udGVudD5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+XHJcbiAgICAgIHt7IHN0VGFibGVzVHJhbnNsYXRpb25zLmdldFRyYW5zbGF0aW9ucygpKCkuY2xvc2UgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInNhdmVPcmRlcigpXCI+XHJcbiAgICAgIHt7IHN0VGFibGVzVHJhbnNsYXRpb25zLmdldFRyYW5zbGF0aW9ucygpKCkuc2F2ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4iXX0=
35
+ args: [{ selector: 'st-material-table-order-column-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h3 mat-dialog-title>\r\n {{ stTablesTranslations.getTranslations()().reorderColumns }}\r\n</h3>\r\n<mat-dialog-content>\r\n <div\r\n cdkDropList\r\n class=\"reorder-column-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @for (column of columns(); track column.field) {\r\n <div class=\"reorder-column-element\" cdkDrag>\r\n <div class=\"row\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n <p>{{ column.selectColumnLabel || column.header }}</p>\r\n </div>\r\n @if (!column.visible) {\r\n <mat-icon class=\"column-hidden\">visibility_off</mat-icon>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button type=\"button\" mat-flat-button mat-dialog-close>\r\n {{ stTablesTranslations.getTranslations()().close }}\r\n </button>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"saveOrder()\">\r\n {{ stTablesTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n", styles: [".reorder-column-list{width:100%;border:solid 1px #ccc}.reorder-column-list .reorder-column-element{width:100%;padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff}.reorder-column-list .reorder-column-element:last-child{border-bottom:none}.reorder-column-list .reorder-column-element .column-hidden{opacity:.3}.reorder-column-list .reorder-column-element p{margin-bottom:0;font-size:1.1rem}.cdk-drag-preview{overflow-y:hidden;padding:10px;border:none;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-preview p{margin-top:5px}.cdk-drag-preview mat-icon{display:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.reorder-column-element:last-child{border:none}.reorder-column-list.cdk-drop-list-dragging .reorder-column-element:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3QtdGFibGVzL3NyYy9saWIvY29tcG9uZW50cy9tYXRlcmlhbC10YWJsZS9tYXRlcmlhbC10YWJsZS1jYXB0aW9uL21hdGVyaWFsLXRhYmxlLW9yZGVyLWNvbHVtbi1kaWFsb2cvbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3QtdGFibGVzL3NyYy9saWIvY29tcG9uZW50cy9tYXRlcmlhbC10YWJsZS9tYXRlcmlhbC10YWJsZS1jYXB0aW9uL21hdGVyaWFsLXRhYmxlLW9yZGVyLWNvbHVtbi1kaWFsb2cvbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7QUFRbEcsTUFBTSxPQUFPLHVDQUF1QztJQU5wRDtRQU9TLGVBQVUsR0FBRyxNQUFNLENBRXZCLGVBQWUsQ0FBQyxDQUFDO1FBRWIsY0FBUyxHQUFHLE1BQU0sQ0FDdkIsQ0FBQSxZQUdDLENBQUEsQ0FDRixDQUFDO1FBRUsseUJBQW9CLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFbEUsd0NBQXdDO1FBQ3hDLFlBQU8sR0FBRyxNQUFNLENBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUN2RCxDQUFDO0tBZUg7SUFiQyxJQUFJLENBQUMsS0FBNEI7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzFCLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEUsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ25CLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDOytHQS9CVSx1Q0FBdUM7bUdBQXZDLHVDQUF1Qyw2RUNqQnBELDZuQ0FnQ0E7OzRGRGZhLHVDQUF1QztrQkFObkQsU0FBUzsrQkFDRSx1Q0FBdUMsbUJBR2hDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgVmlld1N0TWF0ZXJpYWxUYWJsZUNvbHVtbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3ZpZXcvdmlldy1zdC1tYXRlcmlhbC10YWJsZS1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBTdFRhYmxlc1RyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zdC10YWJsZXMtdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdC1tYXRlcmlhbC10YWJsZS1vcmRlci1jb2x1bW4tZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWF0ZXJpYWwtdGFibGUtb3JkZXItY29sdW1uLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZU9yZGVyQ29sdW1uRGlhbG9nQ29tcG9uZW50IHtcclxuICBwdWJsaWMgZGlhbG9nRGF0YSA9IGluamVjdDx7XHJcbiAgICBjb2x1bW5zOiBWaWV3U3RNYXRlcmlhbFRhYmxlQ29sdW1uTW9kZWxbXTtcclxuICB9PihNQVRfRElBTE9HX0RBVEEpO1xyXG5cclxuICBwdWJsaWMgZGlhbG9nUmVmID0gaW5qZWN0KFxyXG4gICAgTWF0RGlhbG9nUmVmPFxyXG4gICAgICBNYXRlcmlhbFRhYmxlT3JkZXJDb2x1bW5EaWFsb2dDb21wb25lbnQsXHJcbiAgICAgIE1hdGVyaWFsVGFibGVPcmRlckNvbHVtbkRpYWxvZ1Jlc3VsdFxyXG4gICAgPlxyXG4gICk7XHJcblxyXG4gIHB1YmxpYyBzdFRhYmxlc1RyYW5zbGF0aW9ucyA9IGluamVjdChTdFRhYmxlc1RyYW5zbGF0aW9uc1NlcnZpY2UpO1xyXG5cclxuICAvLyBVc2Ugc2lnbmFsIGZvciByZWFjdGl2ZSBjb2x1bW5zIGFycmF5XHJcbiAgY29sdW1ucyA9IHNpZ25hbDxWaWV3U3RNYXRlcmlhbFRhYmxlQ29sdW1uTW9kZWxbXT4oXHJcbiAgICB0aGlzLmRpYWxvZ0RhdGEuY29sdW1ucy5tYXAoY29sdW1uID0+ICh7IC4uLmNvbHVtbiB9KSlcclxuICApO1xyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIHRoaXMuY29sdW1ucy51cGRhdGUoY29scyA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0NvbHMgPSBbLi4uY29sc107XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShuZXdDb2xzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgICByZXR1cm4gbmV3Q29scztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZU9yZGVyKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICBjb2x1bW5zT3JkZXI6IHRoaXMuY29sdW1ucygpLm1hcChjb2x1bW4gPT4gY29sdW1uLmZpZWxkKSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbFRhYmxlT3JkZXJDb2x1bW5EaWFsb2dSZXN1bHQge1xyXG4gIGNvbHVtbnNPcmRlcjogc3RyaW5nW107XHJcbn1cclxuIiwiPGgzIG1hdC1kaWFsb2ctdGl0bGU+XHJcbiAge3sgc3RUYWJsZXNUcmFuc2xhdGlvbnMuZ2V0VHJhbnNsYXRpb25zKCkoKS5yZW9yZGVyQ29sdW1ucyB9fVxyXG48L2gzPlxyXG48bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxkaXZcclxuICAgIGNka0Ryb3BMaXN0XHJcbiAgICBjbGFzcz1cInJlb3JkZXItY29sdW1uLWxpc3RcIlxyXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gID5cclxuICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCk7IHRyYWNrIGNvbHVtbi5maWVsZCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVvcmRlci1jb2x1bW4tZWxlbWVudFwiIGNka0RyYWc+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxwPnt7IGNvbHVtbi5zZWxlY3RDb2x1bW5MYWJlbCB8fCBjb2x1bW4uaGVhZGVyIH19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZiAoIWNvbHVtbi52aXNpYmxlKSB7XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjb2x1bW4taGlkZGVuXCI+dmlzaWJpbGl0eV9vZmY8L21hdC1pY29uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT5cclxuICAgICAge3sgc3RUYWJsZXNUcmFuc2xhdGlvbnMuZ2V0VHJhbnNsYXRpb25zKCkoKS5jbG9zZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwic2F2ZU9yZGVyKClcIj5cclxuICAgICAge3sgc3RUYWJsZXNUcmFuc2xhdGlvbnMuZ2V0VHJhbnNsYXRpb25zKCkoKS5zYXZlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==