nuxeo-development-framework 4.0.7 → 4.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- import { Component, ContentChild, Input, ViewChild, ViewEncapsulation, } from "@angular/core";
2
- import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
3
- import { isObservable } from "rxjs";
4
- import { takeUntil } from "rxjs/operators";
5
- import { BaseComponent } from "../../components/base";
1
+ import { Component, ContentChild, Input, ViewChild } from '@angular/core';
2
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { isObservable } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { BaseComponent } from '../../components/base';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/material/icon";
8
8
  import * as i2 from "../../../directive/rtl/set-dir-rtl.directive";
@@ -12,9 +12,9 @@ import * as i5 from "@ngx-translate/core";
12
12
  export class NdfNuxeoDialog extends BaseComponent {
13
13
  constructor(injector) {
14
14
  super(injector);
15
- this.dialogTitle = "";
16
- this.subTitle = "";
17
- this.loaderMode = "spinner";
15
+ this.dialogTitle = '';
16
+ this.subTitle = '';
17
+ this.loaderMode = 'spinner';
18
18
  this.dialogBodyTopOffset = 0;
19
19
  this.data = injector.get(MAT_DIALOG_DATA, null);
20
20
  this.dialogRef = injector.get(MatDialogRef, null);
@@ -23,14 +23,14 @@ export class NdfNuxeoDialog extends BaseComponent {
23
23
  this.dialogBodyTopOffset = this.dialogBody.nativeElement.scrollTop;
24
24
  if (action) {
25
25
  if (!this.isArrowFunction(action)) {
26
- throw new Error("The action should be arrow function");
26
+ throw new Error('The action should be arrow function');
27
27
  }
28
28
  this.loading = true;
29
29
  //TODO here we should find a way to test if actions instance of DialogActionType
30
30
  const result = action(...params);
31
31
  if (!isObservable(result)) {
32
32
  this.loading = false;
33
- throw new Error("The action you used should return an Observable");
33
+ throw new Error('The action you used should return an Observable');
34
34
  }
35
35
  result.pipe(takeUntil(this.destroy$)).subscribe((value) => {
36
36
  this.loading = false;
@@ -45,24 +45,23 @@ export class NdfNuxeoDialog extends BaseComponent {
45
45
  }
46
46
  isArrowFunction(fn) {
47
47
  const strFn = fn.toString();
48
- const firstIndex = strFn.indexOf(")");
49
- const lastIndex = strFn.indexOf("{") + 1;
50
- const target = strFn.substring(firstIndex, lastIndex).replace(" ", "");
51
- return target.includes("=>");
48
+ const firstIndex = strFn.indexOf(')');
49
+ const lastIndex = strFn.indexOf('{') + 1;
50
+ const target = strFn.substring(firstIndex, lastIndex).replace(' ', '');
51
+ return target.includes('=>');
52
52
  }
53
53
  onClose() {
54
54
  this.dialogRef.close();
55
55
  }
56
56
  }
57
57
  NdfNuxeoDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfNuxeoDialog, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
58
- NdfNuxeoDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: { dialogTitle: "dialogTitle", subTitle: "subTitle", loaderMode: "loaderMode" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: ["actionsTemplate"], descendants: true }], viewQueries: [{ propertyName: "dialogBody", first: true, predicate: ["dialogBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div SetDirRtl class=\"ndf-dialog-wrapper\">\r\n\t<div class=\"dialog-header\">\r\n\t\t<div class=\"flex flex-col\">\r\n\t\t\t<span>{{ data?.dialogConfig?.title || dialogTitle }}</span>\r\n\t\t\t<span class=\"text-base font-normal\"\r\n\t\t\t\t>{{ data?.dialogConfig?.subTitle || subTitle }}</span\r\n\t\t\t>\r\n\t\t</div>\r\n\t\t<button\r\n\t\t\tclass=\"flex items-center justify-center rounded-full bg-anti-flash-white w-10 h-10\"\r\n\t\t\t(click)=\"executeAction()\"\r\n\t\t\tmatTooltip=\"{{'BUTTONS.CLOSE' | translate}}\"\r\n\t\t>\r\n\t\t\t<mat-icon class=\"icon-size-3.5\" [svgIcon]=\"'icons:cancel-icon'\">\r\n\t\t\t</mat-icon>\r\n\t\t</button>\r\n\t</div>\r\n\t<div #dialogBody class=\"dialog-body\" [ngClass]=\"{'overflow-hidden': loading}\">\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"data?.dialogConfig?.contentTemplate || contentTemplate\"\r\n\t\t></ng-container>\r\n\t\t<ng-container *ngIf=\"loading\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay bg-gray-300 opacity-40 z-999\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t></div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'spinner'\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t>\r\n\t\t\t\t<mat-spinner\r\n\t\t\t\t\t[value]=\"90\"\r\n\t\t\t\t\t[strokeWidth]=\"4\"\r\n\t\t\t\t\toverlay=\"true\"\r\n\t\t\t\t\t[diameter]=\"40\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-spinner>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"block w-full h-px absolute inset-0 z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'progressBar'\"\r\n\t\t\t>\r\n\t\t\t\t<mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n\t<div class=\"flex w-full justify-end p-6 pt-0 gap-x-4\">\r\n\t\t<button class=\"cancelation-button\" (click)=\"executeAction()\">\r\n\t\t\t{{\"BUTTONS.CANCEL\" | translate}}\r\n\t\t</button>\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"(data?.dialogConfig?.actionsTemplate || actionsTemplate); context: { dialog: this }\"\r\n\t\t></ng-container>\r\n\t</div>\r\n</div>\r\n", styles: ["::ng-deep .ndf-dialog .mat-dialog-container{overflow:hidden!important;border-radius:8px!important}.ndf-dialog-wrapper{@apply flex flex-col;}.ndf-dialog-wrapper .dialog-header{@apply flex h-20 p-6 justify-between items-center w-full bg-vapor text-blue-munsell text-xl not-italic font-bold leading-7;}.ndf-dialog-wrapper .dialog-body{height:auto;max-height:calc(100vh - 208px);@apply flex flex-col gap-y-4 p-6 overflow-y-auto relative z-99;}.ndf-dialog-wrapper .overlay{@apply flex w-full h-full items-center justify-center absolute left-0 bottom-0 right-0;}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.SetDirRtlDirective, selector: "[SetDirRtl]" }, { type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "translate": i5.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
58
+ NdfNuxeoDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: { dialogTitle: "dialogTitle", subTitle: "subTitle", loaderMode: "loaderMode" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: ["actionsTemplate"], descendants: true }], viewQueries: [{ propertyName: "dialogBody", first: true, predicate: ["dialogBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div SetDirRtl class=\"ndf-dialog-wrapper flex flex-col\">\r\n\t<div\r\n\t\tclass=\"dialog-header flex h-20 p-6 justify-between items-center w-full bg-vapor text-blue-munsell text-xl not-italic font-bold leading-7\"\r\n\t>\r\n\t\t<div class=\"flex flex-col\">\r\n\t\t\t<span>{{ data?.dialogConfig?.title || dialogTitle }}</span>\r\n\t\t\t<span class=\"text-base font-normal\"\r\n\t\t\t\t>{{ data?.dialogConfig?.subTitle || subTitle }}</span\r\n\t\t\t>\r\n\t\t</div>\r\n\t\t<button\r\n\t\t\tclass=\"flex items-center justify-center rounded-full bg-anti-flash-white w-10 h-10\"\r\n\t\t\t(click)=\"executeAction()\"\r\n\t\t\tmatTooltip=\"{{'BUTTONS.CLOSE' | translate}}\"\r\n\t\t>\r\n\t\t\t<mat-icon class=\"icon-size-3.5\" [svgIcon]=\"'icons:cancel-icon'\">\r\n\t\t\t</mat-icon>\r\n\t\t</button>\r\n\t</div>\r\n\t<div\r\n\t\t#dialogBody\r\n\t\tclass=\"dialog-body flex flex-col gap-y-4 p-6 overflow-y-auto relative z-99\"\r\n\t\t[ngClass]=\"{'overflow-hidden': loading}\"\r\n\t>\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"data?.dialogConfig?.contentTemplate || contentTemplate\"\r\n\t\t></ng-container>\r\n\t\t<ng-container *ngIf=\"loading\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay flex w-full h-full items-center justify-center absolute left-0 bottom-0 right-0 bg-gray-300 opacity-40 z-999\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t></div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay flex w-full h-full items-center justify-center absolute left-0 bottom-0 right-0 z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'spinner'\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t>\r\n\t\t\t\t<mat-spinner\r\n\t\t\t\t\t[value]=\"90\"\r\n\t\t\t\t\t[strokeWidth]=\"4\"\r\n\t\t\t\t\toverlay=\"true\"\r\n\t\t\t\t\t[diameter]=\"40\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-spinner>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"block w-full h-px absolute inset-0 z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'progressBar'\"\r\n\t\t\t>\r\n\t\t\t\t<mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n\t<div class=\"flex w-full justify-end p-6 pt-0 gap-x-4\">\r\n\t\t<button class=\"cancelation-button\" (click)=\"executeAction()\">\r\n\t\t\t{{\"BUTTONS.CANCEL\" | translate}}\r\n\t\t</button>\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"(data?.dialogConfig?.actionsTemplate || actionsTemplate); context: { dialog: this }\"\r\n\t\t></ng-container>\r\n\t</div>\r\n</div>\r\n", styles: ["::ng-deep .ndf-dialog .mat-dialog-container{overflow:hidden!important;border-radius:8px!important}.ndf-dialog-wrapper .dialog-body{height:auto;max-height:calc(100vh - 208px)}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.SetDirRtlDirective, selector: "[SetDirRtl]" }, { type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "translate": i5.TranslatePipe } });
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfNuxeoDialog, decorators: [{
60
60
  type: Component,
61
61
  args: [{
62
- selector: "ndf-nuxeo-dialog",
63
- templateUrl: "./nuxeo.dialog.html",
64
- styleUrls: ["./nuxeo.dialog.scss"],
65
- encapsulation: ViewEncapsulation.None,
62
+ selector: 'ndf-nuxeo-dialog',
63
+ templateUrl: './nuxeo.dialog.html',
64
+ styleUrls: ['./nuxeo.dialog.scss']
66
65
  }]
67
66
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { dialogTitle: [{
68
67
  type: Input
@@ -72,12 +71,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
72
71
  type: Input
73
72
  }], contentTemplate: [{
74
73
  type: ContentChild,
75
- args: ["contentTemplate"]
74
+ args: ['contentTemplate']
76
75
  }], actionsTemplate: [{
77
76
  type: ContentChild,
78
- args: ["actionsTemplate"]
77
+ args: ['actionsTemplate']
79
78
  }], dialogBody: [{
80
79
  type: ViewChild,
81
- args: ["dialogBody"]
80
+ args: ['dialogBody']
82
81
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4ZW8uZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL251eGVvLmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9udXhlby5kaWFsb2cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVN0RCxNQUFNLE9BQU8sY0FBNEIsU0FBUSxhQUFhO0lBVzVELFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBWFQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQThCLFNBQVMsQ0FBQztRQU8zRCx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFHOUIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxhQUFhLENBQUMsTUFBeUIsRUFBRSxHQUFHLE1BQWE7UUFDdkQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUNuRSxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7YUFDeEQ7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixnRkFBZ0Y7WUFDaEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNwRTtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDN0MsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDUixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUNGLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsRUFBWTtRQUMxQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7NEdBdERVLGNBQWM7Z0dBQWQsY0FBYyxzZUNyQjNCLG9rRUF5REE7NEZEcENhLGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsV0FBVyxFQUFFLHFCQUFxQjtvQkFDbEMsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2xDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0QzsrRkFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDMkIsZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBQ0UsZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBSU4sVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2Jhc2VcIjtcclxuaW1wb3J0IHsgRGlhbG9nQWN0aW9uVHlwZSB9IGZyb20gXCIuL21vZGVscy9kaWFsb2ctb3B0aW9uLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJuZGYtbnV4ZW8tZGlhbG9nXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9udXhlby5kaWFsb2cuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9udXhlby5kaWFsb2cuc2Nzc1wiXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmTnV4ZW9EaWFsb2c8VERhdGEgPSBhbnk+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZGlhbG9nVGl0bGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgc3ViVGl0bGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgbG9hZGVyTW9kZTogXCJzcGlubmVyXCIgfCBcInByb2dyZXNzQmFyXCIgPSBcInNwaW5uZXJcIjtcclxuICBAQ29udGVudENoaWxkKFwiY29udGVudFRlbXBsYXRlXCIpIGNvbnRlbnRUZW1wbGF0ZSE6IGFueTtcclxuICBAQ29udGVudENoaWxkKFwiYWN0aW9uc1RlbXBsYXRlXCIpIGFjdGlvbnNUZW1wbGF0ZSE6IGFueTtcclxuXHJcbiAgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TmRmTnV4ZW9EaWFsb2c+O1xyXG4gIGRhdGE6IFREYXRhO1xyXG4gIEBWaWV3Q2hpbGQoXCJkaWFsb2dCb2R5XCIpIGRpYWxvZ0JvZHk6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGRpYWxvZ0JvZHlUb3BPZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLmRhdGEgPSBpbmplY3Rvci5nZXQoTUFUX0RJQUxPR19EQVRBLCBudWxsKTtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gaW5qZWN0b3IuZ2V0KE1hdERpYWxvZ1JlZiwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBleGVjdXRlQWN0aW9uKGFjdGlvbj86IERpYWxvZ0FjdGlvblR5cGUsIC4uLnBhcmFtczogYW55W10pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nQm9keVRvcE9mZnNldCA9IHRoaXMuZGlhbG9nQm9keS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcclxuICAgIGlmIChhY3Rpb24pIHtcclxuICAgICAgaWYgKCF0aGlzLmlzQXJyb3dGdW5jdGlvbihhY3Rpb24pKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGFjdGlvbiBzaG91bGQgYmUgYXJyb3cgZnVuY3Rpb25cIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgLy9UT0RPIGhlcmUgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gdGVzdCBpZiBhY3Rpb25zIGluc3RhbmNlIG9mIERpYWxvZ0FjdGlvblR5cGVcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYWN0aW9uKC4uLnBhcmFtcyk7XHJcbiAgICAgIGlmICghaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgYWN0aW9uIHlvdSB1c2VkIHNob3VsZCByZXR1cm4gYW4gT2JzZXJ2YWJsZVwiKTtcclxuICAgICAgfVxyXG4gICAgICByZXN1bHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShcclxuICAgICAgICAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodmFsdWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzQXJyb3dGdW5jdGlvbihmbjogRnVuY3Rpb24pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHN0ckZuID0gZm4udG9TdHJpbmcoKTtcclxuICAgIGNvbnN0IGZpcnN0SW5kZXggPSBzdHJGbi5pbmRleE9mKFwiKVwiKTtcclxuICAgIGNvbnN0IGxhc3RJbmRleCA9IHN0ckZuLmluZGV4T2YoXCJ7XCIpICsgMTtcclxuICAgIGNvbnN0IHRhcmdldCA9IHN0ckZuLnN1YnN0cmluZyhmaXJzdEluZGV4LCBsYXN0SW5kZXgpLnJlcGxhY2UoXCIgXCIsIFwiXCIpO1xyXG4gICAgcmV0dXJuIHRhcmdldC5pbmNsdWRlcyhcIj0+XCIpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgU2V0RGlyUnRsIGNsYXNzPVwibmRmLWRpYWxvZy13cmFwcGVyXCI+XHJcblx0PGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XHJcblx0XHRcdDxzcGFuPnt7IGRhdGE/LmRpYWxvZ0NvbmZpZz8udGl0bGUgfHwgZGlhbG9nVGl0bGUgfX08L3NwYW4+XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtbm9ybWFsXCJcclxuXHRcdFx0XHQ+e3sgZGF0YT8uZGlhbG9nQ29uZmlnPy5zdWJUaXRsZSB8fCBzdWJUaXRsZSB9fTwvc3BhblxyXG5cdFx0XHQ+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxidXR0b25cclxuXHRcdFx0Y2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYmctYW50aS1mbGFzaC13aGl0ZSB3LTEwIGgtMTBcIlxyXG5cdFx0XHQoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbigpXCJcclxuXHRcdFx0bWF0VG9vbHRpcD1cInt7J0JVVFRPTlMuQ0xPU0UnIHwgdHJhbnNsYXRlfX1cIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtMy41XCIgW3N2Z0ljb25dPVwiJ2ljb25zOmNhbmNlbC1pY29uJ1wiPlxyXG5cdFx0XHQ8L21hdC1pY29uPlxyXG5cdFx0PC9idXR0b24+XHJcblx0PC9kaXY+XHJcblx0PGRpdiAjZGlhbG9nQm9keSBjbGFzcz1cImRpYWxvZy1ib2R5XCIgW25nQ2xhc3NdPVwieydvdmVyZmxvdy1oaWRkZW4nOiBsb2FkaW5nfVwiPlxyXG5cdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cImRhdGE/LmRpYWxvZ0NvbmZpZz8uY29udGVudFRlbXBsYXRlIHx8IGNvbnRlbnRUZW1wbGF0ZVwiXHJcblx0XHQ+PC9uZy1jb250YWluZXI+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJvdmVybGF5IGJnLWdyYXktMzAwIG9wYWNpdHktNDAgei05OTlcIlxyXG5cdFx0XHRcdFtuZ1N0eWxlXT1cInsndG9wJzogZGlhbG9nQm9keVRvcE9mZnNldCArICdweCd9XCJcclxuXHRcdFx0PjwvZGl2PlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJvdmVybGF5IHotOTk5OVwiXHJcblx0XHRcdFx0Km5nSWY9XCJsb2FkZXJNb2RlID09PSAnc3Bpbm5lcidcIlxyXG5cdFx0XHRcdFtuZ1N0eWxlXT1cInsndG9wJzogZGlhbG9nQm9keVRvcE9mZnNldCArICdweCd9XCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxtYXQtc3Bpbm5lclxyXG5cdFx0XHRcdFx0W3ZhbHVlXT1cIjkwXCJcclxuXHRcdFx0XHRcdFtzdHJva2VXaWR0aF09XCI0XCJcclxuXHRcdFx0XHRcdG92ZXJsYXk9XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFtkaWFtZXRlcl09XCI0MFwiXHJcblx0XHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHQ8L21hdC1zcGlubmVyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdGNsYXNzPVwiYmxvY2sgdy1mdWxsIGgtcHggYWJzb2x1dGUgaW5zZXQtMCB6LTk5OTlcIlxyXG5cdFx0XHRcdCpuZ0lmPVwibG9hZGVyTW9kZSA9PT0gJ3Byb2dyZXNzQmFyJ1wiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwganVzdGlmeS1lbmQgcC02IHB0LTAgZ2FwLXgtNFwiPlxyXG5cdFx0PGJ1dHRvbiBjbGFzcz1cImNhbmNlbGF0aW9uLWJ1dHRvblwiIChjbGljayk9XCJleGVjdXRlQWN0aW9uKClcIj5cclxuXHRcdFx0e3tcIkJVVFRPTlMuQ0FOQ0VMXCIgfCB0cmFuc2xhdGV9fVxyXG5cdFx0PC9idXR0b24+XHJcblx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwiKGRhdGE/LmRpYWxvZ0NvbmZpZz8uYWN0aW9uc1RlbXBsYXRlIHx8IGFjdGlvbnNUZW1wbGF0ZSk7IGNvbnRleHQ6IHsgZGlhbG9nOiB0aGlzIH1cIlxyXG5cdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4ZW8uZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL251eGVvLmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9udXhlby5kaWFsb2cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBd0IsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVF0RCxNQUFNLE9BQU8sY0FBNEIsU0FBUSxhQUFhO0lBVzdELFlBQVksUUFBa0I7UUFDN0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBWFIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQThCLFNBQVMsQ0FBQztRQU8zRCx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFHL0IsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhLENBQUMsTUFBeUIsRUFBRSxHQUFHLE1BQWE7UUFDeEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUNuRSxJQUFJLE1BQU0sRUFBRTtZQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7YUFDdkQ7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixnRkFBZ0Y7WUFDaEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNuRTtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDOUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQyxDQUNELENBQUM7U0FDRjthQUFNO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN2QjtJQUNGLENBQUM7SUFFRCxlQUFlLENBQUMsRUFBWTtRQUMzQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7NEdBdERXLGNBQWM7Z0dBQWQsY0FBYyxzZUNaM0IsczhFQStEQTs0RkRuRGEsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUscUJBQXFCO29CQUNsQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbEM7K0ZBRVMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQzJCLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNFLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUlOLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Jhc2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dBY3Rpb25UeXBlIH0gZnJvbSAnLi9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ25kZi1udXhlby1kaWFsb2cnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9udXhlby5kaWFsb2cuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbnV4ZW8uZGlhbG9nLnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmTnV4ZW9EaWFsb2c8VERhdGEgPSBhbnk+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcblx0QElucHV0KCkgZGlhbG9nVGl0bGU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIHN1YlRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBsb2FkZXJNb2RlOiAnc3Bpbm5lcicgfCAncHJvZ3Jlc3NCYXInID0gJ3NwaW5uZXInO1xyXG5cdEBDb250ZW50Q2hpbGQoJ2NvbnRlbnRUZW1wbGF0ZScpIGNvbnRlbnRUZW1wbGF0ZSE6IGFueTtcclxuXHRAQ29udGVudENoaWxkKCdhY3Rpb25zVGVtcGxhdGUnKSBhY3Rpb25zVGVtcGxhdGUhOiBhbnk7XHJcblxyXG5cdGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5kZk51eGVvRGlhbG9nPjtcclxuXHRkYXRhOiBURGF0YTtcclxuXHRAVmlld0NoaWxkKCdkaWFsb2dCb2R5JykgZGlhbG9nQm9keTogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblx0ZGlhbG9nQm9keVRvcE9mZnNldDogbnVtYmVyID0gMDtcclxuXHRjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHRcdHRoaXMuZGF0YSA9IGluamVjdG9yLmdldChNQVRfRElBTE9HX0RBVEEsIG51bGwpO1xyXG5cdFx0dGhpcy5kaWFsb2dSZWYgPSBpbmplY3Rvci5nZXQoTWF0RGlhbG9nUmVmLCBudWxsKTtcclxuXHR9XHJcblxyXG5cdGV4ZWN1dGVBY3Rpb24oYWN0aW9uPzogRGlhbG9nQWN0aW9uVHlwZSwgLi4ucGFyYW1zOiBhbnlbXSk6IHZvaWQge1xyXG5cdFx0dGhpcy5kaWFsb2dCb2R5VG9wT2Zmc2V0ID0gdGhpcy5kaWFsb2dCb2R5Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG5cdFx0aWYgKGFjdGlvbikge1xyXG5cdFx0XHRpZiAoIXRoaXMuaXNBcnJvd0Z1bmN0aW9uKGFjdGlvbikpIHtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhY3Rpb24gc2hvdWxkIGJlIGFycm93IGZ1bmN0aW9uJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdFx0Ly9UT0RPIGhlcmUgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gdGVzdCBpZiBhY3Rpb25zIGluc3RhbmNlIG9mIERpYWxvZ0FjdGlvblR5cGVcclxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYWN0aW9uKC4uLnBhcmFtcyk7XHJcblx0XHRcdGlmICghaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhY3Rpb24geW91IHVzZWQgc2hvdWxkIHJldHVybiBhbiBPYnNlcnZhYmxlJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmVzdWx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoXHJcblx0XHRcdFx0KHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKHZhbHVlKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdChlcnIpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpc0Fycm93RnVuY3Rpb24oZm46IEZ1bmN0aW9uKTogYm9vbGVhbiB7XHJcblx0XHRjb25zdCBzdHJGbiA9IGZuLnRvU3RyaW5nKCk7XHJcblx0XHRjb25zdCBmaXJzdEluZGV4ID0gc3RyRm4uaW5kZXhPZignKScpO1xyXG5cdFx0Y29uc3QgbGFzdEluZGV4ID0gc3RyRm4uaW5kZXhPZigneycpICsgMTtcclxuXHRcdGNvbnN0IHRhcmdldCA9IHN0ckZuLnN1YnN0cmluZyhmaXJzdEluZGV4LCBsYXN0SW5kZXgpLnJlcGxhY2UoJyAnLCAnJyk7XHJcblx0XHRyZXR1cm4gdGFyZ2V0LmluY2x1ZGVzKCc9PicpO1xyXG5cdH1cclxuXHJcblx0b25DbG9zZSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgU2V0RGlyUnRsIGNsYXNzPVwibmRmLWRpYWxvZy13cmFwcGVyIGZsZXggZmxleC1jb2xcIj5cclxuXHQ8ZGl2XHJcblx0XHRjbGFzcz1cImRpYWxvZy1oZWFkZXIgZmxleCBoLTIwIHAtNiBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHctZnVsbCBiZy12YXBvciB0ZXh0LWJsdWUtbXVuc2VsbCB0ZXh0LXhsIG5vdC1pdGFsaWMgZm9udC1ib2xkIGxlYWRpbmctN1wiXHJcblx0PlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cclxuXHRcdFx0PHNwYW4+e3sgZGF0YT8uZGlhbG9nQ29uZmlnPy50aXRsZSB8fCBkaWFsb2dUaXRsZSB9fTwvc3Bhbj5cclxuXHRcdFx0PHNwYW4gY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ub3JtYWxcIlxyXG5cdFx0XHRcdD57eyBkYXRhPy5kaWFsb2dDb25maWc/LnN1YlRpdGxlIHx8IHN1YlRpdGxlIH19PC9zcGFuXHJcblx0XHRcdD5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGJ1dHRvblxyXG5cdFx0XHRjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBiZy1hbnRpLWZsYXNoLXdoaXRlIHctMTAgaC0xMFwiXHJcblx0XHRcdChjbGljayk9XCJleGVjdXRlQWN0aW9uKClcIlxyXG5cdFx0XHRtYXRUb29sdGlwPVwie3snQlVUVE9OUy5DTE9TRScgfCB0cmFuc2xhdGV9fVwiXHJcblx0XHQ+XHJcblx0XHRcdDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS0zLjVcIiBbc3ZnSWNvbl09XCInaWNvbnM6Y2FuY2VsLWljb24nXCI+XHJcblx0XHRcdDwvbWF0LWljb24+XHJcblx0XHQ8L2J1dHRvbj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2XHJcblx0XHQjZGlhbG9nQm9keVxyXG5cdFx0Y2xhc3M9XCJkaWFsb2ctYm9keSBmbGV4IGZsZXgtY29sIGdhcC15LTQgcC02IG92ZXJmbG93LXktYXV0byByZWxhdGl2ZSB6LTk5XCJcclxuXHRcdFtuZ0NsYXNzXT1cInsnb3ZlcmZsb3ctaGlkZGVuJzogbG9hZGluZ31cIlxyXG5cdD5cclxuXHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRhPy5kaWFsb2dDb25maWc/LmNvbnRlbnRUZW1wbGF0ZSB8fCBjb250ZW50VGVtcGxhdGVcIlxyXG5cdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdGNsYXNzPVwib3ZlcmxheSBmbGV4IHctZnVsbCBoLWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGFic29sdXRlIGxlZnQtMCBib3R0b20tMCByaWdodC0wIGJnLWdyYXktMzAwIG9wYWNpdHktNDAgei05OTlcIlxyXG5cdFx0XHRcdFtuZ1N0eWxlXT1cInsndG9wJzogZGlhbG9nQm9keVRvcE9mZnNldCArICdweCd9XCJcclxuXHRcdFx0PjwvZGl2PlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJvdmVybGF5IGZsZXggdy1mdWxsIGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYWJzb2x1dGUgbGVmdC0wIGJvdHRvbS0wIHJpZ2h0LTAgei05OTk5XCJcclxuXHRcdFx0XHQqbmdJZj1cImxvYWRlck1vZGUgPT09ICdzcGlubmVyJ1wiXHJcblx0XHRcdFx0W25nU3R5bGVdPVwieyd0b3AnOiBkaWFsb2dCb2R5VG9wT2Zmc2V0ICsgJ3B4J31cIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PG1hdC1zcGlubmVyXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiOTBcIlxyXG5cdFx0XHRcdFx0W3N0cm9rZVdpZHRoXT1cIjRcIlxyXG5cdFx0XHRcdFx0b3ZlcmxheT1cInRydWVcIlxyXG5cdFx0XHRcdFx0W2RpYW1ldGVyXT1cIjQwXCJcclxuXHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbWF0LXNwaW5uZXI+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJibG9jayB3LWZ1bGwgaC1weCBhYnNvbHV0ZSBpbnNldC0wIHotOTk5OVwiXHJcblx0XHRcdFx0Km5nSWY9XCJsb2FkZXJNb2RlID09PSAncHJvZ3Jlc3NCYXInXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWVuZCBwLTYgcHQtMCBnYXAteC00XCI+XHJcblx0XHQ8YnV0dG9uIGNsYXNzPVwiY2FuY2VsYXRpb24tYnV0dG9uXCIgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oKVwiPlxyXG5cdFx0XHR7e1wiQlVUVE9OUy5DQU5DRUxcIiB8IHRyYW5zbGF0ZX19XHJcblx0XHQ8L2J1dHRvbj5cclxuXHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCIoZGF0YT8uZGlhbG9nQ29uZmlnPy5hY3Rpb25zVGVtcGxhdGUgfHwgYWN0aW9uc1RlbXBsYXRlKTsgY29udGV4dDogeyBkaWFsb2c6IHRoaXMgfVwiXHJcblx0XHQ+PC9uZy1jb250YWluZXI+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, NgModule, Injectable, Directive, Inject, InjectionToken, Optional, ChangeDetectorRef, Input, ViewEncapsulation, ContentChild, ViewChild, EventEmitter, Output, HostListener, Pipe, Self, SkipSelf, ChangeDetectionStrategy, ViewContainerRef, forwardRef, APP_INITIALIZER, TemplateRef } from '@angular/core';
2
+ import { Component, NgModule, Injectable, Directive, Inject, InjectionToken, Optional, ChangeDetectorRef, Input, ContentChild, ViewChild, EventEmitter, Output, HostListener, Pipe, ViewEncapsulation, Self, SkipSelf, ChangeDetectionStrategy, ViewContainerRef, forwardRef, APP_INITIALIZER, TemplateRef } from '@angular/core';
3
3
  import * as i4$1 from '@angular/common';
4
4
  import { CommonModule, APP_BASE_HREF, DatePipe, registerLocaleData, DOCUMENT } from '@angular/common';
5
5
  import * as i1$2 from '@angular/common/http';
@@ -1771,9 +1771,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1771
1771
  class NdfNuxeoDialog extends BaseComponent {
1772
1772
  constructor(injector) {
1773
1773
  super(injector);
1774
- this.dialogTitle = "";
1775
- this.subTitle = "";
1776
- this.loaderMode = "spinner";
1774
+ this.dialogTitle = '';
1775
+ this.subTitle = '';
1776
+ this.loaderMode = 'spinner';
1777
1777
  this.dialogBodyTopOffset = 0;
1778
1778
  this.data = injector.get(MAT_DIALOG_DATA, null);
1779
1779
  this.dialogRef = injector.get(MatDialogRef, null);
@@ -1782,14 +1782,14 @@ class NdfNuxeoDialog extends BaseComponent {
1782
1782
  this.dialogBodyTopOffset = this.dialogBody.nativeElement.scrollTop;
1783
1783
  if (action) {
1784
1784
  if (!this.isArrowFunction(action)) {
1785
- throw new Error("The action should be arrow function");
1785
+ throw new Error('The action should be arrow function');
1786
1786
  }
1787
1787
  this.loading = true;
1788
1788
  //TODO here we should find a way to test if actions instance of DialogActionType
1789
1789
  const result = action(...params);
1790
1790
  if (!isObservable(result)) {
1791
1791
  this.loading = false;
1792
- throw new Error("The action you used should return an Observable");
1792
+ throw new Error('The action you used should return an Observable');
1793
1793
  }
1794
1794
  result.pipe(takeUntil(this.destroy$)).subscribe((value) => {
1795
1795
  this.loading = false;
@@ -1804,24 +1804,23 @@ class NdfNuxeoDialog extends BaseComponent {
1804
1804
  }
1805
1805
  isArrowFunction(fn) {
1806
1806
  const strFn = fn.toString();
1807
- const firstIndex = strFn.indexOf(")");
1808
- const lastIndex = strFn.indexOf("{") + 1;
1809
- const target = strFn.substring(firstIndex, lastIndex).replace(" ", "");
1810
- return target.includes("=>");
1807
+ const firstIndex = strFn.indexOf(')');
1808
+ const lastIndex = strFn.indexOf('{') + 1;
1809
+ const target = strFn.substring(firstIndex, lastIndex).replace(' ', '');
1810
+ return target.includes('=>');
1811
1811
  }
1812
1812
  onClose() {
1813
1813
  this.dialogRef.close();
1814
1814
  }
1815
1815
  }
1816
1816
  NdfNuxeoDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfNuxeoDialog, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1817
- NdfNuxeoDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: { dialogTitle: "dialogTitle", subTitle: "subTitle", loaderMode: "loaderMode" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: ["actionsTemplate"], descendants: true }], viewQueries: [{ propertyName: "dialogBody", first: true, predicate: ["dialogBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div SetDirRtl class=\"ndf-dialog-wrapper\">\r\n\t<div class=\"dialog-header\">\r\n\t\t<div class=\"flex flex-col\">\r\n\t\t\t<span>{{ data?.dialogConfig?.title || dialogTitle }}</span>\r\n\t\t\t<span class=\"text-base font-normal\"\r\n\t\t\t\t>{{ data?.dialogConfig?.subTitle || subTitle }}</span\r\n\t\t\t>\r\n\t\t</div>\r\n\t\t<button\r\n\t\t\tclass=\"flex items-center justify-center rounded-full bg-anti-flash-white w-10 h-10\"\r\n\t\t\t(click)=\"executeAction()\"\r\n\t\t\tmatTooltip=\"{{'BUTTONS.CLOSE' | translate}}\"\r\n\t\t>\r\n\t\t\t<mat-icon class=\"icon-size-3.5\" [svgIcon]=\"'icons:cancel-icon'\">\r\n\t\t\t</mat-icon>\r\n\t\t</button>\r\n\t</div>\r\n\t<div #dialogBody class=\"dialog-body\" [ngClass]=\"{'overflow-hidden': loading}\">\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"data?.dialogConfig?.contentTemplate || contentTemplate\"\r\n\t\t></ng-container>\r\n\t\t<ng-container *ngIf=\"loading\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay bg-gray-300 opacity-40 z-999\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t></div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'spinner'\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t>\r\n\t\t\t\t<mat-spinner\r\n\t\t\t\t\t[value]=\"90\"\r\n\t\t\t\t\t[strokeWidth]=\"4\"\r\n\t\t\t\t\toverlay=\"true\"\r\n\t\t\t\t\t[diameter]=\"40\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-spinner>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"block w-full h-px absolute inset-0 z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'progressBar'\"\r\n\t\t\t>\r\n\t\t\t\t<mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n\t<div class=\"flex w-full justify-end p-6 pt-0 gap-x-4\">\r\n\t\t<button class=\"cancelation-button\" (click)=\"executeAction()\">\r\n\t\t\t{{\"BUTTONS.CANCEL\" | translate}}\r\n\t\t</button>\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"(data?.dialogConfig?.actionsTemplate || actionsTemplate); context: { dialog: this }\"\r\n\t\t></ng-container>\r\n\t</div>\r\n</div>\r\n", styles: ["::ng-deep .ndf-dialog .mat-dialog-container{overflow:hidden!important;border-radius:8px!important}.ndf-dialog-wrapper{@apply flex flex-col;}.ndf-dialog-wrapper .dialog-header{@apply flex h-20 p-6 justify-between items-center w-full bg-vapor text-blue-munsell text-xl not-italic font-bold leading-7;}.ndf-dialog-wrapper .dialog-body{height:auto;max-height:calc(100vh - 208px);@apply flex flex-col gap-y-4 p-6 overflow-y-auto relative z-99;}.ndf-dialog-wrapper .overlay{@apply flex w-full h-full items-center justify-center absolute left-0 bottom-0 right-0;}\n"], components: [{ type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: SetDirRtlDirective, selector: "[SetDirRtl]" }, { type: i2$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
1817
+ NdfNuxeoDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: { dialogTitle: "dialogTitle", subTitle: "subTitle", loaderMode: "loaderMode" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: ["actionsTemplate"], descendants: true }], viewQueries: [{ propertyName: "dialogBody", first: true, predicate: ["dialogBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div SetDirRtl class=\"ndf-dialog-wrapper flex flex-col\">\r\n\t<div\r\n\t\tclass=\"dialog-header flex h-20 p-6 justify-between items-center w-full bg-vapor text-blue-munsell text-xl not-italic font-bold leading-7\"\r\n\t>\r\n\t\t<div class=\"flex flex-col\">\r\n\t\t\t<span>{{ data?.dialogConfig?.title || dialogTitle }}</span>\r\n\t\t\t<span class=\"text-base font-normal\"\r\n\t\t\t\t>{{ data?.dialogConfig?.subTitle || subTitle }}</span\r\n\t\t\t>\r\n\t\t</div>\r\n\t\t<button\r\n\t\t\tclass=\"flex items-center justify-center rounded-full bg-anti-flash-white w-10 h-10\"\r\n\t\t\t(click)=\"executeAction()\"\r\n\t\t\tmatTooltip=\"{{'BUTTONS.CLOSE' | translate}}\"\r\n\t\t>\r\n\t\t\t<mat-icon class=\"icon-size-3.5\" [svgIcon]=\"'icons:cancel-icon'\">\r\n\t\t\t</mat-icon>\r\n\t\t</button>\r\n\t</div>\r\n\t<div\r\n\t\t#dialogBody\r\n\t\tclass=\"dialog-body flex flex-col gap-y-4 p-6 overflow-y-auto relative z-99\"\r\n\t\t[ngClass]=\"{'overflow-hidden': loading}\"\r\n\t>\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"data?.dialogConfig?.contentTemplate || contentTemplate\"\r\n\t\t></ng-container>\r\n\t\t<ng-container *ngIf=\"loading\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay flex w-full h-full items-center justify-center absolute left-0 bottom-0 right-0 bg-gray-300 opacity-40 z-999\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t></div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"overlay flex w-full h-full items-center justify-center absolute left-0 bottom-0 right-0 z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'spinner'\"\r\n\t\t\t\t[ngStyle]=\"{'top': dialogBodyTopOffset + 'px'}\"\r\n\t\t\t>\r\n\t\t\t\t<mat-spinner\r\n\t\t\t\t\t[value]=\"90\"\r\n\t\t\t\t\t[strokeWidth]=\"4\"\r\n\t\t\t\t\toverlay=\"true\"\r\n\t\t\t\t\t[diameter]=\"40\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-spinner>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"block w-full h-px absolute inset-0 z-9999\"\r\n\t\t\t\t*ngIf=\"loaderMode === 'progressBar'\"\r\n\t\t\t>\r\n\t\t\t\t<mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n\t<div class=\"flex w-full justify-end p-6 pt-0 gap-x-4\">\r\n\t\t<button class=\"cancelation-button\" (click)=\"executeAction()\">\r\n\t\t\t{{\"BUTTONS.CANCEL\" | translate}}\r\n\t\t</button>\r\n\t\t<ng-container\r\n\t\t\t*ngTemplateOutlet=\"(data?.dialogConfig?.actionsTemplate || actionsTemplate); context: { dialog: this }\"\r\n\t\t></ng-container>\r\n\t</div>\r\n</div>\r\n", styles: ["::ng-deep .ndf-dialog .mat-dialog-container{overflow:hidden!important;border-radius:8px!important}.ndf-dialog-wrapper .dialog-body{height:auto;max-height:calc(100vh - 208px)}\n"], components: [{ type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: SetDirRtlDirective, selector: "[SetDirRtl]" }, { type: i2$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "translate": i1.TranslatePipe } });
1818
1818
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfNuxeoDialog, decorators: [{
1819
1819
  type: Component,
1820
1820
  args: [{
1821
- selector: "ndf-nuxeo-dialog",
1822
- templateUrl: "./nuxeo.dialog.html",
1823
- styleUrls: ["./nuxeo.dialog.scss"],
1824
- encapsulation: ViewEncapsulation.None,
1821
+ selector: 'ndf-nuxeo-dialog',
1822
+ templateUrl: './nuxeo.dialog.html',
1823
+ styleUrls: ['./nuxeo.dialog.scss']
1825
1824
  }]
1826
1825
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { dialogTitle: [{
1827
1826
  type: Input
@@ -1831,13 +1830,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1831
1830
  type: Input
1832
1831
  }], contentTemplate: [{
1833
1832
  type: ContentChild,
1834
- args: ["contentTemplate"]
1833
+ args: ['contentTemplate']
1835
1834
  }], actionsTemplate: [{
1836
1835
  type: ContentChild,
1837
- args: ["actionsTemplate"]
1836
+ args: ['actionsTemplate']
1838
1837
  }], dialogBody: [{
1839
1838
  type: ViewChild,
1840
- args: ["dialogBody"]
1839
+ args: ['dialogBody']
1841
1840
  }] } });
1842
1841
 
1843
1842
  class NdfConfirmationDialogComponent extends BaseDialogComponent {
@@ -1846,14 +1845,13 @@ class NdfConfirmationDialogComponent extends BaseDialogComponent {
1846
1845
  }
1847
1846
  }
1848
1847
  NdfConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfConfirmationDialogComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1849
- NdfConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfConfirmationDialogComponent, selector: "ndf-confirmation-dialog", usesInheritance: true, ngImport: i0, template: "<ndf-nuxeo-dialog dialogTitle=\"{{ dialogData.title | translate }}\">\r\n\t<ng-template #contentTemplate>\r\n\t\t<!-- Content -->\r\n\t\t<div class=\"flex flex-row gap-x-2 items-center\">\r\n\t\t\t<!-- Icon -->\r\n\t\t\t<ng-container *ngIf=\"dialogData.icon.show\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"flex flex-0 items-center justify-center w-10 h-10 sm:mr-4 rounded-full\"\r\n\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\tprimaryIcon: dialogData.icon.color === 'primary',\r\n\t\t\t\t\t\taccentIcon: dialogData.icon.color === 'accent',\r\n\t\t\t\t\t\twarnIcon: dialogData.icon.color === 'warn',\r\n\t\t\t\t\t\tbasicIcon: dialogData.icon.color === 'basic',\r\n\t\t\t\t\t\tinfoIcon: dialogData.icon.color === 'info',\r\n\t\t\t\t\t\tsuccessIcon: dialogData.icon.color === 'success',\r\n\t\t\t\t\t\twarningIcon: dialogData.icon.color === 'warning',\r\n\t\t\t\t\t\terrorIcon: dialogData.icon.color === 'error'\r\n\t\t\t\t\t}\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<mat-icon\r\n\t\t\t\t\t\tclass=\"text-current\"\r\n\t\t\t\t\t\t[svgIcon]=\"dialogData.icon.name\"\r\n\t\t\t\t\t></mat-icon>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-container>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"text-secondary\"\r\n\t\t\t\t[innerHtml]=\"dialogData.message | translate\"\r\n\t\t\t></div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t\t<ng-container *ngIf=\"dialogData.actions.confirm.show\">\r\n\t\t\t<button\r\n\t\t\t\t(click)=\"dialog.executeAction(dialogData.actions.confirm.fn)\"\r\n\t\t\t\tclass=\"submission-button\"\r\n\t\t\t\t[color]=\"dialogData.actions.confirm.color\"\r\n\t\t\t\t[disabled]=\"dialog.loading\"\r\n\t\t\t>\r\n\t\t\t\t{{ dialogData.actions.confirm.label | translate }}\r\n\t\t\t</button>\r\n\t\t</ng-container>\r\n\t\t<ng-container *ngIf=\"dialogData.actions.moreActions.length\">\r\n\t\t\t<ng-container *ngFor=\"let btn of dialogData.actions.moreActions\">\r\n\t\t\t\t<button\r\n\t\t\t\t\t(click)=\"dialog.executeAction(btn.fn)\"\r\n\t\t\t\t\tclass=\"submission-button\"\r\n\t\t\t\t\t[color]=\"btn.color\"\r\n\t\t\t\t\t[disabled]=\"dialog.loading\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ btn.label | translate }}\r\n\t\t\t\t</button>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-template>\r\n</ndf-nuxeo-dialog>\r\n", styles: [".ndf-dialog-wrapper .primaryIcon{@apply text-primary-600 bg-primary-100 dark:text-primary-50 dark:bg-primary-600;}.ndf-dialog-wrapper .accentIcon{@apply text-accent-600 bg-accent-100 dark:text-accent-50 dark:bg-accent-600;}.ndf-dialog-wrapper .warnIcon{@apply text-warn-600 bg-warn-100 dark:text-warn-50 dark:bg-warn-600;}.ndf-dialog-wrapper .basicIcon{@apply text-gray-600 bg-gray-100 dark:text-gray-50 dark:bg-gray-600;}.ndf-dialog-wrapper .infoIcon{@apply text-blue-600 bg-blue-100 dark:text-blue-50 dark:bg-blue-600;}.ndf-dialog-wrapper .successIcon{@apply text-green-500 bg-green-100 dark:text-green-50 dark:bg-green-500;}.ndf-dialog-wrapper .warningIcon{@apply text-amber-500 bg-amber-100 dark:text-amber-50 dark:bg-amber-500;}.ndf-dialog-wrapper .errorIcon{@apply text-red-600 bg-red-100 dark:text-red-50 dark:bg-red-600;}::ng-deep .ndf-confirmation-dialog-panel{min-width:25%!important}\n"], components: [{ type: NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: ["dialogTitle", "subTitle", "loaderMode"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
1848
+ NdfConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfConfirmationDialogComponent, selector: "ndf-confirmation-dialog", usesInheritance: true, ngImport: i0, template: "<ndf-nuxeo-dialog dialogTitle=\"{{ dialogData.title | translate }}\">\r\n\t<ng-template #contentTemplate>\r\n\t\t<!-- Content -->\r\n\t\t<div class=\"flex flex-row gap-x-2 items-center\">\r\n\t\t\t<!-- Icon -->\r\n\t\t\t<ng-container *ngIf=\"dialogData.icon.show\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"flex flex-0 items-center justify-center w-10 h-10 sm:mr-4 rounded-full\"\r\n\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t'text-primary-600 bg-primary-100 dark:text-primary-50 dark:bg-primary-600':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'primary',\r\n\t\t\t\t\t\t'text-accent-600 bg-accent-100 dark:text-accent-50 dark:bg-accent-600':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'accent',\r\n\t\t\t\t\t\t'text-warn-600 bg-warn-100 dark:text-warn-50 dark:bg-warn-600':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'warn',\r\n\t\t\t\t\t\t'text-gray-600 bg-gray-100 dark:text-gray-50 dark:bg-gray-600':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'basic',\r\n\t\t\t\t\t\t'text-blue-600 bg-blue-100 dark:text-blue-50 dark:bg-blue-600':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'info',\r\n\t\t\t\t\t\t'text-green-500 bg-green-100 dark:text-green-50 dark:bg-green-500':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'success',\r\n\t\t\t\t\t\t'text-amber-500 bg-amber-100 dark:text-amber-50 dark:bg-amber-500':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'warning',\r\n\t\t\t\t\t\t'text-red-600 bg-red-100 dark:text-red-50 dark:bg-red-600':\r\n\t\t\t\t\t\t\tdialogData.icon.color === 'error'\r\n\t\t\t\t\t}\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<mat-icon\r\n\t\t\t\t\t\tclass=\"text-current\"\r\n\t\t\t\t\t\t[svgIcon]=\"dialogData.icon.name\"\r\n\t\t\t\t\t></mat-icon>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-container>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"text-secondary\"\r\n\t\t\t\t[innerHtml]=\"dialogData.message | translate\"\r\n\t\t\t></div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t\t<ng-container *ngIf=\"dialogData.actions.confirm.show\">\r\n\t\t\t<button\r\n\t\t\t\t(click)=\"dialog.executeAction(dialogData.actions.confirm.fn)\"\r\n\t\t\t\tclass=\"submission-button\"\r\n\t\t\t\t[color]=\"dialogData.actions.confirm.color\"\r\n\t\t\t\t[disabled]=\"dialog.loading\"\r\n\t\t\t>\r\n\t\t\t\t{{ dialogData.actions.confirm.label | translate }}\r\n\t\t\t</button>\r\n\t\t</ng-container>\r\n\t\t<ng-container *ngIf=\"dialogData.actions.moreActions.length\">\r\n\t\t\t<ng-container *ngFor=\"let btn of dialogData.actions.moreActions\">\r\n\t\t\t\t<button\r\n\t\t\t\t\t(click)=\"dialog.executeAction(btn.fn)\"\r\n\t\t\t\t\tclass=\"submission-button\"\r\n\t\t\t\t\t[color]=\"btn.color\"\r\n\t\t\t\t\t[disabled]=\"dialog.loading\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ btn.label | translate }}\r\n\t\t\t\t</button>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-template>\r\n</ndf-nuxeo-dialog>\r\n", styles: ["::ng-deep .ndf-confirmation-dialog-panel{min-width:25%!important}\n"], components: [{ type: NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: ["dialogTitle", "subTitle", "loaderMode"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1.TranslatePipe } });
1850
1849
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfConfirmationDialogComponent, decorators: [{
1851
1850
  type: Component,
1852
1851
  args: [{
1853
- selector: "ndf-confirmation-dialog",
1854
- templateUrl: "./ndf-confirmation-dialog.component.html",
1855
- styleUrls: ["./ndf-confirmation-dialog.component.scss"],
1856
- encapsulation: ViewEncapsulation.None,
1852
+ selector: 'ndf-confirmation-dialog',
1853
+ templateUrl: './ndf-confirmation-dialog.component.html',
1854
+ styleUrls: ['./ndf-confirmation-dialog.component.scss']
1857
1855
  }]
1858
1856
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1859
1857
 
@@ -4867,11 +4865,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
4867
4865
  type: Output
4868
4866
  }] } });
4869
4867
 
4870
- class VocabularyApiService {
4871
- constructor(nuxeoService, translate, environment) {
4868
+ class VocabularyApiService extends BaseService {
4869
+ constructor(nuxeoService, injector) {
4870
+ super(injector);
4872
4871
  this.nuxeoService = nuxeoService;
4873
- this.translate = translate;
4874
- this.environment = environment;
4872
+ this.injector = injector;
4875
4873
  this.vocabular = {};
4876
4874
  }
4877
4875
  getVocabularyList(listName) {
@@ -4883,7 +4881,7 @@ class VocabularyApiService {
4883
4881
  actualGetVocabularyList(listName, extraParams = {}) {
4884
4882
  return from(this.nuxeoService.nuxeoClient
4885
4883
  .operation('Directory.SuggestEntries', {})
4886
- .params(Object.assign({ directoryName: listName, dbl10n: false, localize: true, lang: this.translate.currentLang }, extraParams))
4884
+ .params(Object.assign({ directoryName: listName, dbl10n: false, localize: true, lang: this.translateService.currentLang }, extraParams))
4887
4885
  .execute());
4888
4886
  }
4889
4887
  vocabularyOperations(opName, body) {
@@ -4897,18 +4895,19 @@ class VocabularyApiService {
4897
4895
  throw err;
4898
4896
  }));
4899
4897
  }
4898
+ getVocListByVocName(vocName) {
4899
+ const url = `${this.environment.nuxeo}/api/v1/directory/${vocName}`;
4900
+ return this.get({ endpoint: url, headers: { properties: '*' } });
4901
+ }
4900
4902
  }
4901
- VocabularyApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VocabularyApiService, deps: [{ token: NuxeoService }, { token: i1.TranslateService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
4903
+ VocabularyApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VocabularyApiService, deps: [{ token: NuxeoService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
4902
4904
  VocabularyApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VocabularyApiService, providedIn: 'root' });
4903
4905
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VocabularyApiService, decorators: [{
4904
4906
  type: Injectable,
4905
4907
  args: [{
4906
4908
  providedIn: 'root',
4907
4909
  }]
4908
- }], ctorParameters: function () { return [{ type: NuxeoService }, { type: i1.TranslateService }, { type: undefined, decorators: [{
4909
- type: Inject,
4910
- args: ['environment']
4911
- }] }]; } });
4910
+ }], ctorParameters: function () { return [{ type: NuxeoService }, { type: i0.Injector }]; } });
4912
4911
 
4913
4912
  /**
4914
4913
  * A vocabulary dropdown input integrated with nuxeo vocabulary API,
@@ -20179,6 +20178,7 @@ class TranslatedVocabularySelectComponent {
20179
20178
  this.loading = false;
20180
20179
  this.mapingResponse = false;
20181
20180
  this.params = {};
20181
+ this.getByDirectorySuggestion = true;
20182
20182
  /** event emitted with selected items */
20183
20183
  this.onSelectItems = new EventEmitter();
20184
20184
  this.selection = [];
@@ -20223,20 +20223,27 @@ class TranslatedVocabularySelectComponent {
20223
20223
  getlistOfVocabulary() {
20224
20224
  this.loading = true;
20225
20225
  if (this.vocbularyId) {
20226
- this.vocabularyApiServ
20227
- .getVocabularyListByFilters(this.vocbularyId, this.params, this.filter)
20228
- .subscribe((res) => {
20226
+ const observable = (this.getByDirectorySuggestion) ? this.vocabularyApiServ
20227
+ .getVocabularyListByFilters(this.vocbularyId, this.params, this.filter).pipe(map(res => {
20228
+ let tempArr = [];
20229
20229
  if (this.mapingResponse) {
20230
20230
  res.forEach((element) => {
20231
- this.data.push({
20231
+ tempArr.push({
20232
20232
  label_ar: element.displayLabel,
20233
20233
  label_en: element.displayLabel,
20234
20234
  });
20235
20235
  });
20236
20236
  }
20237
20237
  else {
20238
- this.data = res;
20238
+ tempArr = res;
20239
20239
  }
20240
+ return tempArr;
20241
+ }))
20242
+ : this.vocabularyApiServ.getVocListByVocName(this.vocbularyId).pipe(map((res) => {
20243
+ return res.entries.map(elem => elem.properties);
20244
+ }));
20245
+ observable.subscribe((res) => {
20246
+ this.data = res;
20240
20247
  this.buffer = (this.data || []).slice(0, this.bufferSize);
20241
20248
  this.loading = false;
20242
20249
  }, err => {
@@ -20300,7 +20307,7 @@ class TranslatedVocabularySelectComponent {
20300
20307
  }
20301
20308
  }
20302
20309
  TranslatedVocabularySelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslatedVocabularySelectComponent, deps: [{ token: i1.TranslateService }, { token: TranslationService }, { token: VocabularyApiService }, { token: i6.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
20303
- TranslatedVocabularySelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: { label: "label", bindValue: "bindValue", arbBindLabel: "arbBindLabel", engBindLabel: "engBindLabel", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", closeOnSelect: "closeOnSelect", hideSelectedItems: "hideSelectedItems", disabled: "disabled", clear: "clear", filter: "filter", useFilter: "useFilter", vocbularyId: "vocbularyId", mapingResponse: "mapingResponse", params: "params" }, outputs: { onSelectItems: "onSelectItems" }, viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"translated-vocbulary-wrapper\" [ngClass]=\"{'rtl-translated-vocbulary-wrapper' : isArabic === true}\">\r\n <div class=\"vocabulary-title text-base font-bold text-accent-900 mb-0\">\r\n {{label | translate}}\r\n <span *ngIf=\"isRequired()\" class=\"required-flage\">*</span>\r\n </div>\r\n <ng-select\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [clearable]=\"clear\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelected]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (scrollToEnd)=\"onScrollToEnd()\"\r\n (change)=\"emitSelection($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"selection\"\r\n >\r\n <ng-option *ngFor=\"let option of buffer\" [value]=\"option[bindValue]\">{{isArabic ? option[bindLabel] : option[bindLabel]}}</ng-option>\r\n </ng-select>\r\n</div>\r\n", styles: [".translated-vocbulary-wrapper .vocabulary-title .required-flage{color:#ef4444}.rtl-translated-vocbulary-wrapper{direction:rtl}\n"], components: [{ type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i5.ɵr, selector: "ng-option", inputs: ["disabled", "value"] }], directives: [{ type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1.TranslatePipe } });
20310
+ TranslatedVocabularySelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: { label: "label", bindValue: "bindValue", arbBindLabel: "arbBindLabel", engBindLabel: "engBindLabel", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", closeOnSelect: "closeOnSelect", hideSelectedItems: "hideSelectedItems", disabled: "disabled", clear: "clear", filter: "filter", useFilter: "useFilter", vocbularyId: "vocbularyId", mapingResponse: "mapingResponse", params: "params", getByDirectorySuggestion: "getByDirectorySuggestion" }, outputs: { onSelectItems: "onSelectItems" }, viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"translated-vocbulary-wrapper\" [ngClass]=\"{'rtl-translated-vocbulary-wrapper' : isArabic === true}\">\r\n <div class=\"vocabulary-title text-base font-bold text-accent-900 mb-0\">\r\n {{label | translate}}\r\n <span *ngIf=\"isRequired()\" class=\"required-flage\">*</span>\r\n </div>\r\n <ng-select\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [clearable]=\"clear\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelected]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (scrollToEnd)=\"onScrollToEnd()\"\r\n (change)=\"emitSelection($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"selection\"\r\n >\r\n <ng-option *ngFor=\"let option of buffer\" [value]=\"option[bindValue]\">{{isArabic ? option[bindLabel] : option[bindLabel]}}</ng-option>\r\n </ng-select>\r\n</div>\r\n", styles: [".translated-vocbulary-wrapper .vocabulary-title .required-flage{color:#ef4444}.rtl-translated-vocbulary-wrapper{direction:rtl}\n"], components: [{ type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i5.ɵr, selector: "ng-option", inputs: ["disabled", "value"] }], directives: [{ type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1.TranslatePipe } });
20304
20311
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslatedVocabularySelectComponent, decorators: [{
20305
20312
  type: Component,
20306
20313
  args: [{
@@ -20347,6 +20354,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
20347
20354
  type: Input
20348
20355
  }], params: [{
20349
20356
  type: Input
20357
+ }], getByDirectorySuggestion: [{
20358
+ type: Input
20350
20359
  }], onSelectItems: [{
20351
20360
  type: Output
20352
20361
  }] } });
@@ -20510,7 +20519,7 @@ class DynamicFieldsRendererComponent {
20510
20519
  }
20511
20520
  }
20512
20521
  DynamicFieldsRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFieldsRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20513
- DynamicFieldsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: { form: "form", agencyNameFilter: "agencyNameFilter", countryNameFilter: "countryNameFilter", mode: "mode", fields: "fields" }, ngImport: i0, template: "<div [formGroup]=\"form\" *ngIf=\"form\">\r\n <div class=\"renderer-container\">\r\n <div class=\"field-container\" *ngFor=\"let field of fields\">\r\n <ng-container *permission=\"{name: field.permission, entity: field.formControlName}\">\r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'text'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate}}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <input class=\"field-style\" [formControlName]=\"field.formControlName\" \r\n placeholder=\" {{ field.placeholder | translate}}\"/>\r\n </div>\r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'number'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate}}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <input min=\"1\" type=\"number\" class=\"field-style\" [formControlName]=\"field.formControlName\" \r\n placeholder=\" {{ field.placeholder | translate}}\"/>\r\n </div>\r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'date'\"> \r\n <cts-dynamic-form-hijri-dateitem\r\n [formControlName]=\"field.formControlName\"\r\n [label]=\"field.label\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n \r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'dynamic-vocabulary'\">\r\n <app-dynamic-form-vocabulary-item [label]=\"field.label\" [bindLabel]=\"field.bindLabel\"\r\n [bindValue]=\"field.bindValue\" placeholder=\"{{ field.placeholder | translate }}\" [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\" [closeOnSelect]=\"field.closeOnSelect\" [disabled]=\"field.disabled\" [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [vocabularyType]=\"field.vocabularyType\" \r\n [formControlName]=\"field.formControlName\">\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n \r\n <!-- <div class=\"single-field mb-3\" *ngIf=\"field.type === 'department-selector'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <app-dynamic-form-department\r\n [formControlName]=\"field.formControlName\"\r\n [placeholder]=\"field.placeholder\"\r\n [pp_departmentNestedTree]=\"field.pp_departmentNestedTree\"\r\n [pp_departmentTree]=\"field.pp_departmentTree\"\r\n [customPrefix]=\"field.customPrefix\"\r\n [customParentProperty]=\"field.customParentProperty\"\r\n [useCustomAddEditAction]=\"field.useCustomAddEditAction\"\r\n >\r\n </app-dynamic-form-department>\r\n </div> -->\r\n \r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'translated-vocabulary'\">\r\n <app-translated-vocabulary-select [label]=\"field.label\" [arbBindLabel]=\"field.arbBindLabel\" [engBindLabel]=\"field.engBindLabel\"\r\n [bindValue]=\"field.bindValue\" placeholder=\"{{ field.placeholder | translate }}\" [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\" [closeOnSelect]=\"field.closeOnSelect\" [hideSelectedItems]=\"field.hideSelectedItems\" [formControlName]=\"field.formControlName\"\r\n [vocbularyId]=\"field.vocbularyId\" [useFilter]=\"field.useFilter\" [filter]=\"field.filter === 'agencyName' ? agencyNameFilter : (field.filter === 'countryName' ? countryNameFilter : {})\"\r\n [params]=\"field.params || {}\">\r\n </app-translated-vocabulary-select>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [""], components: [{ type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder"], outputs: ["valueChanged"] }, { type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: ["label", "bindValue", "arbBindLabel", "engBindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "filter", "useFilter", "vocbularyId", "mapingResponse", "params"], outputs: ["onSelectItems"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { 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]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
20522
+ DynamicFieldsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: { form: "form", agencyNameFilter: "agencyNameFilter", countryNameFilter: "countryNameFilter", mode: "mode", fields: "fields" }, ngImport: i0, template: "<div [formGroup]=\"form\" *ngIf=\"form\">\r\n <div class=\"renderer-container\">\r\n <div class=\"field-container\" *ngFor=\"let field of fields\">\r\n <ng-container\r\n *permission=\"{ name: field.permission, entity: field.formControlName }\"\r\n >\r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'text'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n [formControlName]=\"field.formControlName\"\r\n placeholder=\" {{ field.placeholder | translate }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'number'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <input\r\n min=\"1\"\r\n type=\"number\"\r\n class=\"field-style\"\r\n [formControlName]=\"field.formControlName\"\r\n placeholder=\" {{ field.placeholder | translate }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\" *ngIf=\"field.type === 'date'\">\r\n <cts-dynamic-form-hijri-dateitem\r\n [formControlName]=\"field.formControlName\"\r\n [label]=\"field.label\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n\r\n <div\r\n class=\"single-field mb-3\"\r\n *ngIf=\"field.type === 'dynamic-vocabulary'\"\r\n >\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"field.label\"\r\n [bindLabel]=\"field.bindLabel\"\r\n [bindValue]=\"field.bindValue\"\r\n placeholder=\"{{ field.placeholder | translate }}\"\r\n [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\"\r\n [closeOnSelect]=\"field.closeOnSelect\"\r\n [disabled]=\"field.disabled\"\r\n [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [vocabularyType]=\"field.vocabularyType\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <!-- <div class=\"single-field mb-3\" *ngIf=\"field.type === 'department-selector'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <app-dynamic-form-department\r\n [formControlName]=\"field.formControlName\"\r\n [placeholder]=\"field.placeholder\"\r\n [pp_departmentNestedTree]=\"field.pp_departmentNestedTree\"\r\n [pp_departmentTree]=\"field.pp_departmentTree\"\r\n [customPrefix]=\"field.customPrefix\"\r\n [customParentProperty]=\"field.customParentProperty\"\r\n [useCustomAddEditAction]=\"field.useCustomAddEditAction\"\r\n >\r\n </app-dynamic-form-department>\r\n </div> -->\r\n\r\n <div\r\n class=\"single-field mb-3\"\r\n *ngIf=\"field.type === 'translated-vocabulary'\"\r\n >\r\n <app-translated-vocabulary-select\r\n [label]=\"field.label\"\r\n [arbBindLabel]=\"field.arbBindLabel\"\r\n [engBindLabel]=\"field.engBindLabel\"\r\n [bindValue]=\"field.bindValue\"\r\n placeholder=\"{{ field.placeholder | translate }}\"\r\n [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\"\r\n [closeOnSelect]=\"field.closeOnSelect\"\r\n [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [formControlName]=\"field.formControlName\"\r\n [vocbularyId]=\"field.vocbularyId\"\r\n [useFilter]=\"field.useFilter\"\r\n [filter]=\"\r\n field.filter === 'agencyName'\r\n ? agencyNameFilter\r\n : field.filter === 'countryName'\r\n ? countryNameFilter\r\n : {}\r\n \"\r\n [params]=\"field.params || {}\"\r\n [getByDirectorySuggestion]=\"field.getByDirectorySuggestion\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], components: [{ type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder"], outputs: ["valueChanged"] }, { type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: ["label", "bindValue", "arbBindLabel", "engBindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "filter", "useFilter", "vocbularyId", "mapingResponse", "params", "getByDirectorySuggestion"], outputs: ["onSelectItems"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { 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]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
20514
20523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFieldsRendererComponent, decorators: [{
20515
20524
  type: Component,
20516
20525
  args: [{