fabrikantencore 2.1.13 → 2.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.mjs +24 -6
  2. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +1 -1
  3. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.mjs +6 -4
  4. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +30 -5
  5. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +3 -3
  6. package/esm2020/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.mjs +3 -3
  7. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +2 -2
  8. package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +13 -13
  9. package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +157 -1
  10. package/fesm2015/fabrikantencore.mjs +226 -27
  11. package/fesm2015/fabrikantencore.mjs.map +1 -1
  12. package/fesm2020/fabrikantencore.mjs +226 -27
  13. package/fesm2020/fabrikantencore.mjs.map +1 -1
  14. package/package.json +1 -1
  15. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.d.ts +2 -1
  16. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.d.ts +3 -1
  17. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +30 -0
@@ -211,6 +211,55 @@ class CategoriesApiClient {
211
211
  }
212
212
  return of(null);
213
213
  }
214
+ clearCategory(pClearCategoryRequest) {
215
+ let url_ = this.baseUrl + "/api/categories/clearcategory";
216
+ url_ = url_.replace(/[?&]$/, "");
217
+ const content_ = JSON.stringify(pClearCategoryRequest);
218
+ let options_ = {
219
+ body: content_,
220
+ observe: "response",
221
+ responseType: "blob",
222
+ headers: new HttpHeaders({
223
+ "Content-Type": "application/json",
224
+ })
225
+ };
226
+ return this.http.request("post", url_, options_).pipe(mergeMap((response_) => {
227
+ return this.processClearCategory(response_);
228
+ })).pipe(catchError((response_) => {
229
+ if (response_ instanceof HttpResponseBase) {
230
+ try {
231
+ return this.processClearCategory(response_);
232
+ }
233
+ catch (e) {
234
+ return throwError(e);
235
+ }
236
+ }
237
+ else
238
+ return throwError(response_);
239
+ }));
240
+ }
241
+ processClearCategory(response) {
242
+ const status = response.status;
243
+ const responseBlob = response instanceof HttpResponse ? response.body :
244
+ response.error instanceof Blob ? response.error : undefined;
245
+ let _headers = {};
246
+ if (response.headers) {
247
+ for (let key of response.headers.keys()) {
248
+ _headers[key] = response.headers.get(key);
249
+ }
250
+ }
251
+ if (status === 200) {
252
+ return blobToText(responseBlob).pipe(mergeMap((_responseText) => {
253
+ return of(null);
254
+ }));
255
+ }
256
+ else if (status !== 200 && status !== 204) {
257
+ return blobToText(responseBlob).pipe(mergeMap((_responseText) => {
258
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
259
+ }));
260
+ }
261
+ return of(null);
262
+ }
214
263
  }
215
264
  CategoriesApiClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CategoriesApiClient, deps: [{ token: HttpClient }, { token: API_BASE_URL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
216
265
  CategoriesApiClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: CategoriesApiClient });
@@ -2447,6 +2496,55 @@ class ProductsApiClient {
2447
2496
  }
2448
2497
  return of(null);
2449
2498
  }
2499
+ ignoreBCBEigenschap(pIgnoreBCBEigenschapRequest) {
2500
+ let url_ = this.baseUrl + "/api/products/ignorebcbeigenschap";
2501
+ url_ = url_.replace(/[?&]$/, "");
2502
+ const content_ = JSON.stringify(pIgnoreBCBEigenschapRequest);
2503
+ let options_ = {
2504
+ body: content_,
2505
+ observe: "response",
2506
+ responseType: "blob",
2507
+ headers: new HttpHeaders({
2508
+ "Content-Type": "application/json",
2509
+ })
2510
+ };
2511
+ return this.http.request("post", url_, options_).pipe(mergeMap((response_) => {
2512
+ return this.processIgnoreBCBEigenschap(response_);
2513
+ })).pipe(catchError((response_) => {
2514
+ if (response_ instanceof HttpResponseBase) {
2515
+ try {
2516
+ return this.processIgnoreBCBEigenschap(response_);
2517
+ }
2518
+ catch (e) {
2519
+ return throwError(e);
2520
+ }
2521
+ }
2522
+ else
2523
+ return throwError(response_);
2524
+ }));
2525
+ }
2526
+ processIgnoreBCBEigenschap(response) {
2527
+ const status = response.status;
2528
+ const responseBlob = response instanceof HttpResponse ? response.body :
2529
+ response.error instanceof Blob ? response.error : undefined;
2530
+ let _headers = {};
2531
+ if (response.headers) {
2532
+ for (let key of response.headers.keys()) {
2533
+ _headers[key] = response.headers.get(key);
2534
+ }
2535
+ }
2536
+ if (status === 200) {
2537
+ return blobToText(responseBlob).pipe(mergeMap((_responseText) => {
2538
+ return of(null);
2539
+ }));
2540
+ }
2541
+ else if (status !== 200 && status !== 204) {
2542
+ return blobToText(responseBlob).pipe(mergeMap((_responseText) => {
2543
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
2544
+ }));
2545
+ }
2546
+ return of(null);
2547
+ }
2450
2548
  ignoreBCBOpbouw(pConnectOpbouwRequest) {
2451
2549
  let url_ = this.baseUrl + "/api/products/ignorebcbopbouw";
2452
2550
  url_ = url_.replace(/[?&]$/, "");
@@ -4344,6 +4442,32 @@ class CreateCategoryRequest {
4344
4442
  return data;
4345
4443
  }
4346
4444
  }
4445
+ class ClearCategoryRequest {
4446
+ constructor(data) {
4447
+ if (data) {
4448
+ for (var property in data) {
4449
+ if (data.hasOwnProperty(property))
4450
+ this[property] = data[property];
4451
+ }
4452
+ }
4453
+ }
4454
+ init(_data) {
4455
+ if (_data) {
4456
+ this.categoryId = _data["categoryId"];
4457
+ }
4458
+ }
4459
+ static fromJS(data) {
4460
+ data = typeof data === 'object' ? data : {};
4461
+ let result = new ClearCategoryRequest();
4462
+ result.init(data);
4463
+ return result;
4464
+ }
4465
+ toJSON(data) {
4466
+ data = typeof data === 'object' ? data : {};
4467
+ data["categoryId"] = this.categoryId;
4468
+ return data;
4469
+ }
4470
+ }
4347
4471
  class EBOKoppelViewModel {
4348
4472
  constructor(data) {
4349
4473
  if (data) {
@@ -6959,6 +7083,38 @@ class ConnectEigenschapOptieRequest {
6959
7083
  return data;
6960
7084
  }
6961
7085
  }
7086
+ class IgnoreBCBEigenschapRequest {
7087
+ constructor(data) {
7088
+ if (data) {
7089
+ for (var property in data) {
7090
+ if (data.hasOwnProperty(property))
7091
+ this[property] = data[property];
7092
+ }
7093
+ }
7094
+ }
7095
+ init(_data) {
7096
+ if (_data) {
7097
+ this.location = _data["location"];
7098
+ this.bcbEigenschapId = _data["bcbEigenschapId"];
7099
+ this.bcbProductId = _data["bcbProductId"];
7100
+ this.many = _data["many"];
7101
+ }
7102
+ }
7103
+ static fromJS(data) {
7104
+ data = typeof data === 'object' ? data : {};
7105
+ let result = new IgnoreBCBEigenschapRequest();
7106
+ result.init(data);
7107
+ return result;
7108
+ }
7109
+ toJSON(data) {
7110
+ data = typeof data === 'object' ? data : {};
7111
+ data["location"] = this.location;
7112
+ data["bcbEigenschapId"] = this.bcbEigenschapId;
7113
+ data["bcbProductId"] = this.bcbProductId;
7114
+ data["many"] = this.many;
7115
+ return data;
7116
+ }
7117
+ }
6962
7118
  class IgnoreOpbouwRequest {
6963
7119
  constructor(data) {
6964
7120
  if (data) {
@@ -10691,7 +10847,7 @@ class BeheerProductsEigenschapComponent {
10691
10847
  }
10692
10848
  });
10693
10849
  }
10694
- Ignore(id) {
10850
+ IgnoreId(id) {
10695
10851
  if (this.ProductsService.BCBProductViewModel != null) {
10696
10852
  var request = new ConnectEigenschapOptieRequest();
10697
10853
  request.bcbEigenschapOptieId = id;
@@ -10705,6 +10861,31 @@ class BeheerProductsEigenschapComponent {
10705
10861
  });
10706
10862
  }
10707
10863
  }
10864
+ Ignore() {
10865
+ if (this.ProductsService.BCBProductViewModel != null) {
10866
+ var request = new IgnoreBCBEigenschapRequest();
10867
+ request.bcbEigenschapId = this.eigenschap.id;
10868
+ this.ProductsApiClient.ignoreBCBEigenschap(request).subscribe(() => {
10869
+ this.ProductsService.LoadProduct(this.ChangeDetectorRef);
10870
+ }, (error) => {
10871
+ alert(error);
10872
+ });
10873
+ }
10874
+ }
10875
+ IgnoreMany() {
10876
+ if (this.ProductsService.BCBProductViewModel != null) {
10877
+ var request = new IgnoreBCBEigenschapRequest();
10878
+ request.bcbEigenschapId = this.eigenschap.id;
10879
+ request.bcbProductId = this.ProductsService.BCBProductViewModel.id;
10880
+ request.location = this.eigenschap.location;
10881
+ request.many = true;
10882
+ this.ProductsApiClient.ignoreBCBEigenschap(request).subscribe(() => {
10883
+ this.ProductsService.LoadProduct(this.ChangeDetectorRef);
10884
+ }, (error) => {
10885
+ alert(error);
10886
+ });
10887
+ }
10888
+ }
10708
10889
  ConnectRange() {
10709
10890
  var dialogRef = this.dialog.open(BeheerProductsConnectRangeinputComponent, {
10710
10891
  data: {
@@ -10744,10 +10925,10 @@ class BeheerProductsEigenschapComponent {
10744
10925
  }
10745
10926
  }
10746
10927
  BeheerProductsEigenschapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsEigenschapComponent, deps: [{ token: ImportSetsService }, { token: ProductsService }, { token: i1$4.MatDialog }, { token: ProductsApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10747
- BeheerProductsEigenschapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsEigenschapComponent, selector: "app-beheer-products-eigenschap", inputs: { eigenschap: "eigenschap" }, ngImport: i0, template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n &nbsp;\r\n &nbsp;\r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"Ignore(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b>&nbsp;\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i7.MatButton, 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$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: BeheerProductsEigenschapBereikComponent, selector: "app-beheer-products-eigenschap-bereik", inputs: ["bereik"] }] });
10928
+ BeheerProductsEigenschapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsEigenschapComponent, selector: "app-beheer-products-eigenschap", inputs: { eigenschap: "eigenschap" }, ngImport: i0, template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n <button mat-raised-button (click)=\"Ignore()\">\r\n Ignore\r\n </button>\r\n <button mat-raised-button (click)=\"IgnoreMany()\">\r\n IgnoreMany\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n &nbsp;\r\n &nbsp;\r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"IgnoreId(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b>&nbsp;\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i7.MatButton, 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$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: BeheerProductsEigenschapBereikComponent, selector: "app-beheer-products-eigenschap-bereik", inputs: ["bereik"] }] });
10748
10929
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsEigenschapComponent, decorators: [{
10749
10930
  type: Component,
10750
- args: [{ selector: 'app-beheer-products-eigenschap', template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n &nbsp;\r\n &nbsp;\r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"Ignore(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b>&nbsp;\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"] }]
10931
+ args: [{ selector: 'app-beheer-products-eigenschap', template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n <button mat-raised-button (click)=\"Ignore()\">\r\n Ignore\r\n </button>\r\n <button mat-raised-button (click)=\"IgnoreMany()\">\r\n IgnoreMany\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n &nbsp;\r\n &nbsp;\r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"IgnoreId(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b>&nbsp;\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b>&nbsp;\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"] }]
10751
10932
  }], ctorParameters: function () { return [{ type: ImportSetsService }, { type: ProductsService }, { type: i1$4.MatDialog }, { type: ProductsApiClient }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { eigenschap: [{
10752
10933
  type: Input
10753
10934
  }] } });
@@ -10883,12 +11064,14 @@ class BeheerProductsBcbproductComponent {
10883
11064
  var request = new BCBImportProductRequest();
10884
11065
  request.bcbProductId = this.BCBProductViewModel.id;
10885
11066
  this.Loading = true;
11067
+ this.ChangeDetectorRef.detectChanges();
10886
11068
  this.ImportApiClient.importBCBProduct(request).subscribe((model) => {
10887
11069
  if (!model.success) {
10888
11070
  alert(model.message);
10889
11071
  }
10890
11072
  this.Loading = false;
10891
- this.ProductsService.Reload(this.ChangeDetectorRef);
11073
+ this.ChangeDetectorRef.detectChanges();
11074
+ this.ProductsService.LoadProduct(this.ChangeDetectorRef);
10892
11075
  }, (error) => {
10893
11076
  if (error.status == 400)
10894
11077
  console.log(error.json());
@@ -10900,10 +11083,10 @@ class BeheerProductsBcbproductComponent {
10900
11083
  }
10901
11084
  }
10902
11085
  BeheerProductsBcbproductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsBcbproductComponent, deps: [{ token: ImportApiClient }, { token: ProductsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10903
- BeheerProductsBcbproductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: { BCBProductViewModel: "BCBProductViewModel" }, ngImport: i0, template: "<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!Loading\">\r\n <mat-card>\r\n <div class=\"product-bar\">\r\n <div class=\"product-first block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Naam</mat-label>\r\n <input matInput [(ngModel)]=\"BCBProductViewModel.name\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Opslaan\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Verwijderen\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n <br />\r\n <mat-card>\r\n <mat-card-content>\r\n <app-beheer-products-ebo [ebo]=\"BCBProductViewModel.bcbeboViewModel\"></app-beheer-products-ebo>\r\n </mat-card-content>\r\n </mat-card>\r\n</div>\r\n\r\n", styles: [".product-bar{display:flex}.product-first{flex:auto}.full-width{width:100%}.card{margin:3px}.block{padding:3px}.row{display:flex;align-items:center;cursor:pointer}.icon-div{width:24px;height:24px}.text-div{flex:auto}.title{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { 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"], exportAs: ["matInput"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, 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$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: BeheerProductsEboComponent, selector: "app-beheer-products-ebo", inputs: ["ebo"] }] });
11086
+ BeheerProductsBcbproductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: { BCBProductViewModel: "BCBProductViewModel" }, ngImport: i0, template: "<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!Loading\">\r\n <mat-card>\r\n <div class=\"product-bar\">\r\n <div class=\"product-first block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Naam</mat-label>\r\n <input matInput [(ngModel)]=\"BCBProductViewModel.name\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Opslaan\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Verwijderen\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n <br />\r\n <mat-card *ngIf=\"BCBProductViewModel?.bcbeboViewModel\">\r\n <mat-card-content>\r\n <app-beheer-products-ebo [ebo]=\"BCBProductViewModel.bcbeboViewModel\"></app-beheer-products-ebo>\r\n </mat-card-content>\r\n </mat-card>\r\n</div>\r\n\r\n", styles: [".product-bar{display:flex}.product-first{flex:auto}.full-width{width:100%}.card{margin:3px}.block{padding:3px}.row{display:flex;align-items:center;cursor:pointer}.icon-div{width:24px;height:24px}.text-div{flex:auto}.title{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { 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"], exportAs: ["matInput"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, 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$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: BeheerProductsEboComponent, selector: "app-beheer-products-ebo", inputs: ["ebo"] }] });
10904
11087
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsBcbproductComponent, decorators: [{
10905
11088
  type: Component,
10906
- args: [{ selector: 'app-beheer-products-bcbproduct', template: "<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!Loading\">\r\n <mat-card>\r\n <div class=\"product-bar\">\r\n <div class=\"product-first block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Naam</mat-label>\r\n <input matInput [(ngModel)]=\"BCBProductViewModel.name\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Opslaan\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Verwijderen\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n <br />\r\n <mat-card>\r\n <mat-card-content>\r\n <app-beheer-products-ebo [ebo]=\"BCBProductViewModel.bcbeboViewModel\"></app-beheer-products-ebo>\r\n </mat-card-content>\r\n </mat-card>\r\n</div>\r\n\r\n", styles: [".product-bar{display:flex}.product-first{flex:auto}.full-width{width:100%}.card{margin:3px}.block{padding:3px}.row{display:flex;align-items:center;cursor:pointer}.icon-div{width:24px;height:24px}.text-div{flex:auto}.title{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"] }]
11089
+ args: [{ selector: 'app-beheer-products-bcbproduct', template: "<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!Loading\">\r\n <mat-card>\r\n <div class=\"product-bar\">\r\n <div class=\"product-first block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Naam</mat-label>\r\n <input matInput [(ngModel)]=\"BCBProductViewModel.name\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Opslaan\r\n </button>\r\n </div>\r\n <div class=\"block\">\r\n <button mat-raised-button [disabled]=\"true\">\r\n Verwijderen\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n <br />\r\n <mat-card *ngIf=\"BCBProductViewModel?.bcbeboViewModel\">\r\n <mat-card-content>\r\n <app-beheer-products-ebo [ebo]=\"BCBProductViewModel.bcbeboViewModel\"></app-beheer-products-ebo>\r\n </mat-card-content>\r\n </mat-card>\r\n</div>\r\n\r\n", styles: [".product-bar{display:flex}.product-first{flex:auto}.full-width{width:100%}.card{margin:3px}.block{padding:3px}.row{display:flex;align-items:center;cursor:pointer}.icon-div{width:24px;height:24px}.text-div{flex:auto}.title{border-bottom:2px solid #000;font-size:20px;margin-top:5px;margin-bottom:5px}\n"] }]
10907
11090
  }], ctorParameters: function () { return [{ type: ImportApiClient }, { type: ProductsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { BCBProductViewModel: [{
10908
11091
  type: Input
10909
11092
  }] } });
@@ -11041,10 +11224,10 @@ class BeheerProductsComponent {
11041
11224
  }
11042
11225
  }
11043
11226
  BeheerProductsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsComponent, deps: [{ token: ProductsService }, { token: ImportSetsService }, { token: ImportApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
11044
- BeheerProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i4$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, 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$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: BeheerProductsProductComponent, selector: "app-beheer-products-product", inputs: ["ProductViewModel"] }, { kind: "component", type: BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: ["BCBProductViewModel"] }] });
11227
+ BeheerProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i4$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, 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$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: BeheerProductsProductComponent, selector: "app-beheer-products-product", inputs: ["ProductViewModel"] }, { kind: "component", type: BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: ["BCBProductViewModel"] }] });
11045
11228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsComponent, decorators: [{
11046
11229
  type: Component,
11047
- args: [{ selector: 'app-beheer-products', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"] }]
11230
+ args: [{ selector: 'app-beheer-products', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"] }]
11048
11231
  }], ctorParameters: function () { return [{ type: ProductsService }, { type: ImportSetsService }, { type: ImportApiClient }, { type: i0.ChangeDetectorRef }]; } });
11049
11232
 
11050
11233
  class BeheerFiltersComponent {
@@ -12557,10 +12740,10 @@ class FabBreadcrumbComponent {
12557
12740
  }
12558
12741
  }
12559
12742
  FabBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabBreadcrumbComponent, deps: [{ token: MobileService }, { token: FabrikantenService }, { token: TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
12560
- FabBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabBreadcrumbComponent, selector: "app-fab-breadcrumb", inputs: { showfiltermenubutton: "showfiltermenubutton" }, ngImport: i0, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: [".header{display:flex;padding:4px}.tinybutton{padding:1px!important}.tinybutton .header-title{font-size:12px!important;line-height:26px!important}.tinybutton .mat-stroked-button{padding:0 8px!important}.buttonsize{height:40px;line-height:25px}.flexauto{flex:auto}.fullwidth{width:100%}.paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i7.MatButton, 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$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
12743
+ FabBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabBreadcrumbComponent, selector: "app-fab-breadcrumb", inputs: { showfiltermenubutton: "showfiltermenubutton" }, ngImport: i0, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step center\" (click)=\"Back()\">\r\n {{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-breadcrumb .header{display:flex;padding:4px}app-fab-breadcrumb .center{text-align:center}app-fab-breadcrumb .tinybutton{padding:1px!important}app-fab-breadcrumb .tinybutton .header-title{font-size:12px!important;line-height:26px!important}app-fab-breadcrumb .tinybutton .mat-stroked-button{padding:0 8px!important}app-fab-breadcrumb .buttonsize{height:40px;line-height:25px}app-fab-breadcrumb .flexauto{flex:auto}app-fab-breadcrumb .fullwidth{width:100%}app-fab-breadcrumb .paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i7.MatButton, 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$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
12561
12744
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabBreadcrumbComponent, decorators: [{
12562
12745
  type: Component,
12563
- args: [{ selector: 'app-fab-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: [".header{display:flex;padding:4px}.tinybutton{padding:1px!important}.tinybutton .header-title{font-size:12px!important;line-height:26px!important}.tinybutton .mat-stroked-button{padding:0 8px!important}.buttonsize{height:40px;line-height:25px}.flexauto{flex:auto}.fullwidth{width:100%}.paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"] }]
12746
+ args: [{ selector: 'app-fab-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step center\" (click)=\"Back()\">\r\n {{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-breadcrumb .header{display:flex;padding:4px}app-fab-breadcrumb .center{text-align:center}app-fab-breadcrumb .tinybutton{padding:1px!important}app-fab-breadcrumb .tinybutton .header-title{font-size:12px!important;line-height:26px!important}app-fab-breadcrumb .tinybutton .mat-stroked-button{padding:0 8px!important}app-fab-breadcrumb .buttonsize{height:40px;line-height:25px}app-fab-breadcrumb .flexauto{flex:auto}app-fab-breadcrumb .fullwidth{width:100%}app-fab-breadcrumb .paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"] }]
12564
12747
  }], ctorParameters: function () { return [{ type: MobileService }, { type: FabrikantenService }, { type: TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showfiltermenubutton: [{
12565
12748
  type: Input
12566
12749
  }] } });
@@ -13048,10 +13231,10 @@ class FabProductSelectComponent {
13048
13231
  }
13049
13232
  }
13050
13233
  FabProductSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductSelectComponent, deps: [{ token: MobileService }, { token: FabrikantenService }, { token: BestekService }, { token: TranslateService }, { token: i1$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13051
- FabProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}app-fab-product-select .mat-drawer-inner-container{overflow-y:scroll}\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: i6$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i9$1.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i9$1.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i9$1.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i1$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: FabProductTileComponent, selector: "app-fab-product-tile", inputs: ["product"] }, { kind: "component", type: FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }], encapsulation: i0.ViewEncapsulation.None });
13234
+ FabProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}\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: i6$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6$1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i9$1.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i9$1.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i9$1.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i1$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: FabProductTileComponent, selector: "app-fab-product-tile", inputs: ["product"] }, { kind: "component", type: FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }], encapsulation: i0.ViewEncapsulation.None });
13052
13235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductSelectComponent, decorators: [{
13053
13236
  type: Component,
13054
- args: [{ selector: 'app-fab-product-select', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}app-fab-product-select .mat-drawer-inner-container{overflow-y:scroll}\n"] }]
13237
+ args: [{ selector: 'app-fab-product-select', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}\n"] }]
13055
13238
  }], ctorParameters: function () { return [{ type: MobileService }, { type: FabrikantenService }, { type: BestekService }, { type: TranslateService }, { type: i1$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
13056
13239
  type: ViewChild,
13057
13240
  args: ['header']
@@ -13243,6 +13426,22 @@ class BeheerCategoriesComponent {
13243
13426
  ngOnInit() {
13244
13427
  this.LoadCategories();
13245
13428
  }
13429
+ Clear(category) {
13430
+ this.Loading = true;
13431
+ var model = new ClearCategoryRequest();
13432
+ model.categoryId = category.id;
13433
+ this.CategoriesApiClient.clearCategory(model).subscribe(() => {
13434
+ this.LoadCategories();
13435
+ }, (error) => {
13436
+ if (error.status == 400)
13437
+ console.log(error.json());
13438
+ else {
13439
+ console.log('An unexpected error occured');
13440
+ console.log(error);
13441
+ }
13442
+ this.Loading = false;
13443
+ });
13444
+ }
13246
13445
  LoadCategories() {
13247
13446
  this.Loading = true;
13248
13447
  this.CategoriesApiClient.getCategoriesOverview().subscribe((model) => {
@@ -13260,10 +13459,10 @@ class BeheerCategoriesComponent {
13260
13459
  }
13261
13460
  }
13262
13461
  BeheerCategoriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerCategoriesComponent, deps: [{ token: CategoriesApiClient }], target: i0.ɵɵFactoryTarget.Component });
13263
- BeheerCategoriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerCategoriesComponent, selector: "app-beheer-categories", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!Loading\">\n <mat-card>\n <mat-card-content>\n <table class=\"fullwidth\">\n <ng-container *ngFor=\"let categorie of CategoriesOverviewViewModel.categories\">\n <tr class=\"header\">\n <td colspan=\"3\">{{ categorie.name }}</td>\n </tr>\n <ng-container *ngFor=\"let subcategorie of categorie.subCategories\">\n <tr class=\"header2\">\n <td>&nbsp;</td>\n <td colspan=\"2\">{{ subcategorie.name }}</td>\n </tr>\n <tr *ngFor=\"let product of subcategorie.products\">\n <td>&nbsp;</td>\n <td>&nbsp;</td>\n <td>{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of categorie.products\">\n <td></td>\n <td colspan=\"2\">{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of CategoriesOverviewViewModel.products\">\n <td colspan=\"3\">{{ product.name }}</td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n \n</div>\n", styles: [".fullwidth{width:100%}.header td{border-bottom:2px solid #000}.header2 td{border-bottom:1px solid #000}\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: i6$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: FabLoaderComponent, selector: "app-fab-loader" }] });
13462
+ BeheerCategoriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerCategoriesComponent, selector: "app-beheer-categories", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!Loading\">\n <mat-card>\n <mat-card-content>\n <table class=\"fullwidth\">\n <ng-container *ngFor=\"let categorie of CategoriesOverviewViewModel.categories\">\n <tr class=\"header\">\n <td colspan=\"3\">\n <div style=\"display: flex;\">\n {{ categorie.name }}\n <div style=\"flex: auto;\"></div>\n <button mat-raised-button (click)=\"Clear(categorie)\">\n Clear\n </button>\n </div>\n </td>\n </tr>\n <ng-container *ngFor=\"let subcategorie of categorie.subCategories\">\n <tr class=\"header2\">\n <td>&nbsp;</td>\n <td colspan=\"2\">{{ subcategorie.name }}</td>\n </tr>\n <tr *ngFor=\"let product of subcategorie.products\">\n <td>&nbsp;</td>\n <td>&nbsp;</td>\n <td>{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of categorie.products\">\n <td></td>\n <td colspan=\"2\">{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of CategoriesOverviewViewModel.products\">\n <td colspan=\"3\">{{ product.name }}</td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n \n</div>\n", styles: [".fullwidth{width:100%}.header td{border-bottom:2px solid #000}.header2 td{border-bottom:1px solid #000}\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: i7.MatButton, 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$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: FabLoaderComponent, selector: "app-fab-loader" }] });
13264
13463
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerCategoriesComponent, decorators: [{
13265
13464
  type: Component,
13266
- args: [{ selector: 'app-beheer-categories', template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!Loading\">\n <mat-card>\n <mat-card-content>\n <table class=\"fullwidth\">\n <ng-container *ngFor=\"let categorie of CategoriesOverviewViewModel.categories\">\n <tr class=\"header\">\n <td colspan=\"3\">{{ categorie.name }}</td>\n </tr>\n <ng-container *ngFor=\"let subcategorie of categorie.subCategories\">\n <tr class=\"header2\">\n <td>&nbsp;</td>\n <td colspan=\"2\">{{ subcategorie.name }}</td>\n </tr>\n <tr *ngFor=\"let product of subcategorie.products\">\n <td>&nbsp;</td>\n <td>&nbsp;</td>\n <td>{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of categorie.products\">\n <td></td>\n <td colspan=\"2\">{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of CategoriesOverviewViewModel.products\">\n <td colspan=\"3\">{{ product.name }}</td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n \n</div>\n", styles: [".fullwidth{width:100%}.header td{border-bottom:2px solid #000}.header2 td{border-bottom:1px solid #000}\n"] }]
13465
+ args: [{ selector: 'app-beheer-categories', template: "<app-beheer-nav></app-beheer-nav>\n\n<div *ngIf=\"Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div *ngIf=\"!Loading\">\n <mat-card>\n <mat-card-content>\n <table class=\"fullwidth\">\n <ng-container *ngFor=\"let categorie of CategoriesOverviewViewModel.categories\">\n <tr class=\"header\">\n <td colspan=\"3\">\n <div style=\"display: flex;\">\n {{ categorie.name }}\n <div style=\"flex: auto;\"></div>\n <button mat-raised-button (click)=\"Clear(categorie)\">\n Clear\n </button>\n </div>\n </td>\n </tr>\n <ng-container *ngFor=\"let subcategorie of categorie.subCategories\">\n <tr class=\"header2\">\n <td>&nbsp;</td>\n <td colspan=\"2\">{{ subcategorie.name }}</td>\n </tr>\n <tr *ngFor=\"let product of subcategorie.products\">\n <td>&nbsp;</td>\n <td>&nbsp;</td>\n <td>{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of categorie.products\">\n <td></td>\n <td colspan=\"2\">{{ product.name }}</td>\n </tr>\n <tr>\n <td>&nbsp;</td>\n </tr>\n </ng-container>\n <tr *ngFor=\"let product of CategoriesOverviewViewModel.products\">\n <td colspan=\"3\">{{ product.name }}</td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n \n</div>\n", styles: [".fullwidth{width:100%}.header td{border-bottom:2px solid #000}.header2 td{border-bottom:1px solid #000}\n"] }]
13267
13466
  }], ctorParameters: function () { return [{ type: CategoriesApiClient }]; } });
13268
13467
 
13269
13468
  class FabStartComponent {
@@ -13561,18 +13760,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
13561
13760
  const routes = [
13562
13761
  {
13563
13762
  path: 'beheer', children: [
13564
- { path: 'inloggen', component: BeheerInlogComponent },
13565
- { path: 'overview', component: BeheerMainComponent, canActivate: [AuthGuard] },
13566
- { path: 'products', component: BeheerProductsComponent, canActivate: [AuthGuard] },
13567
- { path: 'importsets', component: BeheerImportSetsComponent, canActivate: [AuthGuard] },
13568
- { path: 'filters', component: BeheerFiltersComponent, canActivate: [AuthGuard] },
13569
- { path: 'users', component: BeheerUsersComponent, canActivate: [AuthGuard] },
13570
- { path: 'settings', component: BeheerSettingsComponent, canActivate: [AuthGuard] },
13571
- { path: 'searchproducts', component: BeheerSearchProductsComponent, canActivate: [AuthGuard] },
13572
- { path: 'ebokoppel', component: BeheerEboKoppelComponent, canActivate: [AuthGuard] },
13573
- { path: 'categories', component: BeheerCategoriesComponent, canActivate: [AuthGuard] },
13574
- { path: 'translate', component: BeheerTranslateComponent, canActivate: [AuthGuard] },
13575
- { path: 'deeplink', component: BeheerDeeplinkComponent, canActivate: [AuthGuard] },
13763
+ { path: 'inloggen', component: BeheerInlogComponent, data: { title: 'Inloggen' } },
13764
+ { path: 'overview', component: BeheerMainComponent, data: { title: 'Overview' }, canActivate: [AuthGuard] },
13765
+ { path: 'products', component: BeheerProductsComponent, data: { title: 'Products' }, canActivate: [AuthGuard] },
13766
+ { path: 'importsets', component: BeheerImportSetsComponent, data: { title: 'Importset' }, canActivate: [AuthGuard] },
13767
+ { path: 'filters', component: BeheerFiltersComponent, data: { title: 'Filters' }, canActivate: [AuthGuard] },
13768
+ { path: 'users', component: BeheerUsersComponent, data: { title: 'Users' }, canActivate: [AuthGuard] },
13769
+ { path: 'settings', component: BeheerSettingsComponent, data: { title: 'Settings' }, canActivate: [AuthGuard] },
13770
+ { path: 'searchproducts', component: BeheerSearchProductsComponent, data: { title: 'Search' }, canActivate: [AuthGuard] },
13771
+ { path: 'ebokoppel', component: BeheerEboKoppelComponent, data: { title: 'EBO koppel' }, canActivate: [AuthGuard] },
13772
+ { path: 'categories', component: BeheerCategoriesComponent, data: { title: 'Categories' }, canActivate: [AuthGuard] },
13773
+ { path: 'translate', component: BeheerTranslateComponent, data: { title: 'Translate' }, canActivate: [AuthGuard] },
13774
+ { path: 'deeplink', component: BeheerDeeplinkComponent, data: { title: 'Deeplink' }, canActivate: [AuthGuard] },
13576
13775
  { path: '', component: BeheerMainComponent, pathMatch: 'full', canActivate: [AuthGuard] }
13577
13776
  ]
13578
13777
  },
@@ -13858,5 +14057,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
13858
14057
  * Generated bundle index. Do not edit.
13859
14058
  */
13860
14059
 
13861
- export { API_BASE_URL, ApiException, BCBEBODOViewModel, BCBEBOFilterOptionViewModel, BCBEBOViewModel, BCBEigenschapBereikViewModel, BCBEigenschapLocation, BCBEigenschapOptieCategoryViewModel, BCBEigenschapOptieFilterOptionViewModel, BCBEigenschapOptieViewModel, BCBEigenschapRangeInputModel, BCBEigenschapToebehorenViewModel, BCBEigenschapViewModel, BCBImportEigenschap, BCBImportOpbouw, BCBImportOpenRequest, BCBImportOpenResponse, BCBImportOpenTempDORequest, BCBImportOpenTempRequest, BCBImportProductRequest, BCBImportProductResponse, BCBImportSetValueViewModel, BCBImportSetViewModel, BCBImportSetsViewModel, BCBLinkRequestModel, BCBLinkResponseModel, BCBOpbouwViewModel, BCBProductViewModel, CategoriesApiClient, CategoriesOverviewCategorieViewModel, CategoriesOverviewViewModel, CategoriesViewModel, CategoryViewModel, ChangeImportSetRequest, CleanUpResponseModel, ConnectBCBEBODORequest, ConnectBCBEigenschapRangeInputRequest, ConnectBCBEigenschapRangeInputResponse, ConnectBCBEigenschapRequest, ConnectEBODOCategoryRequest, ConnectEBODOCategoryResponse, ConnectEigenschapOptieRequest, ConnectOpbouwRequest, CreateCategoryRequest, CreateCategoryResponse, CreateExportRequest, CreateExportResponse, CreateFilterOptionRequest, CreateFilterOptionResponse, CreateFilterRequest, CreateFilterResponse, CreateLanguageRequest, DeeplinkProductViewModel, DeeplinkRequest, DeeplinkViewModel, EBOConnectRequestModel, EBOKoppelApiClient, EBOKoppelEBOCategoryViewModel, EBOKoppelEBOFilterOptionViewModel, EBOKoppelEBOViewModel, EBOKoppelNaamViewModel, EBOKoppelTypeViewModel, EBOKoppelViewModel, FabFiltersComponent, Fabrikanten3DRequestModel, Fabrikanten3DViewModel, FabrikantenApiClient, FabrikantenBCBProductAfbeeldingViewModel, FabrikantenBCBProductToebehorenViewModel, FabrikantenBCBProductViewModel, FabrikantenBestekRequestModel, FabrikantenBestekViewModel, FabrikantenCategoryLayerViewModel, FabrikantenCategoryViewModel, FabrikantenCoreModule, FabrikantenFileRequestModel, FabrikantenFileViewModel, FabrikantenFilterCategoryViewModel, FabrikantenFilterOptionViewModel, FabrikantenFilterViewModel, FabrikantenProductViewModel, FabrikantenRangeInputViewModel, FabrikantenRequestModel, FabrikantenSVGRequestModel, FabrikantenSVGViewModel, FabrikantenTextureBaseViewModel, FabrikantenTextureRequestModel, FabrikantenTextureViewModel, FabrikantenViewModel, FilterOptionViewModel, FilterType, FilterViewModel, FiltersApiClient, FiltersViewModel, GetProductRequest, GetProductsViewModel, IgnoreOpbouwRequest, ImportApiClient, KoppelProductsRequestModel, LanguageViewModel, LanguagesViewModel, LoginIPResponseModel, LoginRequestModel, LoginResponseModel, MoveFilterOptionRequest, MoveFilterRequest, NewProductRequestModel, NewProductResponseModel, ProductViewModel, ProductViewModel2, ProductsApiClient, ProductsViewModel, ProductsViewModelRequest, ProjectSettingApiClient, ProjectSettingPipelineStepViewModel, ProjectSettingType, ProjectSettingViewModel, ProjectSettingsCategoryViewModel, ProjectSettingsViewModel, RangeInputViewModel, RangeInputsViewModel, ReadExportRequest, RemoveProductSelectionRequest, ResetAllCategoriesRequest, ResetAllFiltersRequest, ResetCategoryLayerRequest, ResetFilterRequest, ResetImportRequestModel, SaveImportSetRequest, SaveProductViewModel, SearchProductsApiClient, SearchProductsRequestModel, SearchProductsResponseModel, SecurityApiClient, SelectBCBProductRequest, SelectCategoryRequest, SelectColourRequest, SelectFilterOptionRequest, SelectProductRequest, SetProjectSettingRequestModel, SetProjectSettingResponseModel, SetRangeInputRequest, TranslateApiClient, TranslateEntryAfbeeldingViewModel, TranslateEntryBCBEigenschapToebehorenViewModel, TranslateEntryCategoryViewModel, TranslateEntryDescriptionViewModel, TranslateEntryFilterOptionViewModel, TranslateEntryFilterViewModel, TranslateEntryProductViewModel, TranslateEntryRangeInputViewModel, TranslateEntryViewModel, TranslateKeyCategoryViewModel, TranslateKeyViewModel, WizardEBODOViewModel, WizardEBOViewModel };
14060
+ export { API_BASE_URL, ApiException, BCBEBODOViewModel, BCBEBOFilterOptionViewModel, BCBEBOViewModel, BCBEigenschapBereikViewModel, BCBEigenschapLocation, BCBEigenschapOptieCategoryViewModel, BCBEigenschapOptieFilterOptionViewModel, BCBEigenschapOptieViewModel, BCBEigenschapRangeInputModel, BCBEigenschapToebehorenViewModel, BCBEigenschapViewModel, BCBImportEigenschap, BCBImportOpbouw, BCBImportOpenRequest, BCBImportOpenResponse, BCBImportOpenTempDORequest, BCBImportOpenTempRequest, BCBImportProductRequest, BCBImportProductResponse, BCBImportSetValueViewModel, BCBImportSetViewModel, BCBImportSetsViewModel, BCBLinkRequestModel, BCBLinkResponseModel, BCBOpbouwViewModel, BCBProductViewModel, CategoriesApiClient, CategoriesOverviewCategorieViewModel, CategoriesOverviewViewModel, CategoriesViewModel, CategoryViewModel, ChangeImportSetRequest, CleanUpResponseModel, ClearCategoryRequest, ConnectBCBEBODORequest, ConnectBCBEigenschapRangeInputRequest, ConnectBCBEigenschapRangeInputResponse, ConnectBCBEigenschapRequest, ConnectEBODOCategoryRequest, ConnectEBODOCategoryResponse, ConnectEigenschapOptieRequest, ConnectOpbouwRequest, CreateCategoryRequest, CreateCategoryResponse, CreateExportRequest, CreateExportResponse, CreateFilterOptionRequest, CreateFilterOptionResponse, CreateFilterRequest, CreateFilterResponse, CreateLanguageRequest, DeeplinkProductViewModel, DeeplinkRequest, DeeplinkViewModel, EBOConnectRequestModel, EBOKoppelApiClient, EBOKoppelEBOCategoryViewModel, EBOKoppelEBOFilterOptionViewModel, EBOKoppelEBOViewModel, EBOKoppelNaamViewModel, EBOKoppelTypeViewModel, EBOKoppelViewModel, FabFiltersComponent, Fabrikanten3DRequestModel, Fabrikanten3DViewModel, FabrikantenApiClient, FabrikantenBCBProductAfbeeldingViewModel, FabrikantenBCBProductToebehorenViewModel, FabrikantenBCBProductViewModel, FabrikantenBestekRequestModel, FabrikantenBestekViewModel, FabrikantenCategoryLayerViewModel, FabrikantenCategoryViewModel, FabrikantenCoreModule, FabrikantenFileRequestModel, FabrikantenFileViewModel, FabrikantenFilterCategoryViewModel, FabrikantenFilterOptionViewModel, FabrikantenFilterViewModel, FabrikantenProductViewModel, FabrikantenRangeInputViewModel, FabrikantenRequestModel, FabrikantenSVGRequestModel, FabrikantenSVGViewModel, FabrikantenTextureBaseViewModel, FabrikantenTextureRequestModel, FabrikantenTextureViewModel, FabrikantenViewModel, FilterOptionViewModel, FilterType, FilterViewModel, FiltersApiClient, FiltersViewModel, GetProductRequest, GetProductsViewModel, IgnoreBCBEigenschapRequest, IgnoreOpbouwRequest, ImportApiClient, KoppelProductsRequestModel, LanguageViewModel, LanguagesViewModel, LoginIPResponseModel, LoginRequestModel, LoginResponseModel, MoveFilterOptionRequest, MoveFilterRequest, NewProductRequestModel, NewProductResponseModel, ProductViewModel, ProductViewModel2, ProductsApiClient, ProductsViewModel, ProductsViewModelRequest, ProjectSettingApiClient, ProjectSettingPipelineStepViewModel, ProjectSettingType, ProjectSettingViewModel, ProjectSettingsCategoryViewModel, ProjectSettingsViewModel, RangeInputViewModel, RangeInputsViewModel, ReadExportRequest, RemoveProductSelectionRequest, ResetAllCategoriesRequest, ResetAllFiltersRequest, ResetCategoryLayerRequest, ResetFilterRequest, ResetImportRequestModel, SaveImportSetRequest, SaveProductViewModel, SearchProductsApiClient, SearchProductsRequestModel, SearchProductsResponseModel, SecurityApiClient, SelectBCBProductRequest, SelectCategoryRequest, SelectColourRequest, SelectFilterOptionRequest, SelectProductRequest, SetProjectSettingRequestModel, SetProjectSettingResponseModel, SetRangeInputRequest, TranslateApiClient, TranslateEntryAfbeeldingViewModel, TranslateEntryBCBEigenschapToebehorenViewModel, TranslateEntryCategoryViewModel, TranslateEntryDescriptionViewModel, TranslateEntryFilterOptionViewModel, TranslateEntryFilterViewModel, TranslateEntryProductViewModel, TranslateEntryRangeInputViewModel, TranslateEntryViewModel, TranslateKeyCategoryViewModel, TranslateKeyViewModel, WizardEBODOViewModel, WizardEBOViewModel };
13862
14061
  //# sourceMappingURL=fabrikantencore.mjs.map