@devopmaat/badaboom 1.3.8 → 1.3.9
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/devopmaat-badaboom.mjs +1291 -1047
- package/fesm2022/devopmaat-badaboom.mjs.map +1 -1
- package/index.d.ts +1229 -3
- package/lib/application/media/media-display/_bdb-media-display-theme.scss +36 -0
- package/lib/application/media/media-input/_bdb-media-input-theme.scss +36 -0
- package/lib/application/media/media-upload/_bdb-media-upload-theme.scss +36 -0
- package/lib/styles/_core-theme.scss +31 -0
- package/lib/styles/_theme.scss +35 -2
- package/lib/styles/material/_toolbar-theme.scss +7 -0
- package/package.json +5 -5
- package/lib/application/common/bdb-data-source.d.ts +0 -25
- package/lib/application/common/full-table/bdb-full-table.component.d.ts +0 -27
- package/lib/application/common/paginator/bdb-paginator.component.d.ts +0 -17
- package/lib/application/common/query-input/bdb-query-input.component.d.ts +0 -15
- package/lib/application/common/search/bdb-search-wrapper.component.d.ts +0 -13
- package/lib/application/common/search/bdb-search.component.d.ts +0 -43
- package/lib/application/common/table/bdb-cell.directive.d.ts +0 -9
- package/lib/application/common/table/bdb-column-builder.d.ts +0 -18
- package/lib/application/common/table/bdb-column-options.d.ts +0 -33
- package/lib/application/common/table/bdb-column-type.d.ts +0 -10
- package/lib/application/common/table/bdb-column.d.ts +0 -19
- package/lib/application/common/table/bdb-context-action.d.ts +0 -7
- package/lib/application/common/table/bdb-table.component.d.ts +0 -58
- package/lib/application/common/table/dynamic.pipe.d.ts +0 -9
- package/lib/application/exception-log/exception-log-table/exception-log-table.component.d.ts +0 -26
- package/lib/application/media/media-display/media-display.component.d.ts +0 -23
- package/lib/application/media/media-full-table/media-full-table.component.d.ts +0 -24
- package/lib/application/media/media-table/media-table.component.d.ts +0 -21
- package/lib/application/media/media-type.pipe.d.ts +0 -8
- package/lib/application/media/media-upload/media-drop.directive.d.ts +0 -27
- package/lib/application/media/media-upload/media-upload.component.d.ts +0 -15
- package/lib/application/task-log/task-log-outcome.pipe.d.ts +0 -8
- package/lib/application/task-log/task-log-status.pipe.d.ts +0 -8
- package/lib/application/task-log-parameter/task-log-parameter-value.pipe.d.ts +0 -10
- package/lib/application/user/user-table/user-table.component.d.ts +0 -25
- package/lib/bdb-auth-options.d.ts +0 -28
- package/lib/bdb-options.d.ts +0 -19
- package/lib/common/alert/bdb-alert.component.d.ts +0 -10
- package/lib/common/alert-error-response/bdb-alert-error-response.component.d.ts +0 -16
- package/lib/common/bdb-flex-child.directive.d.ts +0 -11
- package/lib/common/bdb-flex.directive.d.ts +0 -28
- package/lib/common/bdb-form-error.directive.d.ts +0 -15
- package/lib/common/bdb-grid-child.directive.d.ts +0 -14
- package/lib/common/bdb-grid.directive.d.ts +0 -26
- package/lib/common/bdb-palette.d.ts +0 -2
- package/lib/common/boolean-display/bdb-boolean-display.component.d.ts +0 -7
- package/lib/common/collapse-row/bdb-collapse-row.component.d.ts +0 -9
- package/lib/common/error-response-dialog/error-response-dialog.component.d.ts +0 -10
- package/lib/common/field/bdb-field.component.d.ts +0 -7
- package/lib/common/file-size.pipe.d.ts +0 -7
- package/lib/common/function.pipe.d.ts +0 -7
- package/lib/common/layout-error.d.ts +0 -3
- package/lib/common/linked-list.d.ts +0 -15
- package/lib/common/plain-number.pipe.d.ts +0 -7
- package/lib/common/youtube-player/youtube-player.component.d.ts +0 -14
- package/lib/domain/auth/account-info.d.ts +0 -6
- package/lib/domain/auth/account.service.d.ts +0 -29
- package/lib/domain/auth/auth.service.d.ts +0 -41
- package/lib/domain/auth/reset-password-token.d.ts +0 -4
- package/lib/domain/auth/token-expired.interceptor.d.ts +0 -2
- package/lib/domain/auth/token-reponse.d.ts +0 -5
- package/lib/domain/auth/token.interceptor.d.ts +0 -2
- package/lib/domain/common/bdb-filter.d.ts +0 -9
- package/lib/domain/common/bdb-request.d.ts +0 -10
- package/lib/domain/common/bdb-response.d.ts +0 -6
- package/lib/domain/common/entities/bdb-entity-read.d.ts +0 -3
- package/lib/domain/common/entities/bdb-entity-update.d.ts +0 -3
- package/lib/domain/common/entities/bdb-entity.d.ts +0 -3
- package/lib/domain/common/services/bdb-service-cr.d.ts +0 -7
- package/lib/domain/common/services/bdb-service-crd.d.ts +0 -7
- package/lib/domain/common/services/bdb-service-cru.d.ts +0 -8
- package/lib/domain/common/services/bdb-service-crud.d.ts +0 -8
- package/lib/domain/common/services/bdb-service-r.d.ts +0 -10
- package/lib/domain/common/services/bdb-service-rd.d.ts +0 -7
- package/lib/domain/common/services/bdb-service-ru.d.ts +0 -8
- package/lib/domain/common/services/bdb-service-rud.d.ts +0 -8
- package/lib/domain/common/services/bdb-service.d.ts +0 -6
- package/lib/domain/entities/exception-log/exception-log-read.d.ts +0 -9
- package/lib/domain/entities/exception-log/exception-log.d.ts +0 -9
- package/lib/domain/entities/exception-log/exception-log.service.d.ts +0 -9
- package/lib/domain/entities/media/media-preview.d.ts +0 -6
- package/lib/domain/entities/media/media.d.ts +0 -12
- package/lib/domain/entities/media/media.service.d.ts +0 -11
- package/lib/domain/entities/role/role-read.d.ts +0 -7
- package/lib/domain/entities/role/role.d.ts +0 -4
- package/lib/domain/entities/role/role.service.d.ts +0 -9
- package/lib/domain/entities/task-log/task-log-create.d.ts +0 -5
- package/lib/domain/entities/task-log/task-log-read.d.ts +0 -11
- package/lib/domain/entities/task-log/task-log.d.ts +0 -15
- package/lib/domain/entities/task-log/task-log.service.d.ts +0 -12
- package/lib/domain/entities/task-log-parameter/task-log-parameter-create.d.ts +0 -7
- package/lib/domain/entities/task-log-parameter/task-log-parameter-read.d.ts +0 -11
- package/lib/domain/entities/task-log-parameter/task-log-parameter.d.ts +0 -10
- package/lib/domain/entities/task-log-parameter/task-log-parameter.service.d.ts +0 -9
- package/lib/domain/entities/task-log-schedule/task-log-schedule-create.d.ts +0 -5
- package/lib/domain/entities/task-log-schedule/task-log-schedule-read.d.ts +0 -7
- package/lib/domain/entities/task-log-schedule/task-log-schedule-update.d.ts +0 -5
- package/lib/domain/entities/task-log-schedule/task-log-schedule.d.ts +0 -7
- package/lib/domain/entities/task-log-schedule/task-log-schedule.service.d.ts +0 -11
- package/lib/domain/entities/user/user-create.d.ts +0 -3
- package/lib/domain/entities/user/user-read.d.ts +0 -6
- package/lib/domain/entities/user/user-update.d.ts +0 -4
- package/lib/domain/entities/user/user.d.ts +0 -5
- package/lib/domain/entities/user/user.service.d.ts +0 -11
- package/lib/domain/entities/user-role/user-role-create.d.ts +0 -4
- package/lib/domain/entities/user-role/user-role-read.d.ts +0 -7
- package/lib/domain/entities/user-role/user-role.d.ts +0 -7
- package/lib/domain/entities/user-role/user-role.service.d.ts +0 -10
- package/lib/domain/enums/media-type.d.ts +0 -6
- package/lib/domain/enums/task-log-outcome.d.ts +0 -8
- package/lib/domain/enums/task-log-parameter-type.d.ts +0 -6
- package/lib/domain/enums/task-log-status.d.ts +0 -7
- package/lib/domain/tasks/task-log-scheduler.service.d.ts +0 -11
- package/lib/domain/tasks/task-log-type-parameter.d.ts +0 -11
- package/lib/domain/tasks/task-log-type.d.ts +0 -7
- package/lib/domain/tasks/task-log-type.service.d.ts +0 -14
- package/lib/lib.config.d.ts +0 -11
- package/lib/presentation/access-denied-page/access-denied-page.component.d.ts +0 -16
- package/lib/presentation/auth-container/auth-container.component.d.ts +0 -5
- package/lib/presentation/forgot-password-page/forgot-password-page.component.d.ts +0 -20
- package/lib/presentation/invalid-token-page/invalid-token-page.component.d.ts +0 -8
- package/lib/presentation/logged-out.guard.d.ts +0 -2
- package/lib/presentation/login-page/login-page.component.d.ts +0 -27
- package/lib/presentation/logout-page/logout-page.component.d.ts +0 -13
- package/lib/presentation/reset-password-page/reset-password-page.component.d.ts +0 -31
- package/lib/presentation/reset-password.resolver.d.ts +0 -3
- package/lib/presentation/role.guard.d.ts +0 -2
- package/public-api.d.ts +0 -110
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Input, HostBinding, Component, inject, Injectable, makeEnvironmentProviders,
|
|
2
|
+
import { InjectionToken, Input, HostBinding, Component, EventEmitter, Output, inject, Injectable, makeEnvironmentProviders, Directive, Injector, Pipe, ContentChildren, ViewChild, Optional, Self, HostListener, LOCALE_ID, Inject } from '@angular/core';
|
|
3
3
|
import { HttpClient, HttpErrorResponse, provideHttpClient, withInterceptors } from '@angular/common/http';
|
|
4
|
-
import { BehaviorSubject, of, catchError as catchError$1, throwError, filter as filter$1, take, concatMap as concatMap$1, tap as tap$1, map, Subject, finalize,
|
|
4
|
+
import { BehaviorSubject, of, catchError as catchError$1, throwError, filter as filter$1, take, concatMap as concatMap$1, tap as tap$1, map, Subject, finalize, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs';
|
|
5
5
|
import * as i1$1 from '@angular/material/dialog';
|
|
6
6
|
import { MAT_DIALOG_DATA, MatDialogModule, MatDialog } from '@angular/material/dialog';
|
|
7
7
|
import * as i2$3 from '@angular/router';
|
|
@@ -9,34 +9,38 @@ import { Router, RouterOutlet, provideRouter, RouterLink } from '@angular/router
|
|
|
9
9
|
import { tap, catchError, filter, concatMap, shareReplay, map as map$1 } from 'rxjs/operators';
|
|
10
10
|
import * as i1 from '@angular/common';
|
|
11
11
|
import { CommonModule, NgTemplateOutlet } from '@angular/common';
|
|
12
|
+
import * as i7 from '@angular/material/button';
|
|
13
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
12
14
|
import * as i2 from '@angular/material/icon';
|
|
13
15
|
import { MatIconModule } from '@angular/material/icon';
|
|
14
|
-
import * as
|
|
15
|
-
import {
|
|
16
|
-
import * as i1$2 from '@angular/
|
|
17
|
-
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
18
|
-
import * as i3 from '@angular/forms';
|
|
16
|
+
import * as i2$2 from '@angular/material/toolbar';
|
|
17
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
18
|
+
import * as i1$2 from '@angular/forms';
|
|
19
19
|
import { FormControl, ReactiveFormsModule, ControlContainer, Validators, FormGroup } from '@angular/forms';
|
|
20
|
-
import * as
|
|
21
|
-
import {
|
|
22
|
-
import * as
|
|
23
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
24
|
-
import * as i5 from '@angular/material/input';
|
|
25
|
-
import { MatInputModule } from '@angular/material/input';
|
|
26
|
-
import * as i5$1 from '@angular/material/menu';
|
|
20
|
+
import * as i1$3 from '@angular/material/paginator';
|
|
21
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
22
|
+
import * as i5 from '@angular/material/menu';
|
|
27
23
|
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
|
|
28
24
|
import * as i2$1 from '@angular/material/table';
|
|
29
25
|
import { MatTableModule } from '@angular/material/table';
|
|
30
|
-
import * as i3
|
|
26
|
+
import * as i3 from '@angular/material/checkbox';
|
|
31
27
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
32
|
-
import * as i4
|
|
28
|
+
import * as i4 from '@angular/material/sort';
|
|
33
29
|
import { MatSortModule } from '@angular/material/sort';
|
|
34
|
-
import * as
|
|
35
|
-
import {
|
|
36
|
-
import * as
|
|
30
|
+
import * as i6 from '@angular/material/autocomplete';
|
|
31
|
+
import { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';
|
|
32
|
+
import * as i4$1 from '@angular/material/form-field';
|
|
33
|
+
import { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';
|
|
34
|
+
import * as i5$1 from '@angular/material/input';
|
|
35
|
+
import { MatInputModule } from '@angular/material/input';
|
|
36
|
+
import * as i1$4 from '@angular/youtube-player';
|
|
37
37
|
import { YouTubePlayerModule } from '@angular/youtube-player';
|
|
38
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
38
39
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
39
|
-
import * as
|
|
40
|
+
import * as i1$5 from '@angular/material/core';
|
|
41
|
+
import { MatRippleModule } from '@angular/material/core';
|
|
42
|
+
import { MatProgressBar } from '@angular/material/progress-bar';
|
|
43
|
+
import * as i3$1 from '@angular/material/card';
|
|
40
44
|
import { MatCardModule } from '@angular/material/card';
|
|
41
45
|
|
|
42
46
|
class BdbAuthOptionsBuilder {
|
|
@@ -114,10 +118,10 @@ class BdbAlertComponent {
|
|
|
114
118
|
this.icon = 'task_alt';
|
|
115
119
|
this.inline = false;
|
|
116
120
|
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: BdbAlertComponent, isStandalone: true, selector: "bdb-alert", inputs: { label: "label", icon: "icon", inline: "inline" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"bdb-alert-wrapper\" [ngStyle]=\"{ display: inline ? 'inline-flex' : 'flex' }\">\r\n <div class=\"bdb-icon-container\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"content-container\">\r\n <div>\r\n <div class=\"label\">\r\n {{ label }}\r\n </div>\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bdb-alert-wrapper{border-radius:4px;border:1px solid}.bdb-alert-wrapper .bdb-icon-container{min-height:100%;min-width:48px;display:flex;justify-content:center;align-items:center}.bdb-alert-wrapper .inline{max-width:100%}.content-container{padding:8px;border-top-right-radius:inherit;border-bottom-right-radius:inherit}.bdb-icon-container{background-color:var(--bdb-alert-container-color);color:var(--bdb-alert-icon-color);border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bdb-alert-wrapper{border-color:var(--bdb-alert-border-color)}.content-container{background-color:var(--bdb-alert-content-container-color);color:var(--bdb-alert-content-color);flex:1}.label{font-weight:500;font-size:1.1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
119
123
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbAlertComponent, decorators: [{
|
|
121
125
|
type: Component,
|
|
122
126
|
args: [{ selector: 'bdb-alert', imports: [CommonModule, MatIconModule], template: "<div class=\"bdb-alert-wrapper\" [ngStyle]=\"{ display: inline ? 'inline-flex' : 'flex' }\">\r\n <div class=\"bdb-icon-container\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"content-container\">\r\n <div>\r\n <div class=\"label\">\r\n {{ label }}\r\n </div>\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bdb-alert-wrapper{border-radius:4px;border:1px solid}.bdb-alert-wrapper .bdb-icon-container{min-height:100%;min-width:48px;display:flex;justify-content:center;align-items:center}.bdb-alert-wrapper .inline{max-width:100%}.content-container{padding:8px;border-top-right-radius:inherit;border-bottom-right-radius:inherit}.bdb-icon-container{background-color:var(--bdb-alert-container-color);color:var(--bdb-alert-icon-color);border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bdb-alert-wrapper{border-color:var(--bdb-alert-border-color)}.content-container{background-color:var(--bdb-alert-content-container-color);color:var(--bdb-alert-content-color);flex:1}.label{font-weight:500;font-size:1.1rem}\n"] }]
|
|
123
127
|
}], ctorParameters: () => [], propDecorators: { class: [{
|
|
@@ -137,6 +141,8 @@ const LoginRequiredTwoFactor = 'LOGIN_REQUIRES_TWO_FACTOR';
|
|
|
137
141
|
const LockedOut = 'LOCKED_OUT';
|
|
138
142
|
class BdbAlertErrorResponseComponent {
|
|
139
143
|
constructor() {
|
|
144
|
+
this.dismissable = false;
|
|
145
|
+
this.dismiss = new EventEmitter();
|
|
140
146
|
this.loginFailed = false;
|
|
141
147
|
this.alertClass = 'error';
|
|
142
148
|
this.icon = 'error_outline';
|
|
@@ -222,24 +228,28 @@ class BdbAlertErrorResponseComponent {
|
|
|
222
228
|
}
|
|
223
229
|
}
|
|
224
230
|
}
|
|
225
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
226
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
231
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbAlertErrorResponseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
232
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbAlertErrorResponseComponent, isStandalone: true, selector: "bdb-alert-error-response", inputs: { value: "value", dismissable: "dismissable" }, outputs: { dismiss: "dismiss" }, usesOnChanges: true, ngImport: i0, template: "@if (value) {\r\n <bdb-alert [icon]=\"icon\" [label]=\"label\" [class]=\"alertClass\">\r\n @switch (value.status) {\r\n @case (400) {\r\n @for (message of validationFailures(); track message) {\r\n <div>{{ message }}</div>\r\n }\r\n }\r\n @case (500) {\r\n @if (errorCode) {\r\n Foutcode voor technische ondersteuning: <strong>{{ errorCode }}</strong>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"displayMessage\"></ng-container>\r\n }\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"displayMessage\"></ng-container>\r\n }\r\n }\r\n @if (dismissable) {\r\n <button mat-icon-button class=\"error dismiss-button\" (click)=\"dismiss.emit()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </bdb-alert>\r\n}\r\n\r\n<ng-template #displayMessage>\r\n {{ message }}\r\n</ng-template>\r\n", styles: [".alert{padding:8px;border-radius:4px;border:1px solid}.alert.warn{background-color:#fbe9e7;border-color:#d84315}.alert.danger{background-color:#ffebee;border-color:#c62828}bdb-alert{position:relative}.dismiss-button{position:absolute;z-index:1;top:4px;right:4px;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BdbAlertComponent, selector: "bdb-alert", inputs: ["label", "icon", "inline"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
227
233
|
}
|
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbAlertErrorResponseComponent, decorators: [{
|
|
229
235
|
type: Component,
|
|
230
|
-
args: [{ selector: 'bdb-alert-error-response', imports: [CommonModule, BdbAlertComponent], template: "<bdb-alert [icon]=\"icon\" [label]=\"label\"
|
|
236
|
+
args: [{ selector: 'bdb-alert-error-response', imports: [CommonModule, BdbAlertComponent, MatButtonModule, MatIconModule], template: "@if (value) {\r\n <bdb-alert [icon]=\"icon\" [label]=\"label\" [class]=\"alertClass\">\r\n @switch (value.status) {\r\n @case (400) {\r\n @for (message of validationFailures(); track message) {\r\n <div>{{ message }}</div>\r\n }\r\n }\r\n @case (500) {\r\n @if (errorCode) {\r\n Foutcode voor technische ondersteuning: <strong>{{ errorCode }}</strong>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"displayMessage\"></ng-container>\r\n }\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"displayMessage\"></ng-container>\r\n }\r\n }\r\n @if (dismissable) {\r\n <button mat-icon-button class=\"error dismiss-button\" (click)=\"dismiss.emit()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </bdb-alert>\r\n}\r\n\r\n<ng-template #displayMessage>\r\n {{ message }}\r\n</ng-template>\r\n", styles: [".alert{padding:8px;border-radius:4px;border:1px solid}.alert.warn{background-color:#fbe9e7;border-color:#d84315}.alert.danger{background-color:#ffebee;border-color:#c62828}bdb-alert{position:relative}.dismiss-button{position:absolute;z-index:1;top:4px;right:4px;cursor:pointer}\n"] }]
|
|
231
237
|
}], propDecorators: { value: [{
|
|
232
238
|
type: Input
|
|
239
|
+
}], dismissable: [{
|
|
240
|
+
type: Input
|
|
241
|
+
}], dismiss: [{
|
|
242
|
+
type: Output
|
|
233
243
|
}] } });
|
|
234
244
|
|
|
235
245
|
class BdbErrorResponseDialogComponent {
|
|
236
246
|
constructor() {
|
|
237
247
|
this.data = inject(MAT_DIALOG_DATA);
|
|
238
248
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
240
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
249
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbErrorResponseDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
250
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: BdbErrorResponseDialogComponent, isStandalone: true, selector: "bdb-error-response-dialog", ngImport: i0, template: "<h2 mat-dialog-title>{{ data.title }}</h2>\r\n<div mat-dialog-content>\r\n <bdb-alert-error-response [value]=\"data.error\"></bdb-alert-error-response>\r\n</div>\r\n<div mat-dialog-actions align=\"end\">\r\n <button mat-button type=\"button\" mat-dialog-close class=\"warn\"><mat-icon>close</mat-icon> Sluiten</button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: BdbAlertErrorResponseComponent, selector: "bdb-alert-error-response", inputs: ["value", "dismissable"], outputs: ["dismiss"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
|
|
241
251
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbErrorResponseDialogComponent, decorators: [{
|
|
243
253
|
type: Component,
|
|
244
254
|
args: [{ selector: 'bdb-error-response-dialog', imports: [MatDialogModule, BdbAlertErrorResponseComponent, MatIconModule, MatButtonModule], template: "<h2 mat-dialog-title>{{ data.title }}</h2>\r\n<div mat-dialog-content>\r\n <bdb-alert-error-response [value]=\"data.error\"></bdb-alert-error-response>\r\n</div>\r\n<div mat-dialog-actions align=\"end\">\r\n <button mat-button type=\"button\" mat-dialog-close class=\"warn\"><mat-icon>close</mat-icon> Sluiten</button>\r\n</div>\r\n" }]
|
|
245
255
|
}] });
|
|
@@ -271,10 +281,10 @@ class AccountService extends BdbService {
|
|
|
271
281
|
validateResetPasswordToken(value) {
|
|
272
282
|
return this.httpClient.post(`${this.baseUrl}/validate-reset-password-token`, value);
|
|
273
283
|
}
|
|
274
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
275
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
284
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AccountService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
285
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AccountService, providedIn: 'root' }); }
|
|
276
286
|
}
|
|
277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AccountService, decorators: [{
|
|
278
288
|
type: Injectable,
|
|
279
289
|
args: [{
|
|
280
290
|
providedIn: 'root',
|
|
@@ -403,10 +413,10 @@ class AuthService {
|
|
|
403
413
|
claims: claims,
|
|
404
414
|
};
|
|
405
415
|
}
|
|
406
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
407
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AuthService, deps: [{ token: AccountService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
417
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AuthService, providedIn: 'root' }); }
|
|
408
418
|
}
|
|
409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AuthService, decorators: [{
|
|
410
420
|
type: Injectable,
|
|
411
421
|
args: [{
|
|
412
422
|
providedIn: 'root',
|
|
@@ -431,10 +441,10 @@ const tokenExpiredInterceptor = (req, next) => {
|
|
|
431
441
|
};
|
|
432
442
|
|
|
433
443
|
class AuthContainerComponent {
|
|
434
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
435
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
444
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AuthContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
445
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: AuthContainerComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<router-outlet></router-outlet>\r\n", styles: [":host{width:100%;height:100%;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
436
446
|
}
|
|
437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
447
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AuthContainerComponent, decorators: [{
|
|
438
448
|
type: Component,
|
|
439
449
|
args: [{ imports: [RouterOutlet], template: "<router-outlet></router-outlet>\r\n", styles: [":host{width:100%;height:100%;display:flex;justify-content:center;align-items:center}\n"] }]
|
|
440
450
|
}] });
|
|
@@ -607,35 +617,118 @@ class BdbDataSource {
|
|
|
607
617
|
}
|
|
608
618
|
}
|
|
609
619
|
|
|
610
|
-
class
|
|
611
|
-
constructor() {
|
|
612
|
-
|
|
620
|
+
class LayoutError extends Error {
|
|
621
|
+
constructor(message) {
|
|
622
|
+
super(message);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
const DEFAULT_FLEX_DIRECTION = 'row';
|
|
627
|
+
const DEFAULT_FLEX_GAP = '';
|
|
628
|
+
const DEFAULT_FLEX_SPACING = {
|
|
629
|
+
justify: 'start',
|
|
630
|
+
align: 'stretch',
|
|
631
|
+
};
|
|
632
|
+
class BdbFlexDirective {
|
|
633
|
+
constructor(element, renderer) {
|
|
634
|
+
this.element = element;
|
|
635
|
+
this.renderer = renderer;
|
|
636
|
+
this.bdbFlex = '';
|
|
637
|
+
this.bdbFlexDirection = '';
|
|
638
|
+
this.bdbFlexGap = '';
|
|
639
|
+
this.bdbFlexSpacing = '';
|
|
613
640
|
}
|
|
614
641
|
ngOnInit() {
|
|
615
|
-
this.
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
642
|
+
this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');
|
|
643
|
+
const bdbFlexInputs = this.bdbFlex.split(' ').filter(x => !!x);
|
|
644
|
+
this.setDirection(bdbFlexInputs[0]);
|
|
645
|
+
this.setGap(bdbFlexInputs[1]);
|
|
646
|
+
this.setSpacing({
|
|
647
|
+
justify: bdbFlexInputs[2],
|
|
648
|
+
align: bdbFlexInputs[3],
|
|
621
649
|
});
|
|
622
650
|
}
|
|
623
|
-
|
|
624
|
-
this.
|
|
625
|
-
this.
|
|
651
|
+
setDirection(bdbFlexInput) {
|
|
652
|
+
const direction = this.validateDirection(this.getDirection(bdbFlexInput));
|
|
653
|
+
this.renderer.setStyle(this.element.nativeElement, 'flex-direction', direction);
|
|
626
654
|
}
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
655
|
+
getDirection(bdbFlexInput) {
|
|
656
|
+
const trimmedBdbFlexDirection = this.bdbFlexDirection.trim();
|
|
657
|
+
if (trimmedBdbFlexDirection) {
|
|
658
|
+
return trimmedBdbFlexDirection;
|
|
659
|
+
}
|
|
660
|
+
if (bdbFlexInput) {
|
|
661
|
+
return bdbFlexInput;
|
|
662
|
+
}
|
|
663
|
+
return DEFAULT_FLEX_DIRECTION;
|
|
664
|
+
}
|
|
665
|
+
validateDirection(direction) {
|
|
666
|
+
switch (direction) {
|
|
667
|
+
case 'row':
|
|
668
|
+
return 'row';
|
|
669
|
+
case 'col':
|
|
670
|
+
return 'column';
|
|
671
|
+
default:
|
|
672
|
+
throw new LayoutError(`'${direction}' is not a valid value for flex direction`);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
setGap(bdbFlexInput) {
|
|
676
|
+
const gap = this.validateGap(this.getGap(bdbFlexInput));
|
|
677
|
+
this.renderer.setStyle(this.element.nativeElement, 'gap', gap);
|
|
678
|
+
}
|
|
679
|
+
getGap(bdbFlexInput) {
|
|
680
|
+
const trimmedBdbFlexGap = this.bdbFlexGap.trim();
|
|
681
|
+
if (trimmedBdbFlexGap) {
|
|
682
|
+
return trimmedBdbFlexGap;
|
|
683
|
+
}
|
|
684
|
+
if (bdbFlexInput) {
|
|
685
|
+
return bdbFlexInput;
|
|
686
|
+
}
|
|
687
|
+
return DEFAULT_FLEX_GAP;
|
|
688
|
+
}
|
|
689
|
+
validateGap(gap) {
|
|
690
|
+
return gap;
|
|
691
|
+
}
|
|
692
|
+
setSpacing(bdbFlexInput) {
|
|
693
|
+
const spacing = this.validateSpacing(this.getSpacing(bdbFlexInput));
|
|
694
|
+
this.renderer.setStyle(this.element.nativeElement, 'align-items', spacing.align);
|
|
695
|
+
this.renderer.setStyle(this.element.nativeElement, 'justify-content', spacing.justify);
|
|
696
|
+
}
|
|
697
|
+
getSpacing(bdbFlexInput) {
|
|
698
|
+
const splitBdbFlexSpacing = this.bdbFlexSpacing.split(' ').filter(x => !!x);
|
|
699
|
+
if (splitBdbFlexSpacing.length === 2) {
|
|
700
|
+
return {
|
|
701
|
+
align: splitBdbFlexSpacing[0],
|
|
702
|
+
justify: splitBdbFlexSpacing[1],
|
|
703
|
+
};
|
|
704
|
+
}
|
|
705
|
+
if (bdbFlexInput.align && bdbFlexInput.justify) {
|
|
706
|
+
return {
|
|
707
|
+
align: bdbFlexInput.align,
|
|
708
|
+
justify: bdbFlexInput.justify,
|
|
709
|
+
};
|
|
710
|
+
}
|
|
711
|
+
return DEFAULT_FLEX_SPACING;
|
|
712
|
+
}
|
|
713
|
+
validateSpacing(spacing) {
|
|
714
|
+
return spacing;
|
|
631
715
|
}
|
|
632
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
633
|
-
static { this.ɵ
|
|
716
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFlexDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
717
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: BdbFlexDirective, isStandalone: true, selector: "[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]", inputs: { bdbFlex: "bdbFlex", bdbFlexDirection: "bdbFlexDirection", bdbFlexGap: "bdbFlexGap", bdbFlexSpacing: "bdbFlexSpacing" }, ngImport: i0 }); }
|
|
634
718
|
}
|
|
635
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
636
|
-
type:
|
|
637
|
-
args: [{
|
|
638
|
-
|
|
719
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFlexDirective, decorators: [{
|
|
720
|
+
type: Directive,
|
|
721
|
+
args: [{
|
|
722
|
+
selector: '[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]',
|
|
723
|
+
standalone: true,
|
|
724
|
+
}]
|
|
725
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { bdbFlex: [{
|
|
726
|
+
type: Input
|
|
727
|
+
}], bdbFlexDirection: [{
|
|
728
|
+
type: Input
|
|
729
|
+
}], bdbFlexGap: [{
|
|
730
|
+
type: Input
|
|
731
|
+
}], bdbFlexSpacing: [{
|
|
639
732
|
type: Input
|
|
640
733
|
}] } });
|
|
641
734
|
|
|
@@ -662,10 +755,10 @@ class BdbQueryInputComponent {
|
|
|
662
755
|
this._onDestroy.next();
|
|
663
756
|
this._onDestroy.complete();
|
|
664
757
|
}
|
|
665
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
666
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
758
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbQueryInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
759
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbQueryInputComponent, isStandalone: true, selector: "bdb-query-input[dataSource]", inputs: { dataSource: "dataSource" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<input spellcheck=\"false\" autocomplete=\"false\" [formControl]=\"queryFormControl\" />\r\n@if (queryFormControl.value) {\r\n <mat-icon (click)=\"queryFormControl.patchValue(undefined)\" class=\"warn\">clear</mat-icon>\r\n} @else {\r\n <mat-icon class=\"info\">search</mat-icon>\r\n}\r\n", styles: [":host{display:inline-flex;border-radius:4px;min-height:36px;max-width:100%;flex-direction:row;align-items:center;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface);border:1px solid var(--mat-sys-outline-variant)}:host:focus-within{border-color:var(--mat-sys-outline)}input{background:inherit;border:none;outline:none;padding:4px;font-size:1rem;min-width:40px;min-height:auto}.mat-icon{flex:24px 0 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
667
760
|
}
|
|
668
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
761
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbQueryInputComponent, decorators: [{
|
|
669
762
|
type: Component,
|
|
670
763
|
args: [{ selector: 'bdb-query-input[dataSource]', imports: [CommonModule, ReactiveFormsModule, MatIconModule], template: "<input spellcheck=\"false\" autocomplete=\"false\" [formControl]=\"queryFormControl\" />\r\n@if (queryFormControl.value) {\r\n <mat-icon (click)=\"queryFormControl.patchValue(undefined)\" class=\"warn\">clear</mat-icon>\r\n} @else {\r\n <mat-icon class=\"info\">search</mat-icon>\r\n}\r\n", styles: [":host{display:inline-flex;border-radius:4px;min-height:36px;max-width:100%;flex-direction:row;align-items:center;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface);border:1px solid var(--mat-sys-outline-variant)}:host:focus-within{border-color:var(--mat-sys-outline)}input{background:inherit;border:none;outline:none;padding:4px;font-size:1rem;min-width:40px;min-height:auto}.mat-icon{flex:24px 0 0}\n"] }]
|
|
671
764
|
}], propDecorators: { class: [{
|
|
@@ -675,776 +768,693 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
675
768
|
type: Input
|
|
676
769
|
}] } });
|
|
677
770
|
|
|
678
|
-
class
|
|
771
|
+
class BdbPaginatorComponent {
|
|
679
772
|
constructor() {
|
|
680
|
-
this.
|
|
773
|
+
this._onDestroy = new Subject();
|
|
681
774
|
}
|
|
682
775
|
ngOnInit() {
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
}
|
|
690
|
-
const ctrl = this.controlContainer.control?.get(this.controlName);
|
|
691
|
-
if (!ctrl) {
|
|
692
|
-
throw `FormControl '${this.controlName}' not found`;
|
|
693
|
-
}
|
|
694
|
-
this.formControl = ctrl;
|
|
776
|
+
this.dataSource.response$.pipe(takeUntil(this._onDestroy)).subscribe({
|
|
777
|
+
next: x => {
|
|
778
|
+
this.pageSize = x.pageSize;
|
|
779
|
+
this.page = x.page;
|
|
780
|
+
this.length = x.count;
|
|
781
|
+
},
|
|
782
|
+
});
|
|
695
783
|
}
|
|
696
|
-
|
|
697
|
-
|
|
784
|
+
ngOnDestroy() {
|
|
785
|
+
this._onDestroy.next();
|
|
786
|
+
this._onDestroy.complete();
|
|
787
|
+
}
|
|
788
|
+
changePage(event) {
|
|
789
|
+
this.dataSource.request.page = event.pageIndex;
|
|
790
|
+
this.dataSource.request.pageSize = event.pageSize;
|
|
791
|
+
this.dataSource.load();
|
|
792
|
+
}
|
|
793
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbPaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
794
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: BdbPaginatorComponent, isStandalone: true, selector: "bdb-paginator", inputs: { dataSource: "dataSource" }, ngImport: i0, template: "<mat-paginator\r\n [pageSize]=\"pageSize\"\r\n [pageIndex]=\"page\"\r\n [length]=\"length\"\r\n (page)=\"changePage($event)\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"\r\n [hidePageSize]=\"true\">\r\n</mat-paginator>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1$3.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] }); }
|
|
698
795
|
}
|
|
699
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
796
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbPaginatorComponent, decorators: [{
|
|
700
797
|
type: Component,
|
|
701
|
-
args: [{
|
|
702
|
-
}], propDecorators: {
|
|
703
|
-
type: Input
|
|
704
|
-
}], control: [{
|
|
798
|
+
args: [{ selector: 'bdb-paginator', imports: [MatPaginatorModule], template: "<mat-paginator\r\n [pageSize]=\"pageSize\"\r\n [pageIndex]=\"page\"\r\n [length]=\"length\"\r\n (page)=\"changePage($event)\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"\r\n [hidePageSize]=\"true\">\r\n</mat-paginator>\r\n" }]
|
|
799
|
+
}], propDecorators: { dataSource: [{
|
|
705
800
|
type: Input
|
|
706
801
|
}] } });
|
|
707
802
|
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
transform(value,
|
|
713
|
-
|
|
803
|
+
class DynamicPipe {
|
|
804
|
+
constructor(injector) {
|
|
805
|
+
this.injector = injector;
|
|
806
|
+
}
|
|
807
|
+
transform(value, requiredPipe, pipeArgs) {
|
|
808
|
+
const injector = Injector.create({
|
|
809
|
+
name: 'DynamicPipe',
|
|
810
|
+
parent: this.injector,
|
|
811
|
+
providers: [{ provide: requiredPipe }],
|
|
812
|
+
});
|
|
813
|
+
const pipe = injector.get(requiredPipe);
|
|
814
|
+
return pipe.transform(value, pipeArgs);
|
|
714
815
|
}
|
|
715
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
716
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
816
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DynamicPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
817
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: DynamicPipe, isStandalone: true, name: "dynamicPipe" }); }
|
|
717
818
|
}
|
|
718
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
819
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DynamicPipe, decorators: [{
|
|
719
820
|
type: Pipe,
|
|
720
821
|
args: [{
|
|
721
|
-
name: '
|
|
822
|
+
name: 'dynamicPipe',
|
|
722
823
|
standalone: true,
|
|
723
824
|
}]
|
|
724
|
-
}] });
|
|
825
|
+
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
725
826
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
['phone', 'Ongeldig tel.nr'],
|
|
730
|
-
['requiredTrue', 'Verplicht'],
|
|
731
|
-
['pattern', 'Ongeldig'],
|
|
732
|
-
]);
|
|
733
|
-
function getErrorMessage(validationErrorKey, validationErrorValue) {
|
|
734
|
-
switch (validationErrorKey) {
|
|
735
|
-
case 'minlength':
|
|
736
|
-
return `Minimum lengte: ${validationErrorValue['requiredLength']}`;
|
|
737
|
-
case 'maxlength':
|
|
738
|
-
return `Maximum lengte: ${validationErrorValue['requiredLength']}`;
|
|
739
|
-
case 'max':
|
|
740
|
-
return `Max: ${validationErrorValue['max']}`;
|
|
741
|
-
case 'min':
|
|
742
|
-
return `Min: ${validationErrorValue['min']}`;
|
|
743
|
-
case 'custom':
|
|
744
|
-
return `${validationErrorValue}`;
|
|
745
|
-
default:
|
|
746
|
-
return errorMessageMap.get(validationErrorKey) ?? validationErrorKey;
|
|
827
|
+
class BdbBooleanDisplayComponent {
|
|
828
|
+
constructor() {
|
|
829
|
+
this.class = 'bdb-boolean-display';
|
|
747
830
|
}
|
|
831
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbBooleanDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
832
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbBooleanDisplayComponent, isStandalone: true, selector: "bdb-boolean-display", inputs: { value: "value" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "@if (value === false) {\r\n <mat-icon class=\"false\">clear</mat-icon>\r\n} @else if (value === true) {\r\n <mat-icon class=\"true\">check</mat-icon>\r\n}\r\n", styles: [".false{display:block;color:var(--mat-sys-error)}.true{display:block;color:var(--bdb-sys-success)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
748
833
|
}
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
834
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbBooleanDisplayComponent, decorators: [{
|
|
835
|
+
type: Component,
|
|
836
|
+
args: [{ selector: 'bdb-boolean-display', imports: [CommonModule, MatIconModule], template: "@if (value === false) {\r\n <mat-icon class=\"false\">clear</mat-icon>\r\n} @else if (value === true) {\r\n <mat-icon class=\"true\">check</mat-icon>\r\n}\r\n", styles: [".false{display:block;color:var(--mat-sys-error)}.true{display:block;color:var(--bdb-sys-success)}\n"] }]
|
|
837
|
+
}], propDecorators: { class: [{
|
|
838
|
+
type: HostBinding,
|
|
839
|
+
args: ['class']
|
|
840
|
+
}], value: [{
|
|
841
|
+
type: Input
|
|
842
|
+
}] } });
|
|
843
|
+
|
|
844
|
+
class BdbCellDirective {
|
|
845
|
+
constructor(templateRef) {
|
|
846
|
+
this.templateRef = templateRef;
|
|
847
|
+
this.bdbCellDef = '';
|
|
754
848
|
}
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
throw new Error('No (name for) formcontrol provided');
|
|
758
|
-
}
|
|
759
|
-
if (typeof this.bdbFormError === 'string') {
|
|
760
|
-
const ctrl = this.controlContainer.control?.get(this.bdbFormError);
|
|
761
|
-
if (!ctrl) {
|
|
762
|
-
throw new Error(`No formcontrol found for name '${this.bdbFormError}'`);
|
|
763
|
-
}
|
|
764
|
-
this.control = ctrl;
|
|
765
|
-
}
|
|
766
|
-
else {
|
|
767
|
-
this.control = this.bdbFormError;
|
|
768
|
-
}
|
|
769
|
-
this.setError();
|
|
770
|
-
this.control.statusChanges.subscribe({
|
|
771
|
-
next: () => this.setError(),
|
|
772
|
-
});
|
|
773
|
-
}
|
|
774
|
-
setError() {
|
|
775
|
-
const validationErrors = this.control.errors;
|
|
776
|
-
if (!validationErrors) {
|
|
777
|
-
return;
|
|
778
|
-
}
|
|
779
|
-
const validationErrorKey = Object.keys(validationErrors)[0];
|
|
780
|
-
const validationErrorValue = validationErrors[validationErrorKey];
|
|
781
|
-
const errorMessage = getErrorMessage(validationErrorKey, validationErrorValue);
|
|
782
|
-
this.renderer.setProperty(this.element.nativeElement, 'innerText', errorMessage);
|
|
783
|
-
}
|
|
784
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: BdbFormErrorDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i3.ControlContainer }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
785
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: BdbFormErrorDirective, isStandalone: true, selector: "[bdbFormError]", inputs: { bdbFormError: "bdbFormError" }, ngImport: i0 }); }
|
|
849
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbCellDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
850
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: BdbCellDirective, isStandalone: true, selector: "ng-template[bdbCellDef]", inputs: { bdbCellDef: "bdbCellDef" }, ngImport: i0 }); }
|
|
786
851
|
}
|
|
787
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
852
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbCellDirective, decorators: [{
|
|
788
853
|
type: Directive,
|
|
789
854
|
args: [{
|
|
790
|
-
selector: '[
|
|
855
|
+
selector: 'ng-template[bdbCellDef]',
|
|
791
856
|
standalone: true,
|
|
792
857
|
}]
|
|
793
|
-
}], ctorParameters: () => [{ type: i0.
|
|
858
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { bdbCellDef: [{
|
|
794
859
|
type: Input
|
|
795
860
|
}] } });
|
|
796
861
|
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
862
|
+
var BdbColumnType;
|
|
863
|
+
(function (BdbColumnType) {
|
|
864
|
+
BdbColumnType["String"] = "String";
|
|
865
|
+
BdbColumnType["Number"] = "Number";
|
|
866
|
+
BdbColumnType["Percentage"] = "Percentage";
|
|
867
|
+
BdbColumnType["Currency"] = "Currency";
|
|
868
|
+
BdbColumnType["Date"] = "Date";
|
|
869
|
+
BdbColumnType["Boolean"] = "Boolean";
|
|
870
|
+
BdbColumnType["Enum"] = "Enum";
|
|
871
|
+
BdbColumnType["Custom"] = "Custom";
|
|
872
|
+
})(BdbColumnType || (BdbColumnType = {}));
|
|
873
|
+
|
|
874
|
+
class BdbTableComponent {
|
|
875
|
+
constructor() {
|
|
803
876
|
this._onDestroy = new Subject();
|
|
804
|
-
this.
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
this.
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
this.
|
|
813
|
-
this.
|
|
814
|
-
this.
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
.subscribe({
|
|
819
|
-
next: x => {
|
|
820
|
-
this.dataSource.request.query = x;
|
|
821
|
-
this.dataSource.load();
|
|
822
|
-
},
|
|
823
|
-
});
|
|
877
|
+
this.columns = [];
|
|
878
|
+
this.autoLoad = undefined;
|
|
879
|
+
this.displayedColumns = [];
|
|
880
|
+
this.contextActions = [];
|
|
881
|
+
this.selectOnRowClick = true;
|
|
882
|
+
this.selectedRowClass = 'selected';
|
|
883
|
+
this.isClickable = true;
|
|
884
|
+
this.rowClick = new EventEmitter();
|
|
885
|
+
this.contextAction = new EventEmitter();
|
|
886
|
+
this.columnType = BdbColumnType;
|
|
887
|
+
this.contextMenuPosition = { x: '0px', y: '0px' };
|
|
888
|
+
this.trackById = (_, item) => {
|
|
889
|
+
return item.id;
|
|
890
|
+
};
|
|
824
891
|
}
|
|
825
892
|
ngOnInit() {
|
|
826
|
-
this.
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
});
|
|
893
|
+
if (this.autoLoad !== false) {
|
|
894
|
+
this.load();
|
|
895
|
+
}
|
|
830
896
|
}
|
|
831
|
-
|
|
832
|
-
this.
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
897
|
+
ngOnChanges() {
|
|
898
|
+
if (this.columns && !this.displayedColumns.length) {
|
|
899
|
+
this.displayedColumns = this.columns.map(x => x.id);
|
|
900
|
+
}
|
|
901
|
+
if (this.selection?.isMultipleSelection() && !(this.displayedColumns[0] === 'selection')) {
|
|
902
|
+
this.displayedColumns.unshift('selection');
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
ngAfterContentInit() {
|
|
906
|
+
this.setColumnTemplates();
|
|
840
907
|
}
|
|
841
908
|
ngOnDestroy() {
|
|
842
909
|
this._onDestroy.next();
|
|
843
910
|
this._onDestroy.complete();
|
|
844
911
|
}
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
912
|
+
load() {
|
|
913
|
+
this.error = undefined;
|
|
914
|
+
this.dataSource.load();
|
|
915
|
+
}
|
|
916
|
+
setColumnTemplates() {
|
|
917
|
+
const templates = this.cellTemplates;
|
|
918
|
+
if (templates == undefined || !this.cellTemplates?.length) {
|
|
850
919
|
return;
|
|
851
920
|
}
|
|
852
|
-
this.
|
|
853
|
-
|
|
854
|
-
|
|
921
|
+
if (this.columns && this.columns.length) {
|
|
922
|
+
this.columns.forEach(x => {
|
|
923
|
+
const tpl = templates.filter(y => y.bdbCellDef === x.id)[0];
|
|
924
|
+
if (tpl) {
|
|
925
|
+
x.template = tpl.templateRef;
|
|
926
|
+
}
|
|
927
|
+
});
|
|
928
|
+
}
|
|
855
929
|
}
|
|
856
|
-
|
|
857
|
-
this.
|
|
930
|
+
onRowClick(row) {
|
|
931
|
+
if (this.selection && this.selectOnRowClick) {
|
|
932
|
+
this.selection.toggle(row);
|
|
933
|
+
}
|
|
934
|
+
this.rowClick.emit(row);
|
|
858
935
|
}
|
|
859
|
-
|
|
860
|
-
|
|
936
|
+
// SORT
|
|
937
|
+
sortData(event) {
|
|
938
|
+
const column = this.columns.find(x => x.id === event.active);
|
|
939
|
+
if (column) {
|
|
940
|
+
this.dataSource.request.sortField = column.id;
|
|
941
|
+
this.dataSource.request.sortDirection = event.direction;
|
|
942
|
+
this.dataSource.load();
|
|
943
|
+
}
|
|
861
944
|
}
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
945
|
+
// CONTEXT MENU
|
|
946
|
+
onContextMenu(event, row) {
|
|
947
|
+
event.preventDefault();
|
|
948
|
+
if (this.contextActions && this.contextActions.length) {
|
|
949
|
+
this.contextMenuPosition.x = event.clientX + 'px';
|
|
950
|
+
this.contextMenuPosition.y = event.clientY + 'px';
|
|
951
|
+
this.contextMenu.menuData = { row: row };
|
|
952
|
+
if (this.contextMenu.menu) {
|
|
953
|
+
this.contextMenu.menu.focusFirstItem('mouse');
|
|
954
|
+
}
|
|
955
|
+
this.contextMenu.openMenu();
|
|
956
|
+
}
|
|
865
957
|
}
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
958
|
+
onContextMenuAction(action, row) {
|
|
959
|
+
this.contextAction.emit({ action: action, row: row });
|
|
960
|
+
}
|
|
961
|
+
isAllSelected() {
|
|
962
|
+
if (!this.selection) {
|
|
963
|
+
return false;
|
|
871
964
|
}
|
|
965
|
+
return this.dataSource.data.every(x => this.selection?.isSelected(x));
|
|
872
966
|
}
|
|
873
|
-
|
|
874
|
-
if (!this.
|
|
875
|
-
|
|
967
|
+
anySelected() {
|
|
968
|
+
if (!this.selection) {
|
|
969
|
+
return false;
|
|
876
970
|
}
|
|
877
|
-
this.
|
|
971
|
+
return this.dataSource.data.some(x => this.selection?.isSelected(x));
|
|
878
972
|
}
|
|
879
|
-
|
|
880
|
-
if (!this.
|
|
881
|
-
|
|
973
|
+
toggleAllRows() {
|
|
974
|
+
if (!(this.selection && this.dataSource)) {
|
|
975
|
+
return;
|
|
976
|
+
}
|
|
977
|
+
if (this.isAllSelected()) {
|
|
978
|
+
this.selection.deselect(...this.dataSource.data);
|
|
979
|
+
}
|
|
980
|
+
else {
|
|
981
|
+
this.selection.select(...this.dataSource.data);
|
|
882
982
|
}
|
|
883
|
-
this.inputTabIndex = -1;
|
|
884
|
-
this.hasValue = true;
|
|
885
|
-
this.searchInput?.nativeElement.blur();
|
|
886
|
-
const value = event.option.value;
|
|
887
|
-
this.onChange(value);
|
|
888
983
|
}
|
|
889
|
-
|
|
890
|
-
if (!this.
|
|
891
|
-
|
|
984
|
+
rowClass(row) {
|
|
985
|
+
if (!(this.selection || this.rowColor)) {
|
|
986
|
+
return undefined;
|
|
892
987
|
}
|
|
893
|
-
|
|
894
|
-
this.
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
this.
|
|
988
|
+
const ret = {};
|
|
989
|
+
if (this.selection) {
|
|
990
|
+
ret[this.selectedRowClass] = this.selection.isSelected(row);
|
|
991
|
+
}
|
|
992
|
+
if (this.rowColor) {
|
|
993
|
+
const palette = this.rowColor(row);
|
|
994
|
+
if (palette) {
|
|
995
|
+
ret['bdb-' + palette] = true;
|
|
996
|
+
}
|
|
997
|
+
else if (!this.selection) {
|
|
998
|
+
return undefined;
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
return ret;
|
|
898
1002
|
}
|
|
899
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
900
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: BdbSearchComponent, isStandalone: true, selector: "bdb-search", inputs: { dataSource: "dataSource", displayFn: "displayFn", label: "label", hint: "hint", placeholder: "placeholder" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "clearButton", first: true, predicate: ["clearButton"], descendants: true }, { propertyName: "autoCompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], ngImport: i0, template: "<div class=\"search-container\">\r\n <div class=\"search-disabled-cover\" *ngIf=\"hasValue\">\r\n <button #clearButton mat-icon-button type=\"button\" [disabled]=\"isDisabled\" (click)=\"clear()\" color=\"danger\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n <mat-form-field class=\"search-form-field\">\r\n <mat-label>{{ label }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n [formControl]=\"searchCtrl\"\r\n [matAutocomplete]=\"autoComplete\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n #searchInput\r\n [tabIndex]=\"inputTabIndex\"\r\n [placeholder]=\"placeholder\" />\r\n <mat-autocomplete #autoComplete=\"matAutocomplete\" (optionSelected)=\"selectOption($event)\" [displayWith]=\"displayFn\">\r\n <mat-option *ngFor=\"let option of searchOptions | async\" [value]=\"option\">\r\n {{ option | function: displayFn }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-icon *ngIf=\"!hasValue\" matSuffix [ngClass]=\"{ 'search-icon-disabled': isDisabled }\">search</mat-icon>\r\n <mat-error [bdbFormError]=\"searchCtrl\"> </mat-error>\r\n <mat-hint>{{ hint }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", styles: [".search-container{position:relative}.search-disabled-cover{position:absolute;width:100%;height:100%;z-index:10;display:flex;justify-content:flex-end;align-items:flex-start;padding:4px}.search-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: BdbFormErrorDirective, selector: "[bdbFormError]", inputs: ["bdbFormError"] }, { kind: "pipe", type: FunctionPipe, name: "function" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
|
|
1003
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1004
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbTableComponent, isStandalone: true, selector: "bdb-table[dataSource]", inputs: { columns: "columns", dataSource: "dataSource", autoLoad: "autoLoad", displayedColumns: "displayedColumns", contextActions: "contextActions", selection: "selection", selectOnRowClick: "selectOnRowClick", selectedRowClass: "selectedRowClass", isClickable: "isClickable", rowColor: "rowColor" }, outputs: { rowClick: "rowClick", contextAction: "contextAction" }, queries: [{ propertyName: "cellTemplates", predicate: BdbCellDirective, descendants: true }], viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"bdb-table-container\">\r\n @if (dataSource) {\r\n <table\r\n mat-table\r\n class=\"bdb-table\"\r\n [class.is-clickable]=\"isClickable\"\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n (matSortChange)=\"sortData($event)\"\r\n [trackBy]=\"trackById\">\r\n <ng-container matColumnDef=\"selection\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n @if (selection) {\r\n <mat-checkbox\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"anySelected() && !isAllSelected()\"\r\n color=\"primary\">\r\n </mat-checkbox>\r\n }\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (selection) {\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n color=\"accent\">\r\n </mat-checkbox>\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n @for (column of columns; track column) {\r\n <ng-container [matColumnDef]=\"column.id\">\r\n <ng-container>\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header=\"{{ column.id }}\"\r\n [disabled]=\"column.sortDisabled\"\r\n [width]=\"column.width\"\r\n [ngClass]=\"{ 'text-end': column.textAlign && column.textAlign === 'end' }\"\r\n [arrowPosition]=\"column.textAlign && column.textAlign === 'end' ? 'before' : 'after'\">\r\n {{ column.title }}\r\n </th>\r\n </ng-container>\r\n\r\n <td mat-cell *matCellDef=\"let row\" [ngClass]=\"{ 'text-end': column.textAlign && column.textAlign === 'end' }\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.template ? column.template : cellTemplate;\r\n context: { $implicit: row, column: column }\r\n \"></ng-container>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n (click)=\"onRowClick(row)\"\r\n [ngClass]=\"rowClass(row)\"\r\n (contextmenu)=\"onContextMenu($event, row)\"></tr>\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" [colSpan]=\"displayedColumns.length\">\r\n @if (dataSource && (dataSource.error$ | async)) {\r\n <bdb-alert-error-response [value]=\"dataSource.error$ | async\"> </bdb-alert-error-response>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"noData\"></ng-container>\r\n }\r\n </td>\r\n </tr>\r\n </table>\r\n }\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<ng-template #cellTemplate let-row let-column=\"column\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.pipe ? pipedCellTemplate : defaultCellTemplate;\r\n context: { $implicit: row, column: column }\r\n \"></ng-container>\r\n</ng-template>\r\n\r\n<ng-template #pipedCellTemplate let-column=\"column\" let-row>\r\n {{ column.field(row) | dynamicPipe: column.pipe : null }}\r\n</ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-row let-column=\"column\">\r\n @switch (column.type) {\r\n @case (columnType.String) {\r\n {{ column.field(row) }}\r\n }\r\n @case (columnType.Number) {\r\n {{ column.field(row) | number: column.format }}\r\n }\r\n @case (columnType.Percentage) {\r\n {{ column.field(row) | percent: column.digitsInfo : column.locale }}\r\n }\r\n @case (columnType.Currency) {\r\n {{ column.field(row) | currency: column.currencyCode : column.display : column.digitsInfo : column.locale }}\r\n }\r\n @case (columnType.Date) {\r\n {{ column.field(row) | date: column.format }}\r\n }\r\n @case (columnType.Boolean) {\r\n <bdb-boolean-display [value]=\"column.field(row)\"></bdb-boolean-display>\r\n }\r\n @case (columnType.Enum) {\r\n {{ column.field(row) }}\r\n }\r\n @case (columnType.Custom) {\r\n *?*\r\n }\r\n @default {\r\n {{ column.field(row) | json }}\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #noData>\r\n <div class=\"no-data\"><em>Geen gegevens gevonden</em></div>\r\n</ng-template>\r\n\r\n<div\r\n style=\"visibility: hidden; position: fixed\"\r\n [style.left]=\"contextMenuPosition.x\"\r\n [style.top]=\"contextMenuPosition.y\"\r\n [matMenuTriggerFor]=\"contextMenu\"></div>\r\n<mat-menu #contextMenu=\"matMenu\" #contextMenu2=\"matMenu\">\r\n <ng-template matMenuContent let-row=\"row\">\r\n @for (action of contextActions; track action) {\r\n @if (action.condition === undefined || action.condition(row)) {\r\n <button mat-menu-item (click)=\"onContextMenuAction(action, row)\">\r\n <mat-icon [color]=\"action.color\">{{ action.icon }}</mat-icon> {{ action.label }}\r\n </button>\r\n }\r\n }\r\n </ng-template>\r\n</mat-menu>\r\n", styles: [".bdb-table{width:100%}.bdb-table.is-clickable tr:hover{cursor:pointer}.bdb-table-container{height:100%;overflow:auto}.bdb-table-container::-webkit-scrollbar{width:4px}.bdb-table-container::-webkit-scrollbar-thumb{background-color:#0003}.bdb-table-container::-webkit-scrollbar-track{background-color:#0000001a}.text-end{text-align:end}.no-data{color:#00000080;padding:8px}.mat-mdc-header-row .mat-mdc-header-cell{padding-left:8px;padding-right:8px}.mat-mdc-header-row .mat-mdc-header-cell:first-of-type{padding-left:24px}.mat-mdc-header-row .mat-mdc-header-cell:last-of-type{padding-right:24px}.mat-mdc-row .mat-mdc-cell{padding-left:8px;padding-right:8px}.mat-mdc-row .mat-mdc-cell:first-of-type{padding-left:24px}.mat-mdc-row .mat-mdc-cell:last-of-type{padding-right:24px}.mat-column-selection{width:48px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i2$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3.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: "ngmodule", type: MatSortModule }, { kind: "directive", type: i4.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: BdbAlertErrorResponseComponent, selector: "bdb-alert-error-response", inputs: ["value", "dismissable"], outputs: ["dismiss"] }, { kind: "component", type: BdbBooleanDisplayComponent, selector: "bdb-boolean-display", inputs: ["value"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.PercentPipe, name: "percent" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: DynamicPipe, name: "dynamicPipe" }] }); }
|
|
901
1005
|
}
|
|
902
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1006
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbTableComponent, decorators: [{
|
|
903
1007
|
type: Component,
|
|
904
|
-
args: [{ selector: 'bdb-
|
|
1008
|
+
args: [{ selector: 'bdb-table[dataSource]', imports: [
|
|
905
1009
|
CommonModule,
|
|
1010
|
+
MatTableModule,
|
|
1011
|
+
MatCheckboxModule,
|
|
1012
|
+
MatSortModule,
|
|
1013
|
+
BdbAlertErrorResponseComponent,
|
|
1014
|
+
DynamicPipe,
|
|
1015
|
+
BdbBooleanDisplayComponent,
|
|
1016
|
+
MatMenuModule,
|
|
906
1017
|
MatIconModule,
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
ReactiveFormsModule,
|
|
910
|
-
MatAutocompleteModule,
|
|
911
|
-
BdbFormErrorDirective,
|
|
912
|
-
FunctionPipe,
|
|
913
|
-
MatButtonModule,
|
|
914
|
-
], template: "<div class=\"search-container\">\r\n <div class=\"search-disabled-cover\" *ngIf=\"hasValue\">\r\n <button #clearButton mat-icon-button type=\"button\" [disabled]=\"isDisabled\" (click)=\"clear()\" color=\"danger\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n <mat-form-field class=\"search-form-field\">\r\n <mat-label>{{ label }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n [formControl]=\"searchCtrl\"\r\n [matAutocomplete]=\"autoComplete\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n #searchInput\r\n [tabIndex]=\"inputTabIndex\"\r\n [placeholder]=\"placeholder\" />\r\n <mat-autocomplete #autoComplete=\"matAutocomplete\" (optionSelected)=\"selectOption($event)\" [displayWith]=\"displayFn\">\r\n <mat-option *ngFor=\"let option of searchOptions | async\" [value]=\"option\">\r\n {{ option | function: displayFn }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-icon *ngIf=\"!hasValue\" matSuffix [ngClass]=\"{ 'search-icon-disabled': isDisabled }\">search</mat-icon>\r\n <mat-error [bdbFormError]=\"searchCtrl\"> </mat-error>\r\n <mat-hint>{{ hint }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", styles: [".search-container{position:relative}.search-disabled-cover{position:absolute;width:100%;height:100%;z-index:10;display:flex;justify-content:flex-end;align-items:flex-start;padding:4px}.search-form-field{width:100%}\n"] }]
|
|
915
|
-
}], ctorParameters: () => [{ type: i3.NgControl, decorators: [{
|
|
916
|
-
type: Optional
|
|
917
|
-
}, {
|
|
918
|
-
type: Self
|
|
919
|
-
}] }], propDecorators: { dataSource: [{
|
|
1018
|
+
], template: "<div class=\"bdb-table-container\">\r\n @if (dataSource) {\r\n <table\r\n mat-table\r\n class=\"bdb-table\"\r\n [class.is-clickable]=\"isClickable\"\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n (matSortChange)=\"sortData($event)\"\r\n [trackBy]=\"trackById\">\r\n <ng-container matColumnDef=\"selection\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n @if (selection) {\r\n <mat-checkbox\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"anySelected() && !isAllSelected()\"\r\n color=\"primary\">\r\n </mat-checkbox>\r\n }\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (selection) {\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n color=\"accent\">\r\n </mat-checkbox>\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n @for (column of columns; track column) {\r\n <ng-container [matColumnDef]=\"column.id\">\r\n <ng-container>\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header=\"{{ column.id }}\"\r\n [disabled]=\"column.sortDisabled\"\r\n [width]=\"column.width\"\r\n [ngClass]=\"{ 'text-end': column.textAlign && column.textAlign === 'end' }\"\r\n [arrowPosition]=\"column.textAlign && column.textAlign === 'end' ? 'before' : 'after'\">\r\n {{ column.title }}\r\n </th>\r\n </ng-container>\r\n\r\n <td mat-cell *matCellDef=\"let row\" [ngClass]=\"{ 'text-end': column.textAlign && column.textAlign === 'end' }\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.template ? column.template : cellTemplate;\r\n context: { $implicit: row, column: column }\r\n \"></ng-container>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n (click)=\"onRowClick(row)\"\r\n [ngClass]=\"rowClass(row)\"\r\n (contextmenu)=\"onContextMenu($event, row)\"></tr>\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" [colSpan]=\"displayedColumns.length\">\r\n @if (dataSource && (dataSource.error$ | async)) {\r\n <bdb-alert-error-response [value]=\"dataSource.error$ | async\"> </bdb-alert-error-response>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"noData\"></ng-container>\r\n }\r\n </td>\r\n </tr>\r\n </table>\r\n }\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<ng-template #cellTemplate let-row let-column=\"column\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.pipe ? pipedCellTemplate : defaultCellTemplate;\r\n context: { $implicit: row, column: column }\r\n \"></ng-container>\r\n</ng-template>\r\n\r\n<ng-template #pipedCellTemplate let-column=\"column\" let-row>\r\n {{ column.field(row) | dynamicPipe: column.pipe : null }}\r\n</ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-row let-column=\"column\">\r\n @switch (column.type) {\r\n @case (columnType.String) {\r\n {{ column.field(row) }}\r\n }\r\n @case (columnType.Number) {\r\n {{ column.field(row) | number: column.format }}\r\n }\r\n @case (columnType.Percentage) {\r\n {{ column.field(row) | percent: column.digitsInfo : column.locale }}\r\n }\r\n @case (columnType.Currency) {\r\n {{ column.field(row) | currency: column.currencyCode : column.display : column.digitsInfo : column.locale }}\r\n }\r\n @case (columnType.Date) {\r\n {{ column.field(row) | date: column.format }}\r\n }\r\n @case (columnType.Boolean) {\r\n <bdb-boolean-display [value]=\"column.field(row)\"></bdb-boolean-display>\r\n }\r\n @case (columnType.Enum) {\r\n {{ column.field(row) }}\r\n }\r\n @case (columnType.Custom) {\r\n *?*\r\n }\r\n @default {\r\n {{ column.field(row) | json }}\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #noData>\r\n <div class=\"no-data\"><em>Geen gegevens gevonden</em></div>\r\n</ng-template>\r\n\r\n<div\r\n style=\"visibility: hidden; position: fixed\"\r\n [style.left]=\"contextMenuPosition.x\"\r\n [style.top]=\"contextMenuPosition.y\"\r\n [matMenuTriggerFor]=\"contextMenu\"></div>\r\n<mat-menu #contextMenu=\"matMenu\" #contextMenu2=\"matMenu\">\r\n <ng-template matMenuContent let-row=\"row\">\r\n @for (action of contextActions; track action) {\r\n @if (action.condition === undefined || action.condition(row)) {\r\n <button mat-menu-item (click)=\"onContextMenuAction(action, row)\">\r\n <mat-icon [color]=\"action.color\">{{ action.icon }}</mat-icon> {{ action.label }}\r\n </button>\r\n }\r\n }\r\n </ng-template>\r\n</mat-menu>\r\n", styles: [".bdb-table{width:100%}.bdb-table.is-clickable tr:hover{cursor:pointer}.bdb-table-container{height:100%;overflow:auto}.bdb-table-container::-webkit-scrollbar{width:4px}.bdb-table-container::-webkit-scrollbar-thumb{background-color:#0003}.bdb-table-container::-webkit-scrollbar-track{background-color:#0000001a}.text-end{text-align:end}.no-data{color:#00000080;padding:8px}.mat-mdc-header-row .mat-mdc-header-cell{padding-left:8px;padding-right:8px}.mat-mdc-header-row .mat-mdc-header-cell:first-of-type{padding-left:24px}.mat-mdc-header-row .mat-mdc-header-cell:last-of-type{padding-right:24px}.mat-mdc-row .mat-mdc-cell{padding-left:8px;padding-right:8px}.mat-mdc-row .mat-mdc-cell:first-of-type{padding-left:24px}.mat-mdc-row .mat-mdc-cell:last-of-type{padding-right:24px}.mat-column-selection{width:48px}\n"] }]
|
|
1019
|
+
}], propDecorators: { columns: [{
|
|
920
1020
|
type: Input
|
|
921
|
-
}],
|
|
1021
|
+
}], dataSource: [{
|
|
922
1022
|
type: Input
|
|
923
|
-
}],
|
|
1023
|
+
}], autoLoad: [{
|
|
924
1024
|
type: Input
|
|
925
|
-
}],
|
|
1025
|
+
}], displayedColumns: [{
|
|
926
1026
|
type: Input
|
|
927
|
-
}],
|
|
1027
|
+
}], contextActions: [{
|
|
928
1028
|
type: Input
|
|
929
|
-
}],
|
|
1029
|
+
}], selection: [{
|
|
1030
|
+
type: Input
|
|
1031
|
+
}], selectOnRowClick: [{
|
|
1032
|
+
type: Input
|
|
1033
|
+
}], selectedRowClass: [{
|
|
1034
|
+
type: Input
|
|
1035
|
+
}], isClickable: [{
|
|
1036
|
+
type: Input
|
|
1037
|
+
}], rowClick: [{
|
|
1038
|
+
type: Output
|
|
1039
|
+
}], contextAction: [{
|
|
1040
|
+
type: Output
|
|
1041
|
+
}], contextMenu: [{
|
|
930
1042
|
type: ViewChild,
|
|
931
|
-
args: [
|
|
932
|
-
}],
|
|
933
|
-
type:
|
|
934
|
-
args: [
|
|
935
|
-
}],
|
|
936
|
-
type:
|
|
937
|
-
args: [MatAutocompleteTrigger]
|
|
1043
|
+
args: [MatMenuTrigger]
|
|
1044
|
+
}], cellTemplates: [{
|
|
1045
|
+
type: ContentChildren,
|
|
1046
|
+
args: [BdbCellDirective, { descendants: true }]
|
|
1047
|
+
}], rowColor: [{
|
|
1048
|
+
type: Input
|
|
938
1049
|
}] } });
|
|
939
1050
|
|
|
940
|
-
class
|
|
941
|
-
constructor(
|
|
942
|
-
this.
|
|
943
|
-
this.
|
|
1051
|
+
class BdbFullTableComponent {
|
|
1052
|
+
constructor() {
|
|
1053
|
+
this.columns = [];
|
|
1054
|
+
this.displayedColumns = [];
|
|
1055
|
+
this.autoLoad = undefined;
|
|
1056
|
+
this.contextActions = [];
|
|
1057
|
+
this.showToolbar = true;
|
|
1058
|
+
this.rowClick = new EventEmitter();
|
|
1059
|
+
this.contextAction = new EventEmitter();
|
|
944
1060
|
}
|
|
945
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
946
|
-
static { this.ɵ
|
|
1061
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFullTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1062
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbFullTableComponent, isStandalone: true, selector: "bdb-full-table", inputs: { dataSource: "dataSource", columns: "columns", displayedColumns: "displayedColumns", autoLoad: "autoLoad", selection: "selection", contextActions: "contextActions", rowColor: "rowColor", showToolbar: "showToolbar" }, outputs: { rowClick: "rowClick", contextAction: "contextAction" }, queries: [{ propertyName: "cellTemplates", predicate: BdbCellDirective, descendants: true }], ngImport: i0, template: "@if (showToolbar) {\r\n <mat-toolbar>\r\n <div bdbFlex=\"row 8px start center\">\r\n <ng-content select=\"toolbar-item\"></ng-content>\r\n </div>\r\n <bdb-query-input [dataSource]=\"dataSource\"></bdb-query-input>\r\n </mat-toolbar>\r\n}\r\n<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [autoLoad]=\"autoLoad\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [selection]=\"selection\"\r\n [rowColor]=\"rowColor\"\r\n [contextActions]=\"contextActions\"\r\n (contextAction)=\"contextAction.emit($event)\"\r\n (rowClick)=\"rowClick.emit($event)\">\r\n @for (cellTemplate of cellTemplates; track cellTemplate.bdbCellDef) {\r\n <ng-template bdbCellDef=\"{{ cellTemplate.bdbCellDef }}\" let-element>\r\n <ng-container *ngTemplateOutlet=\"cellTemplate.templateRef; context: { $implicit: element }\"></ng-container>\r\n </ng-template>\r\n }\r\n</bdb-table>\r\n<bdb-paginator [dataSource]=\"dataSource\"></bdb-paginator>\r\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;flex:0 1 100%}:host mat-toolbar{flex:0 0 auto;display:flex;flex-direction:row;gap:8px;justify-content:space-between;align-items:center}:host bdb-table{display:contents;flex:0 1 100%}:host bdb-query-input{--mdc-filled-text-field-container-color: var(--mat-sys-surface-container-lowest)}:host bdb-paginator{flex:0 0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BdbFlexDirective, selector: "[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]", inputs: ["bdbFlex", "bdbFlexDirection", "bdbFlexGap", "bdbFlexSpacing"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: BdbQueryInputComponent, selector: "bdb-query-input[dataSource]", inputs: ["dataSource"] }, { kind: "component", type: BdbPaginatorComponent, selector: "bdb-paginator", inputs: ["dataSource"] }, { kind: "component", type: BdbTableComponent, selector: "bdb-table[dataSource]", inputs: ["columns", "dataSource", "autoLoad", "displayedColumns", "contextActions", "selection", "selectOnRowClick", "selectedRowClass", "isClickable", "rowColor"], outputs: ["rowClick", "contextAction"] }, { kind: "directive", type: BdbCellDirective, selector: "ng-template[bdbCellDef]", inputs: ["bdbCellDef"] }] }); }
|
|
947
1063
|
}
|
|
948
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
949
|
-
type:
|
|
950
|
-
args: [{
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
1064
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFullTableComponent, decorators: [{
|
|
1065
|
+
type: Component,
|
|
1066
|
+
args: [{ selector: 'bdb-full-table', imports: [
|
|
1067
|
+
CommonModule,
|
|
1068
|
+
BdbFlexDirective,
|
|
1069
|
+
MatToolbarModule,
|
|
1070
|
+
BdbQueryInputComponent,
|
|
1071
|
+
BdbPaginatorComponent,
|
|
1072
|
+
BdbTableComponent,
|
|
1073
|
+
BdbCellDirective,
|
|
1074
|
+
], template: "@if (showToolbar) {\r\n <mat-toolbar>\r\n <div bdbFlex=\"row 8px start center\">\r\n <ng-content select=\"toolbar-item\"></ng-content>\r\n </div>\r\n <bdb-query-input [dataSource]=\"dataSource\"></bdb-query-input>\r\n </mat-toolbar>\r\n}\r\n<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [autoLoad]=\"autoLoad\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [selection]=\"selection\"\r\n [rowColor]=\"rowColor\"\r\n [contextActions]=\"contextActions\"\r\n (contextAction)=\"contextAction.emit($event)\"\r\n (rowClick)=\"rowClick.emit($event)\">\r\n @for (cellTemplate of cellTemplates; track cellTemplate.bdbCellDef) {\r\n <ng-template bdbCellDef=\"{{ cellTemplate.bdbCellDef }}\" let-element>\r\n <ng-container *ngTemplateOutlet=\"cellTemplate.templateRef; context: { $implicit: element }\"></ng-container>\r\n </ng-template>\r\n }\r\n</bdb-table>\r\n<bdb-paginator [dataSource]=\"dataSource\"></bdb-paginator>\r\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;flex:0 1 100%}:host mat-toolbar{flex:0 0 auto;display:flex;flex-direction:row;gap:8px;justify-content:space-between;align-items:center}:host bdb-table{display:contents;flex:0 1 100%}:host bdb-query-input{--mdc-filled-text-field-container-color: var(--mat-sys-surface-container-lowest)}:host bdb-paginator{flex:0 0 auto}\n"] }]
|
|
1075
|
+
}], propDecorators: { dataSource: [{
|
|
1076
|
+
type: Input
|
|
1077
|
+
}], columns: [{
|
|
1078
|
+
type: Input
|
|
1079
|
+
}], displayedColumns: [{
|
|
1080
|
+
type: Input
|
|
1081
|
+
}], autoLoad: [{
|
|
1082
|
+
type: Input
|
|
1083
|
+
}], selection: [{
|
|
1084
|
+
type: Input
|
|
1085
|
+
}], contextActions: [{
|
|
1086
|
+
type: Input
|
|
1087
|
+
}], rowColor: [{
|
|
1088
|
+
type: Input
|
|
1089
|
+
}], showToolbar: [{
|
|
955
1090
|
type: Input
|
|
1091
|
+
}], rowClick: [{
|
|
1092
|
+
type: Output
|
|
1093
|
+
}], contextAction: [{
|
|
1094
|
+
type: Output
|
|
1095
|
+
}], cellTemplates: [{
|
|
1096
|
+
type: ContentChildren,
|
|
1097
|
+
args: [BdbCellDirective, { descendants: true }]
|
|
956
1098
|
}] } });
|
|
957
1099
|
|
|
958
|
-
|
|
959
|
-
(
|
|
960
|
-
|
|
961
|
-
BdbColumnType["Number"] = "Number";
|
|
962
|
-
BdbColumnType["Percentage"] = "Percentage";
|
|
963
|
-
BdbColumnType["Currency"] = "Currency";
|
|
964
|
-
BdbColumnType["Date"] = "Date";
|
|
965
|
-
BdbColumnType["Boolean"] = "Boolean";
|
|
966
|
-
BdbColumnType["Enum"] = "Enum";
|
|
967
|
-
BdbColumnType["Custom"] = "Custom";
|
|
968
|
-
})(BdbColumnType || (BdbColumnType = {}));
|
|
969
|
-
|
|
970
|
-
class BdbColumnBuilder {
|
|
971
|
-
build(...columns) {
|
|
972
|
-
return columns;
|
|
973
|
-
}
|
|
974
|
-
string(field, title, options = {}) {
|
|
975
|
-
const ret = this._buildCommonOptions(BdbColumnType.String, field, title, options);
|
|
976
|
-
ret.pipe = options.pipe;
|
|
977
|
-
return ret;
|
|
978
|
-
}
|
|
979
|
-
number(field, title, options = {}) {
|
|
980
|
-
options.textAlign = options.textAlign ?? 'end';
|
|
981
|
-
const ret = this._buildCommonOptions(BdbColumnType.Number, field, title, options);
|
|
982
|
-
ret.pipe = options.pipe;
|
|
983
|
-
ret.format = options.format;
|
|
984
|
-
return ret;
|
|
985
|
-
}
|
|
986
|
-
percentage(field, title, options = {}) {
|
|
987
|
-
options.textAlign = options.textAlign ?? 'end';
|
|
988
|
-
const ret = this._buildCommonOptions(BdbColumnType.Percentage, field, title, options);
|
|
989
|
-
ret.digitsInfo = options.digitsInfo;
|
|
990
|
-
ret.locale = options.locale;
|
|
991
|
-
return ret;
|
|
992
|
-
}
|
|
993
|
-
currency(field, title, options = {}) {
|
|
994
|
-
options.textAlign = options.textAlign ?? 'end';
|
|
995
|
-
const ret = this._buildCommonOptions(BdbColumnType.Currency, field, title, options);
|
|
996
|
-
ret.currencyCode = options.currencyCode;
|
|
997
|
-
ret.display = options.display;
|
|
998
|
-
ret.digitsInfo = options.digitsInfo;
|
|
999
|
-
ret.locale = options.locale;
|
|
1000
|
-
return ret;
|
|
1100
|
+
class BdbSearchWrapperBaseComponent {
|
|
1101
|
+
constructor() {
|
|
1102
|
+
this.controlContainer = inject(ControlContainer);
|
|
1001
1103
|
}
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
if (ret.width === undefined) {
|
|
1007
|
-
switch (ret.format) {
|
|
1008
|
-
case 'short':
|
|
1009
|
-
ret.width = 144;
|
|
1010
|
-
break;
|
|
1011
|
-
case 'shortDate':
|
|
1012
|
-
ret.width = 96;
|
|
1013
|
-
break;
|
|
1014
|
-
}
|
|
1104
|
+
ngOnInit() {
|
|
1105
|
+
if (this.control) {
|
|
1106
|
+
this.formControl = this.control;
|
|
1107
|
+
return;
|
|
1015
1108
|
}
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
const
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
const ret = this._buildCommonOptions(BdbColumnType.Enum, field, title, options);
|
|
1025
|
-
ret.pipe = options.pipe;
|
|
1026
|
-
return ret;
|
|
1027
|
-
}
|
|
1028
|
-
custom(id, title, options = {}) {
|
|
1029
|
-
return {
|
|
1030
|
-
type: BdbColumnType.Custom,
|
|
1031
|
-
id: id,
|
|
1032
|
-
title: title,
|
|
1033
|
-
field: () => undefined,
|
|
1034
|
-
sortDisabled: options.sortDisabled ?? true,
|
|
1035
|
-
width: options.width,
|
|
1036
|
-
textAlign: options.textAlign,
|
|
1037
|
-
};
|
|
1038
|
-
}
|
|
1039
|
-
_buildCommonOptions(type, field, title, options = undefined) {
|
|
1040
|
-
const id = options?.id ??
|
|
1041
|
-
field
|
|
1042
|
-
.toString()
|
|
1043
|
-
.split('.')
|
|
1044
|
-
.slice(1)
|
|
1045
|
-
.map(x => x.replace(/(\?|!)$/, ''))
|
|
1046
|
-
.join('.');
|
|
1047
|
-
return {
|
|
1048
|
-
type: type,
|
|
1049
|
-
id: id,
|
|
1050
|
-
title: title,
|
|
1051
|
-
field: field,
|
|
1052
|
-
sortDisabled: options?.sortDisabled,
|
|
1053
|
-
width: options?.width,
|
|
1054
|
-
textAlign: options?.textAlign,
|
|
1055
|
-
};
|
|
1109
|
+
if (!this.controlName) {
|
|
1110
|
+
throw 'No FormControl or FormControlName provided';
|
|
1111
|
+
}
|
|
1112
|
+
const ctrl = this.controlContainer.control?.get(this.controlName);
|
|
1113
|
+
if (!ctrl) {
|
|
1114
|
+
throw `FormControl '${this.controlName}' not found`;
|
|
1115
|
+
}
|
|
1116
|
+
this.formControl = ctrl;
|
|
1056
1117
|
}
|
|
1057
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1058
|
-
static { this.ɵ
|
|
1118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbSearchWrapperBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: BdbSearchWrapperBaseComponent, isStandalone: true, selector: "ng-component", inputs: { controlName: "controlName", control: "control" }, ngImport: i0, template: '', isInline: true }); }
|
|
1059
1120
|
}
|
|
1060
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1061
|
-
type:
|
|
1062
|
-
args: [{
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbSearchWrapperBaseComponent, decorators: [{
|
|
1122
|
+
type: Component,
|
|
1123
|
+
args: [{ template: '', standalone: true }]
|
|
1124
|
+
}], propDecorators: { controlName: [{
|
|
1125
|
+
type: Input
|
|
1126
|
+
}], control: [{
|
|
1127
|
+
type: Input
|
|
1128
|
+
}] } });
|
|
1066
1129
|
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
transform(value,
|
|
1072
|
-
|
|
1073
|
-
name: 'DynamicPipe',
|
|
1074
|
-
parent: this.injector,
|
|
1075
|
-
providers: [{ provide: requiredPipe }],
|
|
1076
|
-
});
|
|
1077
|
-
const pipe = injector.get(requiredPipe);
|
|
1078
|
-
return pipe.transform(value, pipeArgs);
|
|
1130
|
+
// Opzettelijk geen bdb prefix, aangezien dit een pure util is
|
|
1131
|
+
// Daartoe in eerste instantie ook niet beschikbaar gesteld in public api
|
|
1132
|
+
// Als hier wel reden toe is: heroverwegen bdb prefix toe te voegen
|
|
1133
|
+
class FunctionPipe {
|
|
1134
|
+
transform(value, fn) {
|
|
1135
|
+
return fn(value);
|
|
1079
1136
|
}
|
|
1080
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1081
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
1137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FunctionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1138
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: FunctionPipe, isStandalone: true, name: "function" }); }
|
|
1082
1139
|
}
|
|
1083
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FunctionPipe, decorators: [{
|
|
1084
1141
|
type: Pipe,
|
|
1085
1142
|
args: [{
|
|
1086
|
-
name: '
|
|
1143
|
+
name: 'function',
|
|
1087
1144
|
standalone: true,
|
|
1088
1145
|
}]
|
|
1089
|
-
}]
|
|
1146
|
+
}] });
|
|
1090
1147
|
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1148
|
+
const errorMessageMap = new Map([
|
|
1149
|
+
['required', 'Verplicht'],
|
|
1150
|
+
['email', 'Ongeldig e-mail'],
|
|
1151
|
+
['phone', 'Ongeldig tel.nr'],
|
|
1152
|
+
['requiredTrue', 'Verplicht'],
|
|
1153
|
+
['pattern', 'Ongeldig'],
|
|
1154
|
+
]);
|
|
1155
|
+
function getErrorMessage(validationErrorKey, validationErrorValue) {
|
|
1156
|
+
switch (validationErrorKey) {
|
|
1157
|
+
case 'minlength':
|
|
1158
|
+
return `Minimum lengte: ${validationErrorValue['requiredLength']}`;
|
|
1159
|
+
case 'maxlength':
|
|
1160
|
+
return `Maximum lengte: ${validationErrorValue['requiredLength']}`;
|
|
1161
|
+
case 'max':
|
|
1162
|
+
return `Max: ${validationErrorValue['max']}`;
|
|
1163
|
+
case 'min':
|
|
1164
|
+
return `Min: ${validationErrorValue['min']}`;
|
|
1165
|
+
case 'custom':
|
|
1166
|
+
return `${validationErrorValue}`;
|
|
1167
|
+
default:
|
|
1168
|
+
return errorMessageMap.get(validationErrorKey) ?? validationErrorKey;
|
|
1094
1169
|
}
|
|
1095
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: BdbBooleanDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1096
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: BdbBooleanDisplayComponent, isStandalone: true, selector: "bdb-boolean-display", inputs: { value: "value" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<mat-icon *ngIf=\"value === false\" class=\"false\">clear</mat-icon>\r\n<mat-icon *ngIf=\"value === true\" class=\"true\">check</mat-icon>\r\n", styles: [".false{display:block;color:var(--mat-sys-error)}.true{display:block;color:var(--bdb-sys-success)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
1097
1170
|
}
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
args: ['class']
|
|
1104
|
-
}], value: [{
|
|
1105
|
-
type: Input
|
|
1106
|
-
}] } });
|
|
1107
|
-
|
|
1108
|
-
class BdbTableComponent {
|
|
1109
|
-
constructor() {
|
|
1110
|
-
this._onDestroy = new Subject();
|
|
1111
|
-
this.columns = [];
|
|
1112
|
-
this.autoLoad = undefined;
|
|
1113
|
-
this.displayedColumns = [];
|
|
1114
|
-
this.contextActions = [];
|
|
1115
|
-
this.selectOnRowClick = true;
|
|
1116
|
-
this.selectedRowClass = 'selected';
|
|
1117
|
-
this.isClickable = true;
|
|
1118
|
-
this.rowClick = new EventEmitter();
|
|
1119
|
-
this.contextAction = new EventEmitter();
|
|
1120
|
-
this.columnType = BdbColumnType;
|
|
1121
|
-
this.contextMenuPosition = { x: '0px', y: '0px' };
|
|
1122
|
-
this.trackById = (_, item) => {
|
|
1123
|
-
return item.id;
|
|
1124
|
-
};
|
|
1171
|
+
class BdbFormErrorDirective {
|
|
1172
|
+
constructor(element, renderer, controlContainer) {
|
|
1173
|
+
this.element = element;
|
|
1174
|
+
this.renderer = renderer;
|
|
1175
|
+
this.controlContainer = controlContainer;
|
|
1125
1176
|
}
|
|
1126
1177
|
ngOnInit() {
|
|
1127
|
-
if (this.
|
|
1128
|
-
|
|
1178
|
+
if (!this.bdbFormError) {
|
|
1179
|
+
throw new Error('No (name for) formcontrol provided');
|
|
1129
1180
|
}
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1181
|
+
if (typeof this.bdbFormError === 'string') {
|
|
1182
|
+
const ctrl = this.controlContainer.control?.get(this.bdbFormError);
|
|
1183
|
+
if (!ctrl) {
|
|
1184
|
+
throw new Error(`No formcontrol found for name '${this.bdbFormError}'`);
|
|
1185
|
+
}
|
|
1186
|
+
this.control = ctrl;
|
|
1134
1187
|
}
|
|
1135
|
-
|
|
1136
|
-
this.
|
|
1188
|
+
else {
|
|
1189
|
+
this.control = this.bdbFormError;
|
|
1137
1190
|
}
|
|
1191
|
+
this.setError();
|
|
1192
|
+
this.control.statusChanges.subscribe({
|
|
1193
|
+
next: () => this.setError(),
|
|
1194
|
+
});
|
|
1138
1195
|
}
|
|
1139
|
-
|
|
1140
|
-
this.
|
|
1196
|
+
setError() {
|
|
1197
|
+
const validationErrors = this.control.errors;
|
|
1198
|
+
if (!validationErrors) {
|
|
1199
|
+
return;
|
|
1200
|
+
}
|
|
1201
|
+
const validationErrorKey = Object.keys(validationErrors)[0];
|
|
1202
|
+
const validationErrorValue = validationErrors[validationErrorKey];
|
|
1203
|
+
const errorMessage = getErrorMessage(validationErrorKey, validationErrorValue);
|
|
1204
|
+
this.renderer.setProperty(this.element.nativeElement, 'innerText', errorMessage);
|
|
1205
|
+
}
|
|
1206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFormErrorDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$2.ControlContainer }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1207
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: BdbFormErrorDirective, isStandalone: true, selector: "[bdbFormError]", inputs: { bdbFormError: "bdbFormError" }, ngImport: i0 }); }
|
|
1208
|
+
}
|
|
1209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFormErrorDirective, decorators: [{
|
|
1210
|
+
type: Directive,
|
|
1211
|
+
args: [{
|
|
1212
|
+
selector: '[bdbFormError]',
|
|
1213
|
+
standalone: true,
|
|
1214
|
+
}]
|
|
1215
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$2.ControlContainer }], propDecorators: { bdbFormError: [{
|
|
1216
|
+
type: Input
|
|
1217
|
+
}] } });
|
|
1218
|
+
|
|
1219
|
+
class BdbSearchComponent {
|
|
1220
|
+
constructor(ngControl) {
|
|
1221
|
+
this.ngControl = ngControl;
|
|
1222
|
+
this.label = '';
|
|
1223
|
+
this.hint = '';
|
|
1224
|
+
this.placeholder = '';
|
|
1225
|
+
this._onDestroy = new Subject();
|
|
1226
|
+
this.viewChange = new BehaviorSubject({
|
|
1227
|
+
start: 0,
|
|
1228
|
+
end: Number.MAX_VALUE,
|
|
1229
|
+
});
|
|
1230
|
+
this.searchCtrl = new FormControl('', {
|
|
1231
|
+
nonNullable: true,
|
|
1232
|
+
validators: [() => this.ngControl.errors],
|
|
1233
|
+
});
|
|
1234
|
+
this.inputTabIndex = 0;
|
|
1235
|
+
this.hasValue = false;
|
|
1236
|
+
this.isDisabled = false;
|
|
1237
|
+
ngControl.valueAccessor = this;
|
|
1238
|
+
this.searchCtrl.valueChanges
|
|
1239
|
+
.pipe(takeUntil(this._onDestroy), debounceTime(100), distinctUntilChanged(), filter$1(x => typeof x === 'string'))
|
|
1240
|
+
.subscribe({
|
|
1241
|
+
next: x => {
|
|
1242
|
+
this.dataSource.request.query = x;
|
|
1243
|
+
this.dataSource.load();
|
|
1244
|
+
},
|
|
1245
|
+
});
|
|
1246
|
+
}
|
|
1247
|
+
ngOnInit() {
|
|
1248
|
+
this.searchOptions = this.dataSource.connect();
|
|
1249
|
+
this.ngControl.valueChanges?.pipe(takeUntil(this._onDestroy)).subscribe({
|
|
1250
|
+
next: () => this.searchCtrl.updateValueAndValidity(),
|
|
1251
|
+
});
|
|
1252
|
+
}
|
|
1253
|
+
ngAfterViewInit() {
|
|
1254
|
+
this.autoCompleteTrigger?.panelClosingActions.pipe(takeUntil(this._onDestroy)).subscribe({
|
|
1255
|
+
next: x => {
|
|
1256
|
+
if (x === null) {
|
|
1257
|
+
this.searchCtrl.setValue('');
|
|
1258
|
+
this.searchInput?.nativeElement.blur();
|
|
1259
|
+
}
|
|
1260
|
+
},
|
|
1261
|
+
});
|
|
1141
1262
|
}
|
|
1142
1263
|
ngOnDestroy() {
|
|
1143
1264
|
this._onDestroy.next();
|
|
1144
1265
|
this._onDestroy.complete();
|
|
1145
1266
|
}
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
const templates = this.cellTemplates;
|
|
1152
|
-
if (templates == undefined || !this.cellTemplates?.length) {
|
|
1267
|
+
writeValue(obj) {
|
|
1268
|
+
if (!obj) {
|
|
1269
|
+
this.hasValue = false;
|
|
1270
|
+
this.inputTabIndex = 0;
|
|
1271
|
+
this.searchCtrl.setValue('');
|
|
1153
1272
|
return;
|
|
1154
1273
|
}
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
if (tpl) {
|
|
1159
|
-
x.template = tpl.templateRef;
|
|
1160
|
-
}
|
|
1161
|
-
});
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
onRowClick(row) {
|
|
1165
|
-
if (this.selection && this.selectOnRowClick) {
|
|
1166
|
-
this.selection.toggle(row);
|
|
1167
|
-
}
|
|
1168
|
-
this.rowClick.emit(row);
|
|
1274
|
+
this.searchCtrl.setValue(obj);
|
|
1275
|
+
this.inputTabIndex = -1;
|
|
1276
|
+
this.hasValue = true;
|
|
1169
1277
|
}
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
const column = this.columns.find(x => x.id === event.active);
|
|
1173
|
-
if (column) {
|
|
1174
|
-
this.dataSource.request.sortField = column.id;
|
|
1175
|
-
this.dataSource.request.sortDirection = event.direction;
|
|
1176
|
-
this.dataSource.load();
|
|
1177
|
-
}
|
|
1278
|
+
registerOnChange(fn) {
|
|
1279
|
+
this.onChange = fn;
|
|
1178
1280
|
}
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
event.preventDefault();
|
|
1182
|
-
if (this.contextActions && this.contextActions.length) {
|
|
1183
|
-
this.contextMenuPosition.x = event.clientX + 'px';
|
|
1184
|
-
this.contextMenuPosition.y = event.clientY + 'px';
|
|
1185
|
-
this.contextMenu.menuData = { row: row };
|
|
1186
|
-
if (this.contextMenu.menu) {
|
|
1187
|
-
this.contextMenu.menu.focusFirstItem('mouse');
|
|
1188
|
-
}
|
|
1189
|
-
this.contextMenu.openMenu();
|
|
1190
|
-
}
|
|
1281
|
+
registerOnTouched(fn) {
|
|
1282
|
+
this.onTouch = fn;
|
|
1191
1283
|
}
|
|
1192
|
-
|
|
1193
|
-
this.
|
|
1284
|
+
setDisabledState(isDisabled) {
|
|
1285
|
+
isDisabled ? this.searchCtrl.disable() : this.searchCtrl.enable();
|
|
1286
|
+
this.isDisabled = isDisabled;
|
|
1194
1287
|
}
|
|
1195
|
-
|
|
1196
|
-
if (
|
|
1197
|
-
|
|
1288
|
+
onFocus() {
|
|
1289
|
+
if (this.hasValue) {
|
|
1290
|
+
this.searchInput?.nativeElement.blur();
|
|
1291
|
+
this.autoCompleteTrigger?.closePanel();
|
|
1292
|
+
this.clearButton?.focus();
|
|
1198
1293
|
}
|
|
1199
|
-
return this.dataSource.data.every(x => this.selection?.isSelected(x));
|
|
1200
1294
|
}
|
|
1201
|
-
|
|
1202
|
-
if (!this.
|
|
1203
|
-
|
|
1295
|
+
onBlur() {
|
|
1296
|
+
if (!this.onTouch) {
|
|
1297
|
+
throw 'No onTouch callback registered';
|
|
1204
1298
|
}
|
|
1205
|
-
|
|
1299
|
+
this.onTouch();
|
|
1206
1300
|
}
|
|
1207
|
-
|
|
1208
|
-
if (!
|
|
1209
|
-
|
|
1210
|
-
}
|
|
1211
|
-
if (this.isAllSelected()) {
|
|
1212
|
-
this.selection.deselect(...this.dataSource.data);
|
|
1213
|
-
}
|
|
1214
|
-
else {
|
|
1215
|
-
this.selection.select(...this.dataSource.data);
|
|
1301
|
+
selectOption(event) {
|
|
1302
|
+
if (!this.onChange) {
|
|
1303
|
+
throw 'No onChange callback registered';
|
|
1216
1304
|
}
|
|
1305
|
+
this.inputTabIndex = -1;
|
|
1306
|
+
this.hasValue = true;
|
|
1307
|
+
this.searchInput?.nativeElement.blur();
|
|
1308
|
+
const value = event.option.value;
|
|
1309
|
+
this.onChange(value);
|
|
1217
1310
|
}
|
|
1218
|
-
|
|
1219
|
-
if (!
|
|
1220
|
-
|
|
1221
|
-
}
|
|
1222
|
-
const ret = {};
|
|
1223
|
-
if (this.selection) {
|
|
1224
|
-
ret[this.selectedRowClass] = this.selection.isSelected(row);
|
|
1225
|
-
}
|
|
1226
|
-
if (this.rowColor) {
|
|
1227
|
-
const palette = this.rowColor(row);
|
|
1228
|
-
if (palette) {
|
|
1229
|
-
ret['bdb-' + palette] = true;
|
|
1230
|
-
}
|
|
1231
|
-
else if (!this.selection) {
|
|
1232
|
-
return undefined;
|
|
1233
|
-
}
|
|
1311
|
+
clear() {
|
|
1312
|
+
if (!this.onChange) {
|
|
1313
|
+
throw 'No onChange callback registered';
|
|
1234
1314
|
}
|
|
1235
|
-
|
|
1315
|
+
this.hasValue = false;
|
|
1316
|
+
this.inputTabIndex = 0;
|
|
1317
|
+
this.searchCtrl.setValue('');
|
|
1318
|
+
this.searchInput?.nativeElement.focus();
|
|
1319
|
+
this.onChange(null);
|
|
1236
1320
|
}
|
|
1237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: BdbTableComponent, isStandalone: true, selector: "bdb-table[dataSource]", inputs: { columns: "columns", dataSource: "dataSource", autoLoad: "autoLoad", displayedColumns: "displayedColumns", contextActions: "contextActions", selection: "selection", selectOnRowClick: "selectOnRowClick", selectedRowClass: "selectedRowClass", isClickable: "isClickable", rowColor: "rowColor" }, outputs: { rowClick: "rowClick", contextAction: "contextAction" }, queries: [{ propertyName: "cellTemplates", predicate: BdbCellDirective, descendants: true }], viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"bdb-table-container\">\r\n <table\r\n mat-table\r\n class=\"bdb-table\"\r\n [class.is-clickable]=\"isClickable\"\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n (matSortChange)=\"sortData($event)\"\r\n *ngIf=\"dataSource\"\r\n [trackBy]=\"trackById\">\r\n <ng-container matColumnDef=\"selection\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"anySelected() && !isAllSelected()\"\r\n color=\"primary\"\r\n *ngIf=\"selection\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n color=\"accent\"\r\n *ngIf=\"selection\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container [matColumnDef]=\"column.id\" *ngFor=\"let column of columns\">\r\n <ng-container>\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n mat-sort-header=\"{{ column.id }}\"\r\n [disabled]=\"column.sortDisabled\"\r\n [width]=\"column.width\"\r\n [ngClass]=\"{ 'text-end': column.textAlign && column.textAlign === 'end' }\"\r\n [arrowPosition]=\"column.textAlign && column.textAlign === 'end' ? 'before' : 'after'\">\r\n {{ column.title }}\r\n </th>\r\n </ng-container>\r\n\r\n <td mat-cell *matCellDef=\"let row\" [ngClass]=\"{ 'text-end': column.textAlign && column.textAlign === 'end' }\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.template ? column.template : cellTemplate;\r\n context: { $implicit: row, column: column }\r\n \"></ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n (click)=\"onRowClick(row)\"\r\n [ngClass]=\"rowClass(row)\"\r\n (contextmenu)=\"onContextMenu($event, row)\"></tr>\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" [colSpan]=\"displayedColumns.length\">\r\n <bdb-alert-error-response\r\n [value]=\"dataSource.error$ | async\"\r\n *ngIf=\"dataSource && (dataSource.error$ | async); else noData\"></bdb-alert-error-response>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<ng-template #cellTemplate let-row let-column=\"column\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.pipe ? pipedCellTemplate : defaultCellTemplate;\r\n context: { $implicit: row, column: column }\r\n \"></ng-container>\r\n</ng-template>\r\n\r\n<ng-template #pipedCellTemplate let-column=\"column\" let-row>\r\n {{ column.field(row) | dynamicPipe: column.pipe : null }}\r\n</ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-row let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"columnType.String\">{{ column.field(row) }}</ng-container>\r\n <ng-container *ngSwitchCase=\"columnType.Number\">{{ column.field(row) | number: column.format }}</ng-container>\r\n <ng-container *ngSwitchCase=\"columnType.Percentage\">{{\r\n column.field(row) | percent: column.digitsInfo : column.locale\r\n }}</ng-container>\r\n <ng-container *ngSwitchCase=\"columnType.Currency\">{{\r\n column.field(row) | currency: column.currencyCode : column.display : column.digitsInfo : column.locale\r\n }}</ng-container>\r\n <ng-container *ngSwitchCase=\"columnType.Date\"> {{ column.field(row) | date: column.format }}</ng-container>\r\n <ng-container *ngSwitchCase=\"columnType.Boolean\">\r\n <bdb-boolean-display [value]=\"column.field(row)\"></bdb-boolean-display>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType.Enum\">{{ column.field(row) }}</ng-container>\r\n <ng-container *ngSwitchCase=\"columnType.Custom\">*?*</ng-container>\r\n <ng-container *ngSwitchDefault>{{ column.field(row) | json }}</ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #noData>\r\n <div class=\"no-data\"><em>Geen gegevens gevonden</em></div>\r\n</ng-template>\r\n\r\n<div\r\n style=\"visibility: hidden; position: fixed\"\r\n [style.left]=\"contextMenuPosition.x\"\r\n [style.top]=\"contextMenuPosition.y\"\r\n [matMenuTriggerFor]=\"contextMenu\"></div>\r\n<mat-menu #contextMenu=\"matMenu\" #contextMenu2=\"matMenu\">\r\n <ng-template matMenuContent let-row=\"row\">\r\n <ng-container *ngFor=\"let action of contextActions\">\r\n <button\r\n mat-menu-item\r\n (click)=\"onContextMenuAction(action, row)\"\r\n *ngIf=\"action.condition === undefined || action.condition(row)\">\r\n <mat-icon [color]=\"action.color\">{{ action.icon }}</mat-icon> {{ action.label }}\r\n </button>\r\n </ng-container>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: [".bdb-table{width:100%}.bdb-table.is-clickable tr:hover{cursor:pointer}.bdb-table-container{height:100%;overflow:auto}.bdb-table-container::-webkit-scrollbar{width:4px}.bdb-table-container::-webkit-scrollbar-thumb{background-color:#0003}.bdb-table-container::-webkit-scrollbar-track{background-color:#0000001a}.text-end{text-align:end}.no-data{color:#00000080;padding:8px}.mat-mdc-header-row .mat-mdc-header-cell{padding-left:8px;padding-right:8px}.mat-mdc-header-row .mat-mdc-header-cell:first-of-type{padding-left:24px}.mat-mdc-header-row .mat-mdc-header-cell:last-of-type{padding-right:24px}.mat-mdc-row .mat-mdc-cell{padding-left:8px;padding-right:8px}.mat-mdc-row .mat-mdc-cell:first-of-type{padding-left:24px}.mat-mdc-row .mat-mdc-cell:last-of-type{padding-right:24px}.mat-column-selection{width:48px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.PercentPipe, name: "percent" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i2$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "ngmodule", type: MatCheckboxModule }, { 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: "ngmodule", type: MatSortModule }, { kind: "directive", type: i4$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: BdbAlertErrorResponseComponent, selector: "bdb-alert-error-response", inputs: ["value"] }, { kind: "pipe", type: DynamicPipe, name: "dynamicPipe" }, { kind: "component", type: BdbBooleanDisplayComponent, selector: "bdb-boolean-display", inputs: ["value"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
1321
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbSearchComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbSearchComponent, isStandalone: true, selector: "bdb-search", inputs: { dataSource: "dataSource", displayFn: "displayFn", label: "label", hint: "hint", placeholder: "placeholder" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "clearButton", first: true, predicate: ["clearButton"], descendants: true }, { propertyName: "autoCompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], ngImport: i0, template: "<div class=\"search-container\">\r\n @if (hasValue) {\r\n <div class=\"search-disabled-cover\">\r\n <button #clearButton mat-icon-button type=\"button\" [disabled]=\"isDisabled\" (click)=\"clear()\" color=\"danger\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <mat-form-field class=\"search-form-field\">\r\n <mat-label>{{ label }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n [formControl]=\"searchCtrl\"\r\n [matAutocomplete]=\"autoComplete\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n #searchInput\r\n [tabIndex]=\"inputTabIndex\"\r\n [placeholder]=\"placeholder\" />\r\n <mat-autocomplete #autoComplete=\"matAutocomplete\" (optionSelected)=\"selectOption($event)\" [displayWith]=\"displayFn\">\r\n @for (option of searchOptions | async; track option) {\r\n <mat-option [value]=\"option\">\r\n {{ option | function: displayFn }}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n\r\n @if (!hasValue) {\r\n <mat-icon matSuffix [ngClass]=\"{ 'search-icon-disabled': isDisabled }\">search</mat-icon>\r\n }\r\n <mat-error [bdbFormError]=\"searchCtrl\"> </mat-error>\r\n <mat-hint>{{ hint }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", styles: [".search-container{position:relative}.search-disabled-cover{position:absolute;width:100%;height:100%;z-index:10;display:flex;justify-content:flex-end;align-items:flex-start;padding:4px}.search-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5$1.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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: BdbFormErrorDirective, selector: "[bdbFormError]", inputs: ["bdbFormError"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: FunctionPipe, name: "function" }] }); }
|
|
1239
1323
|
}
|
|
1240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1324
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbSearchComponent, decorators: [{
|
|
1241
1325
|
type: Component,
|
|
1242
|
-
args: [{ selector: 'bdb-
|
|
1326
|
+
args: [{ selector: 'bdb-search', imports: [
|
|
1243
1327
|
CommonModule,
|
|
1244
|
-
MatTableModule,
|
|
1245
|
-
MatCheckboxModule,
|
|
1246
|
-
MatSortModule,
|
|
1247
|
-
BdbAlertErrorResponseComponent,
|
|
1248
|
-
DynamicPipe,
|
|
1249
|
-
BdbBooleanDisplayComponent,
|
|
1250
|
-
MatMenuModule,
|
|
1251
1328
|
MatIconModule,
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1329
|
+
MatFormFieldModule,
|
|
1330
|
+
MatInputModule,
|
|
1331
|
+
ReactiveFormsModule,
|
|
1332
|
+
MatAutocompleteModule,
|
|
1333
|
+
BdbFormErrorDirective,
|
|
1334
|
+
FunctionPipe,
|
|
1335
|
+
MatButtonModule,
|
|
1336
|
+
], template: "<div class=\"search-container\">\r\n @if (hasValue) {\r\n <div class=\"search-disabled-cover\">\r\n <button #clearButton mat-icon-button type=\"button\" [disabled]=\"isDisabled\" (click)=\"clear()\" color=\"danger\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <mat-form-field class=\"search-form-field\">\r\n <mat-label>{{ label }}</mat-label>\r\n <input\r\n type=\"text\"\r\n matInput\r\n [formControl]=\"searchCtrl\"\r\n [matAutocomplete]=\"autoComplete\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n #searchInput\r\n [tabIndex]=\"inputTabIndex\"\r\n [placeholder]=\"placeholder\" />\r\n <mat-autocomplete #autoComplete=\"matAutocomplete\" (optionSelected)=\"selectOption($event)\" [displayWith]=\"displayFn\">\r\n @for (option of searchOptions | async; track option) {\r\n <mat-option [value]=\"option\">\r\n {{ option | function: displayFn }}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n\r\n @if (!hasValue) {\r\n <mat-icon matSuffix [ngClass]=\"{ 'search-icon-disabled': isDisabled }\">search</mat-icon>\r\n }\r\n <mat-error [bdbFormError]=\"searchCtrl\"> </mat-error>\r\n <mat-hint>{{ hint }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", styles: [".search-container{position:relative}.search-disabled-cover{position:absolute;width:100%;height:100%;z-index:10;display:flex;justify-content:flex-end;align-items:flex-start;padding:4px}.search-form-field{width:100%}\n"] }]
|
|
1337
|
+
}], ctorParameters: () => [{ type: i1$2.NgControl, decorators: [{
|
|
1338
|
+
type: Optional
|
|
1339
|
+
}, {
|
|
1340
|
+
type: Self
|
|
1341
|
+
}] }], propDecorators: { dataSource: [{
|
|
1262
1342
|
type: Input
|
|
1263
|
-
}],
|
|
1343
|
+
}], displayFn: [{
|
|
1264
1344
|
type: Input
|
|
1265
|
-
}],
|
|
1345
|
+
}], label: [{
|
|
1266
1346
|
type: Input
|
|
1267
|
-
}],
|
|
1347
|
+
}], hint: [{
|
|
1268
1348
|
type: Input
|
|
1269
|
-
}],
|
|
1349
|
+
}], placeholder: [{
|
|
1270
1350
|
type: Input
|
|
1271
|
-
}],
|
|
1272
|
-
type: Output
|
|
1273
|
-
}], contextAction: [{
|
|
1274
|
-
type: Output
|
|
1275
|
-
}], contextMenu: [{
|
|
1351
|
+
}], searchInput: [{
|
|
1276
1352
|
type: ViewChild,
|
|
1277
|
-
args: [
|
|
1278
|
-
}],
|
|
1279
|
-
type:
|
|
1280
|
-
args: [
|
|
1281
|
-
}],
|
|
1282
|
-
type:
|
|
1353
|
+
args: ['searchInput']
|
|
1354
|
+
}], clearButton: [{
|
|
1355
|
+
type: ViewChild,
|
|
1356
|
+
args: ['clearButton']
|
|
1357
|
+
}], autoCompleteTrigger: [{
|
|
1358
|
+
type: ViewChild,
|
|
1359
|
+
args: [MatAutocompleteTrigger]
|
|
1283
1360
|
}] } });
|
|
1284
1361
|
|
|
1285
|
-
class
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
}
|
|
1289
|
-
}
|
|
1290
|
-
|
|
1291
|
-
const DEFAULT_FLEX_DIRECTION = 'row';
|
|
1292
|
-
const DEFAULT_FLEX_GAP = '';
|
|
1293
|
-
const DEFAULT_FLEX_SPACING = {
|
|
1294
|
-
justify: 'start',
|
|
1295
|
-
align: 'stretch',
|
|
1296
|
-
};
|
|
1297
|
-
class BdbFlexDirective {
|
|
1298
|
-
constructor(element, renderer) {
|
|
1299
|
-
this.element = element;
|
|
1300
|
-
this.renderer = renderer;
|
|
1301
|
-
this.bdbFlex = '';
|
|
1302
|
-
this.bdbFlexDirection = '';
|
|
1303
|
-
this.bdbFlexGap = '';
|
|
1304
|
-
this.bdbFlexSpacing = '';
|
|
1305
|
-
}
|
|
1306
|
-
ngOnInit() {
|
|
1307
|
-
this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');
|
|
1308
|
-
const bdbFlexInputs = this.bdbFlex.split(' ').filter(x => !!x);
|
|
1309
|
-
this.setDirection(bdbFlexInputs[0]);
|
|
1310
|
-
this.setGap(bdbFlexInputs[1]);
|
|
1311
|
-
this.setSpacing({
|
|
1312
|
-
justify: bdbFlexInputs[2],
|
|
1313
|
-
align: bdbFlexInputs[3],
|
|
1314
|
-
});
|
|
1362
|
+
class BdbColumnBuilder {
|
|
1363
|
+
build(...columns) {
|
|
1364
|
+
return columns;
|
|
1315
1365
|
}
|
|
1316
|
-
|
|
1317
|
-
const
|
|
1318
|
-
|
|
1366
|
+
string(field, title, options = {}) {
|
|
1367
|
+
const ret = this._buildCommonOptions(BdbColumnType.String, field, title, options);
|
|
1368
|
+
ret.pipe = options.pipe;
|
|
1369
|
+
return ret;
|
|
1319
1370
|
}
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
return bdbFlexInput;
|
|
1327
|
-
}
|
|
1328
|
-
return DEFAULT_FLEX_DIRECTION;
|
|
1371
|
+
number(field, title, options = {}) {
|
|
1372
|
+
options.textAlign = options.textAlign ?? 'end';
|
|
1373
|
+
const ret = this._buildCommonOptions(BdbColumnType.Number, field, title, options);
|
|
1374
|
+
ret.pipe = options.pipe;
|
|
1375
|
+
ret.format = options.format;
|
|
1376
|
+
return ret;
|
|
1329
1377
|
}
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
default:
|
|
1337
|
-
throw new LayoutError(`'${direction}' is not a valid value for flex direction`);
|
|
1338
|
-
}
|
|
1378
|
+
percentage(field, title, options = {}) {
|
|
1379
|
+
options.textAlign = options.textAlign ?? 'end';
|
|
1380
|
+
const ret = this._buildCommonOptions(BdbColumnType.Percentage, field, title, options);
|
|
1381
|
+
ret.digitsInfo = options.digitsInfo;
|
|
1382
|
+
ret.locale = options.locale;
|
|
1383
|
+
return ret;
|
|
1339
1384
|
}
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
this.
|
|
1385
|
+
currency(field, title, options = {}) {
|
|
1386
|
+
options.textAlign = options.textAlign ?? 'end';
|
|
1387
|
+
const ret = this._buildCommonOptions(BdbColumnType.Currency, field, title, options);
|
|
1388
|
+
ret.currencyCode = options.currencyCode;
|
|
1389
|
+
ret.display = options.display;
|
|
1390
|
+
ret.digitsInfo = options.digitsInfo;
|
|
1391
|
+
ret.locale = options.locale;
|
|
1392
|
+
return ret;
|
|
1343
1393
|
}
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1394
|
+
date(field, title, options = {}) {
|
|
1395
|
+
options.textAlign = options.textAlign ?? 'end';
|
|
1396
|
+
const ret = this._buildCommonOptions(BdbColumnType.Date, field, title, options);
|
|
1397
|
+
ret.format = options.format ?? 'short';
|
|
1398
|
+
if (ret.width === undefined) {
|
|
1399
|
+
switch (ret.format) {
|
|
1400
|
+
case 'short':
|
|
1401
|
+
ret.width = 144;
|
|
1402
|
+
break;
|
|
1403
|
+
case 'shortDate':
|
|
1404
|
+
ret.width = 96;
|
|
1405
|
+
break;
|
|
1406
|
+
}
|
|
1351
1407
|
}
|
|
1352
|
-
return
|
|
1353
|
-
}
|
|
1354
|
-
validateGap(gap) {
|
|
1355
|
-
return gap;
|
|
1356
|
-
}
|
|
1357
|
-
setSpacing(bdbFlexInput) {
|
|
1358
|
-
const spacing = this.validateSpacing(this.getSpacing(bdbFlexInput));
|
|
1359
|
-
this.renderer.setStyle(this.element.nativeElement, 'align-items', spacing.align);
|
|
1360
|
-
this.renderer.setStyle(this.element.nativeElement, 'justify-content', spacing.justify);
|
|
1408
|
+
return ret;
|
|
1361
1409
|
}
|
|
1362
|
-
|
|
1363
|
-
const
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
align: splitBdbFlexSpacing[0],
|
|
1367
|
-
justify: splitBdbFlexSpacing[1],
|
|
1368
|
-
};
|
|
1369
|
-
}
|
|
1370
|
-
if (bdbFlexInput.align && bdbFlexInput.justify) {
|
|
1371
|
-
return {
|
|
1372
|
-
align: bdbFlexInput.align,
|
|
1373
|
-
justify: bdbFlexInput.justify,
|
|
1374
|
-
};
|
|
1375
|
-
}
|
|
1376
|
-
return DEFAULT_FLEX_SPACING;
|
|
1410
|
+
boolean(field, title, options = {}) {
|
|
1411
|
+
const ret = this._buildCommonOptions(BdbColumnType.Boolean, field, title, options);
|
|
1412
|
+
ret.icon = options.icon ?? true;
|
|
1413
|
+
return ret;
|
|
1377
1414
|
}
|
|
1378
|
-
|
|
1379
|
-
|
|
1415
|
+
enum(field, title, options = {}) {
|
|
1416
|
+
const ret = this._buildCommonOptions(BdbColumnType.Enum, field, title, options);
|
|
1417
|
+
ret.pipe = options.pipe;
|
|
1418
|
+
return ret;
|
|
1380
1419
|
}
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
}
|
|
1391
|
-
type: Input
|
|
1392
|
-
}], bdbFlexDirection: [{
|
|
1393
|
-
type: Input
|
|
1394
|
-
}], bdbFlexGap: [{
|
|
1395
|
-
type: Input
|
|
1396
|
-
}], bdbFlexSpacing: [{
|
|
1397
|
-
type: Input
|
|
1398
|
-
}] } });
|
|
1399
|
-
|
|
1400
|
-
class BdbFullTableComponent {
|
|
1401
|
-
constructor() {
|
|
1402
|
-
this.columns = [];
|
|
1403
|
-
this.displayedColumns = [];
|
|
1404
|
-
this.autoLoad = undefined;
|
|
1405
|
-
this.contextActions = [];
|
|
1406
|
-
this.showToolbar = true;
|
|
1407
|
-
this.rowClick = new EventEmitter();
|
|
1408
|
-
this.contextAction = new EventEmitter();
|
|
1420
|
+
custom(id, title, options = {}) {
|
|
1421
|
+
return {
|
|
1422
|
+
type: BdbColumnType.Custom,
|
|
1423
|
+
id: id,
|
|
1424
|
+
title: title,
|
|
1425
|
+
field: () => undefined,
|
|
1426
|
+
sortDisabled: options.sortDisabled ?? true,
|
|
1427
|
+
width: options.width,
|
|
1428
|
+
textAlign: options.textAlign,
|
|
1429
|
+
};
|
|
1409
1430
|
}
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
type: Input
|
|
1438
|
-
}], showToolbar: [{
|
|
1439
|
-
type: Input
|
|
1440
|
-
}], rowClick: [{
|
|
1441
|
-
type: Output
|
|
1442
|
-
}], contextAction: [{
|
|
1443
|
-
type: Output
|
|
1444
|
-
}], cellTemplates: [{
|
|
1445
|
-
type: ContentChildren,
|
|
1446
|
-
args: [BdbCellDirective, { descendants: true }]
|
|
1447
|
-
}] } });
|
|
1431
|
+
_buildCommonOptions(type, field, title, options = undefined) {
|
|
1432
|
+
const id = options?.id ??
|
|
1433
|
+
field
|
|
1434
|
+
.toString()
|
|
1435
|
+
.split('.')
|
|
1436
|
+
.slice(1)
|
|
1437
|
+
.map(x => x.replace(/(\?|!)$/, ''))
|
|
1438
|
+
.join('.');
|
|
1439
|
+
return {
|
|
1440
|
+
type: type,
|
|
1441
|
+
id: id,
|
|
1442
|
+
title: title,
|
|
1443
|
+
field: field,
|
|
1444
|
+
sortDisabled: options?.sortDisabled,
|
|
1445
|
+
width: options?.width,
|
|
1446
|
+
textAlign: options?.textAlign,
|
|
1447
|
+
};
|
|
1448
|
+
}
|
|
1449
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbColumnBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1450
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbColumnBuilder, providedIn: 'root' }); }
|
|
1451
|
+
}
|
|
1452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbColumnBuilder, decorators: [{
|
|
1453
|
+
type: Injectable,
|
|
1454
|
+
args: [{
|
|
1455
|
+
providedIn: 'root',
|
|
1456
|
+
}]
|
|
1457
|
+
}] });
|
|
1448
1458
|
|
|
1449
1459
|
class ExceptionLogTableComponent {
|
|
1450
1460
|
constructor(cb, router, activatedRoute) {
|
|
@@ -1473,10 +1483,10 @@ class ExceptionLogTableComponent {
|
|
|
1473
1483
|
break;
|
|
1474
1484
|
}
|
|
1475
1485
|
}
|
|
1476
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1477
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1486
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ExceptionLogTableComponent, deps: [{ token: BdbColumnBuilder }, { token: i2$3.Router }, { token: i2$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1487
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: ExceptionLogTableComponent, isStandalone: true, selector: "bdb-exception-log-table[dataSource]", inputs: { dataSource: "dataSource", displayedColumns: "displayedColumns", contextActions: "contextActions" }, outputs: { rowClick: "rowClick" }, ngImport: i0, template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (contextAction)=\"onContextAction($event)\">\r\n</bdb-table>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BdbTableComponent, selector: "bdb-table[dataSource]", inputs: ["columns", "dataSource", "autoLoad", "displayedColumns", "contextActions", "selection", "selectOnRowClick", "selectedRowClass", "isClickable", "rowColor"], outputs: ["rowClick", "contextAction"] }] }); }
|
|
1478
1488
|
}
|
|
1479
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ExceptionLogTableComponent, decorators: [{
|
|
1480
1490
|
type: Component,
|
|
1481
1491
|
args: [{ selector: 'bdb-exception-log-table[dataSource]', imports: [CommonModule, BdbTableComponent], template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (contextAction)=\"onContextAction($event)\">\r\n</bdb-table>\r\n" }]
|
|
1482
1492
|
}], ctorParameters: () => [{ type: BdbColumnBuilder }, { type: i2$3.Router }, { type: i2$3.ActivatedRoute }], propDecorators: { dataSource: [{
|
|
@@ -1489,35 +1499,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
1489
1499
|
type: Input
|
|
1490
1500
|
}] } });
|
|
1491
1501
|
|
|
1492
|
-
var MediaType;
|
|
1493
|
-
(function (MediaType) {
|
|
1494
|
-
MediaType["Image"] = "Image";
|
|
1495
|
-
MediaType["Video"] = "Video";
|
|
1496
|
-
MediaType["File"] = "File";
|
|
1497
|
-
})(MediaType || (MediaType = {}));
|
|
1498
|
-
const MediaTypeMap = new Map([
|
|
1499
|
-
[MediaType.Image, 'Afbeelding'],
|
|
1500
|
-
[MediaType.Video, 'Video'],
|
|
1501
|
-
[MediaType.File, 'Bestand'],
|
|
1502
|
-
]);
|
|
1503
|
-
|
|
1504
|
-
class MediaTypePipe {
|
|
1505
|
-
transform(value) {
|
|
1506
|
-
if (value === undefined) {
|
|
1507
|
-
return undefined;
|
|
1508
|
-
}
|
|
1509
|
-
return MediaTypeMap.get(value) ?? '???';
|
|
1510
|
-
}
|
|
1511
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MediaTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1512
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.11", ngImport: i0, type: MediaTypePipe, isStandalone: true, name: "mediaType" }); }
|
|
1513
|
-
}
|
|
1514
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MediaTypePipe, decorators: [{
|
|
1515
|
-
type: Pipe,
|
|
1516
|
-
args: [{
|
|
1517
|
-
name: 'mediaType',
|
|
1518
|
-
}]
|
|
1519
|
-
}] });
|
|
1520
|
-
|
|
1521
1502
|
class FileSizePipe {
|
|
1522
1503
|
transform(bytes) {
|
|
1523
1504
|
if (bytes === undefined) {
|
|
@@ -1529,75 +1510,16 @@ class FileSizePipe {
|
|
|
1529
1510
|
const i = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
1530
1511
|
return `${parseFloat((bytes / Math.pow(1024, i)).toFixed(1))} ${sizes[i]}`;
|
|
1531
1512
|
}
|
|
1532
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1533
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
1513
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FileSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1514
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: FileSizePipe, isStandalone: true, name: "fileSize" }); }
|
|
1534
1515
|
}
|
|
1535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1516
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FileSizePipe, decorators: [{
|
|
1536
1517
|
type: Pipe,
|
|
1537
1518
|
args: [{
|
|
1538
1519
|
name: 'fileSize',
|
|
1539
1520
|
}]
|
|
1540
1521
|
}] });
|
|
1541
1522
|
|
|
1542
|
-
class MediaFullTableComponent {
|
|
1543
|
-
constructor() {
|
|
1544
|
-
this.displayedColumns = [];
|
|
1545
|
-
this.showToolbar = true;
|
|
1546
|
-
this.contextActions = [];
|
|
1547
|
-
this.contextAction = new EventEmitter();
|
|
1548
|
-
this.rowClick = new EventEmitter();
|
|
1549
|
-
this.cb = inject((BdbColumnBuilder));
|
|
1550
|
-
this.columns = this.cb.build(this.cb.enum(x => x.type, 'Type', { pipe: MediaTypePipe, width: 120 }), this.cb.string(x => x.fileName, 'Bestandsnaam'), this.cb.string(x => x.reference, 'Referentie', { width: 200 }), this.cb.number(x => x.fileSize, 'Bestandsgrootte', { pipe: FileSizePipe, width: 200 }), this.cb.number(x => x.height, 'Hoogte', { width: 200 }), this.cb.number(x => x.width, 'Breedte', { width: 200 }));
|
|
1551
|
-
}
|
|
1552
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MediaFullTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1553
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: MediaFullTableComponent, isStandalone: true, selector: "bdb-media-full-table", inputs: { dataSource: "dataSource", displayedColumns: "displayedColumns", selection: "selection", showToolbar: "showToolbar", contextActions: "contextActions" }, outputs: { contextAction: "contextAction", rowClick: "rowClick" }, ngImport: i0, template: "<bdb-full-table\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [selection]=\"selection\"\r\n [showToolbar]=\"showToolbar\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n <ng-content select=\"toolbar-item\" ngProjectAs=\"toolbar-item\"></ng-content>\r\n <ng-content></ng-content>\r\n</bdb-full-table>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: BdbFullTableComponent, selector: "bdb-full-table", inputs: ["dataSource", "columns", "displayedColumns", "autoLoad", "selection", "contextActions", "rowColor", "showToolbar"], outputs: ["rowClick", "contextAction"] }, { kind: "ngmodule", type: MatButtonModule }] }); }
|
|
1554
|
-
}
|
|
1555
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MediaFullTableComponent, decorators: [{
|
|
1556
|
-
type: Component,
|
|
1557
|
-
args: [{ selector: 'bdb-media-full-table', imports: [BdbFullTableComponent, MatButtonModule], template: "<bdb-full-table\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [selection]=\"selection\"\r\n [showToolbar]=\"showToolbar\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n <ng-content select=\"toolbar-item\" ngProjectAs=\"toolbar-item\"></ng-content>\r\n <ng-content></ng-content>\r\n</bdb-full-table>\r\n", styles: [":host{display:contents}\n"] }]
|
|
1558
|
-
}], propDecorators: { dataSource: [{
|
|
1559
|
-
type: Input
|
|
1560
|
-
}], displayedColumns: [{
|
|
1561
|
-
type: Input
|
|
1562
|
-
}], selection: [{
|
|
1563
|
-
type: Input
|
|
1564
|
-
}], showToolbar: [{
|
|
1565
|
-
type: Input
|
|
1566
|
-
}], contextActions: [{
|
|
1567
|
-
type: Input
|
|
1568
|
-
}], contextAction: [{
|
|
1569
|
-
type: Output
|
|
1570
|
-
}], rowClick: [{
|
|
1571
|
-
type: Output
|
|
1572
|
-
}] } });
|
|
1573
|
-
|
|
1574
|
-
class MediaTableComponent {
|
|
1575
|
-
constructor() {
|
|
1576
|
-
this.displayedColumns = [];
|
|
1577
|
-
this.contextActions = [];
|
|
1578
|
-
this.contextAction = new EventEmitter();
|
|
1579
|
-
this.rowClick = new EventEmitter();
|
|
1580
|
-
this.cb = inject((BdbColumnBuilder));
|
|
1581
|
-
this.columns = this.cb.build(this.cb.enum(x => x.type, 'Type', { pipe: MediaTypePipe, width: 120 }), this.cb.string(x => x.fileName, 'Bestandsnaam'), this.cb.string(x => x.reference, 'Referentie', { width: 200 }), this.cb.number(x => x.fileSize, 'Bestandsgrootte', { pipe: FileSizePipe, width: 200 }), this.cb.number(x => x.height, 'Hoogte', { width: 200 }), this.cb.number(x => x.width, 'Breedte', { width: 200 }));
|
|
1582
|
-
}
|
|
1583
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MediaTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1584
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", type: MediaTableComponent, isStandalone: true, selector: "bdb-media-table", inputs: { dataSource: "dataSource", displayedColumns: "displayedColumns", contextActions: "contextActions" }, outputs: { contextAction: "contextAction", rowClick: "rowClick" }, ngImport: i0, template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n</bdb-table>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BdbTableComponent, selector: "bdb-table[dataSource]", inputs: ["columns", "dataSource", "autoLoad", "displayedColumns", "contextActions", "selection", "selectOnRowClick", "selectedRowClass", "isClickable", "rowColor"], outputs: ["rowClick", "contextAction"] }] }); }
|
|
1585
|
-
}
|
|
1586
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MediaTableComponent, decorators: [{
|
|
1587
|
-
type: Component,
|
|
1588
|
-
args: [{ selector: 'bdb-media-table', imports: [CommonModule, BdbTableComponent], template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n</bdb-table>\r\n" }]
|
|
1589
|
-
}], propDecorators: { dataSource: [{
|
|
1590
|
-
type: Input
|
|
1591
|
-
}], displayedColumns: [{
|
|
1592
|
-
type: Input
|
|
1593
|
-
}], contextActions: [{
|
|
1594
|
-
type: Input
|
|
1595
|
-
}], contextAction: [{
|
|
1596
|
-
type: Output
|
|
1597
|
-
}], rowClick: [{
|
|
1598
|
-
type: Output
|
|
1599
|
-
}] } });
|
|
1600
|
-
|
|
1601
1523
|
class BdbYoutubePlayerComponent {
|
|
1602
1524
|
constructor(changeDetectorRef) {
|
|
1603
1525
|
this.changeDetectorRef = changeDetectorRef;
|
|
@@ -1615,10 +1537,10 @@ class BdbYoutubePlayerComponent {
|
|
|
1615
1537
|
this.videoHeight = this.videoWidth * 0.6;
|
|
1616
1538
|
this.changeDetectorRef.detectChanges();
|
|
1617
1539
|
}
|
|
1618
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1619
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1540
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbYoutubePlayerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1541
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: BdbYoutubePlayerComponent, isStandalone: true, selector: "bdb-youtube-player", inputs: { videoId: "videoId" }, viewQueries: [{ propertyName: "youTubePlayer", first: true, predicate: ["youTubePlayer"], descendants: true }], ngImport: i0, template: "<div #youTubePlayer class=\"bdb-youtube-player\">\r\n <youtube-player [width]=\"videoWidth\" [height]=\"videoHeight\" [videoId]=\"videoId\"></youtube-player>\r\n</div>\r\n", styles: [".bdb-youtube-player-container{display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:1/1}\n"], dependencies: [{ kind: "ngmodule", type: YouTubePlayerModule }, { kind: "component", type: i1$4.YouTubePlayer, selector: "youtube-player", inputs: ["videoId", "height", "width", "startSeconds", "endSeconds", "suggestedQuality", "playerVars", "disableCookies", "loadApi", "disablePlaceholder", "showBeforeIframeApiLoads", "placeholderButtonLabel", "placeholderImageQuality"], outputs: ["ready", "stateChange", "error", "apiChange", "playbackQualityChange", "playbackRateChange"] }] }); }
|
|
1620
1542
|
}
|
|
1621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1543
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbYoutubePlayerComponent, decorators: [{
|
|
1622
1544
|
type: Component,
|
|
1623
1545
|
args: [{ selector: 'bdb-youtube-player', imports: [YouTubePlayerModule], template: "<div #youTubePlayer class=\"bdb-youtube-player\">\r\n <youtube-player [width]=\"videoWidth\" [height]=\"videoHeight\" [videoId]=\"videoId\"></youtube-player>\r\n</div>\r\n", styles: [".bdb-youtube-player-container{display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:1/1}\n"] }]
|
|
1624
1546
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { youTubePlayer: [{
|
|
@@ -1628,10 +1550,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
1628
1550
|
type: Input
|
|
1629
1551
|
}] } });
|
|
1630
1552
|
|
|
1553
|
+
var MediaType;
|
|
1554
|
+
(function (MediaType) {
|
|
1555
|
+
MediaType["Image"] = "Image";
|
|
1556
|
+
MediaType["Video"] = "Video";
|
|
1557
|
+
MediaType["File"] = "File";
|
|
1558
|
+
})(MediaType || (MediaType = {}));
|
|
1559
|
+
const MediaTypeMap = new Map([
|
|
1560
|
+
[MediaType.Image, 'Afbeelding'],
|
|
1561
|
+
[MediaType.Video, 'Video'],
|
|
1562
|
+
[MediaType.File, 'Bestand'],
|
|
1563
|
+
]);
|
|
1564
|
+
|
|
1565
|
+
class MediaTypeIconPipe {
|
|
1566
|
+
transform(value) {
|
|
1567
|
+
switch (value) {
|
|
1568
|
+
case MediaType.Image:
|
|
1569
|
+
return 'image';
|
|
1570
|
+
case MediaType.Video:
|
|
1571
|
+
return 'video_file';
|
|
1572
|
+
case MediaType.File:
|
|
1573
|
+
return 'docs';
|
|
1574
|
+
default:
|
|
1575
|
+
return undefined;
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaTypeIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1579
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: MediaTypeIconPipe, isStandalone: true, name: "mediaTypeIcon" }); }
|
|
1580
|
+
}
|
|
1581
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaTypeIconPipe, decorators: [{
|
|
1582
|
+
type: Pipe,
|
|
1583
|
+
args: [{
|
|
1584
|
+
name: 'mediaTypeIcon',
|
|
1585
|
+
}]
|
|
1586
|
+
}] });
|
|
1587
|
+
|
|
1631
1588
|
class BdbMediaDisplayComponent {
|
|
1632
1589
|
constructor() {
|
|
1633
1590
|
this.mode = 'preview';
|
|
1591
|
+
this.overlayBehavior = 'always';
|
|
1634
1592
|
this.bdbOptions = inject(BDB_OPTIONS);
|
|
1593
|
+
this.class = 'bdb-media-display';
|
|
1635
1594
|
this.mediaType = MediaType;
|
|
1636
1595
|
this.hasError = false;
|
|
1637
1596
|
}
|
|
@@ -1677,9 +1636,6 @@ class BdbMediaDisplayComponent {
|
|
|
1677
1636
|
return `https://img.youtube.com/vi/${media.reference}/maxresdefault.jpg`;
|
|
1678
1637
|
}
|
|
1679
1638
|
}
|
|
1680
|
-
errorHandler() {
|
|
1681
|
-
this.hasError = true;
|
|
1682
|
-
}
|
|
1683
1639
|
getDownloadUrl() {
|
|
1684
1640
|
if (!this.media) {
|
|
1685
1641
|
return undefined;
|
|
@@ -1693,22 +1649,83 @@ class BdbMediaDisplayComponent {
|
|
|
1693
1649
|
}
|
|
1694
1650
|
return parts.pop()?.toLocaleLowerCase();
|
|
1695
1651
|
}
|
|
1696
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1697
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1652
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbMediaDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1653
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbMediaDisplayComponent, isStandalone: true, selector: "bdb-media-display", inputs: { media: "media", mode: "mode", overlayBehavior: "overlayBehavior", width: "width", height: "height", alt: "alt" }, host: { properties: { "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "@if (media) {\r\n @if (hasError) {\r\n <ng-container *ngTemplateOutlet=\"noMedia\"></ng-container>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"overlay\"></ng-container>\r\n @switch (media.type) {\r\n @case (mediaType.Video) {\r\n <ng-container *ngTemplateOutlet=\"video\"></ng-container>\r\n }\r\n @case (mediaType.File) {\r\n <ng-container *ngTemplateOutlet=\"file\"></ng-container>\r\n }\r\n @default {\r\n <img [src]=\"src\" [alt]=\"alt\" (error)=\"hasError = true\" />\r\n }\r\n }\r\n <ng-container *ngTemplateOutlet=\"underlay\"></ng-container>\r\n }\r\n}\r\n\r\n<ng-template #overlay>\r\n @if (media && mode === 'details') {\r\n <div class=\"overlay\" [class.on-hover]=\"overlayBehavior === 'hover'\">\r\n <div class=\"media-details\">\r\n <mat-icon>{{ media.type | mediaTypeIcon }}</mat-icon>\r\n <div>\r\n @switch (media.type) {\r\n @case (mediaType.Video) {\r\n {{ media.reference }}\r\n }\r\n @case (mediaType.File) {\r\n {{ media.originalFileName }}, {{ media.fileSize | fileSize }}\r\n }\r\n @case (mediaType.Image) {\r\n @if (media.fileName?.endsWith('.svg')) {\r\n SVG,\r\n } @else {\r\n {{ media.width }} x {{ media.height }} px,\r\n }\r\n {{ media.fileSize | fileSize }}\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #underlay>\r\n @if (media && mode === 'details') {\r\n <div class=\"underlay\"></div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #video>\r\n @if (mode === 'live') {\r\n <bdb-youtube-player [videoId]=\"media?.reference\"></bdb-youtube-player>\r\n } @else {\r\n <div bdbFlex=\"col 0px center center\">\r\n <mat-icon>play_circle_outline</mat-icon>\r\n @if (src) {\r\n <img [src]=\"src\" [alt]=\"alt\" />\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"noPreviewAvailable\"></ng-container>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #file>\r\n @if (src) {\r\n <img [src]=\"src\" [alt]=\"alt\" />\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"noPreviewAvailable\"></ng-container>\r\n }\r\n @if (mode === 'live') {\r\n <div class=\"file-overlay\">\r\n <a mat-fab aria-label=\"Download\" [href]=\"getSource(media, true)\" target=\"_blank\" download class=\"primary\">\r\n <mat-icon>save_alt</mat-icon>\r\n </a>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #noPreviewAvailable>\r\n <div class=\"no-preview-available\">\r\n <em>Geen preview beschikbaar</em>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #noMedia>\r\n <svg version=\"1.1\" viewBox=\"0 0 180 180\" xmlns:svg=\"http://www.w3.org/2000/svg\">\r\n <g transform=\"translate(-2,-6)\">\r\n <rect style=\"fill: #9f9f9f\" width=\"90\" height=\"90\" x=\"-18\" y=\"85\" ry=\"8.4\" transform=\"rotate(-16.3)\" />\r\n <g transform=\"rotate(16.3,229,-1658.3)\">\r\n <rect\r\n ry=\"4.6\"\r\n y=\"1.6\"\r\n x=\"547\"\r\n height=\"110\"\r\n width=\"110\"\r\n style=\"fill: #a2a2a2; stroke: #ffffff; stroke-width: 5.4\" />\r\n <g\r\n style=\"stroke: #ffffff; stroke-width: 13; stroke-miterlimit: 4\"\r\n transform=\"matrix(0.17265471,0,0,0.17265471,512.49324,-6.3296456)\">\r\n <rect style=\"fill: #cccccc\" width=\"491\" height=\"449\" x=\"270\" y=\"107\" />\r\n <rect style=\"fill: #ffffff\" id=\"rect3342\" width=\"491\" height=\"209\" x=\"270\" y=\"107\" />\r\n <path\r\n style=\"fill: #cccccc\"\r\n d=\"m 300,317.36255 38.46147,-53.53818 60.53097,-45.16084 15.88277,18.57394 13.61285,-38.68356 8.20133,-2.98188 13.3106,-28.2093 180,179.99979\" />\r\n <path\r\n style=\"fill: #b3b3b3; stroke: #ffffff; paint-order: stroke\"\r\n d=\"m 180,60 c 4.09311,16.474688 7.71219,33.067277 10.85156,49.75 2.38256,12.66097 4.48857,25.37408 6.31641,38.12695 l -22.06445,-7.16015 -46.11133,-29.41602 5.32422,46.42578 -1.61524,24.78711 10.05274,30.37695 73.18554,-11.75585 L 300,180 252.19922,102.56641 242.5,117.5 215.375,95.375 Z\"\r\n transform=\"translate(270,107.36227)\" />\r\n <path\r\n d=\"m 419.99999,347.36252 81.89918,-74.42959 18.50574,-9.68009 23.6512,-44.18894 25.94388,-21.70121 179.99999,179.99979\"\r\n style=\"fill: #cccccc; stroke: #ffffff; stroke-width: 13.0708; paint-order: stroke\" />\r\n <path\r\n style=\"fill: #b3b3b3; stroke: #ffffff; stroke-width: 13.0708; paint-order: stroke\"\r\n d=\"m 569.99999,197.36269 35.9388,80.91289 v 30.11038 30.11038 l 22.45864,19.46652 c 6.52453,-6.45031 14.14893,-11.78526 22.44431,-15.70477 14.8245,-7.00447 31.33823,-9.35959 47.17057,-13.6217 6.42776,-1.73037 12.90672,-3.85419 18.21343,-7.87277 1.35174,-1.02362 2.61592,-2.16281 3.77424,-3.40107 h -30 l -40.52149,-40.55006 -29.85645,-48.91972 -10.25307,8.83886 z\" />\r\n <path\r\n style=\"fill: #ffffff\"\r\n d=\"m 419.99999,557.36227 c -0.41699,-9.60089 -8.81759,-17.60878 17.1252,-30.66806 31.8318,-16.02389 125.895,-35.88836 152.1537,-59.98434 19.42709,-17.82687 -70.4154,-37.66945 -55.0191,-59.07323 6.981,-9.70528 59.037,-19.96947 82.1463,-30.27386 21.90569,-9.76799 15.14129,-19.80328 31.4046,-29.97507 15.7092,-9.82558 68.3499,-19.77358 72.18929,-30.02516 -10.41359,10.52188 -68.83379,20.40327 -89.99999,30.00026 -22.3377,10.128 -21.4689,19.93018 -49.4313,29.48367 -30.1245,10.29239 -89.142,20.55268 -102.7077,30.51626 -28.4133,20.86858 46.863,42.59995 16.2024,59.99993 C 452.54309,490.92554 344.7219,510.65712 300,527.3626 c -30.9039,11.54369 -28.4079,17.74799 -30,29.99967\" />\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{display:flex;position:relative}:host .overlay{position:absolute;display:flex;flex-direction:column;justify-content:flex-end;inset:0;z-index:1;background-color:#0000004d}:host .overlay button{margin:4px}:host .overlay .media-details{display:flex;justify-content:center;align-items:center;gap:8px;background-color:#000000b3;font-size:11px;color:#fff}:host .underlay{position:absolute;inset:0;background-color:var(--bdb-media-display-container);border:1px dashed var(--bdb-media-display-outline-color);z-index:-1}:host .overlay.on-hover{display:none}:host:hover .overlay.on-hover{display:flex}img{object-fit:contain;max-width:100%;max-height:100%}.file-live{position:relative;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.file-live .file-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center}.no-preview-available{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--bdb-sys-warn)}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BdbYoutubePlayerComponent, selector: "bdb-youtube-player", inputs: ["videoId"] }, { kind: "pipe", type: MediaTypeIconPipe, name: "mediaTypeIcon" }, { kind: "pipe", type: FileSizePipe, name: "fileSize" }] }); }
|
|
1698
1654
|
}
|
|
1699
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbMediaDisplayComponent, decorators: [{
|
|
1700
1656
|
type: Component,
|
|
1701
|
-
args: [{ selector: 'bdb-media-display', imports: [
|
|
1657
|
+
args: [{ selector: 'bdb-media-display', imports: [
|
|
1658
|
+
MatButtonModule,
|
|
1659
|
+
MatIconModule,
|
|
1660
|
+
NgTemplateOutlet,
|
|
1661
|
+
BdbYoutubePlayerComponent,
|
|
1662
|
+
MediaTypeIconPipe,
|
|
1663
|
+
FileSizePipe,
|
|
1664
|
+
], template: "@if (media) {\r\n @if (hasError) {\r\n <ng-container *ngTemplateOutlet=\"noMedia\"></ng-container>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"overlay\"></ng-container>\r\n @switch (media.type) {\r\n @case (mediaType.Video) {\r\n <ng-container *ngTemplateOutlet=\"video\"></ng-container>\r\n }\r\n @case (mediaType.File) {\r\n <ng-container *ngTemplateOutlet=\"file\"></ng-container>\r\n }\r\n @default {\r\n <img [src]=\"src\" [alt]=\"alt\" (error)=\"hasError = true\" />\r\n }\r\n }\r\n <ng-container *ngTemplateOutlet=\"underlay\"></ng-container>\r\n }\r\n}\r\n\r\n<ng-template #overlay>\r\n @if (media && mode === 'details') {\r\n <div class=\"overlay\" [class.on-hover]=\"overlayBehavior === 'hover'\">\r\n <div class=\"media-details\">\r\n <mat-icon>{{ media.type | mediaTypeIcon }}</mat-icon>\r\n <div>\r\n @switch (media.type) {\r\n @case (mediaType.Video) {\r\n {{ media.reference }}\r\n }\r\n @case (mediaType.File) {\r\n {{ media.originalFileName }}, {{ media.fileSize | fileSize }}\r\n }\r\n @case (mediaType.Image) {\r\n @if (media.fileName?.endsWith('.svg')) {\r\n SVG,\r\n } @else {\r\n {{ media.width }} x {{ media.height }} px,\r\n }\r\n {{ media.fileSize | fileSize }}\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #underlay>\r\n @if (media && mode === 'details') {\r\n <div class=\"underlay\"></div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #video>\r\n @if (mode === 'live') {\r\n <bdb-youtube-player [videoId]=\"media?.reference\"></bdb-youtube-player>\r\n } @else {\r\n <div bdbFlex=\"col 0px center center\">\r\n <mat-icon>play_circle_outline</mat-icon>\r\n @if (src) {\r\n <img [src]=\"src\" [alt]=\"alt\" />\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"noPreviewAvailable\"></ng-container>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #file>\r\n @if (src) {\r\n <img [src]=\"src\" [alt]=\"alt\" />\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"noPreviewAvailable\"></ng-container>\r\n }\r\n @if (mode === 'live') {\r\n <div class=\"file-overlay\">\r\n <a mat-fab aria-label=\"Download\" [href]=\"getSource(media, true)\" target=\"_blank\" download class=\"primary\">\r\n <mat-icon>save_alt</mat-icon>\r\n </a>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #noPreviewAvailable>\r\n <div class=\"no-preview-available\">\r\n <em>Geen preview beschikbaar</em>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #noMedia>\r\n <svg version=\"1.1\" viewBox=\"0 0 180 180\" xmlns:svg=\"http://www.w3.org/2000/svg\">\r\n <g transform=\"translate(-2,-6)\">\r\n <rect style=\"fill: #9f9f9f\" width=\"90\" height=\"90\" x=\"-18\" y=\"85\" ry=\"8.4\" transform=\"rotate(-16.3)\" />\r\n <g transform=\"rotate(16.3,229,-1658.3)\">\r\n <rect\r\n ry=\"4.6\"\r\n y=\"1.6\"\r\n x=\"547\"\r\n height=\"110\"\r\n width=\"110\"\r\n style=\"fill: #a2a2a2; stroke: #ffffff; stroke-width: 5.4\" />\r\n <g\r\n style=\"stroke: #ffffff; stroke-width: 13; stroke-miterlimit: 4\"\r\n transform=\"matrix(0.17265471,0,0,0.17265471,512.49324,-6.3296456)\">\r\n <rect style=\"fill: #cccccc\" width=\"491\" height=\"449\" x=\"270\" y=\"107\" />\r\n <rect style=\"fill: #ffffff\" id=\"rect3342\" width=\"491\" height=\"209\" x=\"270\" y=\"107\" />\r\n <path\r\n style=\"fill: #cccccc\"\r\n d=\"m 300,317.36255 38.46147,-53.53818 60.53097,-45.16084 15.88277,18.57394 13.61285,-38.68356 8.20133,-2.98188 13.3106,-28.2093 180,179.99979\" />\r\n <path\r\n style=\"fill: #b3b3b3; stroke: #ffffff; paint-order: stroke\"\r\n d=\"m 180,60 c 4.09311,16.474688 7.71219,33.067277 10.85156,49.75 2.38256,12.66097 4.48857,25.37408 6.31641,38.12695 l -22.06445,-7.16015 -46.11133,-29.41602 5.32422,46.42578 -1.61524,24.78711 10.05274,30.37695 73.18554,-11.75585 L 300,180 252.19922,102.56641 242.5,117.5 215.375,95.375 Z\"\r\n transform=\"translate(270,107.36227)\" />\r\n <path\r\n d=\"m 419.99999,347.36252 81.89918,-74.42959 18.50574,-9.68009 23.6512,-44.18894 25.94388,-21.70121 179.99999,179.99979\"\r\n style=\"fill: #cccccc; stroke: #ffffff; stroke-width: 13.0708; paint-order: stroke\" />\r\n <path\r\n style=\"fill: #b3b3b3; stroke: #ffffff; stroke-width: 13.0708; paint-order: stroke\"\r\n d=\"m 569.99999,197.36269 35.9388,80.91289 v 30.11038 30.11038 l 22.45864,19.46652 c 6.52453,-6.45031 14.14893,-11.78526 22.44431,-15.70477 14.8245,-7.00447 31.33823,-9.35959 47.17057,-13.6217 6.42776,-1.73037 12.90672,-3.85419 18.21343,-7.87277 1.35174,-1.02362 2.61592,-2.16281 3.77424,-3.40107 h -30 l -40.52149,-40.55006 -29.85645,-48.91972 -10.25307,8.83886 z\" />\r\n <path\r\n style=\"fill: #ffffff\"\r\n d=\"m 419.99999,557.36227 c -0.41699,-9.60089 -8.81759,-17.60878 17.1252,-30.66806 31.8318,-16.02389 125.895,-35.88836 152.1537,-59.98434 19.42709,-17.82687 -70.4154,-37.66945 -55.0191,-59.07323 6.981,-9.70528 59.037,-19.96947 82.1463,-30.27386 21.90569,-9.76799 15.14129,-19.80328 31.4046,-29.97507 15.7092,-9.82558 68.3499,-19.77358 72.18929,-30.02516 -10.41359,10.52188 -68.83379,20.40327 -89.99999,30.00026 -22.3377,10.128 -21.4689,19.93018 -49.4313,29.48367 -30.1245,10.29239 -89.142,20.55268 -102.7077,30.51626 -28.4133,20.86858 46.863,42.59995 16.2024,59.99993 C 452.54309,490.92554 344.7219,510.65712 300,527.3626 c -30.9039,11.54369 -28.4079,17.74799 -30,29.99967\" />\r\n </g>\r\n </g>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{display:flex;position:relative}:host .overlay{position:absolute;display:flex;flex-direction:column;justify-content:flex-end;inset:0;z-index:1;background-color:#0000004d}:host .overlay button{margin:4px}:host .overlay .media-details{display:flex;justify-content:center;align-items:center;gap:8px;background-color:#000000b3;font-size:11px;color:#fff}:host .underlay{position:absolute;inset:0;background-color:var(--bdb-media-display-container);border:1px dashed var(--bdb-media-display-outline-color);z-index:-1}:host .overlay.on-hover{display:none}:host:hover .overlay.on-hover{display:flex}img{object-fit:contain;max-width:100%;max-height:100%}.file-live{position:relative;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.file-live .file-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center}.no-preview-available{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--bdb-sys-warn)}\n"] }]
|
|
1702
1665
|
}], propDecorators: { media: [{
|
|
1703
1666
|
type: Input
|
|
1704
1667
|
}], mode: [{
|
|
1705
1668
|
type: Input
|
|
1669
|
+
}], overlayBehavior: [{
|
|
1670
|
+
type: Input
|
|
1706
1671
|
}], width: [{
|
|
1707
1672
|
type: Input
|
|
1708
1673
|
}], height: [{
|
|
1709
1674
|
type: Input
|
|
1710
1675
|
}], alt: [{
|
|
1711
1676
|
type: Input
|
|
1677
|
+
}], class: [{
|
|
1678
|
+
type: HostBinding,
|
|
1679
|
+
args: ['class']
|
|
1680
|
+
}] } });
|
|
1681
|
+
|
|
1682
|
+
class MediaTypePipe {
|
|
1683
|
+
transform(value) {
|
|
1684
|
+
if (value === undefined) {
|
|
1685
|
+
return undefined;
|
|
1686
|
+
}
|
|
1687
|
+
return MediaTypeMap.get(value) ?? '???';
|
|
1688
|
+
}
|
|
1689
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1690
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: MediaTypePipe, isStandalone: true, name: "mediaType" }); }
|
|
1691
|
+
}
|
|
1692
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaTypePipe, decorators: [{
|
|
1693
|
+
type: Pipe,
|
|
1694
|
+
args: [{
|
|
1695
|
+
name: 'mediaType',
|
|
1696
|
+
}]
|
|
1697
|
+
}] });
|
|
1698
|
+
|
|
1699
|
+
class MediaFullTableComponent {
|
|
1700
|
+
constructor() {
|
|
1701
|
+
this.displayedColumns = [];
|
|
1702
|
+
this.showToolbar = true;
|
|
1703
|
+
this.contextActions = [];
|
|
1704
|
+
this.contextAction = new EventEmitter();
|
|
1705
|
+
this.rowClick = new EventEmitter();
|
|
1706
|
+
this.cb = inject((BdbColumnBuilder));
|
|
1707
|
+
this.columns = this.cb.build(this.cb.enum(x => x.type, 'Type', { pipe: MediaTypePipe, width: 120 }), this.cb.string(x => x.fileName, 'Bestandsnaam'), this.cb.string(x => x.reference, 'Referentie', { width: 200 }), this.cb.number(x => x.fileSize, 'Bestandsgrootte', { pipe: FileSizePipe, width: 200 }), this.cb.number(x => x.height, 'Hoogte', { width: 200 }), this.cb.number(x => x.width, 'Breedte', { width: 200 }));
|
|
1708
|
+
}
|
|
1709
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaFullTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1710
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: MediaFullTableComponent, isStandalone: true, selector: "bdb-media-full-table", inputs: { dataSource: "dataSource", displayedColumns: "displayedColumns", selection: "selection", showToolbar: "showToolbar", contextActions: "contextActions" }, outputs: { contextAction: "contextAction", rowClick: "rowClick" }, ngImport: i0, template: "<bdb-full-table\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [selection]=\"selection\"\r\n [showToolbar]=\"showToolbar\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n <ng-content select=\"toolbar-item\" ngProjectAs=\"toolbar-item\"></ng-content>\r\n <ng-content></ng-content>\r\n</bdb-full-table>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: BdbFullTableComponent, selector: "bdb-full-table", inputs: ["dataSource", "columns", "displayedColumns", "autoLoad", "selection", "contextActions", "rowColor", "showToolbar"], outputs: ["rowClick", "contextAction"] }, { kind: "ngmodule", type: MatButtonModule }] }); }
|
|
1711
|
+
}
|
|
1712
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaFullTableComponent, decorators: [{
|
|
1713
|
+
type: Component,
|
|
1714
|
+
args: [{ selector: 'bdb-media-full-table', imports: [BdbFullTableComponent, MatButtonModule], template: "<bdb-full-table\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [selection]=\"selection\"\r\n [showToolbar]=\"showToolbar\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n <ng-content select=\"toolbar-item\" ngProjectAs=\"toolbar-item\"></ng-content>\r\n <ng-content></ng-content>\r\n</bdb-full-table>\r\n", styles: [":host{display:contents}\n"] }]
|
|
1715
|
+
}], propDecorators: { dataSource: [{
|
|
1716
|
+
type: Input
|
|
1717
|
+
}], displayedColumns: [{
|
|
1718
|
+
type: Input
|
|
1719
|
+
}], selection: [{
|
|
1720
|
+
type: Input
|
|
1721
|
+
}], showToolbar: [{
|
|
1722
|
+
type: Input
|
|
1723
|
+
}], contextActions: [{
|
|
1724
|
+
type: Input
|
|
1725
|
+
}], contextAction: [{
|
|
1726
|
+
type: Output
|
|
1727
|
+
}], rowClick: [{
|
|
1728
|
+
type: Output
|
|
1712
1729
|
}] } });
|
|
1713
1730
|
|
|
1714
1731
|
class BdbServiceR extends BdbService {
|
|
@@ -1740,10 +1757,10 @@ class MediaService extends BdbServiceRD {
|
|
|
1740
1757
|
url: url,
|
|
1741
1758
|
});
|
|
1742
1759
|
}
|
|
1743
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1744
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1760
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1761
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaService, providedIn: 'root' }); }
|
|
1745
1762
|
}
|
|
1746
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1763
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaService, decorators: [{
|
|
1747
1764
|
type: Injectable,
|
|
1748
1765
|
args: [{
|
|
1749
1766
|
providedIn: 'root',
|
|
@@ -1753,14 +1770,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
1753
1770
|
var DropClass;
|
|
1754
1771
|
(function (DropClass) {
|
|
1755
1772
|
DropClass["Default"] = "drop-box";
|
|
1756
|
-
DropClass["Over"] = "drop-hover";
|
|
1773
|
+
DropClass["Over"] = "drop-box hover";
|
|
1757
1774
|
})(DropClass || (DropClass = {}));
|
|
1758
1775
|
class MediaDropDirective {
|
|
1759
|
-
constructor(
|
|
1760
|
-
this.service = service;
|
|
1776
|
+
constructor() {
|
|
1761
1777
|
this.dropStart = new EventEmitter();
|
|
1762
1778
|
this.dropComplete = new EventEmitter();
|
|
1763
1779
|
this.dropError = new EventEmitter();
|
|
1780
|
+
this.service = inject(MediaService);
|
|
1764
1781
|
this.hostClass = DropClass.Default;
|
|
1765
1782
|
}
|
|
1766
1783
|
dragOver(event) {
|
|
@@ -1788,21 +1805,8 @@ class MediaDropDirective {
|
|
|
1788
1805
|
event.stopPropagation();
|
|
1789
1806
|
if (event.dataTransfer) {
|
|
1790
1807
|
this.hostClass = DropClass.Default;
|
|
1791
|
-
if (event.dataTransfer.types.includes('
|
|
1808
|
+
if (event.dataTransfer.types.includes('Files')) {
|
|
1792
1809
|
this.dropStart.emit(event);
|
|
1793
|
-
let url = event.dataTransfer.getData('URL');
|
|
1794
|
-
if (!url) {
|
|
1795
|
-
url = event.dataTransfer.getData('Text');
|
|
1796
|
-
}
|
|
1797
|
-
this.service.fromUrl(url).subscribe({
|
|
1798
|
-
next: (x) => this.dropComplete.emit(x),
|
|
1799
|
-
error: (x) => {
|
|
1800
|
-
console.log('Fout bij het importeren:', x);
|
|
1801
|
-
this.dropError.emit(x);
|
|
1802
|
-
},
|
|
1803
|
-
});
|
|
1804
|
-
}
|
|
1805
|
-
else if (event.dataTransfer.types.includes('Files')) {
|
|
1806
1810
|
for (let i = 0; i < event.dataTransfer.files.length; ++i) {
|
|
1807
1811
|
const file = event.dataTransfer.files.item(i);
|
|
1808
1812
|
if (file != null) {
|
|
@@ -1817,18 +1821,31 @@ class MediaDropDirective {
|
|
|
1817
1821
|
}
|
|
1818
1822
|
}
|
|
1819
1823
|
}
|
|
1824
|
+
else if (event.dataTransfer.types.includes('text/uri-list')) {
|
|
1825
|
+
this.dropStart.emit(event);
|
|
1826
|
+
let url = event.dataTransfer.getData('URL');
|
|
1827
|
+
if (!url) {
|
|
1828
|
+
url = event.dataTransfer.getData('Text');
|
|
1829
|
+
}
|
|
1830
|
+
this.service.fromUrl(url).subscribe({
|
|
1831
|
+
next: (x) => this.dropComplete.emit(x),
|
|
1832
|
+
error: (x) => {
|
|
1833
|
+
this.dropError.emit(x);
|
|
1834
|
+
},
|
|
1835
|
+
});
|
|
1836
|
+
}
|
|
1820
1837
|
}
|
|
1821
1838
|
}
|
|
1822
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1823
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1839
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1840
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: MediaDropDirective, isStandalone: true, selector: "[bdbMediaDrop]", outputs: { dropStart: "dropStart", dropComplete: "dropComplete", dropError: "dropError" }, host: { listeners: { "dragover": "dragOver($event)", "dragleave": "dragLeave($event)", "drop": "drop($event)" }, properties: { "class": "this.hostClass" } }, ngImport: i0 }); }
|
|
1824
1841
|
}
|
|
1825
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1842
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaDropDirective, decorators: [{
|
|
1826
1843
|
type: Directive,
|
|
1827
1844
|
args: [{
|
|
1828
1845
|
selector: '[bdbMediaDrop]',
|
|
1829
1846
|
standalone: true,
|
|
1830
1847
|
}]
|
|
1831
|
-
}], ctorParameters: () => [
|
|
1848
|
+
}], ctorParameters: () => [], propDecorators: { dropStart: [{
|
|
1832
1849
|
type: Output
|
|
1833
1850
|
}], dropComplete: [{
|
|
1834
1851
|
type: Output
|
|
@@ -1848,70 +1865,265 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
1848
1865
|
args: ['drop', ['$event']]
|
|
1849
1866
|
}] } });
|
|
1850
1867
|
|
|
1851
|
-
class BdbMediaUploadComponent {
|
|
1868
|
+
class BdbMediaUploadComponent {
|
|
1869
|
+
constructor() {
|
|
1870
|
+
this.class = 'bdb-media-upload';
|
|
1871
|
+
this.mediaService = inject(MediaService);
|
|
1872
|
+
this.accept = 'image/bmp,image/jpg,image/jpeg,image/png,image/gif,image/webp,image/svg+xml,application/pdf,text/xml';
|
|
1873
|
+
this.uploadComplete = new EventEmitter();
|
|
1874
|
+
this.uploadError = new EventEmitter();
|
|
1875
|
+
this.uploadStart = new EventEmitter();
|
|
1876
|
+
this._pending = false;
|
|
1877
|
+
}
|
|
1878
|
+
get pending() {
|
|
1879
|
+
return this._pending;
|
|
1880
|
+
}
|
|
1881
|
+
onNativeInputFileSelect(event) {
|
|
1882
|
+
var input = event.target;
|
|
1883
|
+
const file = input?.files?.item(0);
|
|
1884
|
+
if (file) {
|
|
1885
|
+
this._pending = true;
|
|
1886
|
+
this.mediaService.upload(file).subscribe({
|
|
1887
|
+
next: (x) => {
|
|
1888
|
+
this._pending = false;
|
|
1889
|
+
this.uploadComplete.emit(x);
|
|
1890
|
+
},
|
|
1891
|
+
error: (err) => {
|
|
1892
|
+
if (err) {
|
|
1893
|
+
this._pending = false;
|
|
1894
|
+
this.uploadError.emit(err);
|
|
1895
|
+
}
|
|
1896
|
+
},
|
|
1897
|
+
});
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
selectFile() {
|
|
1901
|
+
if (this.nativeInputFile) {
|
|
1902
|
+
this.nativeInputFile.nativeElement.click();
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
onDropStart() {
|
|
1906
|
+
this._pending = true;
|
|
1907
|
+
this.uploadStart.emit();
|
|
1908
|
+
}
|
|
1909
|
+
onDropError($event) {
|
|
1910
|
+
this._pending = false;
|
|
1911
|
+
this.uploadError.emit($event);
|
|
1912
|
+
}
|
|
1913
|
+
onDropComplete($event) {
|
|
1914
|
+
this._pending = false;
|
|
1915
|
+
this.uploadComplete.emit($event);
|
|
1916
|
+
}
|
|
1917
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbMediaUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1918
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbMediaUploadComponent, isStandalone: true, selector: "bdb-media-upload", inputs: { accept: "accept" }, outputs: { uploadComplete: "uploadComplete", uploadError: "uploadError", uploadStart: "uploadStart" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "nativeInputFile", first: true, predicate: ["inputFile"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"drop-box\"\r\n bdbMediaDrop\r\n matRipple\r\n (dropComplete)=\"onDropComplete($event)\"\r\n (dropError)=\"onDropError($event)\"\r\n (dropStart)=\"onDropStart()\"\r\n (click)=\"selectFile()\">\r\n <ng-content>\r\n <ng-container *ngTemplateOutlet=\"uploadIcon\"></ng-container>\r\n </ng-content>\r\n</div>\r\n<input type=\"file\" [accept]=\"accept\" (change)=\"onNativeInputFileSelect($event)\" #inputFile hidden />\r\n\r\n@if (pending) {\r\n <div class=\"overlay\">\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n}\r\n\r\n<ng-template #uploadIcon>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\">\r\n <path\r\n d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\" />\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{display:flex;position:relative}:host .overlay{position:absolute;inset:0;background-color:light-dark(rgba(255,255,255,.8),rgba(0,0,0,.8));z-index:1;display:flex;align-items:center;justify-content:start}.drop-box{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bdb-media-upload-container);border:1px dashed var(--bdb-media-upload-outline-color);cursor:pointer}.drop-box svg{flex:0 0 70%;object-fit:contain;max-width:90%;max-height:90%}.drop-box svg path{fill:var(--bdb-media-upload-fill)}.drop-box.hover svg path{fill:var(--bdb-sys-success-container)}.drop-box:hover{background-color:var(--bdb-media-upload-container-hover)}.upload-icon{height:100%;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: MediaDropDirective, selector: "[bdbMediaDrop]", outputs: ["dropStart", "dropComplete", "dropError"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] }); }
|
|
1919
|
+
}
|
|
1920
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbMediaUploadComponent, decorators: [{
|
|
1921
|
+
type: Component,
|
|
1922
|
+
args: [{ selector: 'bdb-media-upload', imports: [MatIconModule, DragDropModule, MediaDropDirective, NgTemplateOutlet, MatRippleModule, MatProgressBar], template: "<div\r\n class=\"drop-box\"\r\n bdbMediaDrop\r\n matRipple\r\n (dropComplete)=\"onDropComplete($event)\"\r\n (dropError)=\"onDropError($event)\"\r\n (dropStart)=\"onDropStart()\"\r\n (click)=\"selectFile()\">\r\n <ng-content>\r\n <ng-container *ngTemplateOutlet=\"uploadIcon\"></ng-container>\r\n </ng-content>\r\n</div>\r\n<input type=\"file\" [accept]=\"accept\" (change)=\"onNativeInputFileSelect($event)\" #inputFile hidden />\r\n\r\n@if (pending) {\r\n <div class=\"overlay\">\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n}\r\n\r\n<ng-template #uploadIcon>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\">\r\n <path\r\n d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\" />\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{display:flex;position:relative}:host .overlay{position:absolute;inset:0;background-color:light-dark(rgba(255,255,255,.8),rgba(0,0,0,.8));z-index:1;display:flex;align-items:center;justify-content:start}.drop-box{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bdb-media-upload-container);border:1px dashed var(--bdb-media-upload-outline-color);cursor:pointer}.drop-box svg{flex:0 0 70%;object-fit:contain;max-width:90%;max-height:90%}.drop-box svg path{fill:var(--bdb-media-upload-fill)}.drop-box.hover svg path{fill:var(--bdb-sys-success-container)}.drop-box:hover{background-color:var(--bdb-media-upload-container-hover)}.upload-icon{height:100%;width:100%}\n"] }]
|
|
1923
|
+
}], propDecorators: { class: [{
|
|
1924
|
+
type: HostBinding,
|
|
1925
|
+
args: ['class']
|
|
1926
|
+
}], nativeInputFile: [{
|
|
1927
|
+
type: ViewChild,
|
|
1928
|
+
args: ['inputFile', { static: false }]
|
|
1929
|
+
}], accept: [{
|
|
1930
|
+
type: Input
|
|
1931
|
+
}], uploadComplete: [{
|
|
1932
|
+
type: Output
|
|
1933
|
+
}], uploadError: [{
|
|
1934
|
+
type: Output
|
|
1935
|
+
}], uploadStart: [{
|
|
1936
|
+
type: Output
|
|
1937
|
+
}] } });
|
|
1938
|
+
|
|
1939
|
+
class BdbMediaInputComponent {
|
|
1940
|
+
set value(value) {
|
|
1941
|
+
this._value = value;
|
|
1942
|
+
this.stateChanges.next();
|
|
1943
|
+
}
|
|
1944
|
+
get value() {
|
|
1945
|
+
return this._value;
|
|
1946
|
+
}
|
|
1947
|
+
ngOnDestroy() {
|
|
1948
|
+
this.stateChanges.complete();
|
|
1949
|
+
}
|
|
1950
|
+
//MatFormFieldControl id
|
|
1951
|
+
static { this.nextId = 0; }
|
|
1952
|
+
//MatFormFieldControl placeholder
|
|
1953
|
+
// @Input()
|
|
1954
|
+
get placeholder() {
|
|
1955
|
+
return this._placeholder;
|
|
1956
|
+
}
|
|
1957
|
+
set placeholder(plh) {
|
|
1958
|
+
this._placeholder = plh;
|
|
1959
|
+
this.stateChanges.next();
|
|
1960
|
+
}
|
|
1961
|
+
constructor(ngControl) {
|
|
1962
|
+
this.ngControl = ngControl;
|
|
1963
|
+
this.class = 'bdb-media-input';
|
|
1964
|
+
this.clearOnDragOver = false;
|
|
1965
|
+
this.mediaType = MediaType;
|
|
1966
|
+
//MatFormFieldControl stateChanges
|
|
1967
|
+
this.stateChanges = new Subject();
|
|
1968
|
+
this._value = undefined;
|
|
1969
|
+
this.touched = false;
|
|
1970
|
+
this.id = `bdb-media-input-${BdbMediaInputComponent.nextId++}`;
|
|
1971
|
+
this._placeholder = '';
|
|
1972
|
+
this.focused = false;
|
|
1973
|
+
//MatFormFieldControl shouldLabelFloat
|
|
1974
|
+
this.shouldLabelFloat = true;
|
|
1975
|
+
this._disabled = false;
|
|
1976
|
+
this.controlType = 'bdb-media-input';
|
|
1977
|
+
this.isDisabled = false;
|
|
1978
|
+
this.onChange = () => { };
|
|
1979
|
+
this.onTouched = () => { };
|
|
1980
|
+
// Replace the provider from above with this.
|
|
1981
|
+
console.log(this.id);
|
|
1982
|
+
if (this.ngControl != null) {
|
|
1983
|
+
// const test = (this.ngControl.control as FormControl<Media | undefined>) != null;
|
|
1984
|
+
// Setting the value accessor directly (instead of using
|
|
1985
|
+
// the providers) to avoid running into a circular import.
|
|
1986
|
+
this.ngControl.valueAccessor = this;
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1989
|
+
ngAfterViewInit() {
|
|
1990
|
+
const test = this.ngControl.control != null;
|
|
1991
|
+
}
|
|
1992
|
+
onFocusIn(event) {
|
|
1993
|
+
if (!this.focused) {
|
|
1994
|
+
this.focused = true;
|
|
1995
|
+
this.stateChanges.next();
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
onFocusOut(event) {
|
|
1999
|
+
if (true) {
|
|
2000
|
+
// this.touched = true;
|
|
2001
|
+
this.focused = false;
|
|
2002
|
+
this.onTouched();
|
|
2003
|
+
this.stateChanges.next();
|
|
2004
|
+
}
|
|
2005
|
+
}
|
|
2006
|
+
//MatFormFieldControl empty
|
|
2007
|
+
get empty() {
|
|
2008
|
+
return !this.value;
|
|
2009
|
+
}
|
|
2010
|
+
//MatFormFieldControl required
|
|
2011
|
+
get required() {
|
|
2012
|
+
return this.ngControl?.control?.hasValidator(Validators.required) ?? false;
|
|
2013
|
+
}
|
|
2014
|
+
// set required(req: boolean) {
|
|
2015
|
+
// this._required = coerceBooleanProperty(req);
|
|
2016
|
+
// this.stateChanges.next();
|
|
2017
|
+
// }
|
|
2018
|
+
// private _required = false;
|
|
2019
|
+
get disabled() {
|
|
2020
|
+
return this._disabled;
|
|
2021
|
+
}
|
|
2022
|
+
set disabled(value) {
|
|
2023
|
+
this._disabled = coerceBooleanProperty(value);
|
|
2024
|
+
// this._disabled ? this.parts.disable() : this.parts.enable();
|
|
2025
|
+
this.stateChanges.next();
|
|
2026
|
+
}
|
|
2027
|
+
get errorState() {
|
|
2028
|
+
// return true;
|
|
2029
|
+
const control = this.ngControl?.control;
|
|
2030
|
+
if (!control) {
|
|
2031
|
+
return false;
|
|
2032
|
+
}
|
|
2033
|
+
return control.invalid && this.touched;
|
|
2034
|
+
}
|
|
2035
|
+
// disableAutomaticLabeling?: boolean | undefined;
|
|
2036
|
+
setDescribedByIds(ids) {
|
|
2037
|
+
//const controlElement = this._elementRef.nativeElement.querySelector('.example-tel-input-container')!;
|
|
2038
|
+
//controlElement.setAttribute('aria-describedby', ids.join(' '));
|
|
2039
|
+
}
|
|
2040
|
+
onContainerClick(event) {
|
|
2041
|
+
if (event.target.tagName.toLowerCase() != 'input') {
|
|
2042
|
+
//this._elementRef.nativeElement.querySelector('input').focus();
|
|
2043
|
+
}
|
|
2044
|
+
}
|
|
2045
|
+
writeValue(value) {
|
|
2046
|
+
this.value = value;
|
|
2047
|
+
}
|
|
2048
|
+
registerOnChange(fn) {
|
|
2049
|
+
this.onChange = fn;
|
|
2050
|
+
}
|
|
2051
|
+
registerOnTouched(fn) {
|
|
2052
|
+
this.onTouched = fn;
|
|
2053
|
+
}
|
|
2054
|
+
setDisabledState(isDisabled) {
|
|
2055
|
+
this.isDisabled = isDisabled;
|
|
2056
|
+
}
|
|
2057
|
+
onUploadComplete($event) {
|
|
2058
|
+
this.touched = true;
|
|
2059
|
+
this.value = $event;
|
|
2060
|
+
this.onChange($event);
|
|
2061
|
+
}
|
|
2062
|
+
clear() {
|
|
2063
|
+
this.value = undefined;
|
|
2064
|
+
this.onChange(undefined);
|
|
2065
|
+
this.touched = true;
|
|
2066
|
+
}
|
|
2067
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbMediaInputComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2068
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: BdbMediaInputComponent, isStandalone: true, selector: "bdb-media-input", inputs: { clearOnDragOver: "clearOnDragOver", required: "required", disabled: "disabled", userAriaDescribedBy: ["aria-describedby", "userAriaDescribedBy"] }, host: { properties: { "class": "this.class", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: BdbMediaInputComponent }], ngImport: i0, template: "<div>\r\n @if (value) {\r\n <button mat-mini-fab class=\"error\" (click)=\"clear()\"><mat-icon>clear</mat-icon></button>\r\n <bdb-media-display\r\n [media]=\"value\"\r\n [mode]=\"'details'\"\r\n detailsOverlay=\"always\"\r\n (dragover)=\"clearOnDragOver ? clear() : null\" />\r\n } @else {\r\n @if (error) {\r\n <bdb-alert-error-response\r\n [value]=\"error\"\r\n [dismissable]=\"true\"\r\n (dismiss)=\"error = undefined\"\r\n (dragover)=\"error = undefined\" />\r\n } @else {\r\n <bdb-media-upload (uploadComplete)=\"onUploadComplete($event)\" (uploadError)=\"error = $event\">\r\n <ng-content>\r\n <ng-container *ngTemplateOutlet=\"uploadIcon\"></ng-container>\r\n </ng-content>\r\n </bdb-media-upload>\r\n }\r\n }\r\n</div>\r\n\r\n<ng-template #uploadIcon>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\">\r\n <path\r\n d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\" />\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:row;align-items:stretch;justify-content:stretch;aspect-ratio:1/1;overflow:hidden}:host>div{flex:1;display:flex;align-items:stretch;justify-content:stretch;position:relative}:host>div bdb-media-upload{--bdb-media-upload-container: var(--bdb-media-input-container);--bdb-media-upload-container-hover: var(--bdb-media-input-container-hover);--bdb-media-upload-outline-color: var(--bdb-media-input-outline-color);--bdb-media-upload-fill: var(--bdb-media-input-fill);flex:1}:host>div bdb-media-display{--bdb-media-display-container: var(--bdb-media-input-container);--bdb-media-display-container-hover: var(--bdb-media-input-container-hover);--bdb-media-display-outline-color: var(--bdb-media-input-outline-color);--bdb-media-display-fill: var(--bdb-media-input-fill);flex:1;display:flex;align-items:center;justify-content:center}:host>div>button{position:absolute;visibility:hidden;top:0;right:0;margin:4px;z-index:2}:host>div:hover>button{visibility:visible}:host svg{flex:0 0 70%;object-fit:contain;max-width:90%;max-height:90%}:host svg path{fill:var(--bdb-media-upload-fill)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BdbMediaUploadComponent, selector: "bdb-media-upload", inputs: ["accept"], outputs: ["uploadComplete", "uploadError", "uploadStart"] }, { kind: "component", type: BdbMediaDisplayComponent, selector: "bdb-media-display", inputs: ["media", "mode", "overlayBehavior", "width", "height", "alt"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: BdbAlertErrorResponseComponent, selector: "bdb-alert-error-response", inputs: ["value", "dismissable"], outputs: ["dismiss"] }] }); }
|
|
2069
|
+
}
|
|
2070
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbMediaInputComponent, decorators: [{
|
|
2071
|
+
type: Component,
|
|
2072
|
+
args: [{ selector: 'bdb-media-input', imports: [
|
|
2073
|
+
CommonModule,
|
|
2074
|
+
BdbMediaUploadComponent,
|
|
2075
|
+
BdbMediaDisplayComponent,
|
|
2076
|
+
MatIconModule,
|
|
2077
|
+
MatButtonModule,
|
|
2078
|
+
BdbAlertErrorResponseComponent,
|
|
2079
|
+
], providers: [{ provide: MatFormFieldControl, useExisting: BdbMediaInputComponent }], template: "<div>\r\n @if (value) {\r\n <button mat-mini-fab class=\"error\" (click)=\"clear()\"><mat-icon>clear</mat-icon></button>\r\n <bdb-media-display\r\n [media]=\"value\"\r\n [mode]=\"'details'\"\r\n detailsOverlay=\"always\"\r\n (dragover)=\"clearOnDragOver ? clear() : null\" />\r\n } @else {\r\n @if (error) {\r\n <bdb-alert-error-response\r\n [value]=\"error\"\r\n [dismissable]=\"true\"\r\n (dismiss)=\"error = undefined\"\r\n (dragover)=\"error = undefined\" />\r\n } @else {\r\n <bdb-media-upload (uploadComplete)=\"onUploadComplete($event)\" (uploadError)=\"error = $event\">\r\n <ng-content>\r\n <ng-container *ngTemplateOutlet=\"uploadIcon\"></ng-container>\r\n </ng-content>\r\n </bdb-media-upload>\r\n }\r\n }\r\n</div>\r\n\r\n<ng-template #uploadIcon>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\">\r\n <path\r\n d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\" />\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:row;align-items:stretch;justify-content:stretch;aspect-ratio:1/1;overflow:hidden}:host>div{flex:1;display:flex;align-items:stretch;justify-content:stretch;position:relative}:host>div bdb-media-upload{--bdb-media-upload-container: var(--bdb-media-input-container);--bdb-media-upload-container-hover: var(--bdb-media-input-container-hover);--bdb-media-upload-outline-color: var(--bdb-media-input-outline-color);--bdb-media-upload-fill: var(--bdb-media-input-fill);flex:1}:host>div bdb-media-display{--bdb-media-display-container: var(--bdb-media-input-container);--bdb-media-display-container-hover: var(--bdb-media-input-container-hover);--bdb-media-display-outline-color: var(--bdb-media-input-outline-color);--bdb-media-display-fill: var(--bdb-media-input-fill);flex:1;display:flex;align-items:center;justify-content:center}:host>div>button{position:absolute;visibility:hidden;top:0;right:0;margin:4px;z-index:2}:host>div:hover>button{visibility:visible}:host svg{flex:0 0 70%;object-fit:contain;max-width:90%;max-height:90%}:host svg path{fill:var(--bdb-media-upload-fill)}\n"] }]
|
|
2080
|
+
}], ctorParameters: () => [{ type: i1$2.NgControl, decorators: [{
|
|
2081
|
+
type: Optional
|
|
2082
|
+
}, {
|
|
2083
|
+
type: Self
|
|
2084
|
+
}] }], propDecorators: { class: [{
|
|
2085
|
+
type: HostBinding,
|
|
2086
|
+
args: ['class']
|
|
2087
|
+
}], clearOnDragOver: [{
|
|
2088
|
+
type: Input
|
|
2089
|
+
}], id: [{
|
|
2090
|
+
type: HostBinding
|
|
2091
|
+
}], required: [{
|
|
2092
|
+
type: Input
|
|
2093
|
+
}], disabled: [{
|
|
2094
|
+
type: Input
|
|
2095
|
+
}], userAriaDescribedBy: [{
|
|
2096
|
+
type: Input,
|
|
2097
|
+
args: ['aria-describedby']
|
|
2098
|
+
}] } });
|
|
2099
|
+
|
|
2100
|
+
class MediaTableComponent {
|
|
1852
2101
|
constructor() {
|
|
1853
|
-
this.
|
|
1854
|
-
this.
|
|
1855
|
-
this.
|
|
1856
|
-
this.
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
this.mediaUploaded.emit($event);
|
|
1860
|
-
}
|
|
1861
|
-
onDropError($event) {
|
|
1862
|
-
this.dropError.emit($event);
|
|
1863
|
-
}
|
|
1864
|
-
onDropStart() {
|
|
1865
|
-
this.dropError.emit(undefined);
|
|
2102
|
+
this.displayedColumns = [];
|
|
2103
|
+
this.contextActions = [];
|
|
2104
|
+
this.contextAction = new EventEmitter();
|
|
2105
|
+
this.rowClick = new EventEmitter();
|
|
2106
|
+
this.cb = inject((BdbColumnBuilder));
|
|
2107
|
+
this.columns = this.cb.build(this.cb.enum(x => x.type, 'Type', { pipe: MediaTypePipe, width: 120 }), this.cb.string(x => x.fileName, 'Bestandsnaam'), this.cb.string(x => x.reference, 'Referentie', { width: 200 }), this.cb.number(x => x.fileSize, 'Bestandsgrootte', { pipe: FileSizePipe, width: 200 }), this.cb.number(x => x.height, 'Hoogte', { width: 200 }), this.cb.number(x => x.width, 'Breedte', { width: 200 }));
|
|
1866
2108
|
}
|
|
1867
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1868
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: MediaTableComponent, isStandalone: true, selector: "bdb-media-table", inputs: { dataSource: "dataSource", displayedColumns: "displayedColumns", contextActions: "contextActions" }, outputs: { contextAction: "contextAction", rowClick: "rowClick" }, ngImport: i0, template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n</bdb-table>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BdbTableComponent, selector: "bdb-table[dataSource]", inputs: ["columns", "dataSource", "autoLoad", "displayedColumns", "contextActions", "selection", "selectOnRowClick", "selectedRowClass", "isClickable", "rowColor"], outputs: ["rowClick", "contextAction"] }] }); }
|
|
1869
2111
|
}
|
|
1870
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MediaTableComponent, decorators: [{
|
|
1871
2113
|
type: Component,
|
|
1872
|
-
args: [{ selector: 'bdb-media-
|
|
1873
|
-
}], propDecorators: {
|
|
2114
|
+
args: [{ selector: 'bdb-media-table', imports: [CommonModule, BdbTableComponent], template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n [displayedColumns]=\"displayedColumns\"\r\n [contextActions]=\"contextActions\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n (contextAction)=\"contextAction.emit($event)\">\r\n</bdb-table>\r\n" }]
|
|
2115
|
+
}], propDecorators: { dataSource: [{
|
|
1874
2116
|
type: Input
|
|
1875
|
-
}],
|
|
2117
|
+
}], displayedColumns: [{
|
|
2118
|
+
type: Input
|
|
2119
|
+
}], contextActions: [{
|
|
1876
2120
|
type: Input
|
|
1877
|
-
}],
|
|
2121
|
+
}], contextAction: [{
|
|
1878
2122
|
type: Output
|
|
1879
|
-
}],
|
|
2123
|
+
}], rowClick: [{
|
|
1880
2124
|
type: Output
|
|
1881
2125
|
}] } });
|
|
1882
2126
|
|
|
1883
|
-
var TaskLogStatus;
|
|
1884
|
-
(function (TaskLogStatus) {
|
|
1885
|
-
TaskLogStatus["New"] = "New";
|
|
1886
|
-
TaskLogStatus["Running"] = "Running";
|
|
1887
|
-
TaskLogStatus["Waiting"] = "Waiting";
|
|
1888
|
-
TaskLogStatus["Completed"] = "Completed";
|
|
1889
|
-
})(TaskLogStatus || (TaskLogStatus = {}));
|
|
1890
|
-
const TaskLogStatusMap = new Map([
|
|
1891
|
-
[TaskLogStatus.New, 'Nieuw'],
|
|
1892
|
-
[TaskLogStatus.Running, 'Lopend'],
|
|
1893
|
-
[TaskLogStatus.Waiting, 'Wachten'],
|
|
1894
|
-
[TaskLogStatus.Completed, 'Afgerond'],
|
|
1895
|
-
]);
|
|
1896
|
-
|
|
1897
|
-
class TaskLogStatusPipe {
|
|
1898
|
-
transform(value) {
|
|
1899
|
-
if (!value) {
|
|
1900
|
-
return undefined;
|
|
1901
|
-
}
|
|
1902
|
-
return TaskLogStatusMap.get(value) ?? '???';
|
|
1903
|
-
}
|
|
1904
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TaskLogStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1905
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.11", ngImport: i0, type: TaskLogStatusPipe, isStandalone: true, name: "taskLogStatus" }); }
|
|
1906
|
-
}
|
|
1907
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: TaskLogStatusPipe, decorators: [{
|
|
1908
|
-
type: Pipe,
|
|
1909
|
-
args: [{
|
|
1910
|
-
name: 'taskLogStatus',
|
|
1911
|
-
standalone: true,
|
|
1912
|
-
}]
|
|
1913
|
-
}] });
|
|
1914
|
-
|
|
1915
2127
|
var TaskLogOutcome;
|
|
1916
2128
|
(function (TaskLogOutcome) {
|
|
1917
2129
|
TaskLogOutcome["Noop"] = "Noop";
|
|
@@ -1935,10 +2147,10 @@ class TaskLogOutcomePipe {
|
|
|
1935
2147
|
}
|
|
1936
2148
|
return TaskLogOutcomeMap.get(value) ?? '???';
|
|
1937
2149
|
}
|
|
1938
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1939
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2150
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogOutcomePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2151
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: TaskLogOutcomePipe, isStandalone: true, name: "taskLogOutcome" }); }
|
|
1940
2152
|
}
|
|
1941
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogOutcomePipe, decorators: [{
|
|
1942
2154
|
type: Pipe,
|
|
1943
2155
|
args: [{
|
|
1944
2156
|
name: 'taskLogOutcome',
|
|
@@ -1946,6 +2158,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
1946
2158
|
}]
|
|
1947
2159
|
}] });
|
|
1948
2160
|
|
|
2161
|
+
var TaskLogStatus;
|
|
2162
|
+
(function (TaskLogStatus) {
|
|
2163
|
+
TaskLogStatus["New"] = "New";
|
|
2164
|
+
TaskLogStatus["Running"] = "Running";
|
|
2165
|
+
TaskLogStatus["Waiting"] = "Waiting";
|
|
2166
|
+
TaskLogStatus["Completed"] = "Completed";
|
|
2167
|
+
})(TaskLogStatus || (TaskLogStatus = {}));
|
|
2168
|
+
const TaskLogStatusMap = new Map([
|
|
2169
|
+
[TaskLogStatus.New, 'Nieuw'],
|
|
2170
|
+
[TaskLogStatus.Running, 'Lopend'],
|
|
2171
|
+
[TaskLogStatus.Waiting, 'Wachten'],
|
|
2172
|
+
[TaskLogStatus.Completed, 'Afgerond'],
|
|
2173
|
+
]);
|
|
2174
|
+
|
|
2175
|
+
class TaskLogStatusPipe {
|
|
2176
|
+
transform(value) {
|
|
2177
|
+
if (!value) {
|
|
2178
|
+
return undefined;
|
|
2179
|
+
}
|
|
2180
|
+
return TaskLogStatusMap.get(value) ?? '???';
|
|
2181
|
+
}
|
|
2182
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2183
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: TaskLogStatusPipe, isStandalone: true, name: "taskLogStatus" }); }
|
|
2184
|
+
}
|
|
2185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogStatusPipe, decorators: [{
|
|
2186
|
+
type: Pipe,
|
|
2187
|
+
args: [{
|
|
2188
|
+
name: 'taskLogStatus',
|
|
2189
|
+
standalone: true,
|
|
2190
|
+
}]
|
|
2191
|
+
}] });
|
|
2192
|
+
|
|
1949
2193
|
var TaskLogParameterType;
|
|
1950
2194
|
(function (TaskLogParameterType) {
|
|
1951
2195
|
TaskLogParameterType["String"] = "String";
|
|
@@ -1986,10 +2230,10 @@ class TaskLogParameterValuePipe {
|
|
|
1986
2230
|
}
|
|
1987
2231
|
}
|
|
1988
2232
|
}
|
|
1989
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1990
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2233
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogParameterValuePipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2234
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: TaskLogParameterValuePipe, isStandalone: true, name: "taskLogParameterValue" }); }
|
|
1991
2235
|
}
|
|
1992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogParameterValuePipe, decorators: [{
|
|
1993
2237
|
type: Pipe,
|
|
1994
2238
|
args: [{
|
|
1995
2239
|
name: 'taskLogParameterValue',
|
|
@@ -2044,10 +2288,10 @@ class UserTableComponent {
|
|
|
2044
2288
|
// break;
|
|
2045
2289
|
// }
|
|
2046
2290
|
}
|
|
2047
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2048
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2291
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserTableComponent, deps: [{ token: i1$1.MatDialog }, { token: BdbColumnBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2292
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: UserTableComponent, isStandalone: true, selector: "bdb-user-table[dataSource]", inputs: { dataSource: "dataSource", displayedColumns: "displayedColumns", contextActions: "contextActions" }, outputs: { rowClick: "rowClick" }, ngImport: i0, template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n (rowClick)=\"onRowClick($event)\"\r\n [contextActions]=\"contextActions\"\r\n (contextAction)=\"onContextAction($event)\"\r\n [displayedColumns]=\"displayedColumns\">\r\n <ng-template bdbCellDef=\"roles\" let-row>\r\n {{ row.roles }}\r\n </ng-template>\r\n</bdb-table>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BdbTableComponent, selector: "bdb-table[dataSource]", inputs: ["columns", "dataSource", "autoLoad", "displayedColumns", "contextActions", "selection", "selectOnRowClick", "selectedRowClass", "isClickable", "rowColor"], outputs: ["rowClick", "contextAction"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: BdbCellDirective, selector: "ng-template[bdbCellDef]", inputs: ["bdbCellDef"] }] }); }
|
|
2049
2293
|
}
|
|
2050
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2294
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserTableComponent, decorators: [{
|
|
2051
2295
|
type: Component,
|
|
2052
2296
|
args: [{ selector: 'bdb-user-table[dataSource]', imports: [CommonModule, BdbTableComponent, MatDialogModule, BdbCellDirective], template: "<bdb-table\r\n [columns]=\"columns\"\r\n [dataSource]=\"dataSource\"\r\n (rowClick)=\"onRowClick($event)\"\r\n [contextActions]=\"contextActions\"\r\n (contextAction)=\"onContextAction($event)\"\r\n [displayedColumns]=\"displayedColumns\">\r\n <ng-template bdbCellDef=\"roles\" let-row>\r\n {{ row.roles }}\r\n </ng-template>\r\n</bdb-table>\r\n" }]
|
|
2053
2297
|
}], ctorParameters: () => [{ type: i1$1.MatDialog }, { type: BdbColumnBuilder }], propDecorators: { dataSource: [{
|
|
@@ -2069,10 +2313,10 @@ class BdbFlexChildDirective {
|
|
|
2069
2313
|
ngOnInit() {
|
|
2070
2314
|
this.renderer.setStyle(this.element.nativeElement, 'flex', this.bdbFlexChild);
|
|
2071
2315
|
}
|
|
2072
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2073
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2316
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFlexChildDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2317
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: BdbFlexChildDirective, isStandalone: true, selector: "[bdbFlexChild]", inputs: { bdbFlexChild: "bdbFlexChild" }, ngImport: i0 }); }
|
|
2074
2318
|
}
|
|
2075
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFlexChildDirective, decorators: [{
|
|
2076
2320
|
type: Directive,
|
|
2077
2321
|
args: [{
|
|
2078
2322
|
selector: '[bdbFlexChild]',
|
|
@@ -2135,6 +2379,84 @@ class Node {
|
|
|
2135
2379
|
}
|
|
2136
2380
|
}
|
|
2137
2381
|
|
|
2382
|
+
class BdbGridChildDirective {
|
|
2383
|
+
constructor(element, renderer) {
|
|
2384
|
+
this.element = element;
|
|
2385
|
+
this.renderer = renderer;
|
|
2386
|
+
this.bdbGridChild = '';
|
|
2387
|
+
this.bdbGridRow = '';
|
|
2388
|
+
this.bdbGridColumn = '';
|
|
2389
|
+
}
|
|
2390
|
+
ngOnInit() {
|
|
2391
|
+
const axes = this.splitAxes();
|
|
2392
|
+
let column = axes[0];
|
|
2393
|
+
let row = axes[1];
|
|
2394
|
+
if (this.bdbGridColumn) {
|
|
2395
|
+
column = this.bdbGridColumn;
|
|
2396
|
+
}
|
|
2397
|
+
if (this.bdbGridRow) {
|
|
2398
|
+
row = this.bdbGridRow;
|
|
2399
|
+
}
|
|
2400
|
+
if (column) {
|
|
2401
|
+
this.renderer.setStyle(this.element.nativeElement, 'grid-column', column);
|
|
2402
|
+
}
|
|
2403
|
+
if (row) {
|
|
2404
|
+
this.renderer.setStyle(this.element.nativeElement, 'grid-row', row);
|
|
2405
|
+
}
|
|
2406
|
+
}
|
|
2407
|
+
splitAxes() {
|
|
2408
|
+
const input = this.bdbGridChild.split(' ').filter(x => !!x);
|
|
2409
|
+
if (!input.length) {
|
|
2410
|
+
return [];
|
|
2411
|
+
}
|
|
2412
|
+
let sourceList = new LinkedList(input);
|
|
2413
|
+
let targetList = new LinkedList();
|
|
2414
|
+
let node = sourceList.head;
|
|
2415
|
+
while (node) {
|
|
2416
|
+
if (node.value === 'span' && node.next) {
|
|
2417
|
+
targetList.push(`span ${node.next.value}`);
|
|
2418
|
+
node = node.next;
|
|
2419
|
+
}
|
|
2420
|
+
else {
|
|
2421
|
+
targetList.push(node.value);
|
|
2422
|
+
}
|
|
2423
|
+
node = node.next;
|
|
2424
|
+
}
|
|
2425
|
+
sourceList = targetList;
|
|
2426
|
+
targetList = new LinkedList();
|
|
2427
|
+
node = sourceList.head;
|
|
2428
|
+
while (node) {
|
|
2429
|
+
if (node.next && node.next.value === '/' && node.next.next) {
|
|
2430
|
+
targetList.push(`${node.value} / ${node.next.next.value}`);
|
|
2431
|
+
node = node.next.next;
|
|
2432
|
+
}
|
|
2433
|
+
else {
|
|
2434
|
+
targetList.push(node.value);
|
|
2435
|
+
}
|
|
2436
|
+
node = node.next;
|
|
2437
|
+
}
|
|
2438
|
+
if (targetList.length !== 2 || !targetList.head || !targetList.tail) {
|
|
2439
|
+
return [];
|
|
2440
|
+
}
|
|
2441
|
+
return [targetList.head.value, targetList.tail.value];
|
|
2442
|
+
}
|
|
2443
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbGridChildDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2444
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: BdbGridChildDirective, isStandalone: true, selector: "[bdbGridChild], [bdbGridColumn], [bdbGridRow]", inputs: { bdbGridChild: "bdbGridChild", bdbGridRow: "bdbGridRow", bdbGridColumn: "bdbGridColumn" }, ngImport: i0 }); }
|
|
2445
|
+
}
|
|
2446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbGridChildDirective, decorators: [{
|
|
2447
|
+
type: Directive,
|
|
2448
|
+
args: [{
|
|
2449
|
+
selector: '[bdbGridChild], [bdbGridColumn], [bdbGridRow]',
|
|
2450
|
+
standalone: true,
|
|
2451
|
+
}]
|
|
2452
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { bdbGridChild: [{
|
|
2453
|
+
type: Input
|
|
2454
|
+
}], bdbGridRow: [{
|
|
2455
|
+
type: Input
|
|
2456
|
+
}], bdbGridColumn: [{
|
|
2457
|
+
type: Input
|
|
2458
|
+
}] } });
|
|
2459
|
+
|
|
2138
2460
|
class BdbGridDirective {
|
|
2139
2461
|
constructor(element, renderer) {
|
|
2140
2462
|
this.element = element;
|
|
@@ -2220,10 +2542,10 @@ class BdbGridDirective {
|
|
|
2220
2542
|
this.renderer.setStyle(this.element.nativeElement, selector, result.input);
|
|
2221
2543
|
}
|
|
2222
2544
|
}
|
|
2223
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2224
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2545
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbGridDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2546
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: BdbGridDirective, isStandalone: true, selector: "[bdbGrid], [bdbGridColumns], [bdbGridRows], [bdbGridGap]", inputs: { bdbGrid: "bdbGrid", bdbGridColumns: "bdbGridColumns", bdbGridRows: "bdbGridRows", bdbGridGap: "bdbGridGap" }, ngImport: i0 }); }
|
|
2225
2547
|
}
|
|
2226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2548
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbGridDirective, decorators: [{
|
|
2227
2549
|
type: Directive,
|
|
2228
2550
|
args: [{
|
|
2229
2551
|
selector: '[bdbGrid], [bdbGridColumns], [bdbGridRows], [bdbGridGap]',
|
|
@@ -2239,84 +2561,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
2239
2561
|
type: Input
|
|
2240
2562
|
}] } });
|
|
2241
2563
|
|
|
2242
|
-
class BdbGridChildDirective {
|
|
2243
|
-
constructor(element, renderer) {
|
|
2244
|
-
this.element = element;
|
|
2245
|
-
this.renderer = renderer;
|
|
2246
|
-
this.bdbGridChild = '';
|
|
2247
|
-
this.bdbGridRow = '';
|
|
2248
|
-
this.bdbGridColumn = '';
|
|
2249
|
-
}
|
|
2250
|
-
ngOnInit() {
|
|
2251
|
-
const axes = this.splitAxes();
|
|
2252
|
-
let column = axes[0];
|
|
2253
|
-
let row = axes[1];
|
|
2254
|
-
if (this.bdbGridColumn) {
|
|
2255
|
-
column = this.bdbGridColumn;
|
|
2256
|
-
}
|
|
2257
|
-
if (this.bdbGridRow) {
|
|
2258
|
-
row = this.bdbGridRow;
|
|
2259
|
-
}
|
|
2260
|
-
if (column) {
|
|
2261
|
-
this.renderer.setStyle(this.element.nativeElement, 'grid-column', column);
|
|
2262
|
-
}
|
|
2263
|
-
if (row) {
|
|
2264
|
-
this.renderer.setStyle(this.element.nativeElement, 'grid-row', row);
|
|
2265
|
-
}
|
|
2266
|
-
}
|
|
2267
|
-
splitAxes() {
|
|
2268
|
-
const input = this.bdbGridChild.split(' ').filter(x => !!x);
|
|
2269
|
-
if (!input.length) {
|
|
2270
|
-
return [];
|
|
2271
|
-
}
|
|
2272
|
-
let sourceList = new LinkedList(input);
|
|
2273
|
-
let targetList = new LinkedList();
|
|
2274
|
-
let node = sourceList.head;
|
|
2275
|
-
while (node) {
|
|
2276
|
-
if (node.value === 'span' && node.next) {
|
|
2277
|
-
targetList.push(`span ${node.next.value}`);
|
|
2278
|
-
node = node.next;
|
|
2279
|
-
}
|
|
2280
|
-
else {
|
|
2281
|
-
targetList.push(node.value);
|
|
2282
|
-
}
|
|
2283
|
-
node = node.next;
|
|
2284
|
-
}
|
|
2285
|
-
sourceList = targetList;
|
|
2286
|
-
targetList = new LinkedList();
|
|
2287
|
-
node = sourceList.head;
|
|
2288
|
-
while (node) {
|
|
2289
|
-
if (node.next && node.next.value === '/' && node.next.next) {
|
|
2290
|
-
targetList.push(`${node.value} / ${node.next.next.value}`);
|
|
2291
|
-
node = node.next.next;
|
|
2292
|
-
}
|
|
2293
|
-
else {
|
|
2294
|
-
targetList.push(node.value);
|
|
2295
|
-
}
|
|
2296
|
-
node = node.next;
|
|
2297
|
-
}
|
|
2298
|
-
if (targetList.length !== 2 || !targetList.head || !targetList.tail) {
|
|
2299
|
-
return [];
|
|
2300
|
-
}
|
|
2301
|
-
return [targetList.head.value, targetList.tail.value];
|
|
2302
|
-
}
|
|
2303
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: BdbGridChildDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2304
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: BdbGridChildDirective, isStandalone: true, selector: "[bdbGridChild], [bdbGridColumn], [bdbGridRow]", inputs: { bdbGridChild: "bdbGridChild", bdbGridRow: "bdbGridRow", bdbGridColumn: "bdbGridColumn" }, ngImport: i0 }); }
|
|
2305
|
-
}
|
|
2306
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: BdbGridChildDirective, decorators: [{
|
|
2307
|
-
type: Directive,
|
|
2308
|
-
args: [{
|
|
2309
|
-
selector: '[bdbGridChild], [bdbGridColumn], [bdbGridRow]',
|
|
2310
|
-
standalone: true,
|
|
2311
|
-
}]
|
|
2312
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { bdbGridChild: [{
|
|
2313
|
-
type: Input
|
|
2314
|
-
}], bdbGridRow: [{
|
|
2315
|
-
type: Input
|
|
2316
|
-
}], bdbGridColumn: [{
|
|
2317
|
-
type: Input
|
|
2318
|
-
}] } });
|
|
2319
|
-
|
|
2320
2564
|
class BdbCollapseRowComponent {
|
|
2321
2565
|
constructor() {
|
|
2322
2566
|
this.collapsed = false;
|
|
@@ -2326,10 +2570,10 @@ class BdbCollapseRowComponent {
|
|
|
2326
2570
|
get isCollapsed() {
|
|
2327
2571
|
return this.collapsed;
|
|
2328
2572
|
}
|
|
2329
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2330
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2573
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbCollapseRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2574
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: BdbCollapseRowComponent, isStandalone: true, selector: "bdb-collapse-row", inputs: { collapsed: "collapsed", canCollapse: "canCollapse" }, host: { properties: { "class": "this.class", "class.collapsed": "this.isCollapsed" } }, ngImport: i0, template: "<div class=\"left\">\r\n <ng-content select=\"left\"></ng-content>\r\n</div>\r\n<div class=\"gap\">\r\n <div class=\"indicator\" (click)=\"collapsed = canCollapse && !collapsed\">\r\n <div class=\"top\"></div>\r\n <div class=\"middle\">\r\n <mat-icon>{{ collapsed ? 'left_panel_open' : 'left_panel_close' }}</mat-icon>\r\n </div>\r\n <div class=\"bottom\"></div>\r\n </div>\r\n</div>\r\n<div class=\"right\">\r\n <ng-content select=\"right\"></ng-content>\r\n</div>\r\n", styles: [":host{height:100%;overflow:hidden;display:flex;flex-direction:row;justify-content:start;align-items:stretch}:host>.gap{flex:0 0 16px;position:relative}:host>.gap .indicator{z-index:101;position:absolute;inset:0 -8px;display:none;flex-direction:column;align-items:stretch;justify-content:center;cursor:pointer}:host>.gap .indicator .top,:host>.gap .indicator .bottom{flex:1;margin:0 12px}:host>.gap .indicator .top{border-radius:4px 4px 0 0}:host>.gap .indicator .bottom{border-radius:0 0 4px 4px}:host>.gap .indicator .middle{flex:0 0 24px;border-radius:4px;padding:4px;display:flex;align-items:center;justify-content:center}:host>.gap:hover .indicator{display:flex}:host>.left,:host>.right{flex:0 0 calc(50% - 8px);overflow:hidden;display:flex;flex-direction:column;justify-content:stretch;align-content:stretch}:host.collapsed>.left{flex:0 0 8px;visibility:hidden}:host.collapsed>.right{flex-grow:1}:host.collapsed>.gap .indicator{display:flex}:host .left{transition:flex .2s ease-in-out}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
2331
2575
|
}
|
|
2332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbCollapseRowComponent, decorators: [{
|
|
2333
2577
|
type: Component,
|
|
2334
2578
|
args: [{ selector: 'bdb-collapse-row', imports: [MatIconModule], template: "<div class=\"left\">\r\n <ng-content select=\"left\"></ng-content>\r\n</div>\r\n<div class=\"gap\">\r\n <div class=\"indicator\" (click)=\"collapsed = canCollapse && !collapsed\">\r\n <div class=\"top\"></div>\r\n <div class=\"middle\">\r\n <mat-icon>{{ collapsed ? 'left_panel_open' : 'left_panel_close' }}</mat-icon>\r\n </div>\r\n <div class=\"bottom\"></div>\r\n </div>\r\n</div>\r\n<div class=\"right\">\r\n <ng-content select=\"right\"></ng-content>\r\n</div>\r\n", styles: [":host{height:100%;overflow:hidden;display:flex;flex-direction:row;justify-content:start;align-items:stretch}:host>.gap{flex:0 0 16px;position:relative}:host>.gap .indicator{z-index:101;position:absolute;inset:0 -8px;display:none;flex-direction:column;align-items:stretch;justify-content:center;cursor:pointer}:host>.gap .indicator .top,:host>.gap .indicator .bottom{flex:1;margin:0 12px}:host>.gap .indicator .top{border-radius:4px 4px 0 0}:host>.gap .indicator .bottom{border-radius:0 0 4px 4px}:host>.gap .indicator .middle{flex:0 0 24px;border-radius:4px;padding:4px;display:flex;align-items:center;justify-content:center}:host>.gap:hover .indicator{display:flex}:host>.left,:host>.right{flex:0 0 calc(50% - 8px);overflow:hidden;display:flex;flex-direction:column;justify-content:stretch;align-content:stretch}:host.collapsed>.left{flex:0 0 8px;visibility:hidden}:host.collapsed>.right{flex-grow:1}:host.collapsed>.gap .indicator{display:flex}:host .left{transition:flex .2s ease-in-out}\n"] }]
|
|
2335
2579
|
}], propDecorators: { collapsed: [{
|
|
@@ -2349,10 +2593,10 @@ class BdbFieldComponent {
|
|
|
2349
2593
|
this.class = 'bdb-field';
|
|
2350
2594
|
this.label = '';
|
|
2351
2595
|
}
|
|
2352
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2353
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2596
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2597
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: BdbFieldComponent, isStandalone: true, selector: "bdb-field", inputs: { label: "label" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"field-label\">{{ label }}</div>\r\n<ng-content></ng-content>\r\n", styles: [":host{padding:8px;box-sizing:border-box;display:flex;flex-direction:column;background-color:var(--bdb-field-container-color);border:1px solid var(--bdb-field-border-color);border-bottom-width:2px;color:var(--bdb-field-color);border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));min-height:52px;gap:2px}.field-label{flex:0 0 12px;font-size:12px;line-height:12px;font-variant:italic;color:var(--bdb-field-label-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
2354
2598
|
}
|
|
2355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2599
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: BdbFieldComponent, decorators: [{
|
|
2356
2600
|
type: Component,
|
|
2357
2601
|
args: [{ selector: 'bdb-field', imports: [CommonModule], template: "<div class=\"field-label\">{{ label }}</div>\r\n<ng-content></ng-content>\r\n", styles: [":host{padding:8px;box-sizing:border-box;display:flex;flex-direction:column;background-color:var(--bdb-field-container-color);border:1px solid var(--bdb-field-border-color);border-bottom-width:2px;color:var(--bdb-field-color);border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));min-height:52px;gap:2px}.field-label{flex:0 0 12px;font-size:12px;line-height:12px;font-variant:italic;color:var(--bdb-field-label-color)}\n"] }]
|
|
2358
2602
|
}], propDecorators: { class: [{
|
|
@@ -2368,10 +2612,10 @@ class PlainNumberPipe {
|
|
|
2368
2612
|
}
|
|
2369
2613
|
return '' + value;
|
|
2370
2614
|
}
|
|
2371
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2372
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2615
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PlainNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2616
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: PlainNumberPipe, isStandalone: true, name: "bdbPlainNumber" }); }
|
|
2373
2617
|
}
|
|
2374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2618
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PlainNumberPipe, decorators: [{
|
|
2375
2619
|
type: Pipe,
|
|
2376
2620
|
args: [{
|
|
2377
2621
|
name: 'bdbPlainNumber',
|
|
@@ -2385,12 +2629,6 @@ class BdbServiceCR extends BdbServiceR {
|
|
|
2385
2629
|
}
|
|
2386
2630
|
}
|
|
2387
2631
|
|
|
2388
|
-
class BdbServiceRU extends BdbServiceR {
|
|
2389
|
-
update(updateModel) {
|
|
2390
|
-
return this.httpClient.put(this.baseUrl, updateModel);
|
|
2391
|
-
}
|
|
2392
|
-
}
|
|
2393
|
-
|
|
2394
2632
|
class BdbServiceCRD extends BdbServiceCR {
|
|
2395
2633
|
delete(id) {
|
|
2396
2634
|
return this.httpClient.delete(`${this.baseUrl}/${id}`);
|
|
@@ -2403,13 +2641,19 @@ class BdbServiceCRU extends BdbServiceCR {
|
|
|
2403
2641
|
}
|
|
2404
2642
|
}
|
|
2405
2643
|
|
|
2406
|
-
class
|
|
2644
|
+
class BdbServiceCRUD extends BdbServiceCRU {
|
|
2407
2645
|
delete(id) {
|
|
2408
2646
|
return this.httpClient.delete(`${this.baseUrl}/${id}`);
|
|
2409
2647
|
}
|
|
2410
2648
|
}
|
|
2411
2649
|
|
|
2412
|
-
class
|
|
2650
|
+
class BdbServiceRU extends BdbServiceR {
|
|
2651
|
+
update(updateModel) {
|
|
2652
|
+
return this.httpClient.put(this.baseUrl, updateModel);
|
|
2653
|
+
}
|
|
2654
|
+
}
|
|
2655
|
+
|
|
2656
|
+
class BdbServiceRUD extends BdbServiceRU {
|
|
2413
2657
|
delete(id) {
|
|
2414
2658
|
return this.httpClient.delete(`${this.baseUrl}/${id}`);
|
|
2415
2659
|
}
|
|
@@ -2419,10 +2663,10 @@ class ExceptionLogService extends BdbServiceR {
|
|
|
2419
2663
|
constructor() {
|
|
2420
2664
|
super('exception-log');
|
|
2421
2665
|
}
|
|
2422
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2423
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2666
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ExceptionLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2667
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ExceptionLogService, providedIn: 'root' }); }
|
|
2424
2668
|
}
|
|
2425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2669
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ExceptionLogService, decorators: [{
|
|
2426
2670
|
type: Injectable,
|
|
2427
2671
|
args: [{
|
|
2428
2672
|
providedIn: 'root',
|
|
@@ -2433,10 +2677,10 @@ class RoleService extends BdbServiceR {
|
|
|
2433
2677
|
constructor() {
|
|
2434
2678
|
super('role');
|
|
2435
2679
|
}
|
|
2436
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2437
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2680
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: RoleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2681
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: RoleService, providedIn: 'root' }); }
|
|
2438
2682
|
}
|
|
2439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: RoleService, decorators: [{
|
|
2440
2684
|
type: Injectable,
|
|
2441
2685
|
args: [{
|
|
2442
2686
|
providedIn: 'root',
|
|
@@ -2450,10 +2694,10 @@ class TaskLogService extends BdbServiceCR {
|
|
|
2450
2694
|
start(id) {
|
|
2451
2695
|
return this.httpClient.post(`${this.baseUrl}/start`, { id });
|
|
2452
2696
|
}
|
|
2453
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2454
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2697
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2698
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogService, providedIn: 'root' }); }
|
|
2455
2699
|
}
|
|
2456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2700
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogService, decorators: [{
|
|
2457
2701
|
type: Injectable,
|
|
2458
2702
|
args: [{
|
|
2459
2703
|
providedIn: 'root',
|
|
@@ -2464,10 +2708,10 @@ class TaskLogParameterService extends BdbServiceR {
|
|
|
2464
2708
|
constructor() {
|
|
2465
2709
|
super('task-log-parameter');
|
|
2466
2710
|
}
|
|
2467
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2468
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2711
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogParameterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2712
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogParameterService, providedIn: 'root' }); }
|
|
2469
2713
|
}
|
|
2470
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2714
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogParameterService, decorators: [{
|
|
2471
2715
|
type: Injectable,
|
|
2472
2716
|
args: [{
|
|
2473
2717
|
providedIn: 'root',
|
|
@@ -2478,10 +2722,10 @@ class TaskLogScheduleService extends BdbServiceCRUD {
|
|
|
2478
2722
|
constructor() {
|
|
2479
2723
|
super('task-log-schedule');
|
|
2480
2724
|
}
|
|
2481
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2482
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2725
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogScheduleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2726
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogScheduleService, providedIn: 'root' }); }
|
|
2483
2727
|
}
|
|
2484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2728
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogScheduleService, decorators: [{
|
|
2485
2729
|
type: Injectable,
|
|
2486
2730
|
args: [{
|
|
2487
2731
|
providedIn: 'root',
|
|
@@ -2492,10 +2736,10 @@ class UserService extends BdbServiceCRUD {
|
|
|
2492
2736
|
constructor() {
|
|
2493
2737
|
super('user');
|
|
2494
2738
|
}
|
|
2495
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2496
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2739
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2740
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserService, providedIn: 'root' }); }
|
|
2497
2741
|
}
|
|
2498
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserService, decorators: [{
|
|
2499
2743
|
type: Injectable,
|
|
2500
2744
|
args: [{
|
|
2501
2745
|
providedIn: 'root',
|
|
@@ -2506,10 +2750,10 @@ class UserRoleService extends BdbServiceCRD {
|
|
|
2506
2750
|
constructor() {
|
|
2507
2751
|
super('user-role');
|
|
2508
2752
|
}
|
|
2509
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2510
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2753
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserRoleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2754
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserRoleService, providedIn: 'root' }); }
|
|
2511
2755
|
}
|
|
2512
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2756
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: UserRoleService, decorators: [{
|
|
2513
2757
|
type: Injectable,
|
|
2514
2758
|
args: [{
|
|
2515
2759
|
providedIn: 'root',
|
|
@@ -2529,10 +2773,10 @@ class TaskLogSchedulerService extends BdbService {
|
|
|
2529
2773
|
stopScheduler() {
|
|
2530
2774
|
return this.httpClient.get(`${this.baseUrl}/stop`);
|
|
2531
2775
|
}
|
|
2532
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2533
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2776
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogSchedulerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2777
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogSchedulerService, providedIn: 'root' }); }
|
|
2534
2778
|
}
|
|
2535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2779
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogSchedulerService, decorators: [{
|
|
2536
2780
|
type: Injectable,
|
|
2537
2781
|
args: [{
|
|
2538
2782
|
providedIn: 'root',
|
|
@@ -2568,10 +2812,10 @@ class TaskLogTypeService extends BdbService {
|
|
|
2568
2812
|
}
|
|
2569
2813
|
return of(null);
|
|
2570
2814
|
}
|
|
2571
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2572
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2815
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogTypeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2816
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogTypeService, providedIn: 'root' }); }
|
|
2573
2817
|
}
|
|
2574
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2818
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TaskLogTypeService, decorators: [{
|
|
2575
2819
|
type: Injectable,
|
|
2576
2820
|
args: [{
|
|
2577
2821
|
providedIn: 'root',
|
|
@@ -2595,10 +2839,10 @@ class AccessDeniedPageComponent {
|
|
|
2595
2839
|
this._onDestroy.next();
|
|
2596
2840
|
this._onDestroy.complete();
|
|
2597
2841
|
}
|
|
2598
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2599
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2842
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AccessDeniedPageComponent, deps: [{ token: BDB_OPTIONS }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2843
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: AccessDeniedPageComponent, isStandalone: true, selector: "bdb-access-denied-page", ngImport: i0, template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Toegang geweigerd</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"access-denied-card-content\">\r\n <bdb-alert color=\"danger\" label=\"Geen toegang\" icon=\"block\">\r\n U heeft onvoldoende rechten voor de gevraagde toepassing\r\n </bdb-alert>\r\n </mat-card-content>\r\n <mat-card-actions bdbFlex=\"row 0 end center\">\r\n @if (isLoggedIn) {\r\n <a [routerLink]=\"['/', logoutRoutePath]\" mat-button>Uitloggen</a>\r\n } @else {\r\n <a [routerLink]=\"['/', loginRoutePath]\" mat-button>Inloggen</a>\r\n }\r\n </mat-card-actions>\r\n</mat-card>\r\n", styles: [":host{min-width:360px}.access-denied-card-content{padding:8px 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: BdbAlertComponent, selector: "bdb-alert", inputs: ["label", "icon", "inline"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "directive", type: BdbFlexDirective, selector: "[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]", inputs: ["bdbFlex", "bdbFlexDirection", "bdbFlexGap", "bdbFlexSpacing"] }] }); }
|
|
2600
2844
|
}
|
|
2601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2845
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AccessDeniedPageComponent, decorators: [{
|
|
2602
2846
|
type: Component,
|
|
2603
2847
|
args: [{ selector: 'bdb-access-denied-page', imports: [
|
|
2604
2848
|
CommonModule,
|
|
@@ -2608,7 +2852,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
2608
2852
|
RouterLink,
|
|
2609
2853
|
MatIconModule,
|
|
2610
2854
|
BdbFlexDirective,
|
|
2611
|
-
], template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Toegang geweigerd</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"access-denied-card-content\">\r\n <bdb-alert color=\"danger\" label=\"Geen toegang\" icon=\"block\">\r\n U heeft onvoldoende rechten voor de gevraagde toepassing\r\n </bdb-alert>\r\n </mat-card-content>\r\n <mat-card-actions bdbFlex=\"row 0 end center\">\r\n <a [routerLink]=\"['/',
|
|
2855
|
+
], template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Toegang geweigerd</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"access-denied-card-content\">\r\n <bdb-alert color=\"danger\" label=\"Geen toegang\" icon=\"block\">\r\n U heeft onvoldoende rechten voor de gevraagde toepassing\r\n </bdb-alert>\r\n </mat-card-content>\r\n <mat-card-actions bdbFlex=\"row 0 end center\">\r\n @if (isLoggedIn) {\r\n <a [routerLink]=\"['/', logoutRoutePath]\" mat-button>Uitloggen</a>\r\n } @else {\r\n <a [routerLink]=\"['/', loginRoutePath]\" mat-button>Inloggen</a>\r\n }\r\n </mat-card-actions>\r\n</mat-card>\r\n", styles: [":host{min-width:360px}.access-denied-card-content{padding:8px 16px}\n"] }]
|
|
2612
2856
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2613
2857
|
type: Inject,
|
|
2614
2858
|
args: [BDB_OPTIONS]
|
|
@@ -2651,10 +2895,10 @@ class ForgotPasswordPageComponent {
|
|
|
2651
2895
|
},
|
|
2652
2896
|
});
|
|
2653
2897
|
}
|
|
2654
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2655
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2898
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ForgotPasswordPageComponent, deps: [{ token: AuthService }, { token: BDB_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2899
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ForgotPasswordPageComponent, isStandalone: true, selector: "bdb-forgot-password-page", ngImport: i0, template: "@if (!isComplete) {\r\n <form [formGroup]=\"forgotPasswordForm\" (ngSubmit)=\"forgotPassword()\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Wachtwoord vergeten</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"forgot-password-page-card-content\">\r\n <bdb-alert-error-response [value]=\"error\" class=\"login-page-error-response\"></bdb-alert-error-response>\r\n <mat-form-field>\r\n <mat-label>E-mailadres</mat-label>\r\n <input matInput type=\"email\" formControlName=\"email\" />\r\n </mat-form-field>\r\n </mat-card-content>\r\n <mat-card-actions class=\"forgot-password-page-card-actions\">\r\n <a mat-button [routerLink]=\"['/', loginRoutePath]\" [disabled]=\"isPending\">\r\n <mat-icon>login</mat-icon>\r\n <span>Log in</span>\r\n </a>\r\n <button mat-flat-button color=\"primary\">\r\n <mat-icon>lock_reset</mat-icon>\r\n <span>Herstel wachtwoord</span>\r\n </button></mat-card-actions\r\n >\r\n </mat-card>\r\n </form>\r\n} @else {\r\n <bdb-alert color=\"success\" label=\"Wachtwoord herstel gestart\"> Controleer uw e-mail voor instructies </bdb-alert>\r\n}\r\n", styles: [":host{width:360px}.forgot-password-page-card-content{display:flex;flex-direction:column;margin-top:16px}.forgot-password-page-card-actions{gap:8px;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5$1.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: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: BdbAlertErrorResponseComponent, selector: "bdb-alert-error-response", inputs: ["value", "dismissable"], outputs: ["dismiss"] }, { kind: "component", type: BdbAlertComponent, selector: "bdb-alert", inputs: ["label", "icon", "inline"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
|
|
2656
2900
|
}
|
|
2657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2901
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ForgotPasswordPageComponent, decorators: [{
|
|
2658
2902
|
type: Component,
|
|
2659
2903
|
args: [{ selector: 'bdb-forgot-password-page', imports: [
|
|
2660
2904
|
CommonModule,
|
|
@@ -2667,7 +2911,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
2667
2911
|
BdbAlertErrorResponseComponent,
|
|
2668
2912
|
BdbAlertComponent,
|
|
2669
2913
|
MatButtonModule,
|
|
2670
|
-
], template: "<form [formGroup]=\"forgotPasswordForm\" (ngSubmit)=\"forgotPassword()\"
|
|
2914
|
+
], template: "@if (!isComplete) {\r\n <form [formGroup]=\"forgotPasswordForm\" (ngSubmit)=\"forgotPassword()\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Wachtwoord vergeten</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"forgot-password-page-card-content\">\r\n <bdb-alert-error-response [value]=\"error\" class=\"login-page-error-response\"></bdb-alert-error-response>\r\n <mat-form-field>\r\n <mat-label>E-mailadres</mat-label>\r\n <input matInput type=\"email\" formControlName=\"email\" />\r\n </mat-form-field>\r\n </mat-card-content>\r\n <mat-card-actions class=\"forgot-password-page-card-actions\">\r\n <a mat-button [routerLink]=\"['/', loginRoutePath]\" [disabled]=\"isPending\">\r\n <mat-icon>login</mat-icon>\r\n <span>Log in</span>\r\n </a>\r\n <button mat-flat-button color=\"primary\">\r\n <mat-icon>lock_reset</mat-icon>\r\n <span>Herstel wachtwoord</span>\r\n </button></mat-card-actions\r\n >\r\n </mat-card>\r\n </form>\r\n} @else {\r\n <bdb-alert color=\"success\" label=\"Wachtwoord herstel gestart\"> Controleer uw e-mail voor instructies </bdb-alert>\r\n}\r\n", styles: [":host{width:360px}.forgot-password-page-card-content{display:flex;flex-direction:column;margin-top:16px}.forgot-password-page-card-actions{gap:8px;justify-content:flex-end}\n"] }]
|
|
2671
2915
|
}], ctorParameters: () => [{ type: AuthService }, { type: undefined, decorators: [{
|
|
2672
2916
|
type: Inject,
|
|
2673
2917
|
args: [BDB_OPTIONS]
|
|
@@ -2682,10 +2926,10 @@ class InvalidTokenPageComponent {
|
|
|
2682
2926
|
constructor(bdbOptions) {
|
|
2683
2927
|
this.loginRoutePath = bdbOptions.authOptions?.loginPath;
|
|
2684
2928
|
}
|
|
2685
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2686
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2929
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: InvalidTokenPageComponent, deps: [{ token: BDB_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2930
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: InvalidTokenPageComponent, isStandalone: true, selector: "bdb-invalid-token-page", ngImport: i0, template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Ongeldig token</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"access-denied-card-content\">\r\n <bdb-alert color=\"warn\" label=\"Verlopen\" icon=\"block\"> Uw wachtwoord herstel link is niet (meer) geldig </bdb-alert>\r\n </mat-card-content>\r\n <mat-card-actions bdbFlex=\"row 0 end center\">\r\n <a [routerLink]=\"['/', loginRoutePath]\" mat-button>Inloggen</a>\r\n </mat-card-actions>\r\n</mat-card>\r\n", styles: [":host{min-width:360px}.access-denied-card-content{padding:8px 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: BdbAlertComponent, selector: "bdb-alert", inputs: ["label", "icon", "inline"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: BdbFlexDirective, selector: "[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]", inputs: ["bdbFlex", "bdbFlexDirection", "bdbFlexGap", "bdbFlexSpacing"] }] }); }
|
|
2687
2931
|
}
|
|
2688
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2932
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: InvalidTokenPageComponent, decorators: [{
|
|
2689
2933
|
type: Component,
|
|
2690
2934
|
args: [{ selector: 'bdb-invalid-token-page', imports: [CommonModule, MatCardModule, BdbAlertComponent, MatButtonModule, RouterLink, BdbFlexDirective], template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Ongeldig token</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"access-denied-card-content\">\r\n <bdb-alert color=\"warn\" label=\"Verlopen\" icon=\"block\"> Uw wachtwoord herstel link is niet (meer) geldig </bdb-alert>\r\n </mat-card-content>\r\n <mat-card-actions bdbFlex=\"row 0 end center\">\r\n <a [routerLink]=\"['/', loginRoutePath]\" mat-button>Inloggen</a>\r\n </mat-card-actions>\r\n</mat-card>\r\n", styles: [":host{min-width:360px}.access-denied-card-content{padding:8px 16px}\n"] }]
|
|
2691
2935
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -2743,10 +2987,10 @@ class LoginPageComponent {
|
|
|
2743
2987
|
},
|
|
2744
2988
|
});
|
|
2745
2989
|
}
|
|
2746
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2747
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2990
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LoginPageComponent, deps: [{ token: i2$3.Router }, { token: AuthService }, { token: i2$3.ActivatedRoute }, { token: BDB_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2991
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: LoginPageComponent, isStandalone: true, selector: "bdb-login-page", ngImport: i0, template: "<form [formGroup]=\"loginForm\" (ngSubmit)=\"login()\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Inloggen</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content bdbFlex=\"col\">\r\n <bdb-alert-error-response [value]=\"error\" class=\"login-form-error-response\"></bdb-alert-error-response>\r\n <mat-form-field>\r\n <mat-label>Gebruikersnaam</mat-label>\r\n <input matInput type=\"email\" formControlName=\"email\" />\r\n <mat-error bdbFormError=\"email\"></mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Wachtwoord</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" />\r\n <mat-error bdbFormError=\"password\"></mat-error>\r\n </mat-form-field>\r\n </mat-card-content>\r\n <mat-card-actions bdbFlex=\"row 8px end center\">\r\n <a mat-button [routerLink]=\"['/', forgotPasswordRoutePath]\">\r\n <mat-icon>contact_support</mat-icon>\r\n <span>Wachtwoord vergeten</span>\r\n </a>\r\n <button mat-flat-button color=\"primary\">\r\n <mat-icon>login</mat-icon>\r\n <span>Inloggen</span>\r\n </button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</form>\r\n", styles: [":host{width:360px}.login-form-error-response{margin:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5$1.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: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: BdbAlertErrorResponseComponent, selector: "bdb-alert-error-response", inputs: ["value", "dismissable"], outputs: ["dismiss"] }, { kind: "directive", type: BdbFlexDirective, selector: "[bdbFlex], [bdbFlexDirection], [bdbFlexGap], [bdbFlexSpacing]", inputs: ["bdbFlex", "bdbFlexDirection", "bdbFlexGap", "bdbFlexSpacing"] }, { kind: "directive", type: BdbFormErrorDirective, selector: "[bdbFormError]", inputs: ["bdbFormError"] }] }); }
|
|
2748
2992
|
}
|
|
2749
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2993
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LoginPageComponent, decorators: [{
|
|
2750
2994
|
type: Component,
|
|
2751
2995
|
args: [{ selector: 'bdb-login-page', imports: [
|
|
2752
2996
|
CommonModule,
|
|
@@ -2781,10 +3025,10 @@ class LogoutPageComponent {
|
|
|
2781
3025
|
this.authService.logout();
|
|
2782
3026
|
this.router.navigate(['/', this.bdbOptions.authOptions?.loginPath]);
|
|
2783
3027
|
}
|
|
2784
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2785
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3028
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LogoutPageComponent, deps: [{ token: i2$3.Router }, { token: AuthService }, { token: BDB_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3029
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: LogoutPageComponent, isStandalone: true, selector: "bdb-logout-page", ngImport: i0, template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Uitloggen</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"logout-page-card-content\"> Weet u zeker dat u wilt uitloggen? </mat-card-content>\r\n <mat-card-actions class=\"logout-page-card-actions\">\r\n <a mat-button routerLink=\"/\">\r\n <mat-icon>arrow_back</mat-icon>\r\n <span>Blijf ingelogd</span>\r\n </a>\r\n <button (click)=\"logout()\" mat-flat-button color=\"primary\">\r\n <mat-icon>logout</mat-icon>\r\n <span>Log uit</span>\r\n </button></mat-card-actions\r\n >\r\n</mat-card>\r\n", styles: [":host{width:360px}.logout-page-card-content{display:flex;flex-direction:column;padding:16px}.logout-page-card-actions{gap:8px;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
2786
3030
|
}
|
|
2787
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LogoutPageComponent, decorators: [{
|
|
2788
3032
|
type: Component,
|
|
2789
3033
|
args: [{ selector: 'bdb-logout-page', imports: [MatCardModule, MatButtonModule, MatIconModule, RouterLink], template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Uitloggen</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"logout-page-card-content\"> Weet u zeker dat u wilt uitloggen? </mat-card-content>\r\n <mat-card-actions class=\"logout-page-card-actions\">\r\n <a mat-button routerLink=\"/\">\r\n <mat-icon>arrow_back</mat-icon>\r\n <span>Blijf ingelogd</span>\r\n </a>\r\n <button (click)=\"logout()\" mat-flat-button color=\"primary\">\r\n <mat-icon>logout</mat-icon>\r\n <span>Log uit</span>\r\n </button></mat-card-actions\r\n >\r\n</mat-card>\r\n", styles: [":host{width:360px}.logout-page-card-content{display:flex;flex-direction:column;padding:16px}.logout-page-card-actions{gap:8px;justify-content:flex-end}\n"] }]
|
|
2790
3034
|
}], ctorParameters: () => [{ type: i2$3.Router }, { type: AuthService }, { type: undefined, decorators: [{
|
|
@@ -2860,10 +3104,10 @@ class ResetPasswordPageComponent {
|
|
|
2860
3104
|
},
|
|
2861
3105
|
});
|
|
2862
3106
|
}
|
|
2863
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2864
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ResetPasswordPageComponent, deps: [{ token: AuthService }, { token: i2$3.ActivatedRoute }, { token: i2$3.Router }, { token: BDB_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: ResetPasswordPageComponent, isStandalone: true, selector: "bdb-reset-password-page", ngImport: i0, template: "<form [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"resetPassword()\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Wachtwoord herstellen</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"reset-password-page-card-content\">\r\n <bdb-alert-error-response [value]=\"error\" class=\"login-page-error-response\"></bdb-alert-error-response>\r\n <p>{{ resetPasswordToken?.email }}</p>\r\n\r\n <mat-form-field>\r\n <mat-label>Nieuw wachtwoord</mat-label>\r\n <input matInput type=\"password\" [formControl]=\"passwordCtrl\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field>\r\n <mat-label>Bevestig wachtwoord</mat-label>\r\n <input matInput type=\"password\" [formControl]=\"confirmPasswordCtrl\" />\r\n </mat-form-field>\r\n </mat-card-content>\r\n <mat-card-actions class=\"reset-password-page-card-actions\">\r\n <a mat-button [routerLink]=\"['/', loginRoutePath]\" [disabled]=\"isPending\">\r\n <mat-icon>login</mat-icon>\r\n <span>Log in</span>\r\n </a>\r\n <button mat-flat-button color=\"primary\">\r\n <mat-icon>sync_lock</mat-icon>\r\n <span>Stel wachtwoord in</span>\r\n </button></mat-card-actions\r\n >\r\n </mat-card>\r\n</form>\r\n", styles: [":host{width:360px}.reset-password-page-card-content{display:flex;flex-direction:column;margin-top:16px}.reset-password-page-card-actions{gap:8px;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: BdbAlertErrorResponseComponent, selector: "bdb-alert-error-response", inputs: ["value", "dismissable"], outputs: ["dismiss"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5$1.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: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
|
|
2865
3109
|
}
|
|
2866
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ResetPasswordPageComponent, decorators: [{
|
|
2867
3111
|
type: Component,
|
|
2868
3112
|
args: [{ selector: 'bdb-reset-password-page', imports: [
|
|
2869
3113
|
ReactiveFormsModule,
|
|
@@ -2874,7 +3118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
2874
3118
|
MatIconModule,
|
|
2875
3119
|
RouterLink,
|
|
2876
3120
|
MatButtonModule,
|
|
2877
|
-
], template: "<form [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"resetPassword()\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Wachtwoord herstellen</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"reset-password-page-card-content\">\r\n <bdb-alert-error-response [value]=\"error\" class=\"login-page-error-response\"></bdb-alert-error-response>\r\n <p>{{ resetPasswordToken?.email }}</p>\r\n\r\n <mat-form-field>\r\n <mat-label>Nieuw wachtwoord</mat-label>\r\n <input matInput type=\"password\" [formControl]=\"passwordCtrl\" />\r\n
|
|
3121
|
+
], template: "<form [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"resetPassword()\">\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Wachtwoord herstellen</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content class=\"reset-password-page-card-content\">\r\n <bdb-alert-error-response [value]=\"error\" class=\"login-page-error-response\"></bdb-alert-error-response>\r\n <p>{{ resetPasswordToken?.email }}</p>\r\n\r\n <mat-form-field>\r\n <mat-label>Nieuw wachtwoord</mat-label>\r\n <input matInput type=\"password\" [formControl]=\"passwordCtrl\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field>\r\n <mat-label>Bevestig wachtwoord</mat-label>\r\n <input matInput type=\"password\" [formControl]=\"confirmPasswordCtrl\" />\r\n </mat-form-field>\r\n </mat-card-content>\r\n <mat-card-actions class=\"reset-password-page-card-actions\">\r\n <a mat-button [routerLink]=\"['/', loginRoutePath]\" [disabled]=\"isPending\">\r\n <mat-icon>login</mat-icon>\r\n <span>Log in</span>\r\n </a>\r\n <button mat-flat-button color=\"primary\">\r\n <mat-icon>sync_lock</mat-icon>\r\n <span>Stel wachtwoord in</span>\r\n </button></mat-card-actions\r\n >\r\n </mat-card>\r\n</form>\r\n", styles: [":host{width:360px}.reset-password-page-card-content{display:flex;flex-direction:column;margin-top:16px}.reset-password-page-card-actions{gap:8px;justify-content:flex-end}\n"] }]
|
|
2878
3122
|
}], ctorParameters: () => [{ type: AuthService }, { type: i2$3.ActivatedRoute }, { type: i2$3.Router }, { type: undefined, decorators: [{
|
|
2879
3123
|
type: Inject,
|
|
2880
3124
|
args: [BDB_OPTIONS]
|
|
@@ -2890,5 +3134,5 @@ var resetPasswordPage_component = /*#__PURE__*/Object.freeze({
|
|
|
2890
3134
|
* Generated bundle index. Do not edit.
|
|
2891
3135
|
*/
|
|
2892
3136
|
|
|
2893
|
-
export { AccessDeniedPageComponent, AuthContainerComponent, AuthService, BDB_OPTIONS, BdbAlertComponent, BdbAlertErrorResponseComponent, BdbBooleanDisplayComponent, BdbCellDirective, BdbCollapseRowComponent, BdbColumnBuilder, BdbColumnType, BdbDataSource, BdbErrorResponseDialogComponent, BdbFieldComponent, BdbFlexChildDirective, BdbFlexDirective, BdbFormErrorDirective, BdbFullTableComponent, BdbGridChildDirective, BdbGridDirective, BdbMediaDisplayComponent, BdbMediaUploadComponent, BdbOptionsBuilder, BdbPaginatorComponent, BdbQueryInputComponent, BdbSearchComponent, BdbSearchWrapperBaseComponent, BdbService, BdbServiceCR, BdbServiceCRD, BdbServiceCRU, BdbServiceCRUD, BdbServiceR, BdbServiceRD, BdbServiceRU, BdbServiceRUD, BdbTableComponent, ExceptionLogService, ExceptionLogTableComponent, FileSizePipe, ForgotPasswordPageComponent, InvalidTokenPageComponent, LoginPageComponent, LogoutPageComponent, MediaDropDirective, MediaFullTableComponent, MediaService, MediaTableComponent, MediaType, MediaTypeMap, MediaTypePipe, PlainNumberPipe, ResetPasswordPageComponent, RoleService, TaskLogOutcome, TaskLogOutcomeMap, TaskLogOutcomePipe, TaskLogParameterService, TaskLogParameterType, TaskLogParameterValuePipe, TaskLogScheduleService, TaskLogSchedulerService, TaskLogService, TaskLogStatus, TaskLogStatusMap, TaskLogStatusPipe, TaskLogTypeService, UserRoleService, UserService, UserTableComponent, equalValueValidator, getAuthorizationHeaderFromToken, getTokenFromAuthorizationHeader, loggedOutGuard, provideBaDaBoom, resetPasswordResolver, roleGuard, tokenExpiredInterceptor, tokenInterceptor };
|
|
3137
|
+
export { AccessDeniedPageComponent, AuthContainerComponent, AuthService, BDB_OPTIONS, BdbAlertComponent, BdbAlertErrorResponseComponent, BdbBooleanDisplayComponent, BdbCellDirective, BdbCollapseRowComponent, BdbColumnBuilder, BdbColumnType, BdbDataSource, BdbErrorResponseDialogComponent, BdbFieldComponent, BdbFlexChildDirective, BdbFlexDirective, BdbFormErrorDirective, BdbFullTableComponent, BdbGridChildDirective, BdbGridDirective, BdbMediaDisplayComponent, BdbMediaInputComponent, BdbMediaUploadComponent, BdbOptionsBuilder, BdbPaginatorComponent, BdbQueryInputComponent, BdbSearchComponent, BdbSearchWrapperBaseComponent, BdbService, BdbServiceCR, BdbServiceCRD, BdbServiceCRU, BdbServiceCRUD, BdbServiceR, BdbServiceRD, BdbServiceRU, BdbServiceRUD, BdbTableComponent, ExceptionLogService, ExceptionLogTableComponent, FileSizePipe, ForgotPasswordPageComponent, InvalidTokenPageComponent, LoginPageComponent, LogoutPageComponent, MediaDropDirective, MediaFullTableComponent, MediaService, MediaTableComponent, MediaType, MediaTypeIconPipe, MediaTypeMap, MediaTypePipe, PlainNumberPipe, ResetPasswordPageComponent, RoleService, TaskLogOutcome, TaskLogOutcomeMap, TaskLogOutcomePipe, TaskLogParameterService, TaskLogParameterType, TaskLogParameterValuePipe, TaskLogScheduleService, TaskLogSchedulerService, TaskLogService, TaskLogStatus, TaskLogStatusMap, TaskLogStatusPipe, TaskLogTypeService, UserRoleService, UserService, UserTableComponent, equalValueValidator, getAuthorizationHeaderFromToken, getTokenFromAuthorizationHeader, loggedOutGuard, provideBaDaBoom, resetPasswordResolver, roleGuard, tokenExpiredInterceptor, tokenInterceptor };
|
|
2894
3138
|
//# sourceMappingURL=devopmaat-badaboom.mjs.map
|