@recursyve/nice-data-filter-kit 20.0.0 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { plainToInstance } from 'class-transformer';
|
|
2
2
|
import { map, takeUntil, debounceTime, switchMap, distinctUntilChanged, combineLatestWith } from 'rxjs/operators';
|
|
3
3
|
import { HttpParams } from '@angular/common/http';
|
|
4
|
-
import * as
|
|
4
|
+
import * as i4 from '@recursyve/nice-ui-kit.v2';
|
|
5
5
|
import { isNullOrUndefined, ObjectUtils, FileUtils, ArrayUtils, ExportBottomSheetComponent, NiceLoadingSpinnerModule, NiceTypeaheadModule, NiceExportBottomSheetModule, NiceAsyncTypeaheadProvider, NICE_ASYNC_TYPEAHEAD_PROVIDER, NiceAsyncTypeaheadModule } from '@recursyve/nice-ui-kit.v2';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
7
|
import { Input, Directive, NgModule, Inject, Injectable, InjectionToken, Optional, Pipe, EventEmitter, Output, ChangeDetectionStrategy, ViewEncapsulation, Component, HostListener, forwardRef, TemplateRef, ContentChild, ContentChildren, inject, QueryList, ViewChild } from '@angular/core';
|
|
@@ -10,15 +10,15 @@ import { combineLatest, Subject, firstValueFrom, of, lastValueFrom, startWith, t
|
|
|
10
10
|
import { __decorate, __metadata } from 'tslib';
|
|
11
11
|
import * as i2 from '@angular/router';
|
|
12
12
|
import { RouterModule } from '@angular/router';
|
|
13
|
-
import * as i4$
|
|
13
|
+
import * as i4$2 from '@angular/material/bottom-sheet';
|
|
14
14
|
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
|
15
|
-
import * as
|
|
15
|
+
import * as i6 from '@angular/common';
|
|
16
16
|
import { CommonModule, AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
17
17
|
import * as i1$1 from '@angular/forms';
|
|
18
18
|
import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
19
19
|
import * as i8 from '@angular/material/button';
|
|
20
20
|
import { MatButtonModule } from '@angular/material/button';
|
|
21
|
-
import * as
|
|
21
|
+
import * as i2$1 from '@angular/material/icon';
|
|
22
22
|
import { MatIconModule } from '@angular/material/icon';
|
|
23
23
|
import * as i10 from '@angular/material/tooltip';
|
|
24
24
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
@@ -40,21 +40,21 @@ import * as i2$2 from '@angular/cdk/platform';
|
|
|
40
40
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
41
41
|
import * as i3 from '@angular/material/list';
|
|
42
42
|
import { MatListModule } from '@angular/material/list';
|
|
43
|
-
import * as
|
|
43
|
+
import * as i3$1 from '@angular/material/select';
|
|
44
44
|
import { MatSelectModule } from '@angular/material/select';
|
|
45
|
-
import * as i3$
|
|
45
|
+
import * as i3$2 from '@angular/material/input';
|
|
46
46
|
import { MatInputModule } from '@angular/material/input';
|
|
47
|
-
import * as i4 from 'ngx-mask';
|
|
47
|
+
import * as i4$1 from 'ngx-mask';
|
|
48
48
|
import { NgxMaskDirective } from 'ngx-mask';
|
|
49
|
-
import * as
|
|
49
|
+
import * as i2$3 from '@angular/material/radio';
|
|
50
50
|
import { MatRadioModule } from '@angular/material/radio';
|
|
51
|
-
import * as i5
|
|
51
|
+
import * as i5 from '@angular/material/datepicker';
|
|
52
52
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
53
53
|
import * as i1$2 from '@ngx-translate/core';
|
|
54
54
|
import { TranslateModule } from '@ngx-translate/core';
|
|
55
55
|
import * as i18 from '@angular/material/badge';
|
|
56
56
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
57
|
-
import * as
|
|
57
|
+
import * as i5$1 from '@angular/material/button-toggle';
|
|
58
58
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
59
59
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
60
60
|
import * as i1$4 from '@angular/material/checkbox';
|
|
@@ -242,10 +242,10 @@ class NiceBaseListButtonsDirective {
|
|
|
242
242
|
this.template = template;
|
|
243
243
|
this.position = "suffix";
|
|
244
244
|
}
|
|
245
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
246
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
245
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListButtonsDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
246
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListButtonsDirective, isStandalone: false, selector: "[niceListButton]", inputs: { position: "position" }, ngImport: i0 }); }
|
|
247
247
|
}
|
|
248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListButtonsDirective, decorators: [{
|
|
249
249
|
type: Directive,
|
|
250
250
|
args: [{
|
|
251
251
|
selector: "[niceListButton]",
|
|
@@ -259,10 +259,10 @@ class NiceBaseListCardsDirective {
|
|
|
259
259
|
constructor(template) {
|
|
260
260
|
this.template = template;
|
|
261
261
|
}
|
|
262
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
263
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListCardsDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
263
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListCardsDirective, isStandalone: false, selector: "[niceListCards]", ngImport: i0 }); }
|
|
264
264
|
}
|
|
265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListCardsDirective, decorators: [{
|
|
266
266
|
type: Directive,
|
|
267
267
|
args: [{
|
|
268
268
|
selector: "[niceListCards]",
|
|
@@ -274,10 +274,10 @@ class NiceBaseListCustomContentDirective {
|
|
|
274
274
|
constructor(template) {
|
|
275
275
|
this.template = template;
|
|
276
276
|
}
|
|
277
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
278
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
277
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListCustomContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
278
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListCustomContentDirective, isStandalone: false, selector: "[niceListContent]", ngImport: i0 }); }
|
|
279
279
|
}
|
|
280
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListCustomContentDirective, decorators: [{
|
|
281
281
|
type: Directive,
|
|
282
282
|
args: [{
|
|
283
283
|
selector: "[niceListContent]",
|
|
@@ -289,10 +289,10 @@ class NiceBaseListEmptyStateDirective {
|
|
|
289
289
|
constructor(template) {
|
|
290
290
|
this.template = template;
|
|
291
291
|
}
|
|
292
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
293
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
292
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListEmptyStateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
293
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListEmptyStateDirective, isStandalone: false, selector: "[niceListEmptyState]", ngImport: i0 }); }
|
|
294
294
|
}
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
295
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListEmptyStateDirective, decorators: [{
|
|
296
296
|
type: Directive,
|
|
297
297
|
args: [{
|
|
298
298
|
selector: "[niceListEmptyState]",
|
|
@@ -304,10 +304,10 @@ class NiceBaseListFiltersDirective {
|
|
|
304
304
|
constructor(template) {
|
|
305
305
|
this.template = template;
|
|
306
306
|
}
|
|
307
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
308
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListFiltersDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
308
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListFiltersDirective, isStandalone: false, selector: "[niceListFilters]", ngImport: i0 }); }
|
|
309
309
|
}
|
|
310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListFiltersDirective, decorators: [{
|
|
311
311
|
type: Directive,
|
|
312
312
|
args: [{
|
|
313
313
|
selector: "[niceListFilters]",
|
|
@@ -320,10 +320,10 @@ class NiceBaseListTableDirective {
|
|
|
320
320
|
this.template = template;
|
|
321
321
|
this.stickyHeader = true;
|
|
322
322
|
}
|
|
323
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
324
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListTableDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
324
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListTableDirective, isStandalone: false, selector: "[niceListTable]", inputs: { stickyHeader: "stickyHeader" }, ngImport: i0 }); }
|
|
325
325
|
}
|
|
326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListTableDirective, decorators: [{
|
|
327
327
|
type: Directive,
|
|
328
328
|
args: [{
|
|
329
329
|
selector: "[niceListTable]",
|
|
@@ -337,10 +337,10 @@ class NiceBaseListTitleDirective {
|
|
|
337
337
|
constructor(template) {
|
|
338
338
|
this.template = template;
|
|
339
339
|
}
|
|
340
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
341
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
340
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListTitleDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
341
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListTitleDirective, isStandalone: false, selector: "[niceListTitle]", ngImport: i0 }); }
|
|
342
342
|
}
|
|
343
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListTitleDirective, decorators: [{
|
|
344
344
|
type: Directive,
|
|
345
345
|
args: [{
|
|
346
346
|
selector: "[niceListTitle]",
|
|
@@ -352,10 +352,10 @@ class NiceBaseListEmptySearchResultStateDirective {
|
|
|
352
352
|
constructor(template) {
|
|
353
353
|
this.template = template;
|
|
354
354
|
}
|
|
355
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
356
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
355
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListEmptySearchResultStateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
356
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseListEmptySearchResultStateDirective, isStandalone: false, selector: "[niceListEmptySearchResultState]", ngImport: i0 }); }
|
|
357
357
|
}
|
|
358
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListEmptySearchResultStateDirective, decorators: [{
|
|
359
359
|
type: Directive,
|
|
360
360
|
args: [{
|
|
361
361
|
selector: "[niceListEmptySearchResultState]",
|
|
@@ -364,8 +364,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
364
364
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
365
365
|
|
|
366
366
|
class NiceBaseListDirectiveModule {
|
|
367
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
368
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
367
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
368
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListDirectiveModule, declarations: [NiceBaseListButtonsDirective,
|
|
369
369
|
NiceBaseListTitleDirective,
|
|
370
370
|
NiceBaseListTableDirective,
|
|
371
371
|
NiceBaseListCardsDirective,
|
|
@@ -380,9 +380,9 @@ class NiceBaseListDirectiveModule {
|
|
|
380
380
|
NiceBaseListEmptyStateDirective,
|
|
381
381
|
NiceBaseListFiltersDirective,
|
|
382
382
|
NiceBaseListEmptySearchResultStateDirective] }); }
|
|
383
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
383
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListDirectiveModule }); }
|
|
384
384
|
}
|
|
385
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
385
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListDirectiveModule, decorators: [{
|
|
386
386
|
type: NgModule,
|
|
387
387
|
args: [{
|
|
388
388
|
declarations: [
|
|
@@ -673,10 +673,10 @@ class NiceFilterService {
|
|
|
673
673
|
searchFilterResourceValue(filterConfig, resourceId, options) {
|
|
674
674
|
return this.api?.searchFilterResourceValue(filterConfig.id, resourceId, options);
|
|
675
675
|
}
|
|
676
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
677
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
676
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterService, deps: [{ token: NiceFilterApi }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
677
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterService }); }
|
|
678
678
|
}
|
|
679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
679
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterService, decorators: [{
|
|
680
680
|
type: Injectable
|
|
681
681
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
682
682
|
type: Inject,
|
|
@@ -752,10 +752,10 @@ class NiceSavedReportService {
|
|
|
752
752
|
hit(id) {
|
|
753
753
|
return this.api.hit(id);
|
|
754
754
|
}
|
|
755
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
756
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
755
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSavedReportService, deps: [{ token: NiceSavedReportsApi }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
756
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSavedReportService }); }
|
|
757
757
|
}
|
|
758
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
758
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSavedReportService, decorators: [{
|
|
759
759
|
type: Injectable
|
|
760
760
|
}], ctorParameters: () => [{ type: NiceSavedReportsApi }] });
|
|
761
761
|
|
|
@@ -830,14 +830,14 @@ let NiceBaseListStore = class NiceBaseListStore extends Store {
|
|
|
830
830
|
filterParameters
|
|
831
831
|
});
|
|
832
832
|
}
|
|
833
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
834
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
833
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListStore, deps: [{ token: DEFAULT_PARAMETERS, optional: true }, { token: DEFAULT_RULES, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
834
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListStore }); }
|
|
835
835
|
};
|
|
836
836
|
NiceBaseListStore = __decorate([
|
|
837
837
|
StoreConfig({ name: "base-list", resettable: true }),
|
|
838
838
|
__metadata("design:paramtypes", [Object, Array])
|
|
839
839
|
], NiceBaseListStore);
|
|
840
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListStore, decorators: [{
|
|
841
841
|
type: Injectable
|
|
842
842
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
843
843
|
type: Optional
|
|
@@ -888,10 +888,10 @@ class NiceBaseListQuery extends Query {
|
|
|
888
888
|
selectShowQueryBuilder() {
|
|
889
889
|
return this.select(s => s.showQueryBuilder);
|
|
890
890
|
}
|
|
891
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
892
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
891
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListQuery, deps: [{ token: NiceBaseListStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
892
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListQuery }); }
|
|
893
893
|
}
|
|
894
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
894
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListQuery, decorators: [{
|
|
895
895
|
type: Injectable
|
|
896
896
|
}], ctorParameters: () => [{ type: NiceBaseListStore }] });
|
|
897
897
|
|
|
@@ -1364,10 +1364,10 @@ class NiceBaseListService {
|
|
|
1364
1364
|
this.updateQueryParams(QueryParamsUtils.filterParametersToParamsMap(parameters));
|
|
1365
1365
|
}
|
|
1366
1366
|
}
|
|
1367
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1368
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1367
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListService, deps: [{ token: NiceBaseListStore }, { token: NiceFilterService }, { token: DISABLE_QUERY_PARAMS }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1368
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListService }); }
|
|
1369
1369
|
}
|
|
1370
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1370
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListService, decorators: [{
|
|
1371
1371
|
type: Injectable
|
|
1372
1372
|
}], ctorParameters: () => [{ type: NiceBaseListStore }, { type: undefined, decorators: [{
|
|
1373
1373
|
type: Inject,
|
|
@@ -1474,10 +1474,10 @@ class FilterGroupIconPipe {
|
|
|
1474
1474
|
}
|
|
1475
1475
|
return icon;
|
|
1476
1476
|
}
|
|
1477
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1478
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
1477
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterGroupIconPipe, deps: [{ token: NiceFilterGroupService, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1478
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: FilterGroupIconPipe, isStandalone: false, name: "filterGroupIcon" }); }
|
|
1479
1479
|
}
|
|
1480
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1480
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterGroupIconPipe, decorators: [{
|
|
1481
1481
|
type: Pipe,
|
|
1482
1482
|
args: [{
|
|
1483
1483
|
name: "filterGroupIcon",
|
|
@@ -1505,12 +1505,12 @@ class FilterSelectionComponent {
|
|
|
1505
1505
|
selectFilter(filterConfigurationModel) {
|
|
1506
1506
|
this.filterSelected.emit(filterConfigurationModel);
|
|
1507
1507
|
}
|
|
1508
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1509
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1508
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterSelectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1509
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: FilterSelectionComponent, isStandalone: false, selector: "nice-filter-selection", inputs: { filterConfigs: "filterConfigs", loading: "loading" }, outputs: { filterSelected: "filterSelected" }, ngImport: i0, template: "<mat-card\n class=\"flex flex-row flex-wrap filter-selection-container\"\n [niceLoadingOverlay]=\"loading\"\n>\n @for (group of filterGroups; track group) {\n <mat-list\n class=\"flex flex-col flex-full\"\n [class.double-groups]=\"filterGroups.length > 1\"\n >\n @if (group[0].key | filterGroupIcon; as icon) {\n <mat-list-item>\n @if ('class' in icon && icon.class) {\n <i\n mat-list-icon\n class=\"text-accent fal\"\n [ngClass]=\"icon.class\"\n ></i>\n }\n @if (icon.svgIcon) {\n <mat-icon\n mat-list-icon\n class=\"text-accent\"\n [svgIcon]=\"icon.svgIcon\"\n ></mat-icon>\n }\n @if (icon.matIcon) {\n <mat-icon mat-list-icon class=\"text-accent\">{{\n icon.matIcon\n }}</mat-icon>\n }\n <strong mat-line>{{ group[0].name }}</strong>\n </mat-list-item>\n }\n @for (filter of group[1]; track filter) {\n <mat-list-item\n (click)=\"selectFilter(filter)\"\n mat-ripple\n class=\"filter\"\n >\n {{ filter?.name }}\n </mat-list-item>\n }\n </mat-list>\n }\n</mat-card>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "pipe", type: FilterGroupIconPipe, name: "filterGroupIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1510
1510
|
}
|
|
1511
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1511
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterSelectionComponent, decorators: [{
|
|
1512
1512
|
type: Component,
|
|
1513
|
-
args: [{ selector: "nice-filter-selection", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<mat-card
|
|
1513
|
+
args: [{ selector: "nice-filter-selection", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<mat-card\n class=\"flex flex-row flex-wrap filter-selection-container\"\n [niceLoadingOverlay]=\"loading\"\n>\n @for (group of filterGroups; track group) {\n <mat-list\n class=\"flex flex-col flex-full\"\n [class.double-groups]=\"filterGroups.length > 1\"\n >\n @if (group[0].key | filterGroupIcon; as icon) {\n <mat-list-item>\n @if ('class' in icon && icon.class) {\n <i\n mat-list-icon\n class=\"text-accent fal\"\n [ngClass]=\"icon.class\"\n ></i>\n }\n @if (icon.svgIcon) {\n <mat-icon\n mat-list-icon\n class=\"text-accent\"\n [svgIcon]=\"icon.svgIcon\"\n ></mat-icon>\n }\n @if (icon.matIcon) {\n <mat-icon mat-list-icon class=\"text-accent\">{{\n icon.matIcon\n }}</mat-icon>\n }\n <strong mat-line>{{ group[0].name }}</strong>\n </mat-list-item>\n }\n @for (filter of group[1]; track filter) {\n <mat-list-item\n (click)=\"selectFilter(filter)\"\n mat-ripple\n class=\"filter\"\n >\n {{ filter?.name }}\n </mat-list-item>\n }\n </mat-list>\n }\n</mat-card>\n" }]
|
|
1514
1514
|
}], propDecorators: { filterConfigs: [{
|
|
1515
1515
|
type: Input
|
|
1516
1516
|
}], loading: [{
|
|
@@ -1573,10 +1573,10 @@ class QueryBuilderTriggerDirective {
|
|
|
1573
1573
|
isMobile() {
|
|
1574
1574
|
return this.platform.ANDROID || this.platform.IOS;
|
|
1575
1575
|
}
|
|
1576
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1577
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1576
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: QueryBuilderTriggerDirective, deps: [{ token: i1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1.Overlay }, { token: i2$2.Platform }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1577
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: QueryBuilderTriggerDirective, isStandalone: false, selector: "[niceQueryBuilderTrigger]", inputs: { queryBuilderFilters: "queryBuilderFilters", queryBuilderFiltersLoading: "queryBuilderFiltersLoading" }, outputs: { queryBuilderFilterSelected: "queryBuilderFilterSelected" }, host: { listeners: { "click": "click()" } }, ngImport: i0 }); }
|
|
1578
1578
|
}
|
|
1579
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1579
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: QueryBuilderTriggerDirective, decorators: [{
|
|
1580
1580
|
type: Directive,
|
|
1581
1581
|
args: [{
|
|
1582
1582
|
selector: "[niceQueryBuilderTrigger]",
|
|
@@ -1612,10 +1612,10 @@ let FilterComponent$1 = class FilterComponent {
|
|
|
1612
1612
|
onValueChange(value) {
|
|
1613
1613
|
this.propagateChanges(value);
|
|
1614
1614
|
}
|
|
1615
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1616
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1615
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1616
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: FilterComponent, isStandalone: false, selector: "ng-component", ngImport: i0, template: ``, isInline: true }); }
|
|
1617
1617
|
};
|
|
1618
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1618
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterComponent$1, decorators: [{
|
|
1619
1619
|
type: Component,
|
|
1620
1620
|
args: [{
|
|
1621
1621
|
template: ``,
|
|
@@ -1674,16 +1674,16 @@ class SelectFilterComponent extends FilterComponent$1 {
|
|
|
1674
1674
|
super.writeValue(value);
|
|
1675
1675
|
this.searchValue();
|
|
1676
1676
|
}
|
|
1677
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1678
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1677
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: SelectFilterComponent, deps: [{ token: NiceFilterService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1678
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: SelectFilterComponent, isStandalone: false, selector: "nice-select-filter", inputs: { filterConfig: "filterConfig" }, providers: [
|
|
1679
1679
|
{
|
|
1680
1680
|
provide: NG_VALUE_ACCESSOR,
|
|
1681
1681
|
useExisting: forwardRef(() => SelectFilterComponent),
|
|
1682
1682
|
multi: true
|
|
1683
1683
|
}
|
|
1684
|
-
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n
|
|
1684
|
+
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n @if (!filterConfig.lazyLoading) {\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n }\n\n @if (filterConfig.lazyLoading) {\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n [typeahead]=\"search$\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n }\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.NiceTypeaheadComponent, selector: "nice-typeahead", inputs: ["items", "labelFormatFn", "required", "disabled", "placeholder", "emptyPlaceholder", "allowNotFoundItems", "panelClass", "bindValue", "bindLabel", "typeahead", "page$", "loading", "loadingPage", "searchFn", "optionTemplate"], outputs: ["change"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1685
1685
|
}
|
|
1686
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1686
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: SelectFilterComponent, decorators: [{
|
|
1687
1687
|
type: Component,
|
|
1688
1688
|
args: [{ selector: "nice-select-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
1689
1689
|
{
|
|
@@ -1691,7 +1691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1691
1691
|
useExisting: forwardRef(() => SelectFilterComponent),
|
|
1692
1692
|
multi: true
|
|
1693
1693
|
}
|
|
1694
|
-
], standalone: false, template: "<mat-form-field class=\"flex-auto\">\n
|
|
1694
|
+
], standalone: false, template: "<mat-form-field class=\"flex-auto\">\n @if (!filterConfig.lazyLoading) {\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n }\n\n @if (filterConfig.lazyLoading) {\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n [typeahead]=\"search$\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n }\n</mat-form-field>\n" }]
|
|
1695
1695
|
}], ctorParameters: () => [{ type: NiceFilterService, decorators: [{
|
|
1696
1696
|
type: Optional
|
|
1697
1697
|
}] }], propDecorators: { filterConfig: [{
|
|
@@ -1699,16 +1699,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1699
1699
|
}] } });
|
|
1700
1700
|
|
|
1701
1701
|
class TextFilterComponent extends FilterComponent$1 {
|
|
1702
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1703
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1702
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: TextFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1703
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: TextFilterComponent, isStandalone: false, selector: "nice-text-filter", inputs: { filterConfig: "filterConfig" }, providers: [
|
|
1704
1704
|
{
|
|
1705
1705
|
provide: NG_VALUE_ACCESSOR,
|
|
1706
1706
|
useExisting: forwardRef(() => TextFilterComponent),
|
|
1707
1707
|
multi: true
|
|
1708
1708
|
}
|
|
1709
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" [mask]=\"(filterConfig?.mask) || ''\" [validation]=\"false\" type=\"text\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type:
|
|
1709
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" [mask]=\"(filterConfig?.mask) || ''\" [validation]=\"false\" type=\"text\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i4$1.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1710
1710
|
}
|
|
1711
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: TextFilterComponent, decorators: [{
|
|
1712
1712
|
type: Component,
|
|
1713
1713
|
args: [{ selector: "nice-text-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
1714
1714
|
{
|
|
@@ -1722,16 +1722,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1722
1722
|
}] } });
|
|
1723
1723
|
|
|
1724
1724
|
class NumberFilterComponent extends FilterComponent$1 {
|
|
1725
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1726
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1725
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NumberFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1726
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: NumberFilterComponent, isStandalone: false, selector: "nice-number-filter", providers: [
|
|
1727
1727
|
{
|
|
1728
1728
|
provide: NG_VALUE_ACCESSOR,
|
|
1729
1729
|
useExisting: forwardRef(() => NumberFilterComponent),
|
|
1730
1730
|
multi: true
|
|
1731
1731
|
}
|
|
1732
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" type=\"number\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type:
|
|
1732
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" type=\"number\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1733
1733
|
}
|
|
1734
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NumberFilterComponent, decorators: [{
|
|
1735
1735
|
type: Component,
|
|
1736
1736
|
args: [{ selector: "nice-number-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
1737
1737
|
{
|
|
@@ -1743,16 +1743,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1743
1743
|
}] });
|
|
1744
1744
|
|
|
1745
1745
|
class RadioFilterComponent extends FilterComponent$1 {
|
|
1746
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1747
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1746
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: RadioFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1747
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: RadioFilterComponent, isStandalone: false, selector: "nice-radio-filter", inputs: { filterConfig: "filterConfig" }, providers: [
|
|
1748
1748
|
{
|
|
1749
1749
|
provide: NG_VALUE_ACCESSOR,
|
|
1750
1750
|
useExisting: forwardRef(() => RadioFilterComponent),
|
|
1751
1751
|
multi: true
|
|
1752
1752
|
}
|
|
1753
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-radio-group
|
|
1753
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-radio-group\n class=\"flex-auto\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n>\n @for (option of filterConfig.options; track option) {\n <mat-radio-button class=\"mx-4\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n }\n</mat-radio-group>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1754
1754
|
}
|
|
1755
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: RadioFilterComponent, decorators: [{
|
|
1756
1756
|
type: Component,
|
|
1757
1757
|
args: [{ selector: "nice-radio-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
1758
1758
|
{
|
|
@@ -1760,7 +1760,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1760
1760
|
useExisting: forwardRef(() => RadioFilterComponent),
|
|
1761
1761
|
multi: true
|
|
1762
1762
|
}
|
|
1763
|
-
], standalone: false, template: "<mat-radio-group
|
|
1763
|
+
], standalone: false, template: "<mat-radio-group\n class=\"flex-auto\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n>\n @for (option of filterConfig.options; track option) {\n <mat-radio-button class=\"mx-4\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n }\n</mat-radio-group>\n" }]
|
|
1764
1764
|
}], propDecorators: { filterConfig: [{
|
|
1765
1765
|
type: Input
|
|
1766
1766
|
}] } });
|
|
@@ -1770,16 +1770,16 @@ class DateFilterComponent extends FilterComponent$1 {
|
|
|
1770
1770
|
super();
|
|
1771
1771
|
this.icons = icons;
|
|
1772
1772
|
}
|
|
1773
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1774
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1773
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: DateFilterComponent, deps: [{ token: QUERY_BUILDER_ICONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1774
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: DateFilterComponent, isStandalone: false, selector: "nice-date-filter", providers: [
|
|
1775
1775
|
{
|
|
1776
1776
|
provide: NG_VALUE_ACCESSOR,
|
|
1777
1777
|
useExisting: forwardRef(() => DateFilterComponent),
|
|
1778
1778
|
multi: true
|
|
1779
1779
|
}
|
|
1780
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n <input matInput [matDatepicker]=\"picker\" [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon [svgIcon]=\"icons.datePicker.svgIcon\">{{ icons.datePicker.matIcon }}</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type:
|
|
1780
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"flex-auto\">\n <input matInput [matDatepicker]=\"picker\" [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon [svgIcon]=\"icons.datePicker.svgIcon\">{{ icons.datePicker.matIcon }}</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1781
1781
|
}
|
|
1782
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: DateFilterComponent, decorators: [{
|
|
1783
1783
|
type: Component,
|
|
1784
1784
|
args: [{ selector: "nice-date-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
1785
1785
|
{
|
|
@@ -1844,12 +1844,12 @@ class RuleComponent {
|
|
|
1844
1844
|
this.remove.emit();
|
|
1845
1845
|
}
|
|
1846
1846
|
}
|
|
1847
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1848
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: RuleComponent, isStandalone: false, selector: "nice-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row justify-start items-center gap-2.5\">\n <button\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n <div class=\"flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <mat-form-field class=\"rule-form-field\">\n <mat-select\n class=\"rule-operator\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"flex flex-col flex-grow flex-shrink md:flex-row flex-wrap\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <div\n class=\"rule-container flex flex-col md:flex-row flex-full justify-start items-center gap-2.5\"\n [class.is-double-input]=\"!!isDoubleInput\"\n [class.is-single-input]=\"!isDoubleInput\"\n [formGroupName]=\"i\"\n *ngFor=\"let rule of rules.controls; let i = index\"\n >\n <ng-container *ngIf=\"isSingleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-text-filter>\n <nice-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.query_builder.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-date-filter>\n </ng-container>\n </ng-container>\n <div class=\"rule-buttons flex flex-row gap-2\">\n <button mat-mini-fab class=\"or-button aligned-button\" (click)=\"onClickOr()\">\n {{ \"components.query_builder.rule.conditions.or\" | translate }}\n </button>\n <button class=\"aligned-button\" mat-icon-button color=\"warn\" (click)=\"onClickDelete(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5$2.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "component", type: SelectFilterComponent, selector: "nice-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: TextFilterComponent, selector: "nice-text-filter", inputs: ["filterConfig"] }, { kind: "component", type: NumberFilterComponent, selector: "nice-number-filter" }, { kind: "component", type: RadioFilterComponent, selector: "nice-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: DateFilterComponent, selector: "nice-date-filter" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1847
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: RuleComponent, deps: [{ token: QUERY_BUILDER_ICONS, optional: true }, { token: i1$1.FormGroupName }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1848
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: RuleComponent, isStandalone: false, selector: "nice-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row justify-start items-center gap-2.5\">\n <button\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{\n icons.arrowDown.matIcon\n }}</mat-icon>\n </div>\n </button>\n <div\n class=\"flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\"\n >\n <mat-form-field class=\"rule-form-field\">\n <mat-select\n class=\"rule-operator\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n @for (operator of filterConfig?.operators; track operator) {\n <mat-option [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div\n class=\"flex flex-col flex-grow flex-shrink md:flex-row flex-wrap\"\n [formGroup]=\"formGroup\"\n >\n <ng-container formArrayName=\"rules\">\n @for (rule of rules.controls; track rule; let i = $index) {\n <div\n class=\"rule-container flex flex-col md:flex-row flex-full justify-start items-center gap-2.5\"\n [class.is-double-input]=\"!!isDoubleInput\"\n [class.is-single-input]=\"!isDoubleInput\"\n [formGroupName]=\"i\"\n >\n @if (isSingleInput) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-text-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-text-filter>\n }\n @case (\"number\") {\n <nice-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n }\n @case (\"radio\") {\n <nice-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n }\n @case (\"select\") {\n <nice-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n }\n @case (\"date\") {\n <nice-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n }\n }\n }\n @if (isDoubleInput) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-text-filter>\n }\n @case (\"number\") {\n <nice-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n }\n @case (\"radio\") {\n <nice-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n }\n @case (\"select\") {\n <nice-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n }\n @case (\"date\") {\n <nice-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n }\n }\n <h3 class=\"aligned-text\">\n {{\n \"components.query_builder.rule.conditions.and\"\n | translate\n }}\n </h3>\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-text-filter>\n }\n @case (\"number\") {\n <nice-number-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-number-filter>\n }\n @case (\"radio\") {\n <nice-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n }\n @case (\"select\") {\n <nice-select-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n }\n @case (\"date\") {\n <nice-date-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-date-filter>\n }\n }\n }\n <div class=\"rule-buttons flex flex-row gap-2\">\n <button\n mat-mini-fab\n class=\"or-button aligned-button\"\n (click)=\"onClickOr()\"\n >\n {{\n \"components.query_builder.rule.conditions.or\"\n | translate\n }}\n </button>\n <button\n class=\"aligned-button\"\n mat-icon-button\n color=\"warn\"\n (click)=\"onClickDelete(i)\"\n >\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{\n icons.delete.matIcon\n }}</mat-icon>\n </button>\n </div>\n </div>\n }\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i3$1.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "component", type: SelectFilterComponent, selector: "nice-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: TextFilterComponent, selector: "nice-text-filter", inputs: ["filterConfig"] }, { kind: "component", type: NumberFilterComponent, selector: "nice-number-filter" }, { kind: "component", type: RadioFilterComponent, selector: "nice-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: DateFilterComponent, selector: "nice-date-filter" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1849
1849
|
}
|
|
1850
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1850
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: RuleComponent, decorators: [{
|
|
1851
1851
|
type: Component,
|
|
1852
|
-
args: [{ selector: "nice-rule", encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"flex flex-row justify-start items-center gap-2.5\">\n <button\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{
|
|
1852
|
+
args: [{ selector: "nice-rule", encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"flex flex-row justify-start items-center gap-2.5\">\n <button\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{\n icons.arrowDown.matIcon\n }}</mat-icon>\n </div>\n </button>\n <div\n class=\"flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\"\n >\n <mat-form-field class=\"rule-form-field\">\n <mat-select\n class=\"rule-operator\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n @for (operator of filterConfig?.operators; track operator) {\n <mat-option [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div\n class=\"flex flex-col flex-grow flex-shrink md:flex-row flex-wrap\"\n [formGroup]=\"formGroup\"\n >\n <ng-container formArrayName=\"rules\">\n @for (rule of rules.controls; track rule; let i = $index) {\n <div\n class=\"rule-container flex flex-col md:flex-row flex-full justify-start items-center gap-2.5\"\n [class.is-double-input]=\"!!isDoubleInput\"\n [class.is-single-input]=\"!isDoubleInput\"\n [formGroupName]=\"i\"\n >\n @if (isSingleInput) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-text-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-text-filter>\n }\n @case (\"number\") {\n <nice-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n }\n @case (\"radio\") {\n <nice-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n }\n @case (\"select\") {\n <nice-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n }\n @case (\"date\") {\n <nice-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n }\n }\n }\n @if (isDoubleInput) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-text-filter>\n }\n @case (\"number\") {\n <nice-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-number-filter>\n }\n @case (\"radio\") {\n <nice-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n }\n @case (\"select\") {\n <nice-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n }\n @case (\"date\") {\n <nice-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-date-filter>\n }\n }\n <h3 class=\"aligned-text\">\n {{\n \"components.query_builder.rule.conditions.and\"\n | translate\n }}\n </h3>\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-text-filter>\n }\n @case (\"number\") {\n <nice-number-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-number-filter>\n }\n @case (\"radio\") {\n <nice-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-radio-filter>\n }\n @case (\"select\") {\n <nice-select-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n }\n @case (\"date\") {\n <nice-date-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-date-filter>\n }\n }\n }\n <div class=\"rule-buttons flex flex-row gap-2\">\n <button\n mat-mini-fab\n class=\"or-button aligned-button\"\n (click)=\"onClickOr()\"\n >\n {{\n \"components.query_builder.rule.conditions.or\"\n | translate\n }}\n </button>\n <button\n class=\"aligned-button\"\n mat-icon-button\n color=\"warn\"\n (click)=\"onClickDelete(i)\"\n >\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{\n icons.delete.matIcon\n }}</mat-icon>\n </button>\n </div>\n </div>\n }\n </ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
1853
1853
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1854
1854
|
type: Optional
|
|
1855
1855
|
}, {
|
|
@@ -1901,8 +1901,8 @@ class NiceQueryBuilderComponent {
|
|
|
1901
1901
|
onClickUpdateReport() {
|
|
1902
1902
|
this.updateReport.emit();
|
|
1903
1903
|
}
|
|
1904
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1905
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1904
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceQueryBuilderComponent, deps: [{ token: QUERY_BUILDER_ICONS, optional: true }, { token: i1$3.GeneratedFormGroup }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1905
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceQueryBuilderComponent, isStandalone: false, selector: "nice-query-builder", inputs: { filterConfigs: "filterConfigs", currentSavedReport: "currentSavedReport", loading: "loading" }, outputs: { close: "close", createReport: "createReport", updateReport: "updateReport" }, providers: [
|
|
1906
1906
|
{
|
|
1907
1907
|
provide: NG_VALUE_ACCESSOR,
|
|
1908
1908
|
useExisting: forwardRef(() => NiceQueryBuilderComponent),
|
|
@@ -1912,9 +1912,9 @@ class NiceQueryBuilderComponent {
|
|
|
1912
1912
|
provide: GeneratedFormGroup,
|
|
1913
1913
|
useFactory: ngxFormGeneratorFactory(QueryBuilderForm)
|
|
1914
1914
|
}
|
|
1915
|
-
], ngImport: i0, template: "<div class=\"rules-container flex flex-col\"
|
|
1915
|
+
], ngImport: i0, template: "@if (!loading) {\n <div class=\"rules-container flex flex-col\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n @for (rule of rules.controls; track rule; let i = $index) {\n <nice-rule\n (remove)=\"onClickDeleteRule(i)\"\n [filterConfigs]=\"filterConfigs\"\n [formGroupName]=\"i\"\n ></nice-rule>\n }\n </ng-container>\n <div class=\"flex justify-between\">\n <button\n class=\"add-button add-rule-button\"\n mat-mini-fab\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onClickAddRule($event)\"\n >\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{\n icons.add.matIcon\n }}</mat-icon>\n </button>\n <div class=\"flex flex-col md:flex-row gap-4\">\n <!-- TODO: Support saved reports -->\n <!--<button mat-button color=\"primary\" (click)=\"onClickSaveReport()\" *ngIf=\"canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.save_report\" | translate }}\n </button>\n <button mat-button color=\"primary\" (click)=\"onClickUpdateReport()\" *ngIf=\"!canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.update_report\" | translate }}\n </button>-->\n <button\n mat-stroked-button\n color=\"accent\"\n (click)=\"onClickApply()\"\n >\n {{ \"components.query_builder.update\" | translate }}\n <mat-icon [svgIcon]=\"icons.refresh.svgIcon\">{{\n icons.refresh.matIcon\n }}</mat-icon>\n </button>\n </div>\n </div>\n </div>\n}\n", styles: ["nice-query-builder .rules-container{position:relative}nice-query-builder .rules-container:before{content:\"\";position:absolute;top:32px;bottom:32px;left:46px;width:4px;background:#0000001f}nice-query-builder .save-report-button{height:36px}nice-query-builder .add-rule-button{margin-left:28px;margin-right:28px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "component", type: RuleComponent, selector: "nice-rule", inputs: ["filterConfigs"], outputs: ["remove"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1916
1916
|
}
|
|
1917
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1917
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceQueryBuilderComponent, decorators: [{
|
|
1918
1918
|
type: Component,
|
|
1919
1919
|
args: [{ selector: "nice-query-builder", encapsulation: ViewEncapsulation.None, providers: [
|
|
1920
1920
|
{
|
|
@@ -1926,7 +1926,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1926
1926
|
provide: GeneratedFormGroup,
|
|
1927
1927
|
useFactory: ngxFormGeneratorFactory(QueryBuilderForm)
|
|
1928
1928
|
}
|
|
1929
|
-
], standalone: false, template: "<div class=\"rules-container flex flex-col\"
|
|
1929
|
+
], standalone: false, template: "@if (!loading) {\n <div class=\"rules-container flex flex-col\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n @for (rule of rules.controls; track rule; let i = $index) {\n <nice-rule\n (remove)=\"onClickDeleteRule(i)\"\n [filterConfigs]=\"filterConfigs\"\n [formGroupName]=\"i\"\n ></nice-rule>\n }\n </ng-container>\n <div class=\"flex justify-between\">\n <button\n class=\"add-button add-rule-button\"\n mat-mini-fab\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onClickAddRule($event)\"\n >\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{\n icons.add.matIcon\n }}</mat-icon>\n </button>\n <div class=\"flex flex-col md:flex-row gap-4\">\n <!-- TODO: Support saved reports -->\n <!--<button mat-button color=\"primary\" (click)=\"onClickSaveReport()\" *ngIf=\"canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.save_report\" | translate }}\n </button>\n <button mat-button color=\"primary\" (click)=\"onClickUpdateReport()\" *ngIf=\"!canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.update_report\" | translate }}\n </button>-->\n <button\n mat-stroked-button\n color=\"accent\"\n (click)=\"onClickApply()\"\n >\n {{ \"components.query_builder.update\" | translate }}\n <mat-icon [svgIcon]=\"icons.refresh.svgIcon\">{{\n icons.refresh.matIcon\n }}</mat-icon>\n </button>\n </div>\n </div>\n </div>\n}\n", styles: ["nice-query-builder .rules-container{position:relative}nice-query-builder .rules-container:before{content:\"\";position:absolute;top:32px;bottom:32px;left:46px;width:4px;background:#0000001f}nice-query-builder .save-report-button{height:36px}nice-query-builder .add-rule-button{margin-left:28px;margin-right:28px}\n"] }]
|
|
1930
1930
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1931
1931
|
type: Optional
|
|
1932
1932
|
}, {
|
|
@@ -2091,21 +2091,21 @@ class NiceBaseListComponent {
|
|
|
2091
2091
|
this.service.updateRules(rules);
|
|
2092
2092
|
}
|
|
2093
2093
|
clickExport() {
|
|
2094
|
-
const exports = [];
|
|
2094
|
+
const exports$1 = [];
|
|
2095
2095
|
if (this.exportsSettings.xlsx) {
|
|
2096
|
-
exports.push({
|
|
2096
|
+
exports$1.push({
|
|
2097
2097
|
type: "xlsx",
|
|
2098
2098
|
onClickExport: () => this.clickXlsx()
|
|
2099
2099
|
});
|
|
2100
2100
|
}
|
|
2101
2101
|
else if (this.exportsSettings.csv) {
|
|
2102
|
-
exports.push({
|
|
2102
|
+
exports$1.push({
|
|
2103
2103
|
type: "csv",
|
|
2104
2104
|
onClickExport: () => this.clickCsv()
|
|
2105
2105
|
});
|
|
2106
2106
|
}
|
|
2107
2107
|
else if (this.exportsSettings.pdf) {
|
|
2108
|
-
exports.push({
|
|
2108
|
+
exports$1.push({
|
|
2109
2109
|
type: "pdf",
|
|
2110
2110
|
onClickExport: () => this.clickPdf()
|
|
2111
2111
|
});
|
|
@@ -2113,7 +2113,7 @@ class NiceBaseListComponent {
|
|
|
2113
2113
|
this.bottomSheet.open(ExportBottomSheetComponent, {
|
|
2114
2114
|
data: {
|
|
2115
2115
|
exportStrategies: [
|
|
2116
|
-
...exports,
|
|
2116
|
+
...exports$1,
|
|
2117
2117
|
...this.customExport
|
|
2118
2118
|
]
|
|
2119
2119
|
}
|
|
@@ -2158,20 +2158,20 @@ class NiceBaseListComponent {
|
|
|
2158
2158
|
]);
|
|
2159
2159
|
}
|
|
2160
2160
|
}
|
|
2161
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2162
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListComponent, deps: [{ token: ENABLE_QUERY_BUILDER, optional: true }, { token: BASE_LIST_ICONS }, { token: BASE_LIST_LAYOUT }, { token: TABLE_COLUMNS }, { token: EXPORTS_SETTINGS$1 }, { token: NiceBaseListQuery }, { token: NiceBaseListService }, { token: i2.ActivatedRoute }, { token: i4$2.MatBottomSheet }, { token: i2.Router }, { token: i4.NiceMediaWatcherService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceBaseListComponent, isStandalone: false, selector: "nice-base-list", inputs: { mode: "mode", layout: "layout", layoutContent: "layoutContent", autoChangeLayout: "autoChangeLayout", baseRoute: "baseRoute", routeFn: "routeFn", navigateFn: "navigateFn", autoLoad: "autoLoad", pageTitle: "pageTitle", canExport: "canExport", disableRouting: "disableRouting", customExport: "customExport", queryParams: "queryParams", configQueryParams: "configQueryParams" }, outputs: { newPage: "newPage" }, providers: [
|
|
2163
2163
|
NiceBaseListQuery,
|
|
2164
2164
|
NiceBaseListService,
|
|
2165
2165
|
NiceBaseListStore
|
|
2166
|
-
], queries: [{ propertyName: "title", first: true, predicate: NiceBaseListTitleDirective, descendants: true, read: TemplateRef }, { propertyName: "table", first: true, predicate: NiceBaseListTableDirective, descendants: true }, { propertyName: "cards", first: true, predicate: NiceBaseListCardsDirective, descendants: true, read: TemplateRef }, { propertyName: "customContent", first: true, predicate: NiceBaseListCustomContentDirective, descendants: true, read: TemplateRef }, { propertyName: "filters", first: true, predicate: NiceBaseListFiltersDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyState", first: true, predicate: NiceBaseListEmptyStateDirective, descendants: true, read: TemplateRef }, { propertyName: "emptySearchResultState", first: true, predicate: NiceBaseListEmptySearchResultStateDirective, descendants: true, read: TemplateRef }, { propertyName: "buttons", predicate: NiceBaseListButtonsDirective }], usesOnChanges: true, ngImport: i0, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"((isEmpty$ | async) && emptyState) || ((isSearchResultEmpty$ | async) && emptySearchResultState); else showData\">\n\n <ng-container *ngIf=\"(isSearchResultEmpty$ | async)\">\n <ng-container *ngTemplateOutlet=\"emptySearchResultState\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isEmpty$ | async\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i5$1.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i14.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { kind: "directive", type: QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "directive", type: i18.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] }); }
|
|
2166
|
+
], queries: [{ propertyName: "title", first: true, predicate: NiceBaseListTitleDirective, descendants: true, read: TemplateRef }, { propertyName: "table", first: true, predicate: NiceBaseListTableDirective, descendants: true }, { propertyName: "cards", first: true, predicate: NiceBaseListCardsDirective, descendants: true, read: TemplateRef }, { propertyName: "customContent", first: true, predicate: NiceBaseListCustomContentDirective, descendants: true, read: TemplateRef }, { propertyName: "filters", first: true, predicate: NiceBaseListFiltersDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyState", first: true, predicate: NiceBaseListEmptyStateDirective, descendants: true, read: TemplateRef }, { propertyName: "emptySearchResultState", first: true, predicate: NiceBaseListEmptySearchResultStateDirective, descendants: true, read: TemplateRef }, { propertyName: "buttons", predicate: NiceBaseListButtonsDirective }], usesOnChanges: true, ngImport: i0, template: "@if (layout === \"page\") {\n <div class=\"list page-layout carded fullwidth inner-scroll\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n} @else {\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #content>\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n @if (layout?.length) {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: {\n layout: { classes: ['flex flex-col'], items: layout },\n active,\n }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: layout, active }\n \"\n ></ng-container>\n }\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n @for (item of layout.items; track item) {\n @if (item.name) {\n <ng-container\n *ngTemplateOutlet=\"\n layoutItem;\n context: { item: item, active }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: item, active }\n \"\n ></ng-container>\n }\n }\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n @if (item.name === \"title\" && title) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n }\n @if (item.name === \"search\") {\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{\n icons.search.matIcon\n }}</mat-icon>\n <input\n [ngModel]=\"searchQuery$ | async\"\n (ngModelChange)=\"onUpdateSearch($event)\"\n [placeholder]=\"'general.search' | translate\"\n />\n @if (searchButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"searchButtons\"\n ></ng-container>\n </div>\n }\n @if (enableQueryBuilder) {\n @if (\n !(showQueryBuilder$ | async) &&\n !(rulesCount$ | async) &&\n (filterConfig$ | async).length > 0\n ) {\n <button\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"\n (filterConfigLoading$ | async) || false\n \"\n (queryBuilderFilterSelected)=\"\n onQueryBuilderFilterSelected($event)\n \"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (\n !(showQueryBuilder$ | async) &&\n (rulesCount$ | async)\n ) {\n <button\n mat-icon-button\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (showQueryBuilder$ | async) {\n <button\n mat-icon-button\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.close_advanced_search'\n | translate\n \"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n </button>\n }\n }\n </div>\n </div>\n </div>\n }\n @if (item.name === \"prefixButtons\" && prefixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"suffixButtons\" && suffixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"exportButtons\" && canExport) {\n <div\n [ngClass]=\"item.classes\"\n [class.mr-2]=\"!!suffixButtons\"\n [class.ml-2]=\"!!prefixButtons\"\n >\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{\n icons.print.matIcon\n }}</mat-icon>\n </button>\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{\n icons.download.matIcon\n }}</mat-icon>\n </button>\n </div>\n }\n @if (item.name === \"content\") {\n @if (\n ((isEmpty$ | async) && emptyState) ||\n ((isSearchResultEmpty$ | async) && emptySearchResultState)\n ) {\n @if (isSearchResultEmpty$ | async) {\n <ng-container\n *ngTemplateOutlet=\"emptySearchResultState\"\n ></ng-container>\n }\n @if (isEmpty$ | async) {\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n }\n } @else {\n @if (layoutContent === \"table\" && table) {\n <ng-container\n *ngTemplateOutlet=\"\n tableLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"cards\" && cards) {\n <ng-container\n *ngTemplateOutlet=\"\n cardsLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"custom\" && customContent) {\n <ng-container\n *ngTemplateOutlet=\"\n customLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n }\n }\n @if (item.name === \"pagination\" && layoutContent !== \"custom\") {\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n }\n @if (item.name === \"queryBuilder\" && enableQueryBuilder) {\n @if (showQueryBuilder$ | async) {\n <div class=\"flex flex-col\">\n <mat-card\n class=\"my-4\"\n [niceLoadingOverlay]=\"filterConfigLoading$ | async\"\n >\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n }\n }\n @if (item.name === \"filters\" && filters) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row\n *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"\n ></mat-header-row>\n\n @for (column of columns; track column) {\n <ng-container [matColumnDef]=\"column.id\">\n @if (column.sortable) {\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n @if (!column.sortable) {\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n data: true,\n item: item,\n }\n \"\n ></ng-container>\n </mat-cell>\n </ng-container>\n }\n @if (disableRouting) {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n class=\"item\"\n ></mat-row>\n } @else {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n }\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n @for (data of data$ | async; track data) {\n <ng-container\n *ngTemplateOutlet=\"cards; context: { item: data, active }\"\n ></ng-container>\n }\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: data$ | async,\n data: data$ | async,\n total: recordsFiltered$ | async,\n active,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i4.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i14.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { kind: "directive", type: QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "directive", type: i18.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] }); }
|
|
2167
2167
|
}
|
|
2168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListComponent, decorators: [{
|
|
2169
2169
|
type: Component,
|
|
2170
2170
|
args: [{ selector: "nice-base-list", providers: [
|
|
2171
2171
|
NiceBaseListQuery,
|
|
2172
2172
|
NiceBaseListService,
|
|
2173
2173
|
NiceBaseListStore
|
|
2174
|
-
], standalone: false, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"((isEmpty$ | async) && emptyState) || ((isSearchResultEmpty$ | async) && emptySearchResultState); else showData\">\n\n <ng-container *ngIf=\"(isSearchResultEmpty$ | async)\">\n <ng-container *ngTemplateOutlet=\"emptySearchResultState\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isEmpty$ | async\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n" }]
|
|
2174
|
+
], standalone: false, template: "@if (layout === \"page\") {\n <div class=\"list page-layout carded fullwidth inner-scroll\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n} @else {\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #content>\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n @if (layout?.length) {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: {\n layout: { classes: ['flex flex-col'], items: layout },\n active,\n }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: layout, active }\n \"\n ></ng-container>\n }\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n @for (item of layout.items; track item) {\n @if (item.name) {\n <ng-container\n *ngTemplateOutlet=\"\n layoutItem;\n context: { item: item, active }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: item, active }\n \"\n ></ng-container>\n }\n }\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n @if (item.name === \"title\" && title) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n }\n @if (item.name === \"search\") {\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{\n icons.search.matIcon\n }}</mat-icon>\n <input\n [ngModel]=\"searchQuery$ | async\"\n (ngModelChange)=\"onUpdateSearch($event)\"\n [placeholder]=\"'general.search' | translate\"\n />\n @if (searchButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"searchButtons\"\n ></ng-container>\n </div>\n }\n @if (enableQueryBuilder) {\n @if (\n !(showQueryBuilder$ | async) &&\n !(rulesCount$ | async) &&\n (filterConfig$ | async).length > 0\n ) {\n <button\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"\n (filterConfigLoading$ | async) || false\n \"\n (queryBuilderFilterSelected)=\"\n onQueryBuilderFilterSelected($event)\n \"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (\n !(showQueryBuilder$ | async) &&\n (rulesCount$ | async)\n ) {\n <button\n mat-icon-button\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (showQueryBuilder$ | async) {\n <button\n mat-icon-button\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.close_advanced_search'\n | translate\n \"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n </button>\n }\n }\n </div>\n </div>\n </div>\n }\n @if (item.name === \"prefixButtons\" && prefixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"suffixButtons\" && suffixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"exportButtons\" && canExport) {\n <div\n [ngClass]=\"item.classes\"\n [class.mr-2]=\"!!suffixButtons\"\n [class.ml-2]=\"!!prefixButtons\"\n >\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{\n icons.print.matIcon\n }}</mat-icon>\n </button>\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{\n icons.download.matIcon\n }}</mat-icon>\n </button>\n </div>\n }\n @if (item.name === \"content\") {\n @if (\n ((isEmpty$ | async) && emptyState) ||\n ((isSearchResultEmpty$ | async) && emptySearchResultState)\n ) {\n @if (isSearchResultEmpty$ | async) {\n <ng-container\n *ngTemplateOutlet=\"emptySearchResultState\"\n ></ng-container>\n }\n @if (isEmpty$ | async) {\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n }\n } @else {\n @if (layoutContent === \"table\" && table) {\n <ng-container\n *ngTemplateOutlet=\"\n tableLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"cards\" && cards) {\n <ng-container\n *ngTemplateOutlet=\"\n cardsLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"custom\" && customContent) {\n <ng-container\n *ngTemplateOutlet=\"\n customLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n }\n }\n @if (item.name === \"pagination\" && layoutContent !== \"custom\") {\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n }\n @if (item.name === \"queryBuilder\" && enableQueryBuilder) {\n @if (showQueryBuilder$ | async) {\n <div class=\"flex flex-col\">\n <mat-card\n class=\"my-4\"\n [niceLoadingOverlay]=\"filterConfigLoading$ | async\"\n >\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n }\n }\n @if (item.name === \"filters\" && filters) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row\n *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"\n ></mat-header-row>\n\n @for (column of columns; track column) {\n <ng-container [matColumnDef]=\"column.id\">\n @if (column.sortable) {\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n @if (!column.sortable) {\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n data: true,\n item: item,\n }\n \"\n ></ng-container>\n </mat-cell>\n </ng-container>\n }\n @if (disableRouting) {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n class=\"item\"\n ></mat-row>\n } @else {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n }\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n @for (data of data$ | async; track data) {\n <ng-container\n *ngTemplateOutlet=\"cards; context: { item: data, active }\"\n ></ng-container>\n }\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: data$ | async,\n data: data$ | async,\n total: recordsFiltered$ | async,\n active,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n" }]
|
|
2175
2175
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2176
2176
|
type: Optional
|
|
2177
2177
|
}, {
|
|
@@ -2189,7 +2189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
2189
2189
|
}] }, { type: undefined, decorators: [{
|
|
2190
2190
|
type: Inject,
|
|
2191
2191
|
args: [EXPORTS_SETTINGS$1]
|
|
2192
|
-
}] }, { type: NiceBaseListQuery }, { type: NiceBaseListService }, { type: i2.ActivatedRoute }, { type: i4$
|
|
2192
|
+
}] }, { type: NiceBaseListQuery }, { type: NiceBaseListService }, { type: i2.ActivatedRoute }, { type: i4$2.MatBottomSheet }, { type: i2.Router }, { type: i4.NiceMediaWatcherService }], propDecorators: { title: [{
|
|
2193
2193
|
type: ContentChild,
|
|
2194
2194
|
args: [NiceBaseListTitleDirective, { read: TemplateRef }]
|
|
2195
2195
|
}], buttons: [{
|
|
@@ -2267,10 +2267,10 @@ class NiceCustomDateAdapter extends NativeDateAdapter {
|
|
|
2267
2267
|
getYear(date) {
|
|
2268
2268
|
return date.getUTCFullYear();
|
|
2269
2269
|
}
|
|
2270
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2271
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2270
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceCustomDateAdapter, deps: [{ token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2271
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceCustomDateAdapter }); }
|
|
2272
2272
|
}
|
|
2273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceCustomDateAdapter, decorators: [{
|
|
2274
2274
|
type: Injectable
|
|
2275
2275
|
}], ctorParameters: () => [{ type: i1$2.TranslateService }] });
|
|
2276
2276
|
|
|
@@ -2307,8 +2307,8 @@ class NiceQueryBuilderModule {
|
|
|
2307
2307
|
]
|
|
2308
2308
|
};
|
|
2309
2309
|
}
|
|
2310
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2311
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2310
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceQueryBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2311
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceQueryBuilderModule, declarations: [NiceQueryBuilderComponent,
|
|
2312
2312
|
QueryBuilderTriggerDirective,
|
|
2313
2313
|
FilterSelectionComponent,
|
|
2314
2314
|
RuleComponent,
|
|
@@ -2334,7 +2334,7 @@ class NiceQueryBuilderModule {
|
|
|
2334
2334
|
NiceTypeaheadModule,
|
|
2335
2335
|
ReactiveFormsModule,
|
|
2336
2336
|
NgxMaskDirective], exports: [NiceQueryBuilderComponent, QueryBuilderTriggerDirective] }); }
|
|
2337
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2337
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceQueryBuilderModule, providers: [{ provide: DateAdapter, useClass: NiceCustomDateAdapter }], imports: [CommonModule,
|
|
2338
2338
|
FormsModule,
|
|
2339
2339
|
TranslateModule,
|
|
2340
2340
|
OverlayModule,
|
|
@@ -2351,7 +2351,7 @@ class NiceQueryBuilderModule {
|
|
|
2351
2351
|
NiceTypeaheadModule,
|
|
2352
2352
|
ReactiveFormsModule] }); }
|
|
2353
2353
|
}
|
|
2354
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceQueryBuilderModule, decorators: [{
|
|
2355
2355
|
type: NgModule,
|
|
2356
2356
|
args: [{
|
|
2357
2357
|
imports: [
|
|
@@ -2477,8 +2477,8 @@ class NiceBaseListModule {
|
|
|
2477
2477
|
] : [])
|
|
2478
2478
|
].filter(x => !!x);
|
|
2479
2479
|
}
|
|
2480
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2481
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2480
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2481
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListModule, declarations: [NiceBaseListComponent], imports: [NiceExportBottomSheetModule,
|
|
2482
2482
|
NiceBaseListDirectiveModule,
|
|
2483
2483
|
CommonModule,
|
|
2484
2484
|
FormsModule,
|
|
@@ -2497,7 +2497,7 @@ class NiceBaseListModule {
|
|
|
2497
2497
|
NiceQueryBuilderModule,
|
|
2498
2498
|
MatBadgeModule], exports: [NiceBaseListComponent,
|
|
2499
2499
|
NiceBaseListDirectiveModule] }); }
|
|
2500
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2500
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListModule, imports: [NiceExportBottomSheetModule,
|
|
2501
2501
|
NiceBaseListDirectiveModule,
|
|
2502
2502
|
CommonModule,
|
|
2503
2503
|
FormsModule,
|
|
@@ -2516,7 +2516,7 @@ class NiceBaseListModule {
|
|
|
2516
2516
|
NiceQueryBuilderModule,
|
|
2517
2517
|
MatBadgeModule, NiceBaseListDirectiveModule] }); }
|
|
2518
2518
|
}
|
|
2519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2519
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseListModule, decorators: [{
|
|
2520
2520
|
type: NgModule,
|
|
2521
2521
|
args: [{
|
|
2522
2522
|
imports: [
|
|
@@ -2569,14 +2569,14 @@ let NiceMultiStateListStore = class NiceMultiStateListStore extends NiceBaseList
|
|
|
2569
2569
|
constructor() {
|
|
2570
2570
|
super(null, []);
|
|
2571
2571
|
}
|
|
2572
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2573
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2572
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2573
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListStore }); }
|
|
2574
2574
|
};
|
|
2575
2575
|
NiceMultiStateListStore = __decorate([
|
|
2576
2576
|
StoreConfig({ name: "multi-state-list", resettable: true }),
|
|
2577
2577
|
__metadata("design:paramtypes", [])
|
|
2578
2578
|
], NiceMultiStateListStore);
|
|
2579
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2579
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListStore, decorators: [{
|
|
2580
2580
|
type: Injectable
|
|
2581
2581
|
}], ctorParameters: () => [] });
|
|
2582
2582
|
|
|
@@ -2585,10 +2585,10 @@ class NiceMultiStateListQuery extends NiceBaseListQuery {
|
|
|
2585
2585
|
super(store);
|
|
2586
2586
|
this.store = store;
|
|
2587
2587
|
}
|
|
2588
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2589
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2588
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListQuery, deps: [{ token: NiceMultiStateListStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2589
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListQuery }); }
|
|
2590
2590
|
}
|
|
2591
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2591
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListQuery, decorators: [{
|
|
2592
2592
|
type: Injectable
|
|
2593
2593
|
}], ctorParameters: () => [{ type: NiceMultiStateListStore }] });
|
|
2594
2594
|
|
|
@@ -2617,10 +2617,10 @@ class NiceMultiStateListService extends NiceBaseListService {
|
|
|
2617
2617
|
this.loadData(newState.defaultParameters ?? initialBaseListState.filterParameters);
|
|
2618
2618
|
return newState.columns;
|
|
2619
2619
|
}
|
|
2620
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2621
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2620
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListService, deps: [{ token: LIST_STATES }, { token: DISABLE_QUERY_PARAMS }, { token: NiceMultiStateListStore }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i0.ApplicationRef }, { token: NiceMultiStateFilterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2621
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListService }); }
|
|
2622
2622
|
}
|
|
2623
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2623
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListService, decorators: [{
|
|
2624
2624
|
type: Injectable
|
|
2625
2625
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2626
2626
|
type: Inject,
|
|
@@ -2642,20 +2642,20 @@ class NiceMultiStateListComponent extends NiceBaseListComponent {
|
|
|
2642
2642
|
const columns = this.multiStateListService.switchState(state);
|
|
2643
2643
|
this.setColumns(columns);
|
|
2644
2644
|
}
|
|
2645
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2646
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2645
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListComponent, deps: [{ token: ENABLE_QUERY_BUILDER, optional: true }, { token: BASE_LIST_ICONS }, { token: BASE_LIST_LAYOUT }, { token: EXPORTS_SETTINGS$1 }, { token: NiceMultiStateListQuery }, { token: i2.ActivatedRoute }, { token: i4$2.MatBottomSheet }, { token: i2.Router }, { token: i4.NiceMediaWatcherService }, { token: NiceMultiStateListService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2646
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceMultiStateListComponent, isStandalone: false, selector: "nice-multi-state-list", inputs: { state: "state" }, providers: [
|
|
2647
2647
|
NiceMultiStateListQuery,
|
|
2648
2648
|
NiceMultiStateListService,
|
|
2649
2649
|
NiceMultiStateListStore
|
|
2650
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"((isEmpty$ | async) && emptyState) || ((isSearchResultEmpty$ | async) && emptySearchResultState); else showData\">\n\n <ng-container *ngIf=\"(isSearchResultEmpty$ | async)\">\n <ng-container *ngTemplateOutlet=\"emptySearchResultState\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isEmpty$ | async\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i5$1.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i14.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { kind: "directive", type: QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "directive", type: i18.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] }); }
|
|
2650
|
+
], usesInheritance: true, ngImport: i0, template: "@if (layout === \"page\") {\n <div class=\"list page-layout carded fullwidth inner-scroll\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n} @else {\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #content>\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n @if (layout?.length) {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: {\n layout: { classes: ['flex flex-col'], items: layout },\n active,\n }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: layout, active }\n \"\n ></ng-container>\n }\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n @for (item of layout.items; track item) {\n @if (item.name) {\n <ng-container\n *ngTemplateOutlet=\"\n layoutItem;\n context: { item: item, active }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: item, active }\n \"\n ></ng-container>\n }\n }\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n @if (item.name === \"title\" && title) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n }\n @if (item.name === \"search\") {\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{\n icons.search.matIcon\n }}</mat-icon>\n <input\n [ngModel]=\"searchQuery$ | async\"\n (ngModelChange)=\"onUpdateSearch($event)\"\n [placeholder]=\"'general.search' | translate\"\n />\n @if (searchButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"searchButtons\"\n ></ng-container>\n </div>\n }\n @if (enableQueryBuilder) {\n @if (\n !(showQueryBuilder$ | async) &&\n !(rulesCount$ | async) &&\n (filterConfig$ | async).length > 0\n ) {\n <button\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"\n (filterConfigLoading$ | async) || false\n \"\n (queryBuilderFilterSelected)=\"\n onQueryBuilderFilterSelected($event)\n \"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (\n !(showQueryBuilder$ | async) &&\n (rulesCount$ | async)\n ) {\n <button\n mat-icon-button\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (showQueryBuilder$ | async) {\n <button\n mat-icon-button\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.close_advanced_search'\n | translate\n \"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n </button>\n }\n }\n </div>\n </div>\n </div>\n }\n @if (item.name === \"prefixButtons\" && prefixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"suffixButtons\" && suffixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"exportButtons\" && canExport) {\n <div\n [ngClass]=\"item.classes\"\n [class.mr-2]=\"!!suffixButtons\"\n [class.ml-2]=\"!!prefixButtons\"\n >\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{\n icons.print.matIcon\n }}</mat-icon>\n </button>\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{\n icons.download.matIcon\n }}</mat-icon>\n </button>\n </div>\n }\n @if (item.name === \"content\") {\n @if (\n ((isEmpty$ | async) && emptyState) ||\n ((isSearchResultEmpty$ | async) && emptySearchResultState)\n ) {\n @if (isSearchResultEmpty$ | async) {\n <ng-container\n *ngTemplateOutlet=\"emptySearchResultState\"\n ></ng-container>\n }\n @if (isEmpty$ | async) {\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n }\n } @else {\n @if (layoutContent === \"table\" && table) {\n <ng-container\n *ngTemplateOutlet=\"\n tableLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"cards\" && cards) {\n <ng-container\n *ngTemplateOutlet=\"\n cardsLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"custom\" && customContent) {\n <ng-container\n *ngTemplateOutlet=\"\n customLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n }\n }\n @if (item.name === \"pagination\" && layoutContent !== \"custom\") {\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n }\n @if (item.name === \"queryBuilder\" && enableQueryBuilder) {\n @if (showQueryBuilder$ | async) {\n <div class=\"flex flex-col\">\n <mat-card\n class=\"my-4\"\n [niceLoadingOverlay]=\"filterConfigLoading$ | async\"\n >\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n }\n }\n @if (item.name === \"filters\" && filters) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row\n *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"\n ></mat-header-row>\n\n @for (column of columns; track column) {\n <ng-container [matColumnDef]=\"column.id\">\n @if (column.sortable) {\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n @if (!column.sortable) {\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n data: true,\n item: item,\n }\n \"\n ></ng-container>\n </mat-cell>\n </ng-container>\n }\n @if (disableRouting) {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n class=\"item\"\n ></mat-row>\n } @else {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n }\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n @for (data of data$ | async; track data) {\n <ng-container\n *ngTemplateOutlet=\"cards; context: { item: data, active }\"\n ></ng-container>\n }\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: data$ | async,\n data: data$ | async,\n total: recordsFiltered$ | async,\n active,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i4.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i14.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { kind: "directive", type: QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "directive", type: i18.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] }); }
|
|
2651
2651
|
}
|
|
2652
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2652
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListComponent, decorators: [{
|
|
2653
2653
|
type: Component,
|
|
2654
2654
|
args: [{ selector: "nice-multi-state-list", providers: [
|
|
2655
2655
|
NiceMultiStateListQuery,
|
|
2656
2656
|
NiceMultiStateListService,
|
|
2657
2657
|
NiceMultiStateListStore
|
|
2658
|
-
], standalone: false, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"((isEmpty$ | async) && emptyState) || ((isSearchResultEmpty$ | async) && emptySearchResultState); else showData\">\n\n <ng-container *ngIf=\"(isSearchResultEmpty$ | async)\">\n <ng-container *ngTemplateOutlet=\"emptySearchResultState\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isEmpty$ | async\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n" }]
|
|
2658
|
+
], standalone: false, template: "@if (layout === \"page\") {\n <div class=\"list page-layout carded fullwidth inner-scroll\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n} @else {\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n}\n\n<ng-template #content>\n @if (listLayout.xl) {\n <div class=\"hidden xl:block\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xl,\n active: xlActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.lg) {\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.lg,\n active: lgActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.md) {\n <div class=\"hidden md:block lg:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.md,\n active: mdActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.sm) {\n <div class=\"hidden sm:block md:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.sm,\n active: smActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n @if (listLayout.xs) {\n <div class=\"block sm:hidden\">\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.xs,\n active: xsActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n }\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n pageLayout;\n context: {\n layout: listLayout.default,\n active: defaultActive$ | async,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n @if (layout?.length) {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: {\n layout: { classes: ['flex flex-col'], items: layout },\n active,\n }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: layout, active }\n \"\n ></ng-container>\n }\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n @for (item of layout.items; track item) {\n @if (item.name) {\n <ng-container\n *ngTemplateOutlet=\"\n layoutItem;\n context: { item: item, active }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n contentLayout;\n context: { layout: item, active }\n \"\n ></ng-container>\n }\n }\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n @if (item.name === \"title\" && title) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n }\n @if (item.name === \"search\") {\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{\n icons.search.matIcon\n }}</mat-icon>\n <input\n [ngModel]=\"searchQuery$ | async\"\n (ngModelChange)=\"onUpdateSearch($event)\"\n [placeholder]=\"'general.search' | translate\"\n />\n @if (searchButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"searchButtons\"\n ></ng-container>\n </div>\n }\n @if (enableQueryBuilder) {\n @if (\n !(showQueryBuilder$ | async) &&\n !(rulesCount$ | async) &&\n (filterConfig$ | async).length > 0\n ) {\n <button\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"\n (filterConfigLoading$ | async) || false\n \"\n (queryBuilderFilterSelected)=\"\n onQueryBuilderFilterSelected($event)\n \"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (\n !(showQueryBuilder$ | async) &&\n (rulesCount$ | async)\n ) {\n <button\n mat-icon-button\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.show_advanced_search'\n | translate\n \"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n }\n @if (showQueryBuilder$ | async) {\n <button\n mat-icon-button\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"\n 'general.query_builder.close_advanced_search'\n | translate\n \"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n </button>\n }\n }\n </div>\n </div>\n </div>\n }\n @if (item.name === \"prefixButtons\" && prefixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"suffixButtons\" && suffixButtons) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n }\n @if (item.name === \"exportButtons\" && canExport) {\n <div\n [ngClass]=\"item.classes\"\n [class.mr-2]=\"!!suffixButtons\"\n [class.ml-2]=\"!!prefixButtons\"\n >\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{\n icons.print.matIcon\n }}</mat-icon>\n </button>\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{\n icons.download.matIcon\n }}</mat-icon>\n </button>\n </div>\n }\n @if (item.name === \"content\") {\n @if (\n ((isEmpty$ | async) && emptyState) ||\n ((isSearchResultEmpty$ | async) && emptySearchResultState)\n ) {\n @if (isSearchResultEmpty$ | async) {\n <ng-container\n *ngTemplateOutlet=\"emptySearchResultState\"\n ></ng-container>\n }\n @if (isEmpty$ | async) {\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n }\n } @else {\n @if (layoutContent === \"table\" && table) {\n <ng-container\n *ngTemplateOutlet=\"\n tableLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"cards\" && cards) {\n <ng-container\n *ngTemplateOutlet=\"\n cardsLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n @if (layoutContent === \"custom\" && customContent) {\n <ng-container\n *ngTemplateOutlet=\"\n customLayout;\n context: { item: item, active }\n \"\n ></ng-container>\n }\n }\n }\n @if (item.name === \"pagination\" && layoutContent !== \"custom\") {\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n }\n @if (item.name === \"queryBuilder\" && enableQueryBuilder) {\n @if (showQueryBuilder$ | async) {\n <div class=\"flex flex-col\">\n <mat-card\n class=\"my-4\"\n [niceLoadingOverlay]=\"filterConfigLoading$ | async\"\n >\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n }\n }\n @if (item.name === \"filters\" && filters) {\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row\n *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"\n ></mat-header-row>\n\n @for (column of columns; track column) {\n <ng-container [matColumnDef]=\"column.id\">\n @if (column.sortable) {\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n @if (!column.sortable) {\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n header: true,\n }\n \"\n ></ng-container>\n </mat-header-cell>\n }\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"\n table.template;\n context: {\n column: column.id,\n data: true,\n item: item,\n }\n \"\n ></ng-container>\n </mat-cell>\n </ng-container>\n }\n @if (disableRouting) {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n class=\"item\"\n ></mat-row>\n } @else {\n <mat-row\n *matRowDef=\"let item; columns: columnNames\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n }\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n @for (data of data$ | async; track data) {\n <ng-container\n *ngTemplateOutlet=\"cards; context: { item: data, active }\"\n ></ng-container>\n }\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: data$ | async,\n data: data$ | async,\n total: recordsFiltered$ | async,\n active,\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n" }]
|
|
2659
2659
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2660
2660
|
type: Optional
|
|
2661
2661
|
}, {
|
|
@@ -2670,7 +2670,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
2670
2670
|
}] }, { type: undefined, decorators: [{
|
|
2671
2671
|
type: Inject,
|
|
2672
2672
|
args: [EXPORTS_SETTINGS$1]
|
|
2673
|
-
}] }, { type: NiceMultiStateListQuery }, { type: i2.ActivatedRoute }, { type: i4$
|
|
2673
|
+
}] }, { type: NiceMultiStateListQuery }, { type: i2.ActivatedRoute }, { type: i4$2.MatBottomSheet }, { type: i2.Router }, { type: i4.NiceMediaWatcherService }, { type: NiceMultiStateListService }], propDecorators: { state: [{
|
|
2674
2674
|
type: Input
|
|
2675
2675
|
}] } });
|
|
2676
2676
|
|
|
@@ -2717,8 +2717,8 @@ class NiceMultiStateListModule {
|
|
|
2717
2717
|
] : [])
|
|
2718
2718
|
].filter(x => !!x);
|
|
2719
2719
|
}
|
|
2720
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2721
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2720
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2721
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListModule, declarations: [NiceMultiStateListComponent], imports: [NiceExportBottomSheetModule,
|
|
2722
2722
|
NiceBaseListDirectiveModule,
|
|
2723
2723
|
CommonModule,
|
|
2724
2724
|
FormsModule,
|
|
@@ -2737,7 +2737,7 @@ class NiceMultiStateListModule {
|
|
|
2737
2737
|
NiceQueryBuilderModule,
|
|
2738
2738
|
MatBadgeModule], exports: [NiceMultiStateListComponent,
|
|
2739
2739
|
NiceBaseListDirectiveModule] }); }
|
|
2740
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2740
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListModule, imports: [NiceExportBottomSheetModule,
|
|
2741
2741
|
NiceBaseListDirectiveModule,
|
|
2742
2742
|
CommonModule,
|
|
2743
2743
|
FormsModule,
|
|
@@ -2756,7 +2756,7 @@ class NiceMultiStateListModule {
|
|
|
2756
2756
|
NiceQueryBuilderModule,
|
|
2757
2757
|
MatBadgeModule, NiceBaseListDirectiveModule] }); }
|
|
2758
2758
|
}
|
|
2759
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2759
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceMultiStateListModule, decorators: [{
|
|
2760
2760
|
type: NgModule,
|
|
2761
2761
|
args: [{
|
|
2762
2762
|
imports: [
|
|
@@ -2970,8 +2970,8 @@ class NiceFilterViewStore extends EntityStore {
|
|
|
2970
2970
|
const { subStates } = this.getValue();
|
|
2971
2971
|
return subStates[name];
|
|
2972
2972
|
}
|
|
2973
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2974
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2973
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewStore, deps: [{ token: FILTER_VIEW_STATE }, { token: FILTER_VIEW_STORE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2974
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewStore }); }
|
|
2975
2975
|
}
|
|
2976
2976
|
__decorate([
|
|
2977
2977
|
transaction(),
|
|
@@ -3015,7 +3015,7 @@ __decorate([
|
|
|
3015
3015
|
__metadata("design:paramtypes", [Array, String]),
|
|
3016
3016
|
__metadata("design:returntype", void 0)
|
|
3017
3017
|
], NiceFilterViewStore.prototype, "removeValues", null);
|
|
3018
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3018
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewStore, decorators: [{
|
|
3019
3019
|
type: Injectable
|
|
3020
3020
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
3021
3021
|
type: Inject,
|
|
@@ -3054,10 +3054,10 @@ class NiceFilterViewQuery extends QueryEntity {
|
|
|
3054
3054
|
getSubState(name) {
|
|
3055
3055
|
return this.store.getSubState(name);
|
|
3056
3056
|
}
|
|
3057
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3058
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3057
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewQuery, deps: [{ token: NiceFilterViewStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3058
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewQuery }); }
|
|
3059
3059
|
}
|
|
3060
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewQuery, decorators: [{
|
|
3061
3061
|
type: Injectable
|
|
3062
3062
|
}], ctorParameters: () => [{ type: NiceFilterViewStore }] });
|
|
3063
3063
|
|
|
@@ -3325,8 +3325,8 @@ class NiceFilterViewService {
|
|
|
3325
3325
|
});
|
|
3326
3326
|
}
|
|
3327
3327
|
}
|
|
3328
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3329
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3328
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewService, deps: [{ token: NiceFilterViewStore }, { token: NiceFilterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3329
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewService }); }
|
|
3330
3330
|
}
|
|
3331
3331
|
__decorate([
|
|
3332
3332
|
transaction(),
|
|
@@ -3334,7 +3334,7 @@ __decorate([
|
|
|
3334
3334
|
__metadata("design:paramtypes", [Boolean]),
|
|
3335
3335
|
__metadata("design:returntype", void 0)
|
|
3336
3336
|
], NiceFilterViewService.prototype, "resetResult", null);
|
|
3337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewService, decorators: [{
|
|
3338
3338
|
type: Injectable
|
|
3339
3339
|
}], ctorParameters: () => [{ type: NiceFilterViewStore }, { type: undefined, decorators: [{
|
|
3340
3340
|
type: Inject,
|
|
@@ -3360,10 +3360,10 @@ class NiceFilterGroupIconPipe {
|
|
|
3360
3360
|
}
|
|
3361
3361
|
return icon;
|
|
3362
3362
|
}
|
|
3363
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3364
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3363
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterGroupIconPipe, deps: [{ token: NiceFilterGroupService, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3364
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterGroupIconPipe, isStandalone: false, name: "niceFilterGroupIcon" }); }
|
|
3365
3365
|
}
|
|
3366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterGroupIconPipe, decorators: [{
|
|
3367
3367
|
type: Pipe,
|
|
3368
3368
|
args: [{
|
|
3369
3369
|
name: "niceFilterGroupIcon",
|
|
@@ -3399,12 +3399,12 @@ class NiceAdvancedFilterSelectionComponent {
|
|
|
3399
3399
|
trackFilter(index, value) {
|
|
3400
3400
|
return value.id ?? index;
|
|
3401
3401
|
}
|
|
3402
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3403
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3402
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFilterSelectionComponent, deps: [{ token: NiceFilterViewQuery }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3403
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceAdvancedFilterSelectionComponent, isStandalone: false, selector: "nice-advanced-filter-selection", outputs: { filterSelected: "filterSelected" }, ngImport: i0, template: "<mat-card\n class=\"flex flex-row flex-wrap filter-selection-container\"\n [niceLoadingOverlay]=\"loading$ | async\"\n>\n @if (filterGroups$ | async; as filterGroups) {\n <div\n [class.md:grid-cols-2]=\"filterGroups.length >= 2\"\n class=\"grid grid-cols-1 gap-4\"\n >\n @for (group of filterGroups; track trackGroups($index, group)) {\n <div class=\"flex flex-col\">\n <div class=\"filter-group flex items-center gap-4 pb-4\">\n @if (group[0].key | niceFilterGroupIcon; as icon) {\n @if ('class' in icon && icon.class) {\n <i\n matListItemIcon\n class=\"group-icon fal\"\n [ngClass]=\"icon.class\"\n ></i>\n }\n @if (icon.svgIcon) {\n <mat-icon\n matListItemIcon\n class=\"group-icon\"\n [svgIcon]=\"icon.svgIcon\"\n ></mat-icon>\n }\n @if (icon.matIcon) {\n <mat-icon matListItemIcon class=\"group-icon\">{{\n icon.matIcon\n }}</mat-icon>\n }\n }\n <strong class=\"group-name\">{{ group[0].name }}</strong>\n </div>\n @for (\n filter of group[1];\n track trackFilter($index, filter)\n ) {\n <div\n class=\"filter-item\"\n matRipple\n (click)=\"selectFilter(filter)\"\n >\n {{ filter?.name }}\n </div>\n }\n </div>\n }\n </div>\n }\n</mat-card>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i4.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: NiceFilterGroupIconPipe, name: "niceFilterGroupIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3404
3404
|
}
|
|
3405
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3405
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFilterSelectionComponent, decorators: [{
|
|
3406
3406
|
type: Component,
|
|
3407
|
-
args: [{ selector: "nice-advanced-filter-selection", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<mat-card
|
|
3407
|
+
args: [{ selector: "nice-advanced-filter-selection", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<mat-card\n class=\"flex flex-row flex-wrap filter-selection-container\"\n [niceLoadingOverlay]=\"loading$ | async\"\n>\n @if (filterGroups$ | async; as filterGroups) {\n <div\n [class.md:grid-cols-2]=\"filterGroups.length >= 2\"\n class=\"grid grid-cols-1 gap-4\"\n >\n @for (group of filterGroups; track trackGroups($index, group)) {\n <div class=\"flex flex-col\">\n <div class=\"filter-group flex items-center gap-4 pb-4\">\n @if (group[0].key | niceFilterGroupIcon; as icon) {\n @if ('class' in icon && icon.class) {\n <i\n matListItemIcon\n class=\"group-icon fal\"\n [ngClass]=\"icon.class\"\n ></i>\n }\n @if (icon.svgIcon) {\n <mat-icon\n matListItemIcon\n class=\"group-icon\"\n [svgIcon]=\"icon.svgIcon\"\n ></mat-icon>\n }\n @if (icon.matIcon) {\n <mat-icon matListItemIcon class=\"group-icon\">{{\n icon.matIcon\n }}</mat-icon>\n }\n }\n <strong class=\"group-name\">{{ group[0].name }}</strong>\n </div>\n @for (\n filter of group[1];\n track trackFilter($index, filter)\n ) {\n <div\n class=\"filter-item\"\n matRipple\n (click)=\"selectFilter(filter)\"\n >\n {{ filter?.name }}\n </div>\n }\n </div>\n }\n </div>\n }\n</mat-card>\n" }]
|
|
3408
3408
|
}], ctorParameters: () => [{ type: NiceFilterViewQuery }], propDecorators: { filterSelected: [{
|
|
3409
3409
|
type: Output
|
|
3410
3410
|
}] } });
|
|
@@ -3465,10 +3465,10 @@ class AdvancedFiltersTriggerDirective {
|
|
|
3465
3465
|
this.close();
|
|
3466
3466
|
});
|
|
3467
3467
|
}
|
|
3468
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3469
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
3468
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: AdvancedFiltersTriggerDirective, deps: [{ token: NiceFilterViewQuery }, { token: NiceFilterViewService }, { token: i1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1.Overlay }, { token: i2$2.Platform }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3469
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: AdvancedFiltersTriggerDirective, isStandalone: false, selector: "[niceAdvancedFiltersTrigger]", inputs: { position: "position" }, outputs: { advancedFilterSelected: "advancedFilterSelected" }, host: { listeners: { "click": "click()" } }, exportAs: ["niceAdvancedFiltersTrigger"], ngImport: i0 }); }
|
|
3470
3470
|
}
|
|
3471
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3471
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: AdvancedFiltersTriggerDirective, decorators: [{
|
|
3472
3472
|
type: Directive,
|
|
3473
3473
|
args: [{
|
|
3474
3474
|
selector: "[niceAdvancedFiltersTrigger]", exportAs: "niceAdvancedFiltersTrigger",
|
|
@@ -3501,12 +3501,12 @@ class NiceAdvancedFiltersButtonComponent {
|
|
|
3501
3501
|
this.service.updateSubState("showAdvancedFilters", true);
|
|
3502
3502
|
this.service.updateSubState("initialSelectedFilter", filter);
|
|
3503
3503
|
}
|
|
3504
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3505
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3504
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersButtonComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: NiceFilterViewQuery }, { token: NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3505
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceAdvancedFiltersButtonComponent, isStandalone: false, selector: "nice-advanced-filters-button", ngImport: i0, template: "<div class=\"relative\">\n @if (\n (hasParameters$ | async) &&\n (shouldShowAdvancedFilters$ | async) !== true\n ) {\n <div\n class=\"absolute top-1 right-1 w-2 h-2 z-10 rounded bg-accent\"\n ></div>\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{\n icons.queryBuilder.matIcon\n }}</mat-icon>\n </button>\n }\n\n @if (shouldShowAdvancedFilters$ | async) {\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n </button>\n }\n\n @if (\n (hasParameters$ | async) !== true &&\n (shouldShowAdvancedFilters$ | async) !== true\n ) {\n <button\n mat-icon-button\n niceAdvancedFiltersTrigger\n (advancedFilterSelected)=\"onSelectedFilter($event)\"\n >\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{\n icons.queryBuilder.matIcon\n }}</mat-icon>\n </button>\n }\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"], dependencies: [{ kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3506
3506
|
}
|
|
3507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersButtonComponent, decorators: [{
|
|
3508
3508
|
type: Component,
|
|
3509
|
-
args: [{ selector: "nice-advanced-filters-button", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"relative\">\n
|
|
3509
|
+
args: [{ selector: "nice-advanced-filters-button", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"relative\">\n @if (\n (hasParameters$ | async) &&\n (shouldShowAdvancedFilters$ | async) !== true\n ) {\n <div\n class=\"absolute top-1 right-1 w-2 h-2 z-10 rounded bg-accent\"\n ></div>\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{\n icons.queryBuilder.matIcon\n }}</mat-icon>\n </button>\n }\n\n @if (shouldShowAdvancedFilters$ | async) {\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n </button>\n }\n\n @if (\n (hasParameters$ | async) !== true &&\n (shouldShowAdvancedFilters$ | async) !== true\n ) {\n <button\n mat-icon-button\n niceAdvancedFiltersTrigger\n (advancedFilterSelected)=\"onSelectedFilter($event)\"\n >\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{\n icons.queryBuilder.matIcon\n }}</mat-icon>\n </button>\n }\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"] }]
|
|
3510
3510
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
3511
3511
|
type: Optional
|
|
3512
3512
|
}, {
|
|
@@ -3658,10 +3658,10 @@ class AdvancedFiltersAsyncTypeaheadProvider extends NiceAsyncTypeaheadProvider {
|
|
|
3658
3658
|
format(item) {
|
|
3659
3659
|
return item.name;
|
|
3660
3660
|
}
|
|
3661
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3662
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3661
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: AdvancedFiltersAsyncTypeaheadProvider, deps: [{ token: NiceFilterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3662
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: AdvancedFiltersAsyncTypeaheadProvider }); }
|
|
3663
3663
|
}
|
|
3664
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3664
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: AdvancedFiltersAsyncTypeaheadProvider, decorators: [{
|
|
3665
3665
|
type: Injectable
|
|
3666
3666
|
}], ctorParameters: () => [{ type: NiceFilterService }] });
|
|
3667
3667
|
|
|
@@ -3762,10 +3762,10 @@ class FilterComponent {
|
|
|
3762
3762
|
onValueChange(value) {
|
|
3763
3763
|
this.propagateChanges(value);
|
|
3764
3764
|
}
|
|
3765
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3766
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3765
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3766
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: FilterComponent, isStandalone: false, selector: "ng-component", ngImport: i0, template: ``, isInline: true }); }
|
|
3767
3767
|
}
|
|
3768
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: FilterComponent, decorators: [{
|
|
3769
3769
|
type: Component,
|
|
3770
3770
|
args: [{
|
|
3771
3771
|
template: ``,
|
|
@@ -3785,16 +3785,16 @@ class NiceAdvancedDateFilterComponent extends FilterComponent {
|
|
|
3785
3785
|
}
|
|
3786
3786
|
picker.open();
|
|
3787
3787
|
}
|
|
3788
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3789
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3788
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedDateFilterComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: ADVANCED_DATE_FILTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3789
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: NiceAdvancedDateFilterComponent, isStandalone: false, selector: "nice-advanced-date-filter", providers: [
|
|
3790
3790
|
{
|
|
3791
3791
|
provide: NG_VALUE_ACCESSOR,
|
|
3792
3792
|
useExisting: forwardRef(() => NiceAdvancedDateFilterComponent),
|
|
3793
3793
|
multi: true
|
|
3794
3794
|
}
|
|
3795
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <input\n matInput\n [matDatepicker]=\"picker\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"onInputClick(picker)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon\n matDatepickerToggleIcon\n [svgIcon]=\"icons.datePicker.svgIcon\"\n >\n {{ icons.datePicker.matIcon }}\n </mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type:
|
|
3795
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <input\n matInput\n [matDatepicker]=\"picker\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"onInputClick(picker)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon\n matDatepickerToggleIcon\n [svgIcon]=\"icons.datePicker.svgIcon\"\n >\n {{ icons.datePicker.matIcon }}\n </mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3796
3796
|
}
|
|
3797
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedDateFilterComponent, decorators: [{
|
|
3798
3798
|
type: Component,
|
|
3799
3799
|
args: [{ selector: "nice-advanced-date-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
3800
3800
|
{
|
|
@@ -3816,16 +3816,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
3816
3816
|
}] }] });
|
|
3817
3817
|
|
|
3818
3818
|
class NiceAdvancedNumberFilterComponent extends FilterComponent {
|
|
3819
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3820
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3819
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedNumberFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3820
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: NiceAdvancedNumberFilterComponent, isStandalone: false, selector: "nice-advanced-number-filter", providers: [
|
|
3821
3821
|
{
|
|
3822
3822
|
provide: NG_VALUE_ACCESSOR,
|
|
3823
3823
|
useExisting: forwardRef(() => NiceAdvancedNumberFilterComponent),
|
|
3824
3824
|
multi: true
|
|
3825
3825
|
}
|
|
3826
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" type=\"number\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type:
|
|
3826
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" type=\"number\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3827
3827
|
}
|
|
3828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3828
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedNumberFilterComponent, decorators: [{
|
|
3829
3829
|
type: Component,
|
|
3830
3830
|
args: [{ selector: "nice-advanced-number-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
3831
3831
|
{
|
|
@@ -3837,16 +3837,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
3837
3837
|
}] });
|
|
3838
3838
|
|
|
3839
3839
|
class NiceAdvancedOptionsFilterComponent extends FilterComponent {
|
|
3840
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3841
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3840
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedOptionsFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3841
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceAdvancedOptionsFilterComponent, isStandalone: false, selector: "nice-advanced-options-filter", inputs: { filterConfig: "filterConfig" }, providers: [
|
|
3842
3842
|
{
|
|
3843
3843
|
provide: NG_VALUE_ACCESSOR,
|
|
3844
3844
|
useExisting: forwardRef(() => NiceAdvancedOptionsFilterComponent),
|
|
3845
3845
|
multi: true
|
|
3846
3846
|
}
|
|
3847
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"mb-4\"
|
|
3847
|
+
], usesInheritance: true, ngImport: i0, template: "@if (filterConfig.selectionMode === \"radio\") {\n <div class=\"mb-4\">\n <mat-radio-group\n class=\"flex-auto\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n @for (option of filterConfig.options; track option) {\n <mat-radio-button class=\"mx-4\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n }\n </mat-radio-group>\n </div>\n}\n\n@if (filterConfig.selectionMode === \"select\") {\n <mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <mat-select [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\">\n @for (option of filterConfig.options; track option) {\n <mat-option [value]=\"option.key\">\n {{ option?.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3848
3848
|
}
|
|
3849
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3849
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedOptionsFilterComponent, decorators: [{
|
|
3850
3850
|
type: Component,
|
|
3851
3851
|
args: [{ selector: "nice-advanced-options-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
3852
3852
|
{
|
|
@@ -3854,22 +3854,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
3854
3854
|
useExisting: forwardRef(() => NiceAdvancedOptionsFilterComponent),
|
|
3855
3855
|
multi: true
|
|
3856
3856
|
}
|
|
3857
|
-
], standalone: false, template: "<div class=\"mb-4\"
|
|
3857
|
+
], standalone: false, template: "@if (filterConfig.selectionMode === \"radio\") {\n <div class=\"mb-4\">\n <mat-radio-group\n class=\"flex-auto\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n @for (option of filterConfig.options; track option) {\n <mat-radio-button class=\"mx-4\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n }\n </mat-radio-group>\n </div>\n}\n\n@if (filterConfig.selectionMode === \"select\") {\n <mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <mat-select [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\">\n @for (option of filterConfig.options; track option) {\n <mat-option [value]=\"option.key\">\n {{ option?.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n" }]
|
|
3858
3858
|
}], propDecorators: { filterConfig: [{
|
|
3859
3859
|
type: Input
|
|
3860
3860
|
}] } });
|
|
3861
3861
|
|
|
3862
3862
|
class NiceAdvancedRadioFilterComponent extends FilterComponent {
|
|
3863
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3864
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3863
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedRadioFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3864
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceAdvancedRadioFilterComponent, isStandalone: false, selector: "nice-advanced-radio-filter", inputs: { filterConfig: "filterConfig" }, providers: [
|
|
3865
3865
|
{
|
|
3866
3866
|
provide: NG_VALUE_ACCESSOR,
|
|
3867
3867
|
useExisting: forwardRef(() => NiceAdvancedRadioFilterComponent),
|
|
3868
3868
|
multi: true
|
|
3869
3869
|
}
|
|
3870
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-radio-group
|
|
3870
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-radio-group\n appearance=\"outline\"\n class=\"flex-auto\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n>\n @for (option of filterConfig.options; track option) {\n <mat-radio-button class=\"mx-4\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n }\n</mat-radio-group>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3871
3871
|
}
|
|
3872
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3872
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedRadioFilterComponent, decorators: [{
|
|
3873
3873
|
type: Component,
|
|
3874
3874
|
args: [{ selector: "nice-advanced-radio-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
3875
3875
|
{
|
|
@@ -3877,7 +3877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
3877
3877
|
useExisting: forwardRef(() => NiceAdvancedRadioFilterComponent),
|
|
3878
3878
|
multi: true
|
|
3879
3879
|
}
|
|
3880
|
-
], standalone: false, template: "<mat-radio-group
|
|
3880
|
+
], standalone: false, template: "<mat-radio-group\n appearance=\"outline\"\n class=\"flex-auto\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n>\n @for (option of filterConfig.options; track option) {\n <mat-radio-button class=\"mx-4\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n }\n</mat-radio-group>\n" }]
|
|
3881
3881
|
}], propDecorators: { filterConfig: [{
|
|
3882
3882
|
type: Input
|
|
3883
3883
|
}] } });
|
|
@@ -3910,16 +3910,16 @@ class NiceAdvancedSelectFilterComponent extends FilterComponent {
|
|
|
3910
3910
|
writeValue(value) {
|
|
3911
3911
|
super.writeValue(value);
|
|
3912
3912
|
}
|
|
3913
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3914
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3913
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedSelectFilterComponent, deps: [{ token: NiceFilterViewQuery }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3914
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceAdvancedSelectFilterComponent, isStandalone: false, selector: "nice-advanced-select-filter", inputs: { filterConfig: "filterConfig" }, providers: [
|
|
3915
3915
|
{
|
|
3916
3916
|
provide: NG_VALUE_ACCESSOR,
|
|
3917
3917
|
useExisting: forwardRef(() => NiceAdvancedSelectFilterComponent),
|
|
3918
3918
|
multi: true
|
|
3919
3919
|
}
|
|
3920
|
-
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n
|
|
3920
|
+
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n @if (!filterConfig.lazyLoading) {\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n }\n\n @if (filterConfig.lazyLoading) {\n <nice-async-typeahead\n resource=\"advancedFilter\"\n [searchOptions]=\"{\n filterConfig,\n queryParams: queryParams$ | async,\n }\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n ></nice-async-typeahead>\n }\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NiceTypeaheadComponent, selector: "nice-typeahead", inputs: ["items", "labelFormatFn", "required", "disabled", "placeholder", "emptyPlaceholder", "allowNotFoundItems", "panelClass", "bindValue", "bindLabel", "typeahead", "page$", "loading", "loadingPage", "searchFn", "optionTemplate"], outputs: ["change"] }, { kind: "component", type: i4.NiceAsyncTypeaheadComponent, selector: "nice-async-typeahead", inputs: ["resource", "searchOptions", "autoReload", "preloadResource", "allowNotFoundItems", "panelClass", "bindValue", "bindLabel", "placeholder", "emptyPlaceholder", "optionTemplate", "filterFn", "labelFormatFn", "disabled", "value", "required"], outputs: ["entityRemoved", "selected"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3921
3921
|
}
|
|
3922
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedSelectFilterComponent, decorators: [{
|
|
3923
3923
|
type: Component,
|
|
3924
3924
|
args: [{ selector: "nice-advanced-select-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
3925
3925
|
{
|
|
@@ -3927,22 +3927,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
3927
3927
|
useExisting: forwardRef(() => NiceAdvancedSelectFilterComponent),
|
|
3928
3928
|
multi: true
|
|
3929
3929
|
}
|
|
3930
|
-
], standalone: false, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n
|
|
3930
|
+
], standalone: false, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n @if (!filterConfig.lazyLoading) {\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n }\n\n @if (filterConfig.lazyLoading) {\n <nice-async-typeahead\n resource=\"advancedFilter\"\n [searchOptions]=\"{\n filterConfig,\n queryParams: queryParams$ | async,\n }\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n ></nice-async-typeahead>\n }\n</mat-form-field>\n" }]
|
|
3931
3931
|
}], ctorParameters: () => [{ type: NiceFilterViewQuery }], propDecorators: { filterConfig: [{
|
|
3932
3932
|
type: Input
|
|
3933
3933
|
}] } });
|
|
3934
3934
|
|
|
3935
3935
|
class NiceAdvancedTextFilterComponent extends FilterComponent {
|
|
3936
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3937
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3936
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedTextFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3937
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: NiceAdvancedTextFilterComponent, isStandalone: false, selector: "nice-advanced-text-filter", inputs: { filterConfig: "filterConfig" }, providers: [
|
|
3938
3938
|
{
|
|
3939
3939
|
provide: NG_VALUE_ACCESSOR,
|
|
3940
3940
|
useExisting: forwardRef(() => NiceAdvancedTextFilterComponent),
|
|
3941
3941
|
multi: true
|
|
3942
3942
|
}
|
|
3943
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" [mask]=\"(filterConfig?.mask) || ''\" [validation]=\"false\" type=\"text\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type:
|
|
3943
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"flex-auto\">\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" [mask]=\"(filterConfig?.mask) || ''\" [validation]=\"false\" type=\"text\" />\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i4$1.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3944
3944
|
}
|
|
3945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3945
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedTextFilterComponent, decorators: [{
|
|
3946
3946
|
type: Component,
|
|
3947
3947
|
args: [{ selector: "nice-advanced-text-filter", encapsulation: ViewEncapsulation.None, providers: [
|
|
3948
3948
|
{
|
|
@@ -3986,12 +3986,12 @@ class NiceAdvancedRuleComponent {
|
|
|
3986
3986
|
this.remove.emit();
|
|
3987
3987
|
}
|
|
3988
3988
|
}
|
|
3989
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3990
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: NiceAdvancedRuleComponent, isStandalone: false, selector: "nice-advanced-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n </div>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container *ngIf=\"valuesFormArray.controls.length > 1\">\n <mat-button-toggle-group class=\"condition-toggle\" formControlName=\"condition\">\n <mat-button-toggle value=\"and\">{{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{ \"components.nice_advanced_filters.rule.conditions.or\" | translate }}</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\" *ngFor=\"let _ of valuesFormArray.controls; let i = index\">\n <div class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <ng-container *ngIf=\"isSingleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-advanced-text-filter>\n <nice-advanced-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"add-button\" mat-icon-button (click)=\"addValue(i + 1)\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n </button>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"remove-button\" mat-icon-button (click)=\"removeValue(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5$2.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: NiceAdvancedDateFilterComponent, selector: "nice-advanced-date-filter" }, { kind: "component", type: NiceAdvancedNumberFilterComponent, selector: "nice-advanced-number-filter" }, { kind: "component", type: NiceAdvancedOptionsFilterComponent, selector: "nice-advanced-options-filter", inputs: ["filterConfig"] }, { kind: "component", type: NiceAdvancedRadioFilterComponent, selector: "nice-advanced-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: NiceAdvancedSelectFilterComponent, selector: "nice-advanced-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: NiceAdvancedTextFilterComponent, selector: "nice-advanced-text-filter", inputs: ["filterConfig"] }, { kind: "directive", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3989
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedRuleComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1$1.FormGroupName }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3990
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceAdvancedRuleComponent, isStandalone: false, selector: "nice-advanced-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{\n icons.arrowDown.matIcon\n }}</mat-icon>\n </div>\n </button>\n </div>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\n @for (operator of filterConfig?.operators; track operator) {\n <mat-option [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (valuesFormArray.controls.length > 1) {\n <mat-button-toggle-group\n class=\"condition-toggle\"\n formControlName=\"condition\"\n >\n <mat-button-toggle value=\"and\">{{\n \"components.nice_advanced_filters.rule.conditions.and\"\n | translate\n }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{\n \"components.nice_advanced_filters.rule.conditions.or\"\n | translate\n }}</mat-button-toggle>\n </mat-button-toggle-group>\n }\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n @for (_ of valuesFormArray.controls; track _; let i = $index) {\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\">\n <div\n class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\"\n >\n @if (isSingleInput$ | async) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-advanced-text-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-text-filter>\n }\n @case (\"number\") {\n <nice-advanced-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n }\n @case (\"options\") {\n <nice-advanced-options-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n }\n @case (\"radio\") {\n <nice-advanced-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n }\n @case (\"select\") {\n <nice-advanced-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n }\n @case (\"date\") {\n <nice-advanced-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n }\n }\n }\n @if (isDoubleInput$ | async) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-advanced-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n }\n @case (\"number\") {\n <nice-advanced-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n }\n @case (\"options\") {\n <nice-advanced-options-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n }\n @case (\"radio\") {\n <nice-advanced-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n }\n @case (\"select\") {\n <nice-advanced-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n }\n @case (\"date\") {\n <nice-advanced-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n }\n }\n <h3 class=\"aligned-text\">\n {{\n \"components.nice_advanced_filters.rule.conditions.and\"\n | translate\n }}\n </h3>\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-advanced-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n }\n @case (\"number\") {\n <nice-advanced-number-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n }\n @case (\"options\") {\n <nice-advanced-options-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n }\n @case (\"radio\") {\n <nice-advanced-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n }\n @case (\"select\") {\n <nice-advanced-select-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n }\n @case (\"date\") {\n <nice-advanced-date-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n }\n }\n }\n </div>\n <div class=\"basis-12\">\n <button\n class=\"add-button\"\n mat-icon-button\n (click)=\"addValue(i + 1)\"\n >\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{\n icons.add.matIcon\n }}</mat-icon>\n </button>\n </div>\n <div class=\"basis-12\">\n <button\n class=\"remove-button\"\n mat-icon-button\n (click)=\"removeValue(i)\"\n >\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{\n icons.delete.matIcon\n }}</mat-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i5$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: NiceAdvancedDateFilterComponent, selector: "nice-advanced-date-filter" }, { kind: "component", type: NiceAdvancedNumberFilterComponent, selector: "nice-advanced-number-filter" }, { kind: "component", type: NiceAdvancedOptionsFilterComponent, selector: "nice-advanced-options-filter", inputs: ["filterConfig"] }, { kind: "component", type: NiceAdvancedRadioFilterComponent, selector: "nice-advanced-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: NiceAdvancedSelectFilterComponent, selector: "nice-advanced-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: NiceAdvancedTextFilterComponent, selector: "nice-advanced-text-filter", inputs: ["filterConfig"] }, { kind: "directive", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3991
3991
|
}
|
|
3992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3992
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedRuleComponent, decorators: [{
|
|
3993
3993
|
type: Component,
|
|
3994
|
-
args: [{ selector: "nice-advanced-rule", encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n </div>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container *ngIf=\"valuesFormArray.controls.length > 1\">\n <mat-button-toggle-group class=\"condition-toggle\" formControlName=\"condition\">\n <mat-button-toggle value=\"and\">{{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{ \"components.nice_advanced_filters.rule.conditions.or\" | translate }}</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\" *ngFor=\"let _ of valuesFormArray.controls; let i = index\">\n <div class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <ng-container *ngIf=\"isSingleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-advanced-text-filter>\n <nice-advanced-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"add-button\" mat-icon-button (click)=\"addValue(i + 1)\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n </button>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"remove-button\" mat-icon-button (click)=\"removeValue(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
3994
|
+
args: [{ selector: "nice-advanced-rule", encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{\n icons.arrowDown.matIcon\n }}</mat-icon>\n </div>\n </button>\n </div>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\n @for (operator of filterConfig?.operators; track operator) {\n <mat-option [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (valuesFormArray.controls.length > 1) {\n <mat-button-toggle-group\n class=\"condition-toggle\"\n formControlName=\"condition\"\n >\n <mat-button-toggle value=\"and\">{{\n \"components.nice_advanced_filters.rule.conditions.and\"\n | translate\n }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{\n \"components.nice_advanced_filters.rule.conditions.or\"\n | translate\n }}</mat-button-toggle>\n </mat-button-toggle-group>\n }\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n @for (_ of valuesFormArray.controls; track _; let i = $index) {\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\">\n <div\n class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\"\n >\n @if (isSingleInput$ | async) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-advanced-text-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-text-filter>\n }\n @case (\"number\") {\n <nice-advanced-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n }\n @case (\"options\") {\n <nice-advanced-options-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n }\n @case (\"radio\") {\n <nice-advanced-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n }\n @case (\"select\") {\n <nice-advanced-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n }\n @case (\"date\") {\n <nice-advanced-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n }\n }\n }\n @if (isDoubleInput$ | async) {\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-advanced-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n }\n @case (\"number\") {\n <nice-advanced-number-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n }\n @case (\"options\") {\n <nice-advanced-options-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n }\n @case (\"radio\") {\n <nice-advanced-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n }\n @case (\"select\") {\n <nice-advanced-select-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n }\n @case (\"date\") {\n <nice-advanced-date-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n }\n }\n <h3 class=\"aligned-text\">\n {{\n \"components.nice_advanced_filters.rule.conditions.and\"\n | translate\n }}\n </h3>\n @switch (filterConfig?.type) {\n @case (\"text\") {\n <nice-advanced-text-filter\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n }\n @case (\"number\") {\n <nice-advanced-number-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n }\n @case (\"options\") {\n <nice-advanced-options-filter\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n }\n @case (\"radio\") {\n <nice-advanced-radio-filter\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n }\n @case (\"select\") {\n <nice-advanced-select-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n }\n @case (\"date\") {\n <nice-advanced-date-filter\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n }\n }\n }\n </div>\n <div class=\"basis-12\">\n <button\n class=\"add-button\"\n mat-icon-button\n (click)=\"addValue(i + 1)\"\n >\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{\n icons.add.matIcon\n }}</mat-icon>\n </button>\n </div>\n <div class=\"basis-12\">\n <button\n class=\"remove-button\"\n mat-icon-button\n (click)=\"removeValue(i)\"\n >\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{\n icons.delete.matIcon\n }}</mat-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
|
|
3995
3995
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
3996
3996
|
type: Optional
|
|
3997
3997
|
}, {
|
|
@@ -4074,17 +4074,17 @@ class NiceAdvancedFiltersComponent {
|
|
|
4074
4074
|
this.service.filter();
|
|
4075
4075
|
}
|
|
4076
4076
|
}
|
|
4077
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4078
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4077
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1$3.GeneratedFormGroup }, { token: NiceFilterViewQuery }, { token: NiceFilterViewService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4078
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceAdvancedFiltersComponent, isStandalone: false, selector: "nice-advanced-filters", providers: [
|
|
4079
4079
|
NgxFormGeneratorProvider.forFeature([AdvancedFiltersForm]),
|
|
4080
4080
|
{
|
|
4081
4081
|
provide: NICE_ASYNC_TYPEAHEAD_PROVIDER,
|
|
4082
4082
|
useClass: AdvancedFiltersAsyncTypeaheadProvider,
|
|
4083
4083
|
multi: true
|
|
4084
4084
|
}
|
|
4085
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-4\" [formGroup]=\"formGroup\">\n <div class=\"advanced-filter-title\"
|
|
4085
|
+
], ngImport: i0, template: "<div class=\"flex flex-col gap-4\" [formGroup]=\"formGroup\">\n <div class=\"advanced-filter-title\">\n {{ \"components.nice_advanced_filters.title\" | translate }}\n </div>\n\n <div class=\"flex flex-row gap-12\">\n <div class=\"advanced-filter-condition\">\n {{\n \"components.nice_advanced_filters.conditions.should_match\"\n | translate\n }}\n </div>\n\n <mat-radio-group formControlName=\"condition\">\n <mat-radio-button value=\"and\"\n ><span class=\"ml-4 mr-8\">{{\n \"components.nice_advanced_filters.conditions.every\"\n | translate\n }}</span></mat-radio-button\n >\n <mat-radio-button value=\"or\"\n ><span class=\"ml-4 mr-8\">{{\n \"components.nice_advanced_filters.conditions.some\"\n | translate\n }}</span></mat-radio-button\n >\n </mat-radio-group>\n </div>\n\n @for (_ of rulesFormArray.controls; track _; let i = $index) {\n <div class=\"flex flex-col gap-4\" formArrayName=\"rules\">\n <nice-advanced-rule\n [filterConfigs]=\"config$ | async\"\n [formGroupName]=\"i\"\n (remove)=\"onClickDeleteRule(i)\"\n ></nice-advanced-rule>\n </div>\n }\n\n <div>\n <button\n class=\"add-condition\"\n mat-stroked-button\n color=\"accent\"\n niceAdvancedFiltersTrigger\n position=\"topRight\"\n (advancedFilterSelected)=\"onClickAddRule($event)\"\n >\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{\n icons.add.matIcon\n }}</mat-icon>\n\n <div>\n {{\n \"components.nice_advanced_filters.add_condition\"\n | translate\n }}\n </div>\n </div>\n </button>\n </div>\n\n <div class=\"flex gap-6 justify-end pt-4\">\n <button\n class=\"close-button\"\n mat-button\n color=\"accent\"\n (click)=\"onClose()\"\n >\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n\n <div>\n {{ \"components.nice_advanced_filters.close\" | translate }}\n </div>\n </div>\n </button>\n\n <button\n class=\"refresh-button\"\n mat-flat-button\n color=\"accent\"\n (click)=\"onRefresh()\"\n >\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.refresh.svgIcon\">{{\n icons.refresh.matIcon\n }}</mat-icon>\n\n <div>\n {{ \"components.nice_advanced_filters.refresh\" | translate }}\n </div>\n </div>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: NiceAdvancedRuleComponent, selector: "nice-advanced-rule", inputs: ["filterConfigs"], outputs: ["remove"] }, { kind: "directive", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4086
4086
|
}
|
|
4087
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4087
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersComponent, decorators: [{
|
|
4088
4088
|
type: Component,
|
|
4089
4089
|
args: [{ selector: "nice-advanced-filters", encapsulation: ViewEncapsulation.None, providers: [
|
|
4090
4090
|
NgxFormGeneratorProvider.forFeature([AdvancedFiltersForm]),
|
|
@@ -4093,7 +4093,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
4093
4093
|
useClass: AdvancedFiltersAsyncTypeaheadProvider,
|
|
4094
4094
|
multi: true
|
|
4095
4095
|
}
|
|
4096
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"flex flex-col gap-4\" [formGroup]=\"formGroup\">\n <div class=\"advanced-filter-title\"
|
|
4096
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"flex flex-col gap-4\" [formGroup]=\"formGroup\">\n <div class=\"advanced-filter-title\">\n {{ \"components.nice_advanced_filters.title\" | translate }}\n </div>\n\n <div class=\"flex flex-row gap-12\">\n <div class=\"advanced-filter-condition\">\n {{\n \"components.nice_advanced_filters.conditions.should_match\"\n | translate\n }}\n </div>\n\n <mat-radio-group formControlName=\"condition\">\n <mat-radio-button value=\"and\"\n ><span class=\"ml-4 mr-8\">{{\n \"components.nice_advanced_filters.conditions.every\"\n | translate\n }}</span></mat-radio-button\n >\n <mat-radio-button value=\"or\"\n ><span class=\"ml-4 mr-8\">{{\n \"components.nice_advanced_filters.conditions.some\"\n | translate\n }}</span></mat-radio-button\n >\n </mat-radio-group>\n </div>\n\n @for (_ of rulesFormArray.controls; track _; let i = $index) {\n <div class=\"flex flex-col gap-4\" formArrayName=\"rules\">\n <nice-advanced-rule\n [filterConfigs]=\"config$ | async\"\n [formGroupName]=\"i\"\n (remove)=\"onClickDeleteRule(i)\"\n ></nice-advanced-rule>\n </div>\n }\n\n <div>\n <button\n class=\"add-condition\"\n mat-stroked-button\n color=\"accent\"\n niceAdvancedFiltersTrigger\n position=\"topRight\"\n (advancedFilterSelected)=\"onClickAddRule($event)\"\n >\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{\n icons.add.matIcon\n }}</mat-icon>\n\n <div>\n {{\n \"components.nice_advanced_filters.add_condition\"\n | translate\n }}\n </div>\n </div>\n </button>\n </div>\n\n <div class=\"flex gap-6 justify-end pt-4\">\n <button\n class=\"close-button\"\n mat-button\n color=\"accent\"\n (click)=\"onClose()\"\n >\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{\n icons.close.matIcon\n }}</mat-icon>\n\n <div>\n {{ \"components.nice_advanced_filters.close\" | translate }}\n </div>\n </div>\n </button>\n\n <button\n class=\"refresh-button\"\n mat-flat-button\n color=\"accent\"\n (click)=\"onRefresh()\"\n >\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.refresh.svgIcon\">{{\n icons.refresh.matIcon\n }}</mat-icon>\n\n <div>\n {{ \"components.nice_advanced_filters.refresh\" | translate }}\n </div>\n </div>\n </button>\n </div>\n</div>\n" }]
|
|
4097
4097
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4098
4098
|
type: Optional
|
|
4099
4099
|
}, {
|
|
@@ -4148,8 +4148,8 @@ class NiceAdvancedFiltersModule {
|
|
|
4148
4148
|
].filter((provider) => !!provider)
|
|
4149
4149
|
};
|
|
4150
4150
|
}
|
|
4151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4152
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4152
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersModule, declarations: [NiceAdvancedFiltersComponent,
|
|
4153
4153
|
NiceAdvancedFiltersButtonComponent,
|
|
4154
4154
|
NiceAdvancedFilterSelectionComponent,
|
|
4155
4155
|
NiceAdvancedRuleComponent,
|
|
@@ -4180,7 +4180,7 @@ class NiceAdvancedFiltersModule {
|
|
|
4180
4180
|
NiceTypeaheadModule,
|
|
4181
4181
|
NiceAsyncTypeaheadModule,
|
|
4182
4182
|
NgxMaskDirective], exports: [NiceAdvancedFiltersComponent, NiceAdvancedRuleComponent, NiceAdvancedFiltersButtonComponent, AdvancedFiltersTriggerDirective] }); }
|
|
4183
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4183
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersModule, imports: [CommonModule,
|
|
4184
4184
|
ReactiveFormsModule,
|
|
4185
4185
|
MatRadioModule,
|
|
4186
4186
|
MatCardModule,
|
|
@@ -4200,7 +4200,7 @@ class NiceAdvancedFiltersModule {
|
|
|
4200
4200
|
NiceTypeaheadModule,
|
|
4201
4201
|
NiceAsyncTypeaheadModule] }); }
|
|
4202
4202
|
}
|
|
4203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceAdvancedFiltersModule, decorators: [{
|
|
4204
4204
|
type: NgModule,
|
|
4205
4205
|
args: [{
|
|
4206
4206
|
imports: [
|
|
@@ -4248,10 +4248,10 @@ class NiceFilterDataDirective {
|
|
|
4248
4248
|
constructor(template) {
|
|
4249
4249
|
this.template = template;
|
|
4250
4250
|
}
|
|
4251
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4252
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4251
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterDataDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4252
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterDataDirective, isStandalone: false, selector: "[niceFilterData]", ngImport: i0 }); }
|
|
4253
4253
|
}
|
|
4254
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterDataDirective, decorators: [{
|
|
4255
4255
|
type: Directive,
|
|
4256
4256
|
args: [{
|
|
4257
4257
|
selector: "[niceFilterData]",
|
|
@@ -4264,12 +4264,12 @@ class NiceFilterCustomDataViewComponent {
|
|
|
4264
4264
|
this.query = query;
|
|
4265
4265
|
this.data$ = this.query.selectAll();
|
|
4266
4266
|
}
|
|
4267
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4268
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4267
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterCustomDataViewComponent, deps: [{ token: NiceFilterViewQuery }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4268
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceFilterCustomDataViewComponent, isStandalone: false, selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (content) {\n <ng-container\n *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"\n ></ng-container>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4269
4269
|
}
|
|
4270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterCustomDataViewComponent, decorators: [{
|
|
4271
4271
|
type: Component,
|
|
4272
|
-
args: [{ selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", encapsulation: ViewEncapsulation.None, standalone: false, template: "
|
|
4272
|
+
args: [{ selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (content) {\n <ng-container\n *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"\n ></ng-container>\n}\n" }]
|
|
4273
4273
|
}], ctorParameters: () => [{ type: NiceFilterViewQuery }], propDecorators: { content: [{
|
|
4274
4274
|
type: ContentChild,
|
|
4275
4275
|
args: [NiceFilterDataDirective, { read: TemplateRef }]
|
|
@@ -4565,10 +4565,10 @@ class NiceSelectableListService {
|
|
|
4565
4565
|
}
|
|
4566
4566
|
return state.query;
|
|
4567
4567
|
}
|
|
4568
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4569
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4568
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListService, deps: [{ token: NICE_PRELOAD_SELECTED_ENTITIES_PROVIDER, optional: true }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4569
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListService, providedIn: "root" }); }
|
|
4570
4570
|
}
|
|
4571
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListService, decorators: [{
|
|
4572
4572
|
type: Injectable,
|
|
4573
4573
|
args: [{ providedIn: "root" }]
|
|
4574
4574
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -4593,43 +4593,43 @@ class NiceFilterExportButtonsComponent {
|
|
|
4593
4593
|
this.loading$ = this.query.selectLoading();
|
|
4594
4594
|
}
|
|
4595
4595
|
clickExport() {
|
|
4596
|
-
const exports = [];
|
|
4596
|
+
const exports$1 = [];
|
|
4597
4597
|
const subState = this.niceFilterViewQuery.getSubState("selectable");
|
|
4598
4598
|
let selected = [];
|
|
4599
4599
|
if (subState?.stateName) {
|
|
4600
4600
|
selected = this.selectableListService.query(subState.stateName).getAll().map((entity) => entity.id);
|
|
4601
4601
|
}
|
|
4602
4602
|
if (this.exportsSettings.xlsx) {
|
|
4603
|
-
exports.push({
|
|
4603
|
+
exports$1.push({
|
|
4604
4604
|
type: "xlsx",
|
|
4605
4605
|
onClickExport: () => this.clickXlsx()
|
|
4606
4606
|
});
|
|
4607
4607
|
if (selected.length) {
|
|
4608
|
-
exports.push({
|
|
4608
|
+
exports$1.push({
|
|
4609
4609
|
type: "selected_xlsx",
|
|
4610
4610
|
onClickExport: () => this.clickXlsx(selected)
|
|
4611
4611
|
});
|
|
4612
4612
|
}
|
|
4613
4613
|
}
|
|
4614
4614
|
if (this.exportsSettings.csv) {
|
|
4615
|
-
exports.push({
|
|
4615
|
+
exports$1.push({
|
|
4616
4616
|
type: "csv",
|
|
4617
4617
|
onClickExport: () => this.clickCsv()
|
|
4618
4618
|
});
|
|
4619
4619
|
if (selected.length) {
|
|
4620
|
-
exports.push({
|
|
4620
|
+
exports$1.push({
|
|
4621
4621
|
type: "selected_csv",
|
|
4622
4622
|
onClickExport: () => this.clickCsv(selected)
|
|
4623
4623
|
});
|
|
4624
4624
|
}
|
|
4625
4625
|
}
|
|
4626
4626
|
if (this.exportsSettings.pdf) {
|
|
4627
|
-
exports.push({
|
|
4627
|
+
exports$1.push({
|
|
4628
4628
|
type: "pdf",
|
|
4629
4629
|
onClickExport: () => this.clickPdf()
|
|
4630
4630
|
});
|
|
4631
4631
|
if (selected.length) {
|
|
4632
|
-
exports.push({
|
|
4632
|
+
exports$1.push({
|
|
4633
4633
|
type: "selected_pdf",
|
|
4634
4634
|
onClickExport: () => this.clickPdf(selected)
|
|
4635
4635
|
});
|
|
@@ -4638,7 +4638,7 @@ class NiceFilterExportButtonsComponent {
|
|
|
4638
4638
|
this.bottomSheet.open(ExportBottomSheetComponent, {
|
|
4639
4639
|
data: {
|
|
4640
4640
|
exportStrategies: [
|
|
4641
|
-
...exports,
|
|
4641
|
+
...exports$1,
|
|
4642
4642
|
...this.customExport
|
|
4643
4643
|
]
|
|
4644
4644
|
}
|
|
@@ -4656,19 +4656,19 @@ class NiceFilterExportButtonsComponent {
|
|
|
4656
4656
|
clickPdf(ids) {
|
|
4657
4657
|
this.service.downloadData("pdf", this.downloadFileName, ids);
|
|
4658
4658
|
}
|
|
4659
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4660
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4659
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterExportButtonsComponent, deps: [{ token: FILTER_VIEW_ICONS }, { token: EXPORTS_SETTINGS }, { token: NiceFilterViewQuery }, { token: NiceSelectableListService }, { token: NiceFilterViewQuery }, { token: NiceFilterViewService }, { token: i4$2.MatBottomSheet }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4660
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceFilterExportButtonsComponent, isStandalone: false, selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", inputs: { customExport: "customExport", downloadFileName: "downloadFileName", canPrint: "canPrint" }, ngImport: i0, template: "@if (canPrint) {\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"export-button\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{\n icons.print.matIcon\n }}</mat-icon>\n </button>\n}\n\n<button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{\n icons.download.matIcon\n }}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4661
4661
|
}
|
|
4662
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4662
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterExportButtonsComponent, decorators: [{
|
|
4663
4663
|
type: Component,
|
|
4664
|
-
args: [{ selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", encapsulation: ViewEncapsulation.None, standalone: false, template: "
|
|
4664
|
+
args: [{ selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (canPrint) {\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"export-button\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{\n icons.print.matIcon\n }}</mat-icon>\n </button>\n}\n\n<button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{\n icons.download.matIcon\n }}</mat-icon>\n</button>\n" }]
|
|
4665
4665
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4666
4666
|
type: Inject,
|
|
4667
4667
|
args: [FILTER_VIEW_ICONS]
|
|
4668
4668
|
}] }, { type: undefined, decorators: [{
|
|
4669
4669
|
type: Inject,
|
|
4670
4670
|
args: [EXPORTS_SETTINGS]
|
|
4671
|
-
}] }, { type: NiceFilterViewQuery }, { type: NiceSelectableListService }, { type: NiceFilterViewQuery }, { type: NiceFilterViewService }, { type: i4$
|
|
4671
|
+
}] }, { type: NiceFilterViewQuery }, { type: NiceSelectableListService }, { type: NiceFilterViewQuery }, { type: NiceFilterViewService }, { type: i4$2.MatBottomSheet }], propDecorators: { customExport: [{
|
|
4672
4672
|
type: Input
|
|
4673
4673
|
}], downloadFileName: [{
|
|
4674
4674
|
type: Input
|
|
@@ -4684,10 +4684,10 @@ class NiceFilterExportDirective {
|
|
|
4684
4684
|
onClick() {
|
|
4685
4685
|
this.service.downloadData(this.type, this.downloadFileName);
|
|
4686
4686
|
}
|
|
4687
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4688
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4687
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterExportDirective, deps: [{ token: NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4688
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterExportDirective, isStandalone: false, selector: "[niceFilterExport]", inputs: { type: "type", downloadFileName: "downloadFileName" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
|
|
4689
4689
|
}
|
|
4690
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4690
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterExportDirective, decorators: [{
|
|
4691
4691
|
type: Directive,
|
|
4692
4692
|
args: [{
|
|
4693
4693
|
selector: "[niceFilterExport]",
|
|
@@ -4722,12 +4722,12 @@ class NiceFilterInfiniteScrollDataViewComponent {
|
|
|
4722
4722
|
});
|
|
4723
4723
|
this.service.filter();
|
|
4724
4724
|
}
|
|
4725
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4726
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4725
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, deps: [{ token: NiceFilterViewQuery }, { token: NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4726
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: NiceFilterInfiniteScrollDataViewComponent, isStandalone: false, selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (content) {\n <ng-container\n *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"\n ></ng-container>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4727
4727
|
}
|
|
4728
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4728
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, decorators: [{
|
|
4729
4729
|
type: Component,
|
|
4730
|
-
args: [{ selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", encapsulation: ViewEncapsulation.None, standalone: false, template: "
|
|
4730
|
+
args: [{ selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (content) {\n <ng-container\n *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"\n ></ng-container>\n}\n" }]
|
|
4731
4731
|
}], ctorParameters: () => [{ type: NiceFilterViewQuery }, { type: NiceFilterViewService }], propDecorators: { content: [{
|
|
4732
4732
|
type: ContentChild,
|
|
4733
4733
|
args: [NiceFilterDataDirective, { read: TemplateRef }]
|
|
@@ -4767,10 +4767,10 @@ class NiceFilterSearchComponent {
|
|
|
4767
4767
|
onUpdateSearch(search) {
|
|
4768
4768
|
this.searchText$.next(search);
|
|
4769
4769
|
}
|
|
4770
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4771
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4770
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterSearchComponent, deps: [{ token: FILTER_VIEW_ICONS }, { token: NiceFilterViewQuery }, { token: NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4771
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterSearchComponent, isStandalone: false, selector: "nice-filter-search", inputs: { appearance: "appearance" }, ngImport: i0, template: "<div\n class=\"search-wrapper mx-md-0\"\n [class.nice-search-default]=\"appearance === 'default'\"\n [class.nice-search-outlined]=\"appearance === 'outlined'\"\n [class.nice-search-legacy]=\"appearance === 'legacy'\"\n [class.nice-search-custom]=\"appearance === 'custom'\"\n>\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-content select=\"[niceFilterSearchButtons]\"></ng-content>\n </div>\n</div>\n", styles: ["nice-filter-search .search-wrapper{width:100%;max-width:480px;overflow:hidden}nice-filter-search .search-wrapper.nice-search-default{box-shadow:0 4px 12px #0000001f;border-radius:5px}nice-filter-search .search-wrapper.nice-search-outlined{border-radius:5px}nice-filter-search .search-wrapper.nice-search-legacy{box-shadow:0 3px 3px -2px #0000000f,0 3px 4px #0000000b,0 1px 8px #00000009;border-radius:28px}nice-filter-search .search-wrapper .search{width:100%;height:48px;line-height:48px;padding:0 18px}nice-filter-search .search-wrapper .search input{width:100%;height:48px;min-height:48px;max-height:48px;padding:0 16px;border:none;outline:none}\n"], dependencies: [{ kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4772
4772
|
}
|
|
4773
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterSearchComponent, decorators: [{
|
|
4774
4774
|
type: Component,
|
|
4775
4775
|
args: [{ selector: "nice-filter-search", encapsulation: ViewEncapsulation.None, standalone: false, template: "<div\n class=\"search-wrapper mx-md-0\"\n [class.nice-search-default]=\"appearance === 'default'\"\n [class.nice-search-outlined]=\"appearance === 'outlined'\"\n [class.nice-search-legacy]=\"appearance === 'legacy'\"\n [class.nice-search-custom]=\"appearance === 'custom'\"\n>\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-content select=\"[niceFilterSearchButtons]\"></ng-content>\n </div>\n</div>\n", styles: ["nice-filter-search .search-wrapper{width:100%;max-width:480px;overflow:hidden}nice-filter-search .search-wrapper.nice-search-default{box-shadow:0 4px 12px #0000001f;border-radius:5px}nice-filter-search .search-wrapper.nice-search-outlined{border-radius:5px}nice-filter-search .search-wrapper.nice-search-legacy{box-shadow:0 3px 3px -2px #0000000f,0 3px 4px #0000000b,0 1px 8px #00000009;border-radius:28px}nice-filter-search .search-wrapper .search{width:100%;height:48px;line-height:48px;padding:0 18px}nice-filter-search .search-wrapper .search input{width:100%;height:48px;min-height:48px;max-height:48px;padding:0 16px;border:none;outline:none}\n"] }]
|
|
4776
4776
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -4850,10 +4850,10 @@ class NiceFilterQueryParamsDirective {
|
|
|
4850
4850
|
}
|
|
4851
4851
|
});
|
|
4852
4852
|
}
|
|
4853
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4854
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4853
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterQueryParamsDirective, deps: [{ token: NiceFilterViewQuery }, { token: NiceFilterViewService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4854
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterQueryParamsDirective, isStandalone: false, selector: "nice-filter-view[niceFilterQueryParams]", inputs: { replaceUrlOnNavigation: "replaceUrlOnNavigation" }, outputs: { init: "init" }, ngImport: i0 }); }
|
|
4855
4855
|
}
|
|
4856
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4856
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterQueryParamsDirective, decorators: [{
|
|
4857
4857
|
type: Directive,
|
|
4858
4858
|
args: [{
|
|
4859
4859
|
selector: "nice-filter-view[niceFilterQueryParams]",
|
|
@@ -4898,10 +4898,10 @@ class NiceNestedFilterView {
|
|
|
4898
4898
|
hook.bind(this)();
|
|
4899
4899
|
}
|
|
4900
4900
|
}
|
|
4901
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4902
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4901
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceNestedFilterView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4902
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceNestedFilterView, isStandalone: true, ngImport: i0 }); }
|
|
4903
4903
|
}
|
|
4904
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4904
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceNestedFilterView, decorators: [{
|
|
4905
4905
|
type: Directive
|
|
4906
4906
|
}] });
|
|
4907
4907
|
|
|
@@ -4933,10 +4933,10 @@ class NiceFilterMatPaginatorPaginationDirective extends NiceNestedFilterView {
|
|
|
4933
4933
|
this.filterViewService.filter();
|
|
4934
4934
|
});
|
|
4935
4935
|
}
|
|
4936
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4937
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4936
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterMatPaginatorPaginationDirective, deps: [{ token: i12.MatPaginator }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4937
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterMatPaginatorPaginationDirective, isStandalone: false, selector: "mat-paginator[niceFilterPagination]", usesInheritance: true, ngImport: i0 }); }
|
|
4938
4938
|
}
|
|
4939
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4939
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterMatPaginatorPaginationDirective, decorators: [{
|
|
4940
4940
|
type: Directive,
|
|
4941
4941
|
args: [{
|
|
4942
4942
|
selector: "mat-paginator[niceFilterPagination]",
|
|
@@ -4982,10 +4982,10 @@ class NiceFilterMatSortSortingDirective extends NiceNestedFilterView {
|
|
|
4982
4982
|
this.filterViewService.filter();
|
|
4983
4983
|
});
|
|
4984
4984
|
}
|
|
4985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4986
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4985
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterMatSortSortingDirective, deps: [{ token: i14.MatSort }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4986
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterMatSortSortingDirective, isStandalone: false, selector: "mat-table[matSort][niceFilterSorting]", usesInheritance: true, ngImport: i0 }); }
|
|
4987
4987
|
}
|
|
4988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4988
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterMatSortSortingDirective, decorators: [{
|
|
4989
4989
|
type: Directive,
|
|
4990
4990
|
args: [{
|
|
4991
4991
|
selector: "mat-table[matSort][niceFilterSorting]",
|
|
@@ -5001,10 +5001,10 @@ class NiceFilterMatTableViewDirective {
|
|
|
5001
5001
|
ngOnInit() {
|
|
5002
5002
|
this.table.dataSource = this.query.selectAll();
|
|
5003
5003
|
}
|
|
5004
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5005
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5004
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterMatTableViewDirective, deps: [{ token: NiceFilterViewQuery }, { token: i13.MatTable }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5005
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterMatTableViewDirective, isStandalone: false, selector: "mat-table[niceFilterDataView]", ngImport: i0 }); }
|
|
5006
5006
|
}
|
|
5007
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5007
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterMatTableViewDirective, decorators: [{
|
|
5008
5008
|
type: Directive,
|
|
5009
5009
|
args: [{
|
|
5010
5010
|
selector: "mat-table[niceFilterDataView]",
|
|
@@ -5039,10 +5039,10 @@ class NiceSelectableListContentService {
|
|
|
5039
5039
|
setCheckboxes(checkboxes) {
|
|
5040
5040
|
this._checkboxes = checkboxes;
|
|
5041
5041
|
}
|
|
5042
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5043
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5042
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5043
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListContentService, providedIn: "any" }); }
|
|
5044
5044
|
}
|
|
5045
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5045
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListContentService, decorators: [{
|
|
5046
5046
|
type: Injectable,
|
|
5047
5047
|
args: [{ providedIn: "any" }]
|
|
5048
5048
|
}] });
|
|
@@ -5186,10 +5186,10 @@ class NiceSelectableListCheckboxDirective {
|
|
|
5186
5186
|
checkbox.checked = checked;
|
|
5187
5187
|
checkbox.change.emit({ checked, source: checkbox });
|
|
5188
5188
|
}
|
|
5189
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5190
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5189
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListCheckboxDirective, deps: [{ token: i1$4.MatCheckbox }, { token: NiceSelectableListContentService }, { token: NiceSelectableListService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5190
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceSelectableListCheckboxDirective, isStandalone: false, selector: "mat-checkbox[niceSelectableListCheckbox]", inputs: { selectableEntity: "selectableEntity", selectPage: "selectPage" }, ngImport: i0 }); }
|
|
5191
5191
|
}
|
|
5192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListCheckboxDirective, decorators: [{
|
|
5193
5193
|
type: Directive,
|
|
5194
5194
|
args: [{
|
|
5195
5195
|
selector: "mat-checkbox[niceSelectableListCheckbox]",
|
|
@@ -5266,10 +5266,10 @@ class NiceSelectableListDirective {
|
|
|
5266
5266
|
});
|
|
5267
5267
|
this.stateQuery.selectActiveId().pipe(takeUntil(this.unsubscribeQuerySub$)).subscribe(() => this.stateService.setQueryParams());
|
|
5268
5268
|
}
|
|
5269
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5270
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5269
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListDirective, deps: [{ token: NiceSelectableListContentService }, { token: NiceSelectableListService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5270
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceSelectableListDirective, isStandalone: false, selector: "[niceSelectableList]", inputs: { state: "state", options: "options" }, providers: [NiceSelectableListContentService], queries: [{ propertyName: "checkboxes", predicate: NiceSelectableListCheckboxDirective, descendants: true }], usesOnChanges: true, ngImport: i0 }); }
|
|
5271
5271
|
}
|
|
5272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListDirective, decorators: [{
|
|
5273
5273
|
type: Directive,
|
|
5274
5274
|
args: [{
|
|
5275
5275
|
selector: "[niceSelectableList]",
|
|
@@ -5295,14 +5295,14 @@ class NiceFilterViewComponent {
|
|
|
5295
5295
|
this.service.setQueryParams(this.queryParams);
|
|
5296
5296
|
}
|
|
5297
5297
|
}
|
|
5298
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5299
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5298
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewComponent, deps: [{ token: NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5299
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: NiceFilterViewComponent, isStandalone: false, selector: "nice-filter-view", inputs: { queryParams: "queryParams" }, providers: [
|
|
5300
5300
|
NiceFilterViewQuery,
|
|
5301
5301
|
NiceFilterViewService,
|
|
5302
5302
|
NiceFilterViewStore
|
|
5303
5303
|
], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None }); }
|
|
5304
5304
|
}
|
|
5305
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5305
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewComponent, decorators: [{
|
|
5306
5306
|
type: Component,
|
|
5307
5307
|
args: [{ selector: "nice-filter-view", encapsulation: ViewEncapsulation.None, providers: [
|
|
5308
5308
|
NiceFilterViewQuery,
|
|
@@ -5456,10 +5456,10 @@ class NiceBaseFilterViewComponent {
|
|
|
5456
5456
|
hook.bind(this)();
|
|
5457
5457
|
}
|
|
5458
5458
|
}
|
|
5459
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5460
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5459
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseFilterViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5460
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: NiceBaseFilterViewComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "filterViewService", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewService, static: true }, { propertyName: "filterViewQuery", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewQuery, static: true }, { propertyName: "queryParams", first: true, predicate: NiceFilterQueryParamsDirective, descendants: true, static: true }, { propertyName: "advancedFiltersButton", first: true, predicate: NiceAdvancedFiltersButtonComponent, descendants: true, static: true }, { propertyName: "advancedFilters", first: true, predicate: NiceAdvancedFiltersComponent, descendants: true, static: true }, { propertyName: "selectableListDirective", first: true, predicate: NiceSelectableListDirective, descendants: true, static: true }], ngImport: i0, template: ``, isInline: true }); }
|
|
5461
5461
|
}
|
|
5462
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5462
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceBaseFilterViewComponent, decorators: [{
|
|
5463
5463
|
type: Component,
|
|
5464
5464
|
args: [{
|
|
5465
5465
|
template: ``,
|
|
@@ -5524,8 +5524,8 @@ class NiceFilterViewModule {
|
|
|
5524
5524
|
}
|
|
5525
5525
|
].filter(x => !!x);
|
|
5526
5526
|
}
|
|
5527
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5528
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
5527
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5528
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewModule, declarations: [NiceFilterViewComponent,
|
|
5529
5529
|
NiceFilterCustomDataViewComponent,
|
|
5530
5530
|
NiceFilterExportButtonsComponent,
|
|
5531
5531
|
NiceFilterInfiniteScrollDataViewComponent,
|
|
@@ -5555,7 +5555,7 @@ class NiceFilterViewModule {
|
|
|
5555
5555
|
NiceFilterMatSortSortingDirective,
|
|
5556
5556
|
NiceFilterMatPaginatorPaginationDirective,
|
|
5557
5557
|
NiceFilterQueryParamsDirective] }); }
|
|
5558
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5558
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewModule, imports: [TranslateModule,
|
|
5559
5559
|
MatIconModule,
|
|
5560
5560
|
FormsModule,
|
|
5561
5561
|
MatTooltipModule,
|
|
@@ -5563,7 +5563,7 @@ class NiceFilterViewModule {
|
|
|
5563
5563
|
MatBottomSheetModule,
|
|
5564
5564
|
NiceExportBottomSheetModule] }); }
|
|
5565
5565
|
}
|
|
5566
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5566
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceFilterViewModule, decorators: [{
|
|
5567
5567
|
type: NgModule,
|
|
5568
5568
|
args: [{
|
|
5569
5569
|
imports: [
|
|
@@ -5609,10 +5609,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5609
5609
|
}] });
|
|
5610
5610
|
|
|
5611
5611
|
class NicePreloadSelectedEntitiesProvider {
|
|
5612
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5613
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5612
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NicePreloadSelectedEntitiesProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5613
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NicePreloadSelectedEntitiesProvider }); }
|
|
5614
5614
|
}
|
|
5615
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5615
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NicePreloadSelectedEntitiesProvider, decorators: [{
|
|
5616
5616
|
type: Injectable
|
|
5617
5617
|
}] });
|
|
5618
5618
|
|
|
@@ -5638,10 +5638,10 @@ class NiceSelectableListSelectAllDirective {
|
|
|
5638
5638
|
this.selectableListStateService.unselectAll();
|
|
5639
5639
|
}
|
|
5640
5640
|
}
|
|
5641
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5642
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5641
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListSelectAllDirective, deps: [{ token: NiceFilterViewQuery, optional: true }, { token: NiceSelectableListContentService }, { token: NiceSelectableListService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5642
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceSelectableListSelectAllDirective, isStandalone: false, selector: "button[niceSelectableListSelectAll]", inputs: { action: "action" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
|
|
5643
5643
|
}
|
|
5644
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5644
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListSelectAllDirective, decorators: [{
|
|
5645
5645
|
type: Directive,
|
|
5646
5646
|
args: [{
|
|
5647
5647
|
selector: "button[niceSelectableListSelectAll]",
|
|
@@ -5690,10 +5690,10 @@ class NiceSelectableListIsEmptyDirective {
|
|
|
5690
5690
|
this.unsubscribeAll$.next();
|
|
5691
5691
|
this.unsubscribeAll$.complete();
|
|
5692
5692
|
}
|
|
5693
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5694
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5693
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListIsEmptyDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NiceSelectableListContentService }, { token: NiceSelectableListService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5694
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: NiceSelectableListIsEmptyDirective, isStandalone: false, selector: "[niceSelectableListIsEmpty]", ngImport: i0 }); }
|
|
5695
5695
|
}
|
|
5696
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5696
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListIsEmptyDirective, decorators: [{
|
|
5697
5697
|
type: Directive,
|
|
5698
5698
|
args: [{
|
|
5699
5699
|
selector: "[niceSelectableListIsEmpty]",
|
|
@@ -5712,11 +5712,11 @@ class NiceSelectableListModule {
|
|
|
5712
5712
|
}))
|
|
5713
5713
|
};
|
|
5714
5714
|
}
|
|
5715
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5716
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
5717
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5715
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5716
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListModule, declarations: [NiceSelectableListDirective, NiceSelectableListCheckboxDirective, NiceSelectableListSelectAllDirective, NiceSelectableListIsEmptyDirective], exports: [NiceSelectableListDirective, NiceSelectableListCheckboxDirective, NiceSelectableListSelectAllDirective, NiceSelectableListIsEmptyDirective] }); }
|
|
5717
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListModule }); }
|
|
5718
5718
|
}
|
|
5719
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5719
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: NiceSelectableListModule, decorators: [{
|
|
5720
5720
|
type: NgModule,
|
|
5721
5721
|
args: [{
|
|
5722
5722
|
imports: [],
|