@vality/matez 19.0.0 → 19.0.1-3162997.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.
- package/fesm2022/vality-matez.mjs +180 -43
- package/fesm2022/vality-matez.mjs.map +1 -1
- package/lib/components/filters/filters.module.d.ts +7 -8
- package/lib/components/input-field/input-field.component.d.ts +2 -1
- package/lib/components/table/components/table-info-bar/table-info-bar.component.d.ts +2 -2
- package/lib/index.d.ts +1 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/query-params/query-params.service.d.ts +2 -1
- package/lib/services/query-params/utils/index.d.ts +1 -0
- package/lib/services/query-params/utils/serialize-query-params.d.ts +4 -0
- package/lib/services/toast/index.d.ts +1 -0
- package/lib/services/toast/toast.component.d.ts +26 -0
- package/lib/services/toast/toast.service.d.ts +10 -0
- package/lib/types/extract-path-params.d.ts +3 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/utils/create-storage-value.d.ts +13 -9
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/operators/progress-to.d.ts +2 -1
- package/lib/utils/subscribe-return.d.ts +6 -0
- package/package.json +2 -2
- package/src/lib/components/file-upload/file-upload.component.scss +4 -0
- package/src/lib/components/filters/filters.component.scss +7 -6
- package/src/lib/components/table/components/table-info-bar/table-info-bar.component.scss +5 -1
- package/src/lib/services/toast/toast.component.scss +13 -0
- package/lib/services/query-params/utils/serialize-query-param.d.ts +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i1$1 from '@angular/common';
|
|
2
2
|
import { CommonModule, AsyncPipe, formatCurrency as formatCurrency$1, getCurrencySymbol, formatDate, NgClass } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { ChangeDetectionStrategy, Component, NgModule, Input, EventEmitter, booleanAttribute, Output, HostBinding, InjectionToken, Optional, Inject, Injectable, inject, Directive, input, numberAttribute, ChangeDetectorRef, DestroyRef, forwardRef, LOCALE_ID, model, runInInjectionContext,
|
|
4
|
+
import { ChangeDetectionStrategy, Component, NgModule, Input, EventEmitter, booleanAttribute, Output, HostBinding, InjectionToken, Optional, Inject, Injectable, inject, Directive, input, numberAttribute, isSignal, ChangeDetectorRef, DestroyRef, forwardRef, Injector, LOCALE_ID, model, runInInjectionContext, output, viewChild, computed, signal, ElementRef, ViewChild, ContentChild, TemplateRef, ViewEncapsulation, DEFAULT_CURRENCY_CODE, Pipe } from '@angular/core';
|
|
5
5
|
import * as i1$4 from '@angular/material/button';
|
|
6
6
|
import { MatButtonModule, MatIconButton, MatButton } from '@angular/material/button';
|
|
7
7
|
import * as i1$2 from '@angular/material/dialog';
|
|
@@ -18,7 +18,7 @@ import * as i1$3 from '@angular/forms';
|
|
|
18
18
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
19
19
|
import * as i6 from '@angular/material/badge';
|
|
20
20
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
21
|
-
import * as
|
|
21
|
+
import * as i3$2 from '@angular/material/card';
|
|
22
22
|
import { MatCardModule } from '@angular/material/card';
|
|
23
23
|
import * as i9 from '@angular/material/sort';
|
|
24
24
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
@@ -26,7 +26,7 @@ import * as i2$4 from '@angular/material/table';
|
|
|
26
26
|
import { MatTableDataSource, MatTable, MatColumnDef, MatCellDef, MatHeaderCellDef, MatFooterCellDef, MatTableModule, MatRow } from '@angular/material/table';
|
|
27
27
|
import * as i2$5 from '@angular/material/tooltip';
|
|
28
28
|
import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
|
|
29
|
-
import { random, get, difference, isEqual as isEqual$1, capitalize, lowerFirst, isArray } from 'lodash-es';
|
|
29
|
+
import { random, get, difference, isEqual as isEqual$1, capitalize, negate, isEmpty as isEmpty$1, lowerFirst, isArray } from 'lodash-es';
|
|
30
30
|
import * as i2$2 from '@angular/material/input';
|
|
31
31
|
import { MatInputModule } from '@angular/material/input';
|
|
32
32
|
import startCase from 'lodash-es/startCase';
|
|
@@ -67,14 +67,16 @@ import { MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/materia
|
|
|
67
67
|
import { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';
|
|
68
68
|
import { enGB } from 'date-fns/locale';
|
|
69
69
|
import { isEqual as isEqual$2, endOfDay, subDays, startOfDay, format, isValid, formatDistanceToNow } from 'date-fns';
|
|
70
|
-
import * as i3$
|
|
70
|
+
import * as i3$3 from '@ng-matero/extensions/select';
|
|
71
71
|
import { MtxSelectModule } from '@ng-matero/extensions/select';
|
|
72
72
|
import * as i5 from '@angular/material/autocomplete';
|
|
73
73
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
74
74
|
import * as i1$7 from '@angular/common/http';
|
|
75
75
|
import * as i1$8 from '@angular/material/snack-bar';
|
|
76
|
-
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
77
|
-
import negate from 'lodash-es/negate';
|
|
76
|
+
import { MatSnackBarModule, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
|
|
77
|
+
import negate$1 from 'lodash-es/negate';
|
|
78
|
+
import * as i3$4 from '@angular/material/progress-spinner';
|
|
79
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
78
80
|
|
|
79
81
|
class ActionsComponent {
|
|
80
82
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -405,11 +407,16 @@ function splitBySeparators(ids, separators = SEPARATORS) {
|
|
|
405
407
|
.filter(Boolean);
|
|
406
408
|
}
|
|
407
409
|
|
|
408
|
-
function progressTo(
|
|
409
|
-
const
|
|
410
|
+
function progressTo(subjectSignal) {
|
|
411
|
+
const getSubjectSignal = () => isObservable(subjectSignal) || isSignal(subjectSignal) ? subjectSignal : subjectSignal();
|
|
410
412
|
return (src$) => defer(() => {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
+
const subSigRes = getSubjectSignal();
|
|
414
|
+
if (isSignal(subSigRes)) {
|
|
415
|
+
subSigRes.update((prev) => prev + 1);
|
|
416
|
+
return src$.pipe(finalize(() => subSigRes.update((prev) => prev - 1)));
|
|
417
|
+
}
|
|
418
|
+
subSigRes.next(subSigRes.getValue() + 1);
|
|
419
|
+
return src$.pipe(finalize(() => subSigRes.next(subSigRes.getValue() - 1)));
|
|
413
420
|
});
|
|
414
421
|
}
|
|
415
422
|
|
|
@@ -960,9 +967,11 @@ function DebounceTime(ms = 500) {
|
|
|
960
967
|
};
|
|
961
968
|
}
|
|
962
969
|
|
|
963
|
-
|
|
970
|
+
const DEFAULT_SERIALIZE = (v) => (v === null ? null : String(v));
|
|
971
|
+
function createStorageValue(key, { serialize = DEFAULT_SERIALIZE, deserialize, changed$ }) {
|
|
972
|
+
const injector = inject(Injector);
|
|
964
973
|
const value$ = fromEvent(document, 'storage').pipe(filter$1((v) => v.key === key), map$1((v) => v.newValue), startWith$1(localStorage.getItem(key)), map$1((v) => deserialize(v)), distinctUntilChanged$1(), shareReplay$1({ refCount: true, bufferSize: 1 }));
|
|
965
|
-
|
|
974
|
+
const value = {
|
|
966
975
|
get() {
|
|
967
976
|
return deserialize(localStorage.getItem(key));
|
|
968
977
|
},
|
|
@@ -976,6 +985,53 @@ function createStorageValue(key, { serialize = (v) => (v === null ? null : Strin
|
|
|
976
985
|
value$,
|
|
977
986
|
value: toSignal(value$, { injector }),
|
|
978
987
|
};
|
|
988
|
+
if (changed$) {
|
|
989
|
+
changed$.pipe(takeUntilDestroyed(inject(DestroyRef))).subscribe((v) => {
|
|
990
|
+
value.set(v);
|
|
991
|
+
});
|
|
992
|
+
}
|
|
993
|
+
return value;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
function subscribeReturn(observable$, subscription = {}) {
|
|
997
|
+
const externalSubscription = {};
|
|
998
|
+
observable$.subscribe({
|
|
999
|
+
next: (value) => {
|
|
1000
|
+
if (subscription.next) {
|
|
1001
|
+
subscription.next(value);
|
|
1002
|
+
}
|
|
1003
|
+
if (externalSubscription.next) {
|
|
1004
|
+
externalSubscription.next(value);
|
|
1005
|
+
}
|
|
1006
|
+
},
|
|
1007
|
+
error: (err) => {
|
|
1008
|
+
if (subscription.error) {
|
|
1009
|
+
subscription.error(err);
|
|
1010
|
+
}
|
|
1011
|
+
if (externalSubscription.error) {
|
|
1012
|
+
externalSubscription.error(err);
|
|
1013
|
+
}
|
|
1014
|
+
},
|
|
1015
|
+
complete: () => {
|
|
1016
|
+
if (subscription.complete) {
|
|
1017
|
+
subscription.complete();
|
|
1018
|
+
}
|
|
1019
|
+
if (externalSubscription.complete) {
|
|
1020
|
+
externalSubscription.complete();
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
});
|
|
1024
|
+
return {
|
|
1025
|
+
next: (nextFn) => {
|
|
1026
|
+
externalSubscription.next = nextFn;
|
|
1027
|
+
},
|
|
1028
|
+
error: (errorFn) => {
|
|
1029
|
+
externalSubscription.error = errorFn;
|
|
1030
|
+
},
|
|
1031
|
+
complete: (completeFn) => {
|
|
1032
|
+
externalSubscription.complete = completeFn;
|
|
1033
|
+
},
|
|
1034
|
+
};
|
|
979
1035
|
}
|
|
980
1036
|
|
|
981
1037
|
class InputFieldComponent extends FormControlSuperclass {
|
|
@@ -986,13 +1042,14 @@ class InputFieldComponent extends FormControlSuperclass {
|
|
|
986
1042
|
this.appearance = 'fill';
|
|
987
1043
|
this.cleanButton = input(false, { transform: booleanAttribute });
|
|
988
1044
|
this.icon = input();
|
|
1045
|
+
this.hintText = input();
|
|
989
1046
|
}
|
|
990
1047
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: InputFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
991
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: InputFieldComponent, isStandalone: false, selector: "v-input-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, cleanButton: { classPropertyName: "cleanButton", publicName: "cleanButton", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, providers: createControlProviders(() => InputFieldComponent), usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [appearance]=\"appearance\"\n [ngClass]=\"{\n 'v-input-field__small': size === 'small',\n 'v-input-field__outline': appearance === 'outline',\n }\"\n class=\"v-input-field\"\n>\n @if (icon()) {\n <div class=\"prefix\" matPrefix>\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <mat-label>{{ label }}</mat-label>\n <input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n autocomplete=\"false\"\n matInput\n />\n <div class=\"postfix\" matSuffix>\n @if (cleanButton()) {\n <button\n [disabled]=\"!control.value\"\n [style.visibility]=\"control.value ? '' : 'hidden'\"\n mat-icon-button\n (click)=\"control.reset()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n }\n </div>\n</mat-form-field>\n", styles: [".v-input-field .postfix{white-space:nowrap}.v-input-field__small ::ng-deep .mat-icon{transform:scale(.75)!important}.v-input-field__outline .postfix{padding-right:4px}.v-input-field__outline .prefix{padding-left:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
|
|
1048
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: InputFieldComponent, isStandalone: false, selector: "v-input-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, cleanButton: { classPropertyName: "cleanButton", publicName: "cleanButton", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, hintText: { classPropertyName: "hintText", publicName: "hintText", isSignal: true, isRequired: false, transformFunction: null } }, providers: createControlProviders(() => InputFieldComponent), usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [appearance]=\"appearance\"\n [ngClass]=\"{\n 'v-input-field__small': size === 'small',\n 'v-input-field__outline': appearance === 'outline',\n }\"\n class=\"v-input-field\"\n>\n @if (icon()) {\n <div class=\"prefix\" matPrefix>\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <mat-label>{{ label }}</mat-label>\n <input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n autocomplete=\"false\"\n matInput\n />\n <div class=\"postfix\" matSuffix>\n @if (cleanButton()) {\n <button\n [disabled]=\"!control.value\"\n [style.visibility]=\"control.value ? '' : 'hidden'\"\n mat-icon-button\n (click)=\"control.reset()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n }\n </div>\n @if (hintText()) {\n <mat-hint>{{ hintText() }}</mat-hint>\n }\n</mat-form-field>\n", styles: [".v-input-field .postfix{white-space:nowrap}.v-input-field__small ::ng-deep .mat-icon{transform:scale(.75)!important}.v-input-field__outline .postfix{padding-right:4px}.v-input-field__outline .prefix{padding-left:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
|
|
992
1049
|
}
|
|
993
1050
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: InputFieldComponent, decorators: [{
|
|
994
1051
|
type: Component,
|
|
995
|
-
args: [{ selector: 'v-input-field', providers: createControlProviders(() => InputFieldComponent), standalone: false, template: "<mat-form-field\n [appearance]=\"appearance\"\n [ngClass]=\"{\n 'v-input-field__small': size === 'small',\n 'v-input-field__outline': appearance === 'outline',\n }\"\n class=\"v-input-field\"\n>\n @if (icon()) {\n <div class=\"prefix\" matPrefix>\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <mat-label>{{ label }}</mat-label>\n <input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n autocomplete=\"false\"\n matInput\n />\n <div class=\"postfix\" matSuffix>\n @if (cleanButton()) {\n <button\n [disabled]=\"!control.value\"\n [style.visibility]=\"control.value ? '' : 'hidden'\"\n mat-icon-button\n (click)=\"control.reset()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n }\n </div>\n</mat-form-field>\n", styles: [".v-input-field .postfix{white-space:nowrap}.v-input-field__small ::ng-deep .mat-icon{transform:scale(.75)!important}.v-input-field__outline .postfix{padding-right:4px}.v-input-field__outline .prefix{padding-left:4px}\n"] }]
|
|
1052
|
+
args: [{ selector: 'v-input-field', providers: createControlProviders(() => InputFieldComponent), standalone: false, template: "<mat-form-field\n [appearance]=\"appearance\"\n [ngClass]=\"{\n 'v-input-field__small': size === 'small',\n 'v-input-field__outline': appearance === 'outline',\n }\"\n class=\"v-input-field\"\n>\n @if (icon()) {\n <div class=\"prefix\" matPrefix>\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <mat-label>{{ label }}</mat-label>\n <input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n autocomplete=\"false\"\n matInput\n />\n <div class=\"postfix\" matSuffix>\n @if (cleanButton()) {\n <button\n [disabled]=\"!control.value\"\n [style.visibility]=\"control.value ? '' : 'hidden'\"\n mat-icon-button\n (click)=\"control.reset()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n }\n </div>\n @if (hintText()) {\n <mat-hint>{{ hintText() }}</mat-hint>\n }\n</mat-form-field>\n", styles: [".v-input-field .postfix{white-space:nowrap}.v-input-field__small ::ng-deep .mat-icon{transform:scale(.75)!important}.v-input-field__outline .postfix{padding-right:4px}.v-input-field__outline .prefix{padding-left:4px}\n"] }]
|
|
996
1053
|
}], propDecorators: { label: [{
|
|
997
1054
|
type: Input
|
|
998
1055
|
}], placeholder: [{
|
|
@@ -1869,10 +1926,10 @@ class TableInfoBarComponent {
|
|
|
1869
1926
|
this.filteredCount = input(0);
|
|
1870
1927
|
this.selectedCount = input(0);
|
|
1871
1928
|
this.filter = input('');
|
|
1872
|
-
this.standaloneFilter = input(false, { transform: booleanAttribute });
|
|
1873
|
-
this.hasInputs = input(false, { transform: booleanAttribute });
|
|
1874
1929
|
this.filterChange = output();
|
|
1875
1930
|
this.filterControl = new FormControl('', { nonNullable: true });
|
|
1931
|
+
this.standaloneFilter = input(false, { transform: booleanAttribute });
|
|
1932
|
+
this.hasInputs = input(false, { transform: booleanAttribute });
|
|
1876
1933
|
this.downloadCsv = output();
|
|
1877
1934
|
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
1878
1935
|
this.load = output();
|
|
@@ -1891,13 +1948,16 @@ class TableInfoBarComponent {
|
|
|
1891
1948
|
this.filterControl.valueChanges.pipe(takeUntilDestroyed(this.dr)).subscribe((v) => {
|
|
1892
1949
|
this.filterChange.emit(v);
|
|
1893
1950
|
});
|
|
1951
|
+
if (this.filterControl.value !== this.filter()) {
|
|
1952
|
+
this.filterControl.setValue(this.filter(), { emitEvent: false });
|
|
1953
|
+
}
|
|
1894
1954
|
}
|
|
1895
1955
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: TableInfoBarComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1896
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: TableInfoBarComponent, isStandalone: false, selector: "v-table-info-bar", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, hasMore: { classPropertyName: "hasMore", publicName: "hasMore", isSignal: true, isRequired: false, transformFunction: null }, hasLoad: { classPropertyName: "hasLoad", publicName: "hasLoad", isSignal: true, isRequired: false, transformFunction: null }, isPreload: { classPropertyName: "isPreload", publicName: "isPreload", isSignal: true, isRequired: false, transformFunction: null }, noDownload: { classPropertyName: "noDownload", publicName: "noDownload", isSignal: true, isRequired: false, transformFunction: null }, noToolbar: { classPropertyName: "noToolbar", publicName: "noToolbar", isSignal: true, isRequired: false, transformFunction: null }, dataProgress: { classPropertyName: "dataProgress", publicName: "dataProgress", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, preloadSize: { classPropertyName: "preloadSize", publicName: "preloadSize", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, filteredCount: { classPropertyName: "filteredCount", publicName: "filteredCount", isSignal: true, isRequired: false, transformFunction: null }, selectedCount: { classPropertyName: "selectedCount", publicName: "selectedCount", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, standaloneFilter: { classPropertyName: "standaloneFilter", publicName: "standaloneFilter", isSignal: true, isRequired: false, transformFunction: null }, hasInputs: { classPropertyName: "hasInputs", publicName: "hasInputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterChange: "filterChange", downloadCsv: "downloadCsv", load: "load", preload: "preload" }, ngImport: i0, template: "<div class=\"wrapper\">\n @if (standaloneFilter()) {\n <div class=\"header-wrapper\">\n @if (hasInputs()) {\n <ng-content select=\"v-table-inputs\"></ng-content>\n }\n <v-input-field
|
|
1956
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: TableInfoBarComponent, isStandalone: false, selector: "v-table-info-bar", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, hasMore: { classPropertyName: "hasMore", publicName: "hasMore", isSignal: true, isRequired: false, transformFunction: null }, hasLoad: { classPropertyName: "hasLoad", publicName: "hasLoad", isSignal: true, isRequired: false, transformFunction: null }, isPreload: { classPropertyName: "isPreload", publicName: "isPreload", isSignal: true, isRequired: false, transformFunction: null }, noDownload: { classPropertyName: "noDownload", publicName: "noDownload", isSignal: true, isRequired: false, transformFunction: null }, noToolbar: { classPropertyName: "noToolbar", publicName: "noToolbar", isSignal: true, isRequired: false, transformFunction: null }, dataProgress: { classPropertyName: "dataProgress", publicName: "dataProgress", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, preloadSize: { classPropertyName: "preloadSize", publicName: "preloadSize", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, filteredCount: { classPropertyName: "filteredCount", publicName: "filteredCount", isSignal: true, isRequired: false, transformFunction: null }, selectedCount: { classPropertyName: "selectedCount", publicName: "selectedCount", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, standaloneFilter: { classPropertyName: "standaloneFilter", publicName: "standaloneFilter", isSignal: true, isRequired: false, transformFunction: null }, hasInputs: { classPropertyName: "hasInputs", publicName: "hasInputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterChange: "filterChange", downloadCsv: "downloadCsv", load: "load", preload: "preload" }, ngImport: i0, template: "<div class=\"wrapper\">\n @if (standaloneFilter()) {\n <div class=\"header-wrapper\">\n @if (hasInputs()) {\n <ng-content select=\"v-table-inputs\"></ng-content>\n }\n <v-input-field [formControl]=\"filterControl\" cleanButton label=\"Search\"></v-input-field>\n </div>\n }\n <v-actions>\n <v-actions>\n @if (!noToolbar()) {\n @if (!standaloneFilter()) {\n <div>\n <v-input-field\n [formControl]=\"filterControl\"\n appearance=\"outline\"\n class=\"filter filter__extended\"\n cleanButton\n icon=\"manage_search\"\n label=\"Search\"\n size=\"small\"\n ></v-input-field>\n </div>\n }\n <div class=\"details\">\n @if (hasLoad() || hasMore()) {\n <button\n [disabled]=\"progress() || !hasMore()\"\n mat-icon-button\n matTooltip=\"Preload {{ preloadSize() }}{{\n isPreload() && hasMore() ? ' more' : ''\n }} elements\"\n (click)=\"preload.emit()\"\n >\n <mat-icon>\n {{\n hasMore()\n ? isPreload()\n ? 'downloading'\n : 'download'\n : 'download_done'\n }}\n </mat-icon>\n </button>\n }\n @if (!noDownload()) {\n <button\n [disabled]=\"progress() || !count()\"\n mat-icon-button\n matTooltip=\"Download CSV\"\n (click)=\"downloadCsv.emit()\"\n >\n <mat-icon>file_save</mat-icon>\n </button>\n }\n <!-- <button mat-icon-button matTooltip=\"Customize table\" (click)=\"tune()\">\n <mat-icon>tune</mat-icon>\n </button> -->\n </div>\n }\n <div\n [matBadge]=\"selectedCount() || ''\"\n [matBadgeDisabled]=\"progress() || dataProgress()\"\n [matTooltip]=\"\n dataProgress()\n ? 'Preparing data for sorting, filtering and downloading...'\n : progress()\n ? 'Loading...'\n : hasLoad()\n ? 'Reload ' + size() + ' elements'\n : ''\n \"\n class=\"count\"\n (click)=\"hasLoad() ? load.emit() : undefined\"\n >\n <v-tag\n [icon]=\"hasLoad() ? 'refresh' : undefined\"\n [progress]=\"progress() || dataProgress()\"\n >\n {{ countText() }}\n </v-tag>\n </div>\n </v-actions>\n <v-actions>\n <ng-content></ng-content>\n </v-actions>\n </v-actions>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;gap:24px}.inputs{display:none}.inputs:not(:empty){display:block}.header-wrapper{display:flex;gap:16px}::ng-deep .header-wrapper>*{flex:1}.header-wrapper ::ng-deep .mat-mdc-form-field-subscript-wrapper{height:0}.details{display:flex;align-items:center}.details ::ng-deep button{margin:-6px 0}.count{align-self:anchor-center}.filter__extended{max-width:200px}.filter ::ng-deep .mat-mdc-form-field-subscript-wrapper{height:0}\n"], dependencies: [{ kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: InputFieldComponent, selector: "v-input-field", inputs: ["label", "placeholder", "type", "appearance", "size", "cleanButton", "icon", "hintText"] }, { kind: "component", type: ActionsComponent, selector: "v-actions" }, { kind: "directive", type: i6.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: TagComponent, selector: "v-tag", inputs: ["color", "icon", "progress"] }] }); }
|
|
1897
1957
|
}
|
|
1898
1958
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: TableInfoBarComponent, decorators: [{
|
|
1899
1959
|
type: Component,
|
|
1900
|
-
args: [{ selector: 'v-table-info-bar', standalone: false, template: "<div class=\"wrapper\">\n @if (standaloneFilter()) {\n <div class=\"header-wrapper\">\n @if (hasInputs()) {\n <ng-content select=\"v-table-inputs\"></ng-content>\n }\n <v-input-field
|
|
1960
|
+
args: [{ selector: 'v-table-info-bar', standalone: false, template: "<div class=\"wrapper\">\n @if (standaloneFilter()) {\n <div class=\"header-wrapper\">\n @if (hasInputs()) {\n <ng-content select=\"v-table-inputs\"></ng-content>\n }\n <v-input-field [formControl]=\"filterControl\" cleanButton label=\"Search\"></v-input-field>\n </div>\n }\n <v-actions>\n <v-actions>\n @if (!noToolbar()) {\n @if (!standaloneFilter()) {\n <div>\n <v-input-field\n [formControl]=\"filterControl\"\n appearance=\"outline\"\n class=\"filter filter__extended\"\n cleanButton\n icon=\"manage_search\"\n label=\"Search\"\n size=\"small\"\n ></v-input-field>\n </div>\n }\n <div class=\"details\">\n @if (hasLoad() || hasMore()) {\n <button\n [disabled]=\"progress() || !hasMore()\"\n mat-icon-button\n matTooltip=\"Preload {{ preloadSize() }}{{\n isPreload() && hasMore() ? ' more' : ''\n }} elements\"\n (click)=\"preload.emit()\"\n >\n <mat-icon>\n {{\n hasMore()\n ? isPreload()\n ? 'downloading'\n : 'download'\n : 'download_done'\n }}\n </mat-icon>\n </button>\n }\n @if (!noDownload()) {\n <button\n [disabled]=\"progress() || !count()\"\n mat-icon-button\n matTooltip=\"Download CSV\"\n (click)=\"downloadCsv.emit()\"\n >\n <mat-icon>file_save</mat-icon>\n </button>\n }\n <!-- <button mat-icon-button matTooltip=\"Customize table\" (click)=\"tune()\">\n <mat-icon>tune</mat-icon>\n </button> -->\n </div>\n }\n <div\n [matBadge]=\"selectedCount() || ''\"\n [matBadgeDisabled]=\"progress() || dataProgress()\"\n [matTooltip]=\"\n dataProgress()\n ? 'Preparing data for sorting, filtering and downloading...'\n : progress()\n ? 'Loading...'\n : hasLoad()\n ? 'Reload ' + size() + ' elements'\n : ''\n \"\n class=\"count\"\n (click)=\"hasLoad() ? load.emit() : undefined\"\n >\n <v-tag\n [icon]=\"hasLoad() ? 'refresh' : undefined\"\n [progress]=\"progress() || dataProgress()\"\n >\n {{ countText() }}\n </v-tag>\n </div>\n </v-actions>\n <v-actions>\n <ng-content></ng-content>\n </v-actions>\n </v-actions>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;gap:24px}.inputs{display:none}.inputs:not(:empty){display:block}.header-wrapper{display:flex;gap:16px}::ng-deep .header-wrapper>*{flex:1}.header-wrapper ::ng-deep .mat-mdc-form-field-subscript-wrapper{height:0}.details{display:flex;align-items:center}.details ::ng-deep button{margin:-6px 0}.count{align-self:anchor-center}.filter__extended{max-width:200px}.filter ::ng-deep .mat-mdc-form-field-subscript-wrapper{height:0}\n"] }]
|
|
1901
1961
|
}], ctorParameters: () => [{ type: i0.DestroyRef }] });
|
|
1902
1962
|
|
|
1903
1963
|
class TableComponent {
|
|
@@ -2128,7 +2188,7 @@ class TableComponent {
|
|
|
2128
2188
|
}
|
|
2129
2189
|
}
|
|
2130
2190
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: TableComponent, deps: [{ token: i0.DestroyRef }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2131
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: TableComponent, isStandalone: false, selector: "v-table", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, treeData: { classPropertyName: "treeData", publicName: "treeData", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, hasMore: { classPropertyName: "hasMore", publicName: "hasMore", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, noDownload: { classPropertyName: "noDownload", publicName: "noDownload", isSignal: true, isRequired: false, transformFunction: null }, noToolbar: { classPropertyName: "noToolbar", publicName: "noToolbar", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, standaloneFilter: { classPropertyName: "standaloneFilter", publicName: "standaloneFilter", isSignal: true, isRequired: false, transformFunction: null }, externalFilter: { classPropertyName: "externalFilter", publicName: "externalFilter", isSignal: true, isRequired: false, transformFunction: null }, rowSelectable: { classPropertyName: "rowSelectable", publicName: "rowSelectable", isSignal: true, isRequired: false, transformFunction: null }, rowSelected: { classPropertyName: "rowSelected", publicName: "rowSelected", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, rowDragDrop: { classPropertyName: "rowDragDrop", publicName: "rowDragDrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filter: "filterChange", rowSelected: "rowSelectedChange", sort: "sortChange", rowDropped: "rowDropped", update: "update", more: "more" }, queries: [{ propertyName: "tableInputsContent", first: true, predicate: TableInputsComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "sortComponent", first: true, predicate: MatSort, descendants: true }, { propertyName: "scrollViewport", first: true, predicate: ["scrollViewport"], descendants: true, read: ElementRef }, { propertyName: "table", first: true, predicate: ["matTable"], descendants: true }, { propertyName: "tableRow", first: true, predicate: MatRow, descendants: true }], ngImport: i0, template: "@let columnsData = columnsData$$ | async;\n\n<div class=\"wrapper\">\n <v-table-info-bar\n [(filter)]=\"filter\"\n [columns]=\"normColumns()\"\n [count]=\"(dataSource.data$ | async)?.length\"\n [dataProgress]=\"!!(columnsDataProgress$ | async) && !hasMore()\"\n [filteredCount]=\"displayedCount$ | async\"\n [hasInputs]=\"!!tableInputsContent?.nativeElement\"\n [hasLoad]=\"update$.observed\"\n [hasMore]=\"hasMore()\"\n [isPreload]=\"isPreload()\"\n [noDownload]=\"noDownload()\"\n [noToolbar]=\"noToolbar()\"\n [preloadSize]=\"maxSize()\"\n [progress]=\"progress()\"\n [selectedCount]=\"rowSelected()?.length\"\n [size]=\"size()\"\n [standaloneFilter]=\"standaloneFilter()\"\n (downloadCsv)=\"downloadCsv()\"\n (load)=\"load()\"\n (preload)=\"preload()\"\n >\n <ng-content select=\"v-table-actions\"></ng-content>\n <v-table-inputs><ng-content select=\"v-table-inputs\"></ng-content></v-table-inputs>\n </v-table-info-bar>\n <mat-card #scrollViewport class=\"card\">\n <v-no-records\n [noRecords]=\"!(displayedCount$ | async)\"\n [progress]=\"progress()\"\n ></v-no-records>\n <table\n #matTable\n [cdkDropListDisabled]=\"dragDisabled\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"(columnsDataProgress$ | async) || progress() ? '' : sort().active\"\n [matSortDirection]=\"sort().direction\"\n cdkDropList\n cdkDropListData=\"dataSource\"\n mat-table\n matSort\n (cdkDropListDropped)=\"drop($event)\"\n (matSortChange)=\"sort.set($event)\"\n >\n @let displayedColumns = (displayedColumns$ | async) || [];\n\n @if (displayedColumns.includes(columnDefs.drag)) {\n <v-dnd-column\n [name]=\"columnDefs.drag\"\n (dragged)=\"dragDisabled = false\"\n ></v-dnd-column>\n }\n @if (displayedColumns.includes(columnDefs.select)) {\n <v-select-column\n [(selected)]=\"rowSelected\"\n [data]=\"displayedData$ | async\"\n [name]=\"columnDefs.select\"\n [progress]=\"progress()\"\n ></v-select-column>\n }\n @for (col of displayedNormColumns$ | async; track col; let colIndex = $index) {\n @let stickyStart = col.params.sticky === 'start';\n @let stickyEnd = col.params.sticky === 'end';\n @let columnClasses =\n {\n column: true,\n 'column__sticky-start': stickyStart,\n 'column__sticky-end': stickyEnd,\n };\n <ng-container\n [matColumnDef]=\"col.field\"\n [sticky]=\"stickyStart\"\n [stickyEnd]=\"stickyEnd\"\n >\n <th\n *matHeaderCellDef\n [disabled]=\"(col.sort | async) === false || hasMore() || progress()\"\n [mat-sort-header]=\"col.field\"\n [ngClass]=\"columnClasses\"\n mat-header-cell\n >\n <v-value [value]=\"col?.header | async\" emptySymbol=\"\" inline></v-value>\n </th>\n\n <ng-template let-element let-rowIndex=\"index\" matCellDef>\n @let cell = columnsData?.get?.(element)?.get(col);\n <td\n [ngClass]=\"columnClasses\"\n [ngStyle]=\"col?.params?.style\"\n [style.border-bottom]=\"cell?.isNextChild && !col.child ? 'none' : ''\"\n mat-cell\n >\n <v-value\n [emptySymbol]=\"!(cell?.isChild && !col?.child)\"\n [highlight]=\"filter$ | async\"\n [lazyValue]=\"cell?.lazyValue\"\n [lazyVisible]=\"loadedLazyItems.has(element)\"\n [value]=\"cell?.value | async\"\n inline\n (lazyVisibleChange)=\"loadedLazyItems.set(element, true)\"\n ></v-value>\n </td>\n </ng-template>\n <td *matFooterCellDef [ngClass]=\"columnClasses\" mat-footer-cell>\n <v-content-loading></v-content-loading>\n </td>\n </ng-container>\n }\n\n <tr *matHeaderRowDef=\"displayedColumns$ | async; sticky: true\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: displayedColumns$ | async\"\n [cdkDragData]=\"row\"\n cdkDrag\n mat-row\n ></tr>\n <tr\n *matFooterRowDef=\"displayedColumns$ | async\"\n [ngClass]=\"{ row__hidden: !(hasAutoShowMore$ | async) || !tableRow }\"\n [vInfinityScroll]=\"!progress()\"\n mat-footer-row\n (vInfinityScrollMore)=\"showMore()\"\n ></tr>\n </table>\n </mat-card>\n</div>\n", styles: [":host{min-height:0}.wrapper{display:grid;grid-template-columns:1fr;grid-template-rows:max-content;gap:24px;height:100%}.wrapper .card{width:100%;height:100%;min-height:300px;overflow:auto;transform:translateZ(0)}.wrapper .card ::ng-deep .mdc-data-table__row:last-child .mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, .12))!important;border-bottom-width:var(--mat-table-row-item-outline-width, 1px)!important;border-bottom-style:solid!important}table ::ng-deep .cdk-drag-placeholder,::ng-deep .cdk-drag-preview ::ng-deep .cdk-drag-placeholder{background:#eee}table .column,::ng-deep .cdk-drag-preview .column{max-width:max(20px,30vw)}table .column__sticky-start,table .column__sticky-end,::ng-deep .cdk-drag-preview .column__sticky-start,::ng-deep .cdk-drag-preview .column__sticky-end{width:0}table .column__sticky-start,::ng-deep .cdk-drag-preview .column__sticky-start{border-right:1px solid}table .column__sticky-end,::ng-deep .cdk-drag-preview .column__sticky-end{border-left:1px solid}table .row__hidden,::ng-deep .cdk-drag-preview .row__hidden{display:none}::ng-deep .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff!important;display:flex!important;align-items:center}::ng-deep .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .cdk-drop-list-dragging ::ng-deep .mat-mdc-row:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .cdk-drag-preview ::ng-deep td{border:none!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$4.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i2$4.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i2$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i2$4.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i2$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i2$4.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: ValueComponent, selector: "v-value", inputs: ["value", "lazyValue", "lazyVisible", "progress", "inline", "emptySymbol", "highlight"], outputs: ["lazyVisibleChange"] }, { kind: "component", type: NoRecordsComponent, selector: "v-no-records", inputs: ["noRecords", "progress"] }, { kind: "component", type: ContentLoadingComponent, selector: "v-content-loading", inputs: ["width", "textSize", "hiddenText"] }, { kind: "directive", type: InfinityScrollDirective, selector: "[vInfinityScroll]", inputs: ["vInfinityScroll"], outputs: ["vInfinityScrollMore"] }, { kind: "component", type: SelectColumnComponent, selector: "v-select-column", inputs: ["selected", "data", "progress"], outputs: ["selectedChange"] }, { kind: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i10.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i10.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: DndColumnComponent, selector: "v-dnd-column", outputs: ["dragged"] }, { kind: "component", type: TableInfoBarComponent, selector: "v-table-info-bar", inputs: ["progress", "hasMore", "hasLoad", "isPreload", "noDownload", "noToolbar", "dataProgress", "columns", "size", "preloadSize", "count", "filteredCount", "selectedCount", "filter", "standaloneFilter", "hasInputs"], outputs: ["filterChange", "downloadCsv", "load", "preload"] }, { kind: "component", type: TableInputsComponent, selector: "v-table-inputs" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2191
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: TableComponent, isStandalone: false, selector: "v-table", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, treeData: { classPropertyName: "treeData", publicName: "treeData", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, hasMore: { classPropertyName: "hasMore", publicName: "hasMore", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, noDownload: { classPropertyName: "noDownload", publicName: "noDownload", isSignal: true, isRequired: false, transformFunction: null }, noToolbar: { classPropertyName: "noToolbar", publicName: "noToolbar", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, standaloneFilter: { classPropertyName: "standaloneFilter", publicName: "standaloneFilter", isSignal: true, isRequired: false, transformFunction: null }, externalFilter: { classPropertyName: "externalFilter", publicName: "externalFilter", isSignal: true, isRequired: false, transformFunction: null }, rowSelectable: { classPropertyName: "rowSelectable", publicName: "rowSelectable", isSignal: true, isRequired: false, transformFunction: null }, rowSelected: { classPropertyName: "rowSelected", publicName: "rowSelected", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, rowDragDrop: { classPropertyName: "rowDragDrop", publicName: "rowDragDrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filter: "filterChange", rowSelected: "rowSelectedChange", sort: "sortChange", rowDropped: "rowDropped", update: "update", more: "more" }, queries: [{ propertyName: "tableInputsContent", first: true, predicate: TableInputsComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "sortComponent", first: true, predicate: MatSort, descendants: true }, { propertyName: "scrollViewport", first: true, predicate: ["scrollViewport"], descendants: true, read: ElementRef }, { propertyName: "table", first: true, predicate: ["matTable"], descendants: true }, { propertyName: "tableRow", first: true, predicate: MatRow, descendants: true }], ngImport: i0, template: "@let columnsData = columnsData$$ | async;\n\n<div class=\"wrapper\">\n <v-table-info-bar\n [(filter)]=\"filter\"\n [columns]=\"normColumns()\"\n [count]=\"(dataSource.data$ | async)?.length\"\n [dataProgress]=\"!!(columnsDataProgress$ | async) && !hasMore()\"\n [filteredCount]=\"displayedCount$ | async\"\n [hasInputs]=\"!!tableInputsContent?.nativeElement\"\n [hasLoad]=\"update$.observed\"\n [hasMore]=\"hasMore()\"\n [isPreload]=\"isPreload()\"\n [noDownload]=\"noDownload()\"\n [noToolbar]=\"noToolbar()\"\n [preloadSize]=\"maxSize()\"\n [progress]=\"progress()\"\n [selectedCount]=\"rowSelected()?.length\"\n [size]=\"size()\"\n [standaloneFilter]=\"standaloneFilter()\"\n (downloadCsv)=\"downloadCsv()\"\n (load)=\"load()\"\n (preload)=\"preload()\"\n >\n <ng-content select=\"v-table-actions\"></ng-content>\n <v-table-inputs><ng-content select=\"v-table-inputs\"></ng-content></v-table-inputs>\n </v-table-info-bar>\n <mat-card #scrollViewport class=\"card\">\n <v-no-records\n [noRecords]=\"!(displayedCount$ | async)\"\n [progress]=\"progress()\"\n ></v-no-records>\n <table\n #matTable\n [cdkDropListDisabled]=\"dragDisabled\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"(columnsDataProgress$ | async) || progress() ? '' : sort().active\"\n [matSortDirection]=\"sort().direction\"\n cdkDropList\n cdkDropListData=\"dataSource\"\n mat-table\n matSort\n (cdkDropListDropped)=\"drop($event)\"\n (matSortChange)=\"sort.set($event)\"\n >\n @let displayedColumns = (displayedColumns$ | async) || [];\n\n @if (displayedColumns.includes(columnDefs.drag)) {\n <v-dnd-column\n [name]=\"columnDefs.drag\"\n (dragged)=\"dragDisabled = false\"\n ></v-dnd-column>\n }\n @if (displayedColumns.includes(columnDefs.select)) {\n <v-select-column\n [(selected)]=\"rowSelected\"\n [data]=\"displayedData$ | async\"\n [name]=\"columnDefs.select\"\n [progress]=\"progress()\"\n ></v-select-column>\n }\n @for (col of displayedNormColumns$ | async; track col; let colIndex = $index) {\n @let stickyStart = col.params.sticky === 'start';\n @let stickyEnd = col.params.sticky === 'end';\n @let columnClasses =\n {\n column: true,\n 'column__sticky-start': stickyStart,\n 'column__sticky-end': stickyEnd,\n };\n <ng-container\n [matColumnDef]=\"col.field\"\n [sticky]=\"stickyStart\"\n [stickyEnd]=\"stickyEnd\"\n >\n <th\n *matHeaderCellDef\n [disabled]=\"(col.sort | async) === false || hasMore() || progress()\"\n [mat-sort-header]=\"col.field\"\n [ngClass]=\"columnClasses\"\n mat-header-cell\n >\n <v-value [value]=\"col?.header | async\" emptySymbol=\"\" inline></v-value>\n </th>\n\n <ng-template let-element let-rowIndex=\"index\" matCellDef>\n @let cell = columnsData?.get?.(element)?.get(col);\n <td\n [ngClass]=\"columnClasses\"\n [ngStyle]=\"col?.params?.style\"\n [style.border-bottom]=\"cell?.isNextChild && !col.child ? 'none' : ''\"\n mat-cell\n >\n <v-value\n [emptySymbol]=\"!(cell?.isChild && !col?.child)\"\n [highlight]=\"filter$ | async\"\n [lazyValue]=\"cell?.lazyValue\"\n [lazyVisible]=\"loadedLazyItems.has(element)\"\n [value]=\"cell?.value | async\"\n inline\n (lazyVisibleChange)=\"loadedLazyItems.set(element, true)\"\n ></v-value>\n </td>\n </ng-template>\n <td *matFooterCellDef [ngClass]=\"columnClasses\" mat-footer-cell>\n <v-content-loading></v-content-loading>\n </td>\n </ng-container>\n }\n\n <tr *matHeaderRowDef=\"displayedColumns$ | async; sticky: true\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: displayedColumns$ | async\"\n [cdkDragData]=\"row\"\n cdkDrag\n mat-row\n ></tr>\n <tr\n *matFooterRowDef=\"displayedColumns$ | async\"\n [ngClass]=\"{ row__hidden: !(hasAutoShowMore$ | async) || !tableRow }\"\n [vInfinityScroll]=\"!progress()\"\n mat-footer-row\n (vInfinityScrollMore)=\"showMore()\"\n ></tr>\n </table>\n </mat-card>\n</div>\n", styles: [":host{min-height:0}.wrapper{display:grid;grid-template-columns:1fr;grid-template-rows:max-content;gap:24px;height:100%}.wrapper .card{width:100%;height:100%;min-height:300px;overflow:auto;transform:translateZ(0)}.wrapper .card ::ng-deep .mdc-data-table__row:last-child .mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, .12))!important;border-bottom-width:var(--mat-table-row-item-outline-width, 1px)!important;border-bottom-style:solid!important}table ::ng-deep .cdk-drag-placeholder,::ng-deep .cdk-drag-preview ::ng-deep .cdk-drag-placeholder{background:#eee}table .column,::ng-deep .cdk-drag-preview .column{max-width:max(20px,30vw)}table .column__sticky-start,table .column__sticky-end,::ng-deep .cdk-drag-preview .column__sticky-start,::ng-deep .cdk-drag-preview .column__sticky-end{width:0}table .column__sticky-start,::ng-deep .cdk-drag-preview .column__sticky-start{border-right:1px solid}table .column__sticky-end,::ng-deep .cdk-drag-preview .column__sticky-end{border-left:1px solid}table .row__hidden,::ng-deep .cdk-drag-preview .row__hidden{display:none}::ng-deep .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff!important;display:flex!important;align-items:center}::ng-deep .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .cdk-drop-list-dragging ::ng-deep .mat-mdc-row:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .cdk-drag-preview ::ng-deep td{border:none!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$4.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i2$4.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i2$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i2$4.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i2$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i2$4.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i3$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: ValueComponent, selector: "v-value", inputs: ["value", "lazyValue", "lazyVisible", "progress", "inline", "emptySymbol", "highlight"], outputs: ["lazyVisibleChange"] }, { kind: "component", type: NoRecordsComponent, selector: "v-no-records", inputs: ["noRecords", "progress"] }, { kind: "component", type: ContentLoadingComponent, selector: "v-content-loading", inputs: ["width", "textSize", "hiddenText"] }, { kind: "directive", type: InfinityScrollDirective, selector: "[vInfinityScroll]", inputs: ["vInfinityScroll"], outputs: ["vInfinityScrollMore"] }, { kind: "component", type: SelectColumnComponent, selector: "v-select-column", inputs: ["selected", "data", "progress"], outputs: ["selectedChange"] }, { kind: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i10.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i10.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: DndColumnComponent, selector: "v-dnd-column", outputs: ["dragged"] }, { kind: "component", type: TableInfoBarComponent, selector: "v-table-info-bar", inputs: ["progress", "hasMore", "hasLoad", "isPreload", "noDownload", "noToolbar", "dataProgress", "columns", "size", "preloadSize", "count", "filteredCount", "selectedCount", "filter", "standaloneFilter", "hasInputs"], outputs: ["filterChange", "downloadCsv", "load", "preload"] }, { kind: "component", type: TableInputsComponent, selector: "v-table-inputs" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2132
2192
|
}
|
|
2133
2193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: TableComponent, decorators: [{
|
|
2134
2194
|
type: Component,
|
|
@@ -2505,11 +2565,11 @@ class FiltersComponent {
|
|
|
2505
2565
|
this.dialog.open(FiltersDialogComponent, { filters: this });
|
|
2506
2566
|
}
|
|
2507
2567
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FiltersComponent, deps: [{ token: DialogService }, { token: i2$6.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2508
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.2", type: FiltersComponent, isStandalone: false, selector: "v-filters", inputs: { active: "active", merge: ["merge", "merge", booleanAttribute] }, outputs: { clear: "clear" }, queries: [{ propertyName: "filtersTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "otherFiltersDirective", first: true, predicate: OtherFiltersDirective, descendants: true, static: true }, { propertyName: "mainFiltersDirective", first: true, predicate: MainFiltersDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<
|
|
2568
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.2", type: FiltersComponent, isStandalone: false, selector: "v-filters", inputs: { active: "active", merge: ["merge", "merge", booleanAttribute] }, outputs: { clear: "clear" }, queries: [{ propertyName: "filtersTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "otherFiltersDirective", first: true, predicate: OtherFiltersDirective, descendants: true, static: true }, { propertyName: "mainFiltersDirective", first: true, predicate: MainFiltersDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div #content [ngClass]=\"['v-filters-cols-' + (repeat$ | async), 'filters']\">\n <ng-container *ngTemplateOutlet=\"mainFiltersTemplate\"></ng-container>\n</div>\n", styles: [".filters{display:flex;gap:8px}::ng-deep .filters>*{min-width:0;flex:1}.filters ::ng-deep .mat-mdc-form-field-subscript-wrapper{height:0}::ng-deep .v-filters-cols-1>*:nth-child(n+2){display:none}::ng-deep .v-filters-cols-2>*:nth-child(n+3){display:none}::ng-deep .v-filters-cols-3>*:nth-child(n+4){display:none}::ng-deep .v-filters-cols-4>*:nth-child(n+5){display:none}::ng-deep .v-filters-cols-5>*:nth-child(n+6){display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
|
|
2509
2569
|
}
|
|
2510
2570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FiltersComponent, decorators: [{
|
|
2511
2571
|
type: Component,
|
|
2512
|
-
args: [{ selector: 'v-filters', standalone: false, template: "<
|
|
2572
|
+
args: [{ selector: 'v-filters', standalone: false, template: "<div #content [ngClass]=\"['v-filters-cols-' + (repeat$ | async), 'filters']\">\n <ng-container *ngTemplateOutlet=\"mainFiltersTemplate\"></ng-container>\n</div>\n", styles: [".filters{display:flex;gap:8px}::ng-deep .filters>*{min-width:0;flex:1}.filters ::ng-deep .mat-mdc-form-field-subscript-wrapper{height:0}::ng-deep .v-filters-cols-1>*:nth-child(n+2){display:none}::ng-deep .v-filters-cols-2>*:nth-child(n+3){display:none}::ng-deep .v-filters-cols-3>*:nth-child(n+4){display:none}::ng-deep .v-filters-cols-4>*:nth-child(n+5){display:none}::ng-deep .v-filters-cols-5>*:nth-child(n+6){display:none}\n"] }]
|
|
2513
2573
|
}], ctorParameters: () => [{ type: DialogService }, { type: i2$6.BreakpointObserver }], propDecorators: { active: [{
|
|
2514
2574
|
type: Input
|
|
2515
2575
|
}], merge: [{
|
|
@@ -2549,7 +2609,6 @@ class FiltersModule {
|
|
|
2549
2609
|
FiltersDialogComponent,
|
|
2550
2610
|
OtherFiltersDirective,
|
|
2551
2611
|
MainFiltersDirective], imports: [CommonModule,
|
|
2552
|
-
MatCardModule,
|
|
2553
2612
|
MatButtonModule,
|
|
2554
2613
|
MatIconModule,
|
|
2555
2614
|
DialogModule,
|
|
@@ -2560,7 +2619,6 @@ class FiltersModule {
|
|
|
2560
2619
|
OtherFiltersDirective,
|
|
2561
2620
|
MainFiltersDirective] }); }
|
|
2562
2621
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FiltersModule, imports: [CommonModule,
|
|
2563
|
-
MatCardModule,
|
|
2564
2622
|
MatButtonModule,
|
|
2565
2623
|
MatIconModule,
|
|
2566
2624
|
DialogModule,
|
|
@@ -2586,7 +2644,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
|
|
|
2586
2644
|
],
|
|
2587
2645
|
imports: [
|
|
2588
2646
|
CommonModule,
|
|
2589
|
-
MatCardModule,
|
|
2590
2647
|
MatButtonModule,
|
|
2591
2648
|
MatIconModule,
|
|
2592
2649
|
DialogModule,
|
|
@@ -2836,7 +2893,7 @@ class SelectFieldComponent extends FormControlSuperclass {
|
|
|
2836
2893
|
});
|
|
2837
2894
|
}
|
|
2838
2895
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2839
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.2", type: SelectFieldComponent, isStandalone: false, selector: "v-select-field", inputs: { options: "options", appearance: "appearance", label: "label", hint: "hint", error: "error", progress: "progress", externalSearch: ["externalSearch", "externalSearch", booleanAttribute], multiple: ["multiple", "multiple", booleanAttribute], required: ["required", "required", booleanAttribute], size: "size" }, outputs: { searchChange: "searchChange" }, providers: createControlProviders(() => SelectFieldComponent), usesInheritance: true, ngImport: i0, template: "<mat-form-field [appearance]=\"appearance\" [ngClass]=\"{ 'v-input-field__small': size === 'small' }\">\n <mat-label>{{ label }}</mat-label>\n\n <mtx-select\n [closeOnSelect]=\"!multiple\"\n [formControl]=\"control\"\n [items]=\"options\"\n [loading]=\"progress\"\n [markFirst]=\"true\"\n [multiple]=\"multiple\"\n [notFoundText]=\"externalSearch && !searchStr ? 'Enter your search term' : 'No items found'\"\n [required]=\"required\"\n [searchable]=\"true\"\n [searchFn]=\"search\"\n [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\"\n bindLabel=\"label\"\n bindValue=\"value\"\n groupBy=\"type\"\n (clear)=\"searchChange.emit(''); searchStr = ''\"\n (search)=\"searchChange.emit($event.term); searchStr = $event.term\"\n >\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-optgroup-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n {{ item.type | uppercase }}\n </mat-checkbox>\n <ng-template #text>\n {{ item.type | uppercase }}\n </ng-template>\n </ng-template>\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-option-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n </mat-checkbox>\n <ng-template #text>\n <div class=\"label\">{{ item.label }}</div>\n <div\n *ngIf=\"item.description\"\n class=\"description mat-label-medium mat-secondary-text\"\n >\n {{ item.description }}\n </div>\n </ng-template>\n </ng-template>\n </mtx-select>\n\n <mat-hint>{{ hintText }}</mat-hint>\n <mat-error>{{ error }}</mat-error>\n</mat-form-field>\n", styles: ["::ng-deep .mat-mdc-form-field{width:100%}::ng-deep .mat-mdc-form-field>*{max-height:56px}::ng-deep .mat-mdc-form-field .ng-value-container{flex-wrap:nowrap!important;overflow-x:hidden}::ng-deep .ng-dropdown-panel.ng-select-bottom{margin-top:-4px}.checkbox-option{margin:-12px 0 -12px -8px}.label,.description{overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3$
|
|
2896
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.2", type: SelectFieldComponent, isStandalone: false, selector: "v-select-field", inputs: { options: "options", appearance: "appearance", label: "label", hint: "hint", error: "error", progress: "progress", externalSearch: ["externalSearch", "externalSearch", booleanAttribute], multiple: ["multiple", "multiple", booleanAttribute], required: ["required", "required", booleanAttribute], size: "size" }, outputs: { searchChange: "searchChange" }, providers: createControlProviders(() => SelectFieldComponent), usesInheritance: true, ngImport: i0, template: "<mat-form-field [appearance]=\"appearance\" [ngClass]=\"{ 'v-input-field__small': size === 'small' }\">\n <mat-label>{{ label }}</mat-label>\n\n <mtx-select\n [closeOnSelect]=\"!multiple\"\n [formControl]=\"control\"\n [items]=\"options\"\n [loading]=\"progress\"\n [markFirst]=\"true\"\n [multiple]=\"multiple\"\n [notFoundText]=\"externalSearch && !searchStr ? 'Enter your search term' : 'No items found'\"\n [required]=\"required\"\n [searchable]=\"true\"\n [searchFn]=\"search\"\n [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\"\n bindLabel=\"label\"\n bindValue=\"value\"\n groupBy=\"type\"\n (clear)=\"searchChange.emit(''); searchStr = ''\"\n (search)=\"searchChange.emit($event.term); searchStr = $event.term\"\n >\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-optgroup-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n {{ item.type | uppercase }}\n </mat-checkbox>\n <ng-template #text>\n {{ item.type | uppercase }}\n </ng-template>\n </ng-template>\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-option-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n </mat-checkbox>\n <ng-template #text>\n <div class=\"label\">{{ item.label }}</div>\n <div\n *ngIf=\"item.description\"\n class=\"description mat-label-medium mat-secondary-text\"\n >\n {{ item.description }}\n </div>\n </ng-template>\n </ng-template>\n </mtx-select>\n\n <mat-hint>{{ hintText }}</mat-hint>\n <mat-error>{{ error }}</mat-error>\n</mat-form-field>\n", styles: ["::ng-deep .mat-mdc-form-field{width:100%}::ng-deep .mat-mdc-form-field>*{max-height:56px}::ng-deep .mat-mdc-form-field .ng-value-container{flex-wrap:nowrap!important;overflow-x:hidden}::ng-deep .ng-dropdown-panel.ng-select-bottom{margin-top:-4px}.checkbox-option{margin:-12px 0 -12px -8px}.label,.description{overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3$3.MtxSelect, selector: "mtx-select", inputs: ["addTag", "addTagText", "appearance", "appendTo", "bindLabel", "bindValue", "closeOnSelect", "clearAllText", "clearable", "clearOnBackspace", "compareWith", "dropdownPosition", "groupBy", "groupValue", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "hideSelected", "loading", "loadingText", "labelForId", "markFirst", "maxSelectedItems", "multiple", "notFoundText", "searchable", "readonly", "searchFn", "searchWhileComposing", "selectOnTab", "trackByFn", "inputAttrs", "tabIndex", "openOnEnter", "minTermLength", "editableSearchTerm", "keyDownFn", "virtualScroll", "typeToSearchText", "typeahead", "isOpen", "fixedPlaceholder", "deselectOnClick", "clearSearchOnAdd", "items", "value", "id", "placeholder", "disabled", "required", "errorStateMatcher", "aria-label", "aria-labelledby"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"], exportAs: ["mtxSelect"] }, { kind: "directive", type: i3$3.MtxSelectOptgroupTemplate, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i3$3.MtxSelectOptionTemplate, selector: "[ng-option-tmp]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: i1$1.UpperCasePipe, name: "uppercase" }] }); }
|
|
2840
2897
|
}
|
|
2841
2898
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: SelectFieldComponent, decorators: [{
|
|
2842
2899
|
type: Component,
|
|
@@ -3205,6 +3262,21 @@ const DATE_QUERY_PARAMS_SERIALIZERS = [
|
|
|
3205
3262
|
|
|
3206
3263
|
const QUERY_PARAMS_SERIALIZERS = new InjectionToken('query params serializers');
|
|
3207
3264
|
|
|
3265
|
+
function serializeQueryParam(value, serializers = []) {
|
|
3266
|
+
const serializer = serializers
|
|
3267
|
+
.sort((a, b) => b.id.length - a.id.length)
|
|
3268
|
+
.find((s) => s.recognize(value));
|
|
3269
|
+
return serializer ? serializer.id + serializer.serialize(value) : JSON.stringify(value);
|
|
3270
|
+
}
|
|
3271
|
+
function serializeQueryParams(params, filter = negate(isEmpty$1), serializers = []) {
|
|
3272
|
+
return Object.entries(params).reduce((acc, [k, v]) => {
|
|
3273
|
+
if (filter(v, k)) {
|
|
3274
|
+
acc[k] = serializeQueryParam(v, serializers);
|
|
3275
|
+
}
|
|
3276
|
+
return acc;
|
|
3277
|
+
}, {});
|
|
3278
|
+
}
|
|
3279
|
+
|
|
3208
3280
|
function deserializeQueryParam(value, serializers = []) {
|
|
3209
3281
|
const serializer = serializers
|
|
3210
3282
|
.sort((a, b) => b.id.length - a.id.length)
|
|
@@ -3214,13 +3286,6 @@ function deserializeQueryParam(value, serializers = []) {
|
|
|
3214
3286
|
: JSON.parse(value || ''));
|
|
3215
3287
|
}
|
|
3216
3288
|
|
|
3217
|
-
function serializeQueryParam(value, serializers = []) {
|
|
3218
|
-
const serializer = serializers
|
|
3219
|
-
.sort((a, b) => b.id.length - a.id.length)
|
|
3220
|
-
.find((s) => s.recognize(value));
|
|
3221
|
-
return serializer ? serializer.id + serializer.serialize(value) : JSON.stringify(value);
|
|
3222
|
-
}
|
|
3223
|
-
|
|
3224
3289
|
const NS_PARAM_PREFIX = '__';
|
|
3225
3290
|
class QueryParamsService {
|
|
3226
3291
|
get params() {
|
|
@@ -3272,7 +3337,9 @@ class QueryParamsService {
|
|
|
3272
3337
|
queryParams = Object.assign({}, sourceParams.main, otherNamespaces, !!serializedNamespace && { [nsKey]: serializedNamespace });
|
|
3273
3338
|
}
|
|
3274
3339
|
else {
|
|
3275
|
-
|
|
3340
|
+
const replacedKeys = Object.keys(params);
|
|
3341
|
+
queryParams = Object.assign({}, options.isPatch &&
|
|
3342
|
+
Object.fromEntries(Object.entries(sourceParams.main).filter(([k]) => !replacedKeys.includes(k))), this.serialize(params), sourceParams.namespaces);
|
|
3276
3343
|
}
|
|
3277
3344
|
return await this.router.navigate([], { queryParams });
|
|
3278
3345
|
}
|
|
@@ -3288,13 +3355,8 @@ class QueryParamsService {
|
|
|
3288
3355
|
}, { main: {}, namespaces: {} });
|
|
3289
3356
|
}
|
|
3290
3357
|
serialize(params, options = {}) {
|
|
3291
|
-
const filter = options.filter ?? negate(isEmpty);
|
|
3292
|
-
return
|
|
3293
|
-
if (filter(v, k)) {
|
|
3294
|
-
acc[k] = serializeQueryParam(v, this.serializers);
|
|
3295
|
-
}
|
|
3296
|
-
return acc;
|
|
3297
|
-
}, {});
|
|
3358
|
+
const filter = options.filter ?? negate$1(isEmpty);
|
|
3359
|
+
return serializeQueryParams(params, filter, this.serializers);
|
|
3298
3360
|
}
|
|
3299
3361
|
deserialize(params) {
|
|
3300
3362
|
if (!params) {
|
|
@@ -3371,6 +3433,81 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
|
|
|
3371
3433
|
}]
|
|
3372
3434
|
}], ctorParameters: () => [{ type: i1$6.Router }] });
|
|
3373
3435
|
|
|
3436
|
+
const DEFAULT_DURATION = 3000;
|
|
3437
|
+
class ToastComponent {
|
|
3438
|
+
constructor(data, snackBarRef) {
|
|
3439
|
+
this.data = data;
|
|
3440
|
+
this.snackBarRef = snackBarRef;
|
|
3441
|
+
this.message$ = combineLatest([this.data.progress$ ?? of(false), this.data.error$ ?? of(null)]).pipe(map$1(([progress, error]) => {
|
|
3442
|
+
if (error) {
|
|
3443
|
+
return this.data.errorMessage ?? this.data.message;
|
|
3444
|
+
}
|
|
3445
|
+
else if (progress) {
|
|
3446
|
+
return this.data.progressMessage ?? this.data.message;
|
|
3447
|
+
}
|
|
3448
|
+
return this.data.message;
|
|
3449
|
+
}), shareReplay$1({ refCount: true, bufferSize: 1 }));
|
|
3450
|
+
this.subscribeProgress();
|
|
3451
|
+
if (!this.data.progress$) {
|
|
3452
|
+
this.dismissByDuration();
|
|
3453
|
+
}
|
|
3454
|
+
}
|
|
3455
|
+
dismissWithAction() {
|
|
3456
|
+
this.data.action?.();
|
|
3457
|
+
this.snackBarRef.dismissWithAction();
|
|
3458
|
+
}
|
|
3459
|
+
subscribeProgress() {
|
|
3460
|
+
if (this.data.progress$) {
|
|
3461
|
+
let started = false;
|
|
3462
|
+
this.data.progress$.subscribe((progress) => {
|
|
3463
|
+
if (!started && progress) {
|
|
3464
|
+
started = true;
|
|
3465
|
+
}
|
|
3466
|
+
else if (started && !progress) {
|
|
3467
|
+
this.dismissByDuration();
|
|
3468
|
+
}
|
|
3469
|
+
});
|
|
3470
|
+
}
|
|
3471
|
+
}
|
|
3472
|
+
dismissByDuration() {
|
|
3473
|
+
if (this.data.duration && this.data.duration < Number.MAX_SAFE_INTEGER) {
|
|
3474
|
+
setTimeout(() => {
|
|
3475
|
+
this.snackBarRef.dismiss();
|
|
3476
|
+
}, this.data.duration ?? DEFAULT_DURATION);
|
|
3477
|
+
}
|
|
3478
|
+
}
|
|
3479
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ToastComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1$8.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3480
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: ToastComponent, isStandalone: true, selector: "v-toast", ngImport: i0, template: "<span>\n {{ message$ | async }}\n</span>\n\n@if (data.progress$ | async) {\n <mat-spinner [diameter]=\"24\" color=\"white\"></mat-spinner>\n} @else {\n <button class=\"button\" mat-button (click)=\"dismissWithAction()\">OK</button>\n}\n", styles: [":host{display:flex;justify-content:space-between;align-items:center}:host{--mdc-circular-progress-active-indicator-color: white}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
3481
|
+
}
|
|
3482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ToastComponent, decorators: [{
|
|
3483
|
+
type: Component,
|
|
3484
|
+
args: [{ selector: 'v-toast', imports: [CommonModule, MatProgressSpinnerModule, MatButtonModule], template: "<span>\n {{ message$ | async }}\n</span>\n\n@if (data.progress$ | async) {\n <mat-spinner [diameter]=\"24\" color=\"white\"></mat-spinner>\n} @else {\n <button class=\"button\" mat-button (click)=\"dismissWithAction()\">OK</button>\n}\n", styles: [":host{display:flex;justify-content:space-between;align-items:center}:host{--mdc-circular-progress-active-indicator-color: white}\n"] }]
|
|
3485
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
3486
|
+
type: Inject,
|
|
3487
|
+
args: [MAT_SNACK_BAR_DATA]
|
|
3488
|
+
}] }, { type: i1$8.MatSnackBarRef }] });
|
|
3489
|
+
|
|
3490
|
+
class ToastService {
|
|
3491
|
+
constructor(snackBar) {
|
|
3492
|
+
this.snackBar = snackBar;
|
|
3493
|
+
}
|
|
3494
|
+
open(data, config = {}) {
|
|
3495
|
+
return this.snackBar.openFromComponent(ToastComponent, {
|
|
3496
|
+
...config,
|
|
3497
|
+
duration: data.progress$ ? config.duration : (data.duration ?? DEFAULT_DURATION),
|
|
3498
|
+
data,
|
|
3499
|
+
});
|
|
3500
|
+
}
|
|
3501
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ToastService, deps: [{ token: i1$8.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3502
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ToastService, providedIn: 'root' }); }
|
|
3503
|
+
}
|
|
3504
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: ToastService, decorators: [{
|
|
3505
|
+
type: Injectable,
|
|
3506
|
+
args: [{
|
|
3507
|
+
providedIn: 'root',
|
|
3508
|
+
}]
|
|
3509
|
+
}], ctorParameters: () => [{ type: i1$8.MatSnackBar }] });
|
|
3510
|
+
|
|
3374
3511
|
function hasExtension(fileName, extensions) {
|
|
3375
3512
|
return (!extensions?.length ||
|
|
3376
3513
|
new RegExp('(' + extensions.join('|').replace(/\./g, '\\.') + ')$').test(fileName));
|
|
@@ -3395,11 +3532,11 @@ class FileUploadComponent {
|
|
|
3395
3532
|
this.upload.emit(this.file);
|
|
3396
3533
|
}
|
|
3397
3534
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FileUploadComponent, deps: [{ token: NotifyLogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3398
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.2", type: FileUploadComponent, isStandalone: false, selector: "v-file-upload", inputs: { label: "label", extensions: "extensions" }, outputs: { upload: "upload" }, ngImport: i0, template: "<div class=\"wrapper\">\n <button mat-button type=\"button\" (click)=\"fileInput.click()\">\n {{ label ?? 'Choose File' }}\n </button>\n\n <div class=\"mat-body-medium mat-secondary-text mat-no-margin\">\n {{ file?.name }}\n </div>\n</div>\n\n<input #fileInput hidden type=\"file\" (change)=\"loadFile($event)\" />\n", styles: [".wrapper{display:grid;grid-template-columns:min-content auto;align-items:center;grid-gap:16px}.wrapper>*{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "component", type: i1$4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
3535
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.2", type: FileUploadComponent, isStandalone: false, selector: "v-file-upload", inputs: { label: "label", extensions: "extensions" }, outputs: { upload: "upload" }, ngImport: i0, template: "<div class=\"wrapper\">\n <button mat-button type=\"button\" (click)=\"fileInput.click()\">\n {{ label ?? 'Choose File' }}\n </button>\n\n <div class=\"mat-body-medium mat-secondary-text mat-no-margin file-name\">\n {{ file?.name }}\n </div>\n</div>\n\n<input #fileInput hidden type=\"file\" (change)=\"loadFile($event)\" />\n", styles: [".wrapper{display:grid;grid-template-columns:min-content auto;align-items:center;grid-gap:16px}.wrapper>*{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wrapper .file-name{height:auto}\n"], dependencies: [{ kind: "component", type: i1$4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
3399
3536
|
}
|
|
3400
3537
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
3401
3538
|
type: Component,
|
|
3402
|
-
args: [{ selector: 'v-file-upload', standalone: false, template: "<div class=\"wrapper\">\n <button mat-button type=\"button\" (click)=\"fileInput.click()\">\n {{ label ?? 'Choose File' }}\n </button>\n\n <div class=\"mat-body-medium mat-secondary-text mat-no-margin\">\n {{ file?.name }}\n </div>\n</div>\n\n<input #fileInput hidden type=\"file\" (change)=\"loadFile($event)\" />\n", styles: [".wrapper{display:grid;grid-template-columns:min-content auto;align-items:center;grid-gap:16px}.wrapper>*{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"] }]
|
|
3539
|
+
args: [{ selector: 'v-file-upload', standalone: false, template: "<div class=\"wrapper\">\n <button mat-button type=\"button\" (click)=\"fileInput.click()\">\n {{ label ?? 'Choose File' }}\n </button>\n\n <div class=\"mat-body-medium mat-secondary-text mat-no-margin file-name\">\n {{ file?.name }}\n </div>\n</div>\n\n<input #fileInput hidden type=\"file\" (change)=\"loadFile($event)\" />\n", styles: [".wrapper{display:grid;grid-template-columns:min-content auto;align-items:center;grid-gap:16px}.wrapper>*{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wrapper .file-name{height:auto}\n"] }]
|
|
3403
3540
|
}], ctorParameters: () => [{ type: NotifyLogService }], propDecorators: { label: [{
|
|
3404
3541
|
type: Input
|
|
3405
3542
|
}], extensions: [{
|
|
@@ -3805,5 +3942,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
|
|
|
3805
3942
|
* Generated bundle index. Do not edit.
|
|
3806
3943
|
*/
|
|
3807
3944
|
|
|
3808
|
-
export { ActionsComponent, ActionsModule, AmountCurrencyPipe, AsyncTransform, AutocompleteFieldComponent, AutocompleteFieldModule, BASE_CONFIG, ConfigServiceSuperclass, ConfirmDialogComponent, ConfirmDialogModule, ContentLoadingComponent, DATE_QUERY_PARAMS_SERIALIZERS, DEFAULT_DIALOG_CONFIG, DEFAULT_DIALOG_CONFIG_FULL_HEIGHT, DIALOG_CONFIG, DateRangeFieldComponent, DateRangeFieldModule, DatetimeFieldComponent, DatetimeFieldModule, DebounceTime, DialogActionsComponent, DialogComponent, DialogModule, DialogResponseStatus, DialogService, DialogSuperclass, EnumKeyPipe, EnumKeyValuesPipe, EnumKeysPipe, ErrorPageComponent, ErrorPageModule, FetchSuperclass, FileUploadComponent, FileUploadModule, FiltersComponent, FiltersModule, FormComponentSuperclass, FormControlSuperclass, FormGroupSuperclass, HighlightDirective, HumanizedDurationPipe, InlineJsonPipe, InputFieldComponent, InputFieldModule, ListFieldComponent, ListFieldModule, LogModule, MainFiltersDirective, MoreFiltersButtonComponent, NavComponent, NormColumn, NotifyLogService, NumberRangeFieldComponent, NumberRangeFieldModule, OtherFiltersDirective, PipesModule, QUERY_PARAMS_SERIALIZERS, QueryParamsModule, QueryParamsService, SelectFieldComponent, SelectFieldModule, SingleFetchSuperclass, SwitchButtonComponent, SwitchButtonModule, TableActionsComponent, TableComponent, TableInputsComponent, TableModule, TagComponent, TagModule, UrlService, VSelectPipe, ValueComponent, ValueListComponent, arrayAttribute, asyncStartWith, cachedHeadMap, clean, cleanPrimitiveProps, compareDifferentTypes, correctPriorities, countChanged, countProps, createColumn, createControlProviders, createControls, createCsv, createDateFromNoTimeZoneString, createDateRangeToToday, createMenuColumn, createStorageValue, debounceTimeWithFirst, downloadFile, enumHasValue, forkJoinToResult, formatCurrency, getCurrencyExponent, getEnumEntries, getEnumKey, getEnumKeyValues, getEnumKeys, getEnumValues, getErrorsTree, getImportValue, getNoTimeZoneIsoString, getPossiblyAsyncObservable, getValidValueChanges, getValue$1 as getValue, getValueChanges, handleError, hasControls, inProgressFrom, inlineJson, isAsync, isEmpty, isEmptyPrimitive, isEqualDateRange, isResultsHasError, loadFileContent, normalizeCell, normalizePossiblyFn, parseCsv, passError, progressTo, select, setDisabled, splitBySeparators, splitResultsErrors, switchCombineWith, toMajor, toMajorByExponent, toMinor, toMinorByExponent, treeDataItemToInlineDataItem, unifyCsvItems };
|
|
3945
|
+
export { ActionsComponent, ActionsModule, AmountCurrencyPipe, AsyncTransform, AutocompleteFieldComponent, AutocompleteFieldModule, BASE_CONFIG, ConfigServiceSuperclass, ConfirmDialogComponent, ConfirmDialogModule, ContentLoadingComponent, DATE_QUERY_PARAMS_SERIALIZERS, DEFAULT_DIALOG_CONFIG, DEFAULT_DIALOG_CONFIG_FULL_HEIGHT, DIALOG_CONFIG, DateRangeFieldComponent, DateRangeFieldModule, DatetimeFieldComponent, DatetimeFieldModule, DebounceTime, DialogActionsComponent, DialogComponent, DialogModule, DialogResponseStatus, DialogService, DialogSuperclass, EnumKeyPipe, EnumKeyValuesPipe, EnumKeysPipe, ErrorPageComponent, ErrorPageModule, FetchSuperclass, FileUploadComponent, FileUploadModule, FiltersComponent, FiltersModule, FormComponentSuperclass, FormControlSuperclass, FormGroupSuperclass, HighlightDirective, HumanizedDurationPipe, InlineJsonPipe, InputFieldComponent, InputFieldModule, ListFieldComponent, ListFieldModule, LogModule, MainFiltersDirective, MoreFiltersButtonComponent, NavComponent, NormColumn, NotifyLogService, NumberRangeFieldComponent, NumberRangeFieldModule, OtherFiltersDirective, PipesModule, QUERY_PARAMS_SERIALIZERS, QueryParamsModule, QueryParamsService, SelectFieldComponent, SelectFieldModule, SingleFetchSuperclass, SwitchButtonComponent, SwitchButtonModule, TableActionsComponent, TableComponent, TableInputsComponent, TableModule, TagComponent, TagModule, ToastService, UrlService, VSelectPipe, ValueComponent, ValueListComponent, arrayAttribute, asyncStartWith, cachedHeadMap, clean, cleanPrimitiveProps, compareDifferentTypes, correctPriorities, countChanged, countProps, createColumn, createControlProviders, createControls, createCsv, createDateFromNoTimeZoneString, createDateRangeToToday, createMenuColumn, createStorageValue, debounceTimeWithFirst, downloadFile, enumHasValue, forkJoinToResult, formatCurrency, getCurrencyExponent, getEnumEntries, getEnumKey, getEnumKeyValues, getEnumKeys, getEnumValues, getErrorsTree, getImportValue, getNoTimeZoneIsoString, getPossiblyAsyncObservable, getValidValueChanges, getValue$1 as getValue, getValueChanges, handleError, hasControls, inProgressFrom, inlineJson, isAsync, isEmpty, isEmptyPrimitive, isEqualDateRange, isResultsHasError, loadFileContent, normalizeCell, normalizePossiblyFn, parseCsv, passError, progressTo, select, serializeQueryParam, serializeQueryParams, setDisabled, splitBySeparators, splitResultsErrors, subscribeReturn, switchCombineWith, toMajor, toMajorByExponent, toMinor, toMinorByExponent, treeDataItemToInlineDataItem, unifyCsvItems };
|
|
3809
3946
|
//# sourceMappingURL=vality-matez.mjs.map
|