fabrikantencore 2.13.1 → 2.13.4
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/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-bcb-instance/beheer-bcb-instance.component.mjs +22 -103
- package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-configurator/beheer-configurator.component.mjs +27 -51
- package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-project/beheer-project.component.mjs +18 -133
- package/esm2022/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +8 -100
- package/esm2022/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.mjs +5 -1
- package/esm2022/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +4 -1
- package/esm2022/src/app/modules/fabrikantencore/services/bcbproductinstance.service.mjs +328 -0
- package/esm2022/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +25 -3
- package/esm2022/src/app/modules/fabrikantencore/services/navigate.service.mjs +4 -1
- package/esm2022/src/app/modules/fabrikantencore/services/svg.service.mjs +7 -1
- package/esm2022/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +173 -1
- package/fesm2022/fabrikantencore.mjs +677 -462
- package/fesm2022/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/beheer/components/beheer-bcb-instance/beheer-bcb-instance.component.d.ts +7 -16
- package/src/app/modules/fabrikantencore/beheer/components/beheer-configurator/beheer-configurator.component.d.ts +8 -10
- package/src/app/modules/fabrikantencore/beheer/components/beheer-project/beheer-project.component.d.ts +5 -19
- package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.d.ts +0 -7
- package/src/app/modules/fabrikantencore/services/bcbproductinstance.service.d.ts +50 -0
- package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +3 -2
- package/src/app/modules/fabrikantencore/services/svg.service.d.ts +2 -1
- package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +32 -0
|
@@ -1,123 +1,42 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import {
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { TranslationCategory, TranslationSubCategory } from '../../../swagger/SwaggerClient';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../../
|
|
4
|
+
import * as i1 from "../../../services/bcbproductinstance.service";
|
|
5
5
|
import * as i2 from "../../../services/translate.service";
|
|
6
|
-
import * as i3 from "../../../services/
|
|
7
|
-
import * as i4 from "
|
|
8
|
-
import * as i5 from "@angular/
|
|
9
|
-
import * as i6 from "
|
|
10
|
-
import * as i7 from "
|
|
6
|
+
import * as i3 from "../../../services/fabrikanten.service";
|
|
7
|
+
import * as i4 from "../../../services/authentication.service";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/material/legacy-button";
|
|
10
|
+
import * as i7 from "@angular/material/legacy-tabs";
|
|
11
|
+
import * as i8 from "../../../components/fab-loader/fab-loader.component";
|
|
12
|
+
import * as i9 from "../../../components/fab-filters-input/fab-filters-input.component";
|
|
13
|
+
import * as i10 from "../../../components/fab-svg-viewer/fab-svg-viewer.component";
|
|
14
|
+
import * as i11 from "../../../components/fab-form/fab-form.component";
|
|
11
15
|
class BeheerBcbInstanceComponent {
|
|
12
|
-
|
|
16
|
+
BcbProductInstanceService;
|
|
13
17
|
TranslateService;
|
|
18
|
+
FabrikantenService;
|
|
14
19
|
authenticationService;
|
|
15
20
|
ChangeDetectorRef;
|
|
16
|
-
FormLoaded = false;
|
|
17
|
-
InstanceLoaded = false;
|
|
18
|
-
BCBProductInstanceViewModel;
|
|
19
|
-
LoadingForm = true;
|
|
20
|
-
LoadingInstance = true;
|
|
21
|
-
FabrikantenFormViewModel;
|
|
22
|
-
set input(value) {
|
|
23
|
-
this.BCBProductInstanceViewModel = value;
|
|
24
|
-
this.InstanceLoaded = true;
|
|
25
|
-
this.LoadInstance();
|
|
26
|
-
}
|
|
27
21
|
get TranslationCategory() {
|
|
28
22
|
return TranslationCategory;
|
|
29
23
|
}
|
|
30
24
|
get TranslationSubCategory() {
|
|
31
25
|
return TranslationSubCategory;
|
|
32
26
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
constructor(FormApiClient, TranslateService, authenticationService, ChangeDetectorRef) {
|
|
37
|
-
this.FormApiClient = FormApiClient;
|
|
27
|
+
constructor(BcbProductInstanceService, TranslateService, FabrikantenService, authenticationService, ChangeDetectorRef) {
|
|
28
|
+
this.BcbProductInstanceService = BcbProductInstanceService;
|
|
38
29
|
this.TranslateService = TranslateService;
|
|
30
|
+
this.FabrikantenService = FabrikantenService;
|
|
39
31
|
this.authenticationService = authenticationService;
|
|
40
32
|
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
41
|
-
this.LoadForm();
|
|
42
|
-
}
|
|
43
|
-
Save() {
|
|
44
|
-
this.LoadingInstance = true;
|
|
45
|
-
this.FabrikantenFormViewModel.customConnectId = this.BCBProductInstanceViewModel.id;
|
|
46
|
-
this.FormApiClient.saveForm(this.FabrikantenFormViewModel).subscribe(() => {
|
|
47
|
-
this.LoadingInstance = false;
|
|
48
|
-
}, (error) => {
|
|
49
|
-
alert('An unexpected error occured');
|
|
50
|
-
this.LoadingInstance = false;
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
LoadForm() {
|
|
54
|
-
this.LoadingForm = true;
|
|
55
|
-
var request = new FabrikantenFormRequestModel();
|
|
56
|
-
request.formType = FormType.CustomForm;
|
|
57
|
-
this.FormApiClient.getForm(request).subscribe((model) => {
|
|
58
|
-
this.FabrikantenFormViewModel = model;
|
|
59
|
-
this.LoadingForm = false;
|
|
60
|
-
this.FormLoaded = true;
|
|
61
|
-
this.LoadInstance();
|
|
62
|
-
}, (error) => {
|
|
63
|
-
alert('An unexpected error occured');
|
|
64
|
-
this.LoadingForm = false;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
LoadInstance() {
|
|
68
|
-
if (this.FormLoaded && this.InstanceLoaded) {
|
|
69
|
-
this.LoadingInstance = true;
|
|
70
|
-
var request = new FormInstanceRequestModel();
|
|
71
|
-
request.customConnectId = this.BCBProductInstanceViewModel.id;
|
|
72
|
-
request.formId = this.FabrikantenFormViewModel.id;
|
|
73
|
-
request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
|
|
74
|
-
this.FormApiClient.getFormInstance(request).subscribe((model) => {
|
|
75
|
-
this.FabrikantenFormViewModel.formInstanceId = model.id;
|
|
76
|
-
var instances = model.formInputInstances;
|
|
77
|
-
if (instances != null) {
|
|
78
|
-
for (var i = 0; i < instances.length; i++) {
|
|
79
|
-
var formcats = this.FabrikantenFormViewModel.formCategories;
|
|
80
|
-
if (formcats != null) {
|
|
81
|
-
for (var j = 0; j < formcats.length; j++) {
|
|
82
|
-
var rows = formcats[j].rows;
|
|
83
|
-
if (rows != null) {
|
|
84
|
-
for (var k = 0; k < rows.length; k++) {
|
|
85
|
-
var inputs = rows[k].inputs;
|
|
86
|
-
if (inputs != null) {
|
|
87
|
-
for (var l = 0; l < inputs.length; l++) {
|
|
88
|
-
if (inputs[l].id == instances[i].formInputId) {
|
|
89
|
-
inputs[l].value = instances[i].value;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
this.LoadingInstance = false;
|
|
100
|
-
}, (error) => {
|
|
101
|
-
alert('An unexpected error occured');
|
|
102
|
-
this.LoadingInstance = false;
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
DownloadPDF() {
|
|
107
|
-
// CreateInstancePDF(int pLanguageId, int pPDFTemplateId, int pBCBInstanceId)
|
|
108
|
-
var url = "/Download/CreateInstancePDF?pLanguageId=" + this.TranslateService.ActiveLanguage.id;
|
|
109
|
-
url += "&pPDFTemplateId=1";
|
|
110
|
-
url += "&pBCBInstanceId=" + this.BCBProductInstanceViewModel.id;
|
|
111
|
-
window.open(url, "_blank");
|
|
112
33
|
}
|
|
113
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BeheerBcbInstanceComponent, deps: [{ token: i1.
|
|
114
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BeheerBcbInstanceComponent, selector: "app-beheer-bcb-instance",
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BeheerBcbInstanceComponent, deps: [{ token: i1.BcbProductInstanceService }, { token: i2.TranslateService }, { token: i3.FabrikantenService }, { token: i4.AuthenticationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BeheerBcbInstanceComponent, selector: "app-beheer-bcb-instance", ngImport: i0, template: "<div *ngIf=\"BcbProductInstanceService.IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!BcbProductInstanceService.IsLoading()\">\n <div class=\"displayflex\">\n <div style=\"flex: auto;\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, BcbProductInstanceService.BCBProductInstanceViewModel.productId) }}\n </div>\n\n <div style=\"padding: 10px;\">\n <button mat-raised-button (click)=\"BcbProductInstanceService.SaveConfiguration(ChangeDetectorRef)\">\n Save\n </button>\n \n <button mat-raised-button (click)=\"BcbProductInstanceService.DownloadPDF(this.TranslateService.ActiveLanguage.id)\">\n Download PDF\n </button>\n \n <button mat-raised-button (click)=\"BcbProductInstanceService.UnselectBCBProductInstance()\">\n Terug\n </button>\n </div>\n </div>\n <div class=\"displayflex\">\n <div class=\"dividercolumn leftcol\">\n <mat-tab-group style=\"height: 100%;\">\n <mat-tab label=\"Configuratie\">\n <div class=\"filter-scroll-section\">\n <fab-filters-input></fab-filters-input>\n </div>\n </mat-tab>\n <mat-tab label=\"Info\">\n <app-fab-form [form]=\"BcbProductInstanceService.FabrikantenCustomFormViewModel\"></app-fab-form>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div style=\"width: 50%;\">\n <ng-container *ngIf=\"!FabrikantenService.ShowVariants()\">\n <app-fab-svg-viewer></app-fab-svg-viewer>\n </ng-container>\n <ng-container *ngIf=\"FabrikantenService.ShowVariants()\">\n <div style=\"padding: 10px;\">\n Er zijn nog meerdere varianten van dit product die voldoen aan de huidige filter selectie. Vul meer filters om de selectie te specificeren.\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-bcb-instance .displayflex{display:flex}app-beheer-bcb-instance .leftcol{padding:10px}app-beheer-bcb-instance .dividercolumn{width:50%;max-height:calc(100vH - 174px);overflow:auto}app-beheer-bcb-instance .filter-scroll-section{max-height:calc(100vH - 1px)}app-beheer-bcb-instance .filter-affects-sign{display:none}app-beheer-bcb-instance .affects-only-bestek{display:none}app-beheer-bcb-instance .svg-settings{top:80px!important;right:25px!important}app-beheer-bcb-instance .toolbar-button{display:none}app-beheer-bcb-instance .prop{font-size:20px;padding:5px;border-bottom:1px solid #000}app-beheer-bcb-instance .prop-name{width:200px}app-beheer-bcb-instance .prop-value{width:calc(100% - 220px)}app-beheer-bcb-instance .border-bottom{border-bottom:1px solid #000;font-size:20px;padding:4px}app-beheer-bcb-instance .form-button-row{display:none}app-beheer-bcb-instance .value-cell{text-align:right;padding-right:5px}app-beheer-bcb-instance .info-row:hover{background-color:#efefef}app-beheer-bcb-instance .button-row{padding-top:3px;text-align:right}app-beheer-bcb-instance app-fab-loader{position:fixed;background-color:#00000080;width:100%;top:0;left:0;height:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i7.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i8.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i9.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i10.FabSvgViewerComponent, selector: "app-fab-svg-viewer" }, { kind: "component", type: i11.FabFormComponent, selector: "app-fab-form", inputs: ["form"], outputs: ["completed"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
115
36
|
}
|
|
116
37
|
export { BeheerBcbInstanceComponent };
|
|
117
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BeheerBcbInstanceComponent, decorators: [{
|
|
118
39
|
type: Component,
|
|
119
|
-
args: [{ selector: 'app-beheer-bcb-instance', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"
|
|
120
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
121
|
-
|
|
122
|
-
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1iY2ItaW5zdGFuY2UvYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1iY2ItaW5zdGFuY2UvYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE2QixLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUErRixtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7O0FBRS9RLE1BTWEsMEJBQTBCO0lBOEJqQjtJQUNYO0lBQ0E7SUFDQTtJQS9CRixVQUFVLEdBQVksS0FBSyxDQUFDO0lBQzVCLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFFaEMsMkJBQTJCLENBQThCO0lBQ3pELFdBQVcsR0FBWSxJQUFJLENBQUM7SUFDNUIsZUFBZSxHQUFZLElBQUksQ0FBQztJQUVoQyx3QkFBd0IsQ0FBMkI7SUFFMUQsSUFBYSxLQUFLLENBQUMsS0FBa0M7UUFDbkQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUUzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8s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QUVyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsNkVBQTZFO1FBQzdFLElBQUksR0FBRyxHQUFHLDBDQUEwQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQy9GLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztRQUMzQixHQUFHLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQztRQUVoRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO3dHQXZJVSwwQkFBMEI7NEZBQTFCLDBCQUEwQiwyRkNYdkMseTZFQXlFQTs7U0Q5RGEsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUdwQixpQkFBaUIsQ0FBQyxJQUFJO3VNQWF4QixLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkZvcm1SZXF1ZXN0TW9kZWwsIEZvcm1JbnN0YW5jZVJlcXVlc3RNb2RlbCwgRm9ybUluc3RhbmNlVmlld01vZGVsLCBGYWJyaWthbnRlbkZvcm1WaWV3TW9kZWwsIEJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbCwgRm9ybUFwaUNsaWVudCwgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSwgTG9naW5SZXNwb25zZU1vZGVsLCBGb3JtVHlwZSB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1iY2ItaW5zdGFuY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1iY2ItaW5zdGFuY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBCZWhlZXJCY2JJbnN0YW5jZUNvbXBvbmVudCB7XG5cbiAgcHVibGljIEZvcm1Mb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIEluc3RhbmNlTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIEJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbDogQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsO1xuICBwdWJsaWMgTG9hZGluZ0Zvcm06IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgTG9hZGluZ0luc3RhbmNlOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsOiBGYWJyaWthbnRlbkZvcm1WaWV3TW9kZWw7XG5cbiAgQElucHV0KCkgc2V0IGlucHV0KHZhbHVlOiBCQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwpIHtcbiAgICB0aGlzLkJDQlByb2R1Y3RJbnN0YW5jZVZpZXdNb2RlbCA9IHZhbHVlO1xuICAgIHRoaXMuSW5zdGFuY2VMb2FkZWQgPSB0cnVlO1xuXG4gICAgdGhpcy5Mb2FkSW5zdGFuY2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25DYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvbkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnk7XHJcbiAgfVxuXG4gIHB1YmxpYyBMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLkxvYWRpbmdGb3JtIHx8IHRoaXMuTG9hZGluZ0luc3RhbmNlO1xyXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIEZvcm1BcGlDbGllbnQ6IEZvcm1BcGlDbGllbnQsXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcblxuICAgIHRoaXMuTG9hZEZvcm0oKTtcclxuICB9XG5cbiAgcHVibGljIFNhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5Mb2FkaW5nSW5zdGFuY2UgPSB0cnVlO1xuXG4gICAgdGhpcy5GYWJyaWthbnRlbkZvcm1WaWV3TW9kZWwuY3VzdG9tQ29ubmVjdElkID0gdGhpcy5CQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwuaWQ7XG4gICAgXG4gICAgdGhpcy5Gb3JtQXBpQ2xpZW50LnNhdmVGb3JtKHRoaXMuRmFicmlrYW50ZW5Gb3JtVmlld01vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLkxvYWRpbmdJbnN0YW5jZSA9IGZhbHNlO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmdJbnN0YW5jZSA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxuXG4gIHB1YmxpYyBMb2FkRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmdGb3JtID0gdHJ1ZTtcblxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRm9ybVJlcXVlc3RNb2RlbCgpO1xuXG4gICAgcmVxdWVzdC5mb3JtVHlwZSA9IEZvcm1UeXBlLkN1c3RvbUZvcm07XG5cbiAgICB0aGlzLkZvcm1BcGlDbGllbnQuZ2V0Rm9ybShyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZvcm1WaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlbkZvcm1WaWV3TW9kZWwgPSBtb2RlbDtcclxuICAgICAgdGhpcy5Mb2FkaW5nRm9ybSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLkZvcm1Mb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5Mb2FkSW5zdGFuY2UoKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nRm9ybSA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxuXG4gIHB1YmxpYyBMb2FkSW5zdGFuY2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuRm9ybUxvYWRlZCAmJiB0aGlzLkluc3RhbmNlTG9hZGVkKSB7XG4gICAgICB0aGlzLkxvYWRpbmdJbnN0YW5jZSA9IHRydWU7XG5cbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IEZvcm1JbnN0YW5jZVJlcXVlc3RNb2RlbCgpO1xuXG4gICAgICByZXF1ZXN0LmN1c3RvbUNvbm5lY3RJZCA9IHRoaXMuQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLmlkO1xuICAgICAgcmVxdWVzdC5mb3JtSWQgPSB0aGlzLkZhYnJpa2FudGVuRm9ybVZpZXdNb2RlbC5pZDtcbiAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcblxuICAgICAgdGhpcy5Gb3JtQXBpQ2xpZW50LmdldEZvcm1JbnN0YW5jZShyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGb3JtSW5zdGFuY2VWaWV3TW9kZWwpID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlbkZvcm1WaWV3TW9kZWwuZm9ybUluc3RhbmNlSWQgPSBtb2RlbC5pZDtcclxuXHJcbiAgICAgICAgdmFyIGluc3RhbmNlcyA9IG1vZGVsLmZvcm1JbnB1dEluc3RhbmNlcztcclxuXHJcbiAgICAgICAgaWYgKGluc3RhbmNlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluc3RhbmNlcy5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgICAgICAgdmFyIGZvcm1jYXRzID0gdGhpcy5GYWJyaWthbnRlbkZvcm1WaWV3TW9kZWwuZm9ybUNhdGVnb3JpZXM7XHJcblxyXG4gICAgICAgICAgICBpZiAoZm9ybWNhdHMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZm9ybWNhdHMubGVuZ3RoOyBqKyspIHtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgcm93cyA9IGZvcm1jYXRzW2pdLnJvd3M7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJvd3MgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHJvd3MubGVuZ3RoOyBrKyspIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0cyA9IHJvd3Nba10uaW5wdXRzO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXRzICE9IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IGlucHV0cy5sZW5ndGg7IGwrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXRzW2xdLmlkID09IGluc3RhbmNlc1tpXS5mb3JtSW5wdXRJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0c1tsXS52YWx1ZSA9IGluc3RhbmNlc1tpXS52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZ0luc3RhbmNlID0gZmFsc2U7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZ0luc3RhbmNlID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cblxuICBwdWJsaWMgRG93bmxvYWRQREYoKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlSW5zdGFuY2VQREYoaW50IHBMYW5ndWFnZUlkLCBpbnQgcFBERlRlbXBsYXRlSWQsIGludCBwQkNCSW5zdGFuY2VJZClcbiAgICB2YXIgdXJsID0gXCIvRG93bmxvYWQvQ3JlYXRlSW5zdGFuY2VQREY/cExhbmd1YWdlSWQ9XCIgKyB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuQWN0aXZlTGFuZ3VhZ2UuaWQ7XHJcbiAgICB1cmwgKz0gXCImcFBERlRlbXBsYXRlSWQ9MVwiO1xyXG4gICAgdXJsICs9IFwiJnBCQ0JJbnN0YW5jZUlkPVwiICsgdGhpcy5CQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwuaWQ7XHJcblxyXG4gICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiKTtcclxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiTG9hZGluZygpXCI+XG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhTG9hZGluZygpXCI+XG4gIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9wIHByb3AtbmFtZVwiPlByb2R1Y3Q8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvcCBwcm9wLXZhbHVlXCI+XG4gICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuUHJvZHVjdCwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5OYW1lLCBCQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwucHJvZHVjdElkKSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cInByb3AgcHJvcC1uYW1lXCI+RGF0dW08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvcCBwcm9wLXZhbHVlXCI+XG4gICAgICB7eyBCQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwuZGF0ZVRpbWVNb2RpZmllZCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGJyIC8+XG4gIDxiciAvPlxuICA8YnIgLz5cbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib3JkZXItYm90dG9tXCIgY29sc3Bhbj1cIjJcIj5GaWx0ZXI8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLmZpbHRlcnNcIj5cbiAgICAgICAgICA8dHIgKm5nSWY9XCJmaWx0ZXIuZmlsdGVyT3B0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJpbmZvLXJvd1wiPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuRmlsdGVyLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIGZpbHRlci5maWx0ZXJJZCkgfX1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbHRlcm9wdGlvbiBvZiBmaWx0ZXIuZmlsdGVyT3B0aW9uc1wiIGNsYXNzPVwidmFsdWUtY2VsbFwiPlxuICAgICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5GaWx0ZXJPcHRpb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTmFtZSwgZmlsdGVyb3B0aW9uLmZpbHRlck9wdGlvbklkKSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RhYmxlPlxuICAgICAgPGJyIC8+XG4gICAgICA8dGFibGUgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvcmRlci1ib3R0b21cIiBjb2xzcGFuPVwiMlwiPlJhbmdlIElucHV0PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmFuZ2VpbnB1dCBvZiBCQ0JQcm9kdWN0SW5zdGFuY2VWaWV3TW9kZWwucmFuZ2VJbnB1dHNcIj5cbiAgICAgICAgICA8dHIgKm5nSWY9XCJyYW5nZWlucHV0LnZhbHVlICE9IG51bGxcIiBjbGFzcz1cImluZm8tcm93XCI+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5SYW5nZUlucHV0LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIHJhbmdlaW5wdXQucmFuZ2VJbnB1dElkKSB9fVxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlLWNlbGxcIj5cbiAgICAgICAgICAgICAge3sgcmFuZ2VpbnB1dC52YWx1ZSB9fVxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgPGFwcC1mYWItZm9ybSBbZm9ybV09XCJGYWJyaWthbnRlbkZvcm1WaWV3TW9kZWxcIj48L2FwcC1mYWItZm9ybT5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcm93XCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlNhdmUoKVwiPlxuICAgICAgICAgIFNhdmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxiciAvPlxuICA8YnIgLz5cbiAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiRG93bmxvYWRQREYoKVwiPlxuICAgIERvd25sb2FkIFBERlxuICA8L2J1dHRvbj5cbiAgPGJyIC8+XG48L2Rpdj5cbiJdfQ==
|
|
40
|
+
args: [{ selector: 'app-beheer-bcb-instance', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"BcbProductInstanceService.IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!BcbProductInstanceService.IsLoading()\">\n <div class=\"displayflex\">\n <div style=\"flex: auto;\">\n {{ TranslateService.GetActiveValue(TranslationCategory.Product, TranslationSubCategory.Name, BcbProductInstanceService.BCBProductInstanceViewModel.productId) }}\n </div>\n\n <div style=\"padding: 10px;\">\n <button mat-raised-button (click)=\"BcbProductInstanceService.SaveConfiguration(ChangeDetectorRef)\">\n Save\n </button>\n \n <button mat-raised-button (click)=\"BcbProductInstanceService.DownloadPDF(this.TranslateService.ActiveLanguage.id)\">\n Download PDF\n </button>\n \n <button mat-raised-button (click)=\"BcbProductInstanceService.UnselectBCBProductInstance()\">\n Terug\n </button>\n </div>\n </div>\n <div class=\"displayflex\">\n <div class=\"dividercolumn leftcol\">\n <mat-tab-group style=\"height: 100%;\">\n <mat-tab label=\"Configuratie\">\n <div class=\"filter-scroll-section\">\n <fab-filters-input></fab-filters-input>\n </div>\n </mat-tab>\n <mat-tab label=\"Info\">\n <app-fab-form [form]=\"BcbProductInstanceService.FabrikantenCustomFormViewModel\"></app-fab-form>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div style=\"width: 50%;\">\n <ng-container *ngIf=\"!FabrikantenService.ShowVariants()\">\n <app-fab-svg-viewer></app-fab-svg-viewer>\n </ng-container>\n <ng-container *ngIf=\"FabrikantenService.ShowVariants()\">\n <div style=\"padding: 10px;\">\n Er zijn nog meerdere varianten van dit product die voldoen aan de huidige filter selectie. Vul meer filters om de selectie te specificeren.\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-bcb-instance .displayflex{display:flex}app-beheer-bcb-instance .leftcol{padding:10px}app-beheer-bcb-instance .dividercolumn{width:50%;max-height:calc(100vH - 174px);overflow:auto}app-beheer-bcb-instance .filter-scroll-section{max-height:calc(100vH - 1px)}app-beheer-bcb-instance .filter-affects-sign{display:none}app-beheer-bcb-instance .affects-only-bestek{display:none}app-beheer-bcb-instance .svg-settings{top:80px!important;right:25px!important}app-beheer-bcb-instance .toolbar-button{display:none}app-beheer-bcb-instance .prop{font-size:20px;padding:5px;border-bottom:1px solid #000}app-beheer-bcb-instance .prop-name{width:200px}app-beheer-bcb-instance .prop-value{width:calc(100% - 220px)}app-beheer-bcb-instance .border-bottom{border-bottom:1px solid #000;font-size:20px;padding:4px}app-beheer-bcb-instance .form-button-row{display:none}app-beheer-bcb-instance .value-cell{text-align:right;padding-right:5px}app-beheer-bcb-instance .info-row:hover{background-color:#efefef}app-beheer-bcb-instance .button-row{padding-top:3px;text-align:right}app-beheer-bcb-instance app-fab-loader{position:fixed;background-color:#00000080;width:100%;top:0;left:0;height:100%}\n"] }]
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.BcbProductInstanceService }, { type: i2.TranslateService }, { type: i3.FabrikantenService }, { type: i4.AuthenticationService }, { type: i0.ChangeDetectorRef }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1iY2ItaW5zdGFuY2UvYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1iY2ItaW5zdGFuY2UvYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQWdDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFM0gsTUFNYSwwQkFBMEI7SUFVNUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQWJULElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQ1MseUJBQW9ELEVBQ3BELGdCQUFrQyxFQUNsQyxrQkFBc0MsRUFDdEMscUJBQTRDLEVBQzVDLGlCQUFvQztRQUpwQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDN0MsQ0FBQzt3R0FmVSwwQkFBMEI7NEZBQTFCLDBCQUEwQiwrRENidkMsMjREQWlEQTs7U0RwQ2EsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUdwQixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2JjYnByb2R1Y3RpbnN0YW5jZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSwgTG9naW5SZXNwb25zZU1vZGVsLCBGb3JtVHlwZSB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1iY2ItaW5zdGFuY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLWJjYi1pbnN0YW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1iY2ItaW5zdGFuY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBCZWhlZXJCY2JJbnN0YW5jZUNvbXBvbmVudCB7XG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25DYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvbkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnk7XHJcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlOiBCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLklzTG9hZGluZygpXCI+XG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZS5Jc0xvYWRpbmcoKVwiPlxuICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXhcIj5cbiAgICA8ZGl2IHN0eWxlPVwiZmxleDogYXV0bztcIj5cbiAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Qcm9kdWN0LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIEJjYlByb2R1Y3RJbnN0YW5jZVNlcnZpY2UuQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLnByb2R1Y3RJZCkgfX1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZS5TYXZlQ29uZmlndXJhdGlvbihDaGFuZ2VEZXRlY3RvclJlZilcIj5cbiAgICAgICAgU2F2ZVxuICAgICAgPC9idXR0b24+XG4gICAgICAmbmJzcDtcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkJjYlByb2R1Y3RJbnN0YW5jZVNlcnZpY2UuRG93bmxvYWRQREYodGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkFjdGl2ZUxhbmd1YWdlLmlkKVwiPlxuICAgICAgICBEb3dubG9hZCBQREZcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgJm5ic3A7XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLlVuc2VsZWN0QkNCUHJvZHVjdEluc3RhbmNlKClcIj5cbiAgICAgICAgVGVydWdcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJjb2x1bW4gbGVmdGNvbFwiPlxuICAgICAgPG1hdC10YWItZ3JvdXAgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiQ29uZmlndXJhdGllXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1zY3JvbGwtc2VjdGlvblwiPlxuICAgICAgICAgICAgPGZhYi1maWx0ZXJzLWlucHV0PjwvZmFiLWZpbHRlcnMtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJJbmZvXCI+XG4gICAgICAgICAgPGFwcC1mYWItZm9ybSBbZm9ybV09XCJCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLkZhYnJpa2FudGVuQ3VzdG9tRm9ybVZpZXdNb2RlbFwiPjwvYXBwLWZhYi1mb3JtPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiA1MCU7XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5TaG93VmFyaWFudHMoKVwiPlxuICAgICAgICA8YXBwLWZhYi1zdmctdmlld2VyPjwvYXBwLWZhYi1zdmctdmlld2VyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dWYXJpYW50cygpXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxuICAgICAgICAgIEVyIHppam4gbm9nIG1lZXJkZXJlIHZhcmlhbnRlbiB2YW4gZGl0IHByb2R1Y3QgZGllIHZvbGRvZW4gYWFuIGRlIGh1aWRpZ2UgZmlsdGVyIHNlbGVjdGllLiBWdWwgbWVlciBmaWx0ZXJzIG9tIGRlIHNlbGVjdGllIHRlIHNwZWNpZmljZXJlbi5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,58 +1,46 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { TranslationCategory, TranslationSubCategory } from '../../../swagger/SwaggerClient';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../../
|
|
4
|
+
import * as i1 from "../../../services/bcbproductinstance.service";
|
|
5
5
|
import * as i2 from "../../../services/translate.service";
|
|
6
|
-
import * as i3 from "../../../services/
|
|
7
|
-
import * as i4 from "
|
|
8
|
-
import * as i5 from "@angular/
|
|
9
|
-
import * as i6 from "@angular/
|
|
10
|
-
import * as i7 from "
|
|
11
|
-
import * as i8 from "
|
|
12
|
-
import * as i9 from "../beheer-
|
|
6
|
+
import * as i3 from "../../../services/fabrikanten.service";
|
|
7
|
+
import * as i4 from "../../../services/authentication.service";
|
|
8
|
+
import * as i5 from "@angular/router";
|
|
9
|
+
import * as i6 from "@angular/common";
|
|
10
|
+
import * as i7 from "@angular/material/legacy-button";
|
|
11
|
+
import * as i8 from "@angular/material/legacy-card";
|
|
12
|
+
import * as i9 from "../beheer-nav/beheer-nav.component";
|
|
13
|
+
import * as i10 from "../../../components/fab-loader/fab-loader.component";
|
|
14
|
+
import * as i11 from "../beheer-project/beheer-project.component";
|
|
13
15
|
class BeheerConfiguratorComponent {
|
|
14
|
-
|
|
16
|
+
BcbProductInstanceService;
|
|
15
17
|
TranslateService;
|
|
18
|
+
FabrikantenService;
|
|
16
19
|
authenticationService;
|
|
20
|
+
ActivatedRoute;
|
|
17
21
|
ChangeDetectorRef;
|
|
18
|
-
Loading = true;
|
|
19
|
-
ConfigurationsViewModel;
|
|
20
|
-
ProjectViewModel = null;
|
|
21
22
|
get TranslationCategory() {
|
|
22
23
|
return TranslationCategory;
|
|
23
24
|
}
|
|
24
25
|
get TranslationSubCategory() {
|
|
25
26
|
return TranslationSubCategory;
|
|
26
27
|
}
|
|
27
|
-
constructor(
|
|
28
|
-
this.
|
|
28
|
+
constructor(BcbProductInstanceService, TranslateService, FabrikantenService, authenticationService, ActivatedRoute, ChangeDetectorRef) {
|
|
29
|
+
this.BcbProductInstanceService = BcbProductInstanceService;
|
|
29
30
|
this.TranslateService = TranslateService;
|
|
31
|
+
this.FabrikantenService = FabrikantenService;
|
|
30
32
|
this.authenticationService = authenticationService;
|
|
33
|
+
this.ActivatedRoute = ActivatedRoute;
|
|
31
34
|
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
35
|
+
this.FabrikantenService.ForceUpdate2D = true;
|
|
32
36
|
}
|
|
33
37
|
ngOnInit() {
|
|
34
38
|
this.TranslateService.LoadTranslations(this.ChangeDetectorRef, null, undefined);
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
SelectProject(project) {
|
|
38
|
-
this.ProjectViewModel = project;
|
|
39
|
-
}
|
|
40
|
-
DeleteProject(project) {
|
|
41
|
-
//this.ProjectViewModel = project;
|
|
42
|
-
}
|
|
43
|
-
CreateProject() {
|
|
44
|
-
this.Loading = true;
|
|
45
|
-
var request = new CreateNewProjectRequestModel();
|
|
46
|
-
request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
|
|
47
|
-
this.ConfiguratorApiClient.createNewProject(request).subscribe(() => {
|
|
48
|
-
this.LoadConfigurations();
|
|
49
|
-
}, (error) => {
|
|
50
|
-
alert('An unexpected error occured');
|
|
51
|
-
this.Loading = false;
|
|
52
|
-
});
|
|
39
|
+
this.BcbProductInstanceService.Init();
|
|
40
|
+
this.FabrikantenService.LoadFabrikantenViewModel(this.ChangeDetectorRef, this.ActivatedRoute);
|
|
53
41
|
}
|
|
54
42
|
IsLoading() {
|
|
55
|
-
if (this.
|
|
43
|
+
if (this.BcbProductInstanceService.IsLoading()) {
|
|
56
44
|
return true;
|
|
57
45
|
}
|
|
58
46
|
if (this.TranslateService.Loading) {
|
|
@@ -60,24 +48,12 @@ class BeheerConfiguratorComponent {
|
|
|
60
48
|
}
|
|
61
49
|
return false;
|
|
62
50
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var request = new GetConfigurationsRequestModel();
|
|
66
|
-
request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
|
|
67
|
-
this.ConfiguratorApiClient.getConfigurations(request).subscribe((model) => {
|
|
68
|
-
this.ConfigurationsViewModel = model;
|
|
69
|
-
this.Loading = false;
|
|
70
|
-
}, (error) => {
|
|
71
|
-
alert('An unexpected error occured');
|
|
72
|
-
this.Loading = false;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BeheerConfiguratorComponent, deps: [{ token: i1.ConfiguratorApiClient }, { token: i2.TranslateService }, { token: i3.AuthenticationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BeheerConfiguratorComponent, selector: "app-beheer-configurator", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!IsLoading()\" class=\"main-container\">\n <mat-card *ngIf=\"ProjectViewModel == null\">\n <mat-card-content>\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" style=\"width: 20px;\"><b>Id</b></td>\n <td class=\"border-bottom\"><b>Name</b></td>\n <td class=\"border-bottom\"></td>\n <td></td>\n </tr>\n <tr *ngFor=\"let project of ConfigurationsViewModel.projects\">\n <td class=\"selectable\" (click)=\"SelectProject(project)\">{{ project.id }}</td>\n <td class=\"selectable\" (click)=\"SelectProject(project)\">\n {{ project.name }}\n </td>\n <td class=\"selectable\" (click)=\"SelectProject(project)\">\n {{ project.lastModified }}\n </td>\n <td style=\"width: 150px;\">\n <button mat-raised-button (click)=\"DeleteProject(project)\" style=\"width: 100%;\">\n Verwijderen\n </button>\n </td>\n </tr>\n </table>\n <br />\n <button mat-raised-button (click)=\"CreateProject()\">\n Nieuw\n </button>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"ProjectViewModel != null\">\n <mat-card-content>\n <app-beheer-project [input]=\"ProjectViewModel\"></app-beheer-project>\n <br />\n <br />\n <br />\n <div>\n <button mat-raised-button (click)=\"SelectProject(null)\">\n Terug\n </button>\n </div>\n\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".main-container{padding:10px}.border-bottom{border-bottom:1px solid #000}.selectable{cursor:pointer}.selectable:hover{background-color:#f0f0f0}.displayflex{display:flex}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i7.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i8.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i9.BeheerProjectComponent, selector: "app-beheer-project", inputs: ["input"] }] });
|
|
51
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BeheerConfiguratorComponent, deps: [{ token: i1.BcbProductInstanceService }, { token: i2.TranslateService }, { token: i3.FabrikantenService }, { token: i4.AuthenticationService }, { token: i5.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BeheerConfiguratorComponent, selector: "app-beheer-configurator", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!IsLoading()\" class=\"main-container\">\n <mat-card *ngIf=\"BcbProductInstanceService.ProjectViewModel == null\">\n <mat-card-content>\n\n <h1>Projects</h1>\n\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" style=\"width: 20px;\"><b>Id</b></td>\n <td class=\"border-bottom\"><b>Name</b></td>\n <td class=\"border-bottom\"></td>\n <td class=\"border-bottom\"></td>\n </tr>\n <tr *ngFor=\"let project of BcbProductInstanceService.ConfigurationsViewModel.projects\">\n <td class=\"selectable\" (click)=\"BcbProductInstanceService.SelectProject(project)\">{{ project.id }}</td>\n <td class=\"selectable\" (click)=\"BcbProductInstanceService.SelectProject(project)\">\n {{ project.name }}\n </td>\n <td class=\"selectable\" (click)=\"BcbProductInstanceService.SelectProject(project)\">\n {{ project.lastModified }}\n </td>\n <td style=\"width: 150px;\">\n <button mat-raised-button (click)=\"BcbProductInstanceService.DeleteProject(project)\" style=\"width: 100%;\">\n Verwijderen\n </button>\n </td>\n </tr>\n </table>\n <br />\n <button mat-raised-button (click)=\"BcbProductInstanceService.CreateProject()\">\n Nieuw\n </button>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"BcbProductInstanceService.ProjectViewModel != null\">\n <mat-card-content>\n <app-beheer-project></app-beheer-project>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".main-container{padding:10px}.border-bottom{border-bottom:1px solid #000}.selectable{cursor:pointer}.selectable:hover{background-color:#f0f0f0}.displayflex{display:flex}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i10.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i11.BeheerProjectComponent, selector: "app-beheer-project" }] });
|
|
77
53
|
}
|
|
78
54
|
export { BeheerConfiguratorComponent };
|
|
79
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BeheerConfiguratorComponent, decorators: [{
|
|
80
56
|
type: Component,
|
|
81
|
-
args: [{ selector: 'app-beheer-configurator', template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!IsLoading()\" class=\"main-container\">\n <mat-card *ngIf=\"ProjectViewModel == null\">\n <mat-card-content>\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" style=\"width: 20px;\"><b>Id</b></td>\n <td class=\"border-bottom\"><b>Name</b></td>\n <td class=\"border-bottom\"></td>\n <td></td>\n </tr>\n <tr *ngFor=\"let project of ConfigurationsViewModel.projects\">\n <td class=\"selectable\" (click)=\"SelectProject(project)\">{{ project.id }}</td>\n <td class=\"selectable\" (click)=\"SelectProject(project)\">\n {{ project.name }}\n </td>\n <td class=\"selectable\" (click)=\"SelectProject(project)\">\n {{ project.lastModified }}\n </td>\n <td style=\"width: 150px;\">\n <button mat-raised-button (click)=\"DeleteProject(project)\" style=\"width: 100%;\">\n Verwijderen\n </button>\n </td>\n </tr>\n </table>\n <br />\n <button mat-raised-button (click)=\"CreateProject()\">\n Nieuw\n </button>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"ProjectViewModel != null\">\n <mat-card-content>\n <app-beheer-project
|
|
82
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
args: [{ selector: 'app-beheer-configurator', template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"IsLoading()\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!IsLoading()\" class=\"main-container\">\n <mat-card *ngIf=\"BcbProductInstanceService.ProjectViewModel == null\">\n <mat-card-content>\n\n <h1>Projects</h1>\n\n <table style=\"width: 100%;\">\n <tr>\n <td class=\"border-bottom\" style=\"width: 20px;\"><b>Id</b></td>\n <td class=\"border-bottom\"><b>Name</b></td>\n <td class=\"border-bottom\"></td>\n <td class=\"border-bottom\"></td>\n </tr>\n <tr *ngFor=\"let project of BcbProductInstanceService.ConfigurationsViewModel.projects\">\n <td class=\"selectable\" (click)=\"BcbProductInstanceService.SelectProject(project)\">{{ project.id }}</td>\n <td class=\"selectable\" (click)=\"BcbProductInstanceService.SelectProject(project)\">\n {{ project.name }}\n </td>\n <td class=\"selectable\" (click)=\"BcbProductInstanceService.SelectProject(project)\">\n {{ project.lastModified }}\n </td>\n <td style=\"width: 150px;\">\n <button mat-raised-button (click)=\"BcbProductInstanceService.DeleteProject(project)\" style=\"width: 100%;\">\n Verwijderen\n </button>\n </td>\n </tr>\n </table>\n <br />\n <button mat-raised-button (click)=\"BcbProductInstanceService.CreateProject()\">\n Nieuw\n </button>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"BcbProductInstanceService.ProjectViewModel != null\">\n <mat-card-content>\n <app-beheer-project></app-beheer-project>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".main-container{padding:10px}.border-bottom{border-bottom:1px solid #000}.selectable{cursor:pointer}.selectable:hover{background-color:#f0f0f0}.displayflex{display:flex}\n"] }]
|
|
58
|
+
}], ctorParameters: function () { return [{ type: i1.BcbProductInstanceService }, { type: i2.TranslateService }, { type: i3.FabrikantenService }, { type: i4.AuthenticationService }, { type: i5.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWNvbmZpZ3VyYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1jb25maWd1cmF0b3IvYmVoZWVyLWNvbmZpZ3VyYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1jb25maWd1cmF0b3IvYmVoZWVyLWNvbmZpZ3VyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQU9yRSxPQUFPLEVBQW1QLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFOVUsTUFLYSwyQkFBMkI7SUFXN0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBZFQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFDUyx5QkFBb0QsRUFDcEQsZ0JBQWtDLEVBQ2xDLGtCQUFzQyxFQUN0QyxxQkFBNEMsRUFDNUMsY0FBOEIsRUFDOUIsaUJBQW9DO1FBTHBDLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM5QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0dBcENVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLCtEQ2R4Qyw4c0RBK0NBOztTRGpDYSwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2JjYnByb2R1Y3RpbnN0YW5jZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFByb2plY3RWaWV3TW9kZWwsIENyZWF0ZU5ld1Byb2plY3RSZXF1ZXN0TW9kZWwsIERlbGV0ZVByb2plY3RSZXF1ZXN0TW9kZWwsIERlbGV0ZUJDQlByb2R1Y3RJbnN0YW5jZVJlcXVlc3RNb2RlbCwgQkNCUHJvZHVjdEluc3RhbmNlVmlld01vZGVsLCBDb25maWd1cmF0b3JBcGlDbGllbnQsIENvbmZpZ3VyYXRpb25zVmlld01vZGVsLCBHZXRDb25maWd1cmF0aW9uc1JlcXVlc3RNb2RlbCwgTG9naW5SZXNwb25zZU1vZGVsLCBUcmFuc2xhdGlvbkNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1jb25maWd1cmF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLWNvbmZpZ3VyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1jb25maWd1cmF0b3IuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCZWhlZXJDb25maWd1cmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25DYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvbkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnk7XHJcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlOiBCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRm9yY2VVcGRhdGUyRCA9IHRydWU7XHJcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxvYWRUcmFuc2xhdGlvbnModGhpcy5DaGFuZ2VEZXRlY3RvclJlZiwgbnVsbCwgdW5kZWZpbmVkKTtcclxuICAgIHRoaXMuQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZS5Jbml0KCk7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Mb2FkRmFicmlrYW50ZW5WaWV3TW9kZWwodGhpcy5DaGFuZ2VEZXRlY3RvclJlZiwgdGhpcy5BY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgfVxuXG4gIHB1YmxpYyBJc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZS5Jc0xvYWRpbmcoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XG5cbiAgICBpZiAodGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxvYWRpbmcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cbn1cbiIsIjxhcHAtYmVoZWVyLW5hdj48L2FwcC1iZWhlZXItbmF2PlxuXG48ZGl2ICpuZ0lmPVwiSXNMb2FkaW5nKClcIj5cbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFJc0xvYWRpbmcoKVwiIGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cbiAgPG1hdC1jYXJkICpuZ0lmPVwiQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZS5Qcm9qZWN0Vmlld01vZGVsID09IG51bGxcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cblxuICAgICAgPGgxPlByb2plY3RzPC9oMT5cblxuICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib3JkZXItYm90dG9tXCIgc3R5bGU9XCJ3aWR0aDogMjBweDtcIj48Yj5JZDwvYj48L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvcmRlci1ib3R0b21cIj48Yj5OYW1lPC9iPjwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9yZGVyLWJvdHRvbVwiPjwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9yZGVyLWJvdHRvbVwiPjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcHJvamVjdCBvZiBCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLkNvbmZpZ3VyYXRpb25zVmlld01vZGVsLnByb2plY3RzXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwic2VsZWN0YWJsZVwiIChjbGljayk9XCJCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLlNlbGVjdFByb2plY3QocHJvamVjdClcIj57eyBwcm9qZWN0LmlkIH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJzZWxlY3RhYmxlXCIgKGNsaWNrKT1cIkJjYlByb2R1Y3RJbnN0YW5jZVNlcnZpY2UuU2VsZWN0UHJvamVjdChwcm9qZWN0KVwiPlxuICAgICAgICAgICAge3sgcHJvamVjdC5uYW1lIH19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJzZWxlY3RhYmxlXCIgKGNsaWNrKT1cIkJjYlByb2R1Y3RJbnN0YW5jZVNlcnZpY2UuU2VsZWN0UHJvamVjdChwcm9qZWN0KVwiPlxuICAgICAgICAgICAge3sgcHJvamVjdC5sYXN0TW9kaWZpZWQgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAxNTBweDtcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkJjYlByb2R1Y3RJbnN0YW5jZVNlcnZpY2UuRGVsZXRlUHJvamVjdChwcm9qZWN0KVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XG4gICAgICAgICAgICAgIFZlcndpamRlcmVuXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICAgIDxiciAvPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQmNiUHJvZHVjdEluc3RhbmNlU2VydmljZS5DcmVhdGVQcm9qZWN0KClcIj5cbiAgICAgICAgTmlldXdcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuICA8bWF0LWNhcmQgKm5nSWY9XCJCY2JQcm9kdWN0SW5zdGFuY2VTZXJ2aWNlLlByb2plY3RWaWV3TW9kZWwgIT0gbnVsbFwiPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPGFwcC1iZWhlZXItcHJvamVjdD48L2FwcC1iZWhlZXItcHJvamVjdD5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG48L2Rpdj5cbiJdfQ==
|