nuxeo-development-framework 4.1.3 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +510 -433
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +28 -29
  4. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +13 -10
  5. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +58 -42
  6. package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +99 -66
  7. package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +107 -90
  8. package/esm2015/lib/components/permissions/permissions.module.js +23 -7
  9. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +21 -21
  10. package/fesm2015/nuxeo-development-framework.js +334 -259
  11. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  12. package/lib/components/dynamic-form/components/department-form/department-form.component.d.ts +4 -4
  13. package/lib/components/dynamic-form/dynamic-form.module.d.ts +2 -1
  14. package/lib/components/file-manger/components/add-to-collection/add-to-collection.component.d.ts +11 -5
  15. package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +9 -8
  16. package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +8 -6
  17. package/lib/components/permissions/permissions.module.d.ts +2 -1
  18. package/lib/shared/components/nuxeo-dialog/nuxeo.dialog.d.ts +5 -5
  19. package/package.json +1 -1
@@ -1,41 +1,77 @@
1
- import { __awaiter } from "tslib";
2
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
2
  import { DxFormComponent } from 'devextreme-angular';
4
3
  import { concat, of, Subject } from 'rxjs';
5
4
  import { debounceTime, distinctUntilChanged, switchMap, catchError, tap } from 'rxjs/operators';
5
+ import { NdfNuxeoDialog } from '../../../../shared/components/nuxeo-dialog/nuxeo.dialog';
6
+ import { BaseComponent } from '../../../../shared/components/base/base.component';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../../../../shared-services/file-manager.service";
8
9
  import * as i2 from "../../../custom-toastr/services/custom-toastr.service";
9
- import * as i3 from "devextreme-angular";
10
- import * as i4 from "devextreme-angular/ui/nested";
11
- import * as i5 from "@ng-select/ng-select";
12
- import * as i6 from "devextreme-angular/core";
10
+ import * as i3 from "../../../../shared/components/nuxeo-dialog/services/nuxeo-dialog.service";
11
+ import * as i4 from "devextreme-angular";
12
+ import * as i5 from "devextreme-angular/ui/nested";
13
+ import * as i6 from "@ng-select/ng-select";
13
14
  import * as i7 from "@angular/forms";
14
15
  import * as i8 from "@angular/common";
15
16
  import * as i9 from "@ngx-translate/core";
16
- export class AddToCollectionComponent {
17
- constructor(fileManagerService, customToastrService) {
17
+ export class AddToCollectionComponent extends BaseComponent {
18
+ constructor(fileManagerService, customToastrService, nuxeoDialogService, injector) {
19
+ super(injector);
18
20
  this.fileManagerService = fileManagerService;
19
21
  this.customToastrService = customToastrService;
22
+ this.nuxeoDialogService = nuxeoDialogService;
20
23
  this.visibleChange = new EventEmitter();
21
24
  this.rtlEnabled = false;
22
- this.loading = false;
23
25
  this.isSelected = true;
24
26
  this.tagsInput$ = new Subject();
25
27
  this.tagsLoading = false;
26
28
  this._visible = false;
29
+ this.onFormCollectionSubmit = (e) => {
30
+ e.preventDefault();
31
+ this.loading = true;
32
+ return this.fileManagerService
33
+ .addToCollection(this.selectedItems, this.collectionid)
34
+ .pipe(tap((res) => {
35
+ this.loading = false;
36
+ this.form.instance.resetValues();
37
+ this.selectedTags = null;
38
+ this.visible = false;
39
+ this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION');
40
+ }, (err) => {
41
+ this.loading = false;
42
+ this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR');
43
+ }));
44
+ };
27
45
  }
28
46
  set visible(value) {
29
47
  if (this._visible === value) {
30
48
  return;
31
49
  }
50
+ if (value) {
51
+ this.openDialog();
52
+ }
32
53
  this._visible = value;
33
54
  this.visibleChange.emit(this._visible);
34
55
  }
35
56
  get visible() {
36
57
  return this._visible;
37
58
  }
38
- ngOnInit() {
59
+ ngOnInit() { }
60
+ openDialog() {
61
+ const options = {
62
+ component: NdfNuxeoDialog,
63
+ config: {
64
+ title: this.translateService.instant('FILE_MANAGER.ADD_TO_COLLECTION'),
65
+ contentTemplate: this.contentTemplate,
66
+ actionsTemplate: this.actionsTemplate
67
+ }
68
+ };
69
+ this.nuxeoDialogService
70
+ .open(options)
71
+ .afterClosed()
72
+ .subscribe((res) => {
73
+ this.visible = false;
74
+ });
39
75
  }
40
76
  emitSelection(event) {
41
77
  if (this.isSelected) {
@@ -53,7 +89,7 @@ export class AddToCollectionComponent {
53
89
  this.isSelected = false;
54
90
  let mycategories = [];
55
91
  this.items$ = concat(this.fileManagerService.getCollectionFromPP(searchterm).pipe(switchMap((res) => {
56
- res.entries.map(entry => {
92
+ res.entries.map((entry) => {
57
93
  mycategories.push({
58
94
  displayLabel: entry.title,
59
95
  id: entry.uid,
@@ -64,15 +100,12 @@ export class AddToCollectionComponent {
64
100
  return of(mycategories);
65
101
  })), // default items
66
102
  this.tagsInput$.pipe(debounceTime(200), distinctUntilChanged(), tap(() => (this.tagsLoading = true)), switchMap((searchterm) => {
67
- // if (searchterm && searchterm.length) {
68
- return this.fileManagerService
69
- .getCollectionFromPP(searchterm)
70
- .pipe(catchError(() => of([])), // empty list on error
103
+ return this.fileManagerService.getCollectionFromPP(searchterm).pipe(catchError(() => of([])), // empty list on error
71
104
  switchMap((searchCat) => {
72
105
  let myInerCateg = [];
73
106
  this.tagsLoading = false;
74
107
  this.isSelected = true;
75
- searchCat.entries.map(entry => {
108
+ searchCat.entries.map((entry) => {
76
109
  myInerCateg.push({
77
110
  displayLabel: entry.title,
78
111
  id: entry.uid,
@@ -82,34 +115,11 @@ export class AddToCollectionComponent {
82
115
  });
83
116
  return of(myInerCateg);
84
117
  }));
85
- // } else {
86
- // this.tagsLoading = false;
87
- // this.isSelected = true;
88
- // return of();
89
- // }
90
118
  })));
91
119
  }
92
- onFormCollectionSubmit(e) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- e.preventDefault();
95
- this.loading = true;
96
- this.fileManagerService
97
- .addToCollection(this.selectedItems, this.collectionid)
98
- .subscribe((res) => {
99
- this.loading = false;
100
- this.form.instance.resetValues();
101
- this.selectedTags = null;
102
- this.visible = false;
103
- this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION');
104
- }, (err) => {
105
- this.loading = false;
106
- this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR');
107
- });
108
- });
109
- }
110
120
  }
111
- AddToCollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
112
- AddToCollectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddToCollectionComponent, selector: "app-add-to-collection", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItems: "selectedItems" }, outputs: { visibleChange: "visibleChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }], ngImport: i0, template: "<dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" id=\"photo-popup\" [width]=\"500\" [height]=\"200\"\r\n (onShown)=\"loadItems()\" closeOnOutsideClick=\"true\" title=\"{{ 'FILE_MANAGER.ADD_TO_COLLECTION' | translate }}\"\r\n [(visible)]=\"visible\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <form (submit)=\"onFormCollectionSubmit($event)\">\r\n <dx-form class=\"collection-form-wrapper\" #createForm [formData]=\"formData\" [disabled]=\"loading\">\r\n <dxi-item editorType=\"dxTextBox\">\r\n <ng-select [items]=\"items$ | async\" bindLabel=\"displayLabel\" [addTag]=\"true\"\r\n addTagText=\"Add collection\" [multiple]=\"false\" [hideSelected]=\"true\" [minTermLength]=\"0\"\r\n [loading]=\"tagsLoading\" typeToSearchText=\"search\" [typeahead]=\"tagsInput$\"\r\n [(ngModel)]=\"selectedTags\" required placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\" name=\"selectedItem\" (change)=\"emitSelection($event)\">\r\n </ng-select>\r\n </dxi-item>\r\n <dxi-item itemType=\"button\">\r\n <dxo-button-options width=\"30%\" type=\"danger\" [useSubmitBehavior]=\"true\"\r\n [template]=\"'addToCollectionTemplate'\">\r\n </dxo-button-options>\r\n </dxi-item>\r\n <ng-container *dxTemplate=\"let item of 'addToCollectionTemplate'\">\r\n <span class=\"dx-button-text\">\r\n <ng-container *ngIf=\"loading; else notLoading\">\r\n <dx-load-indicator width=\"24px\" height=\"24px\" [visible]=\"true\"></dx-load-indicator>\r\n </ng-container>\r\n <ng-template #notLoading>{{\r\n \"FILE_MANAGER.ADD\" | translate\r\n }}</ng-template>\r\n </span>\r\n </ng-container>\r\n </dx-form>\r\n </form>\r\n </div>\r\n</dx-popup>", styles: [""], components: [{ type: i3.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxFormComponent, selector: "dx-form", inputs: ["accessKey", "activeStateEnabled", "alignItemLabels", "alignItemLabelsInAllGroups", "colCount", "colCountByScreen", "customizeItem", "disabled", "elementAttr", "focusStateEnabled", "formData", "height", "hint", "hoverStateEnabled", "items", "labelLocation", "labelMode", "minColWidth", "optionalMark", "readOnly", "requiredMark", "requiredMessage", "rtlEnabled", "screenByWidth", "scrollingEnabled", "showColonAfterLabel", "showOptionalMark", "showRequiredMark", "showValidationSummary", "tabIndex", "validationGroup", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onEditorEnterKey", "onFieldDataChanged", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "alignItemLabelsChange", "alignItemLabelsInAllGroupsChange", "colCountChange", "colCountByScreenChange", "customizeItemChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formDataChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemsChange", "labelLocationChange", "labelModeChange", "minColWidthChange", "optionalMarkChange", "readOnlyChange", "requiredMarkChange", "requiredMessageChange", "rtlEnabledChange", "screenByWidthChange", "scrollingEnabledChange", "showColonAfterLabelChange", "showOptionalMarkChange", "showRequiredMarkChange", "showValidationSummaryChange", "tabIndexChange", "validationGroupChange", "visibleChange", "widthChange"] }, { type: i4.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { 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: i4.DxoButtonOptionsComponent, selector: "dxo-button-options", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"] }], directives: [{ type: i6.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i9.TranslatePipe, "async": i8.AsyncPipe } });
121
+ AddToCollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }, { token: i3.NuxeoDialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
122
+ AddToCollectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddToCollectionComponent, selector: "app-add-to-collection", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItems: "selectedItems" }, outputs: { visibleChange: "visibleChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: ["actionsTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" id=\"photo-popup\" [width]=\"500\" [height]=\"200\"\r\n (onShown)=\"loadItems()\" closeOnOutsideClick=\"true\" title=\"{{ '' | translate }}\"\r\n [(visible)]=\"visible\">\r\n\r\n</dx-popup>\r\n\r\n\r\n -->\r\n<ng-template #contentTemplate>\r\n\t<form>\r\n\t\t<dx-form\r\n\t\t\tclass=\"collection-form-wrapper\"\r\n\t\t\t#createForm\r\n\t\t\t[formData]=\"formData\"\r\n\t\t\t[disabled]=\"loading\"\r\n\t\t>\r\n\t\t\t<dxi-item editorType=\"dxTextBox\">\r\n\t\t\t\t<ng-select\r\n\t\t\t\t\t[items]=\"items$ | async\"\r\n\t\t\t\t\tbindLabel=\"displayLabel\"\r\n\t\t\t\t\t[addTag]=\"true\"\r\n\t\t\t\t\taddTagText=\"Add collection\"\r\n\t\t\t\t\t[multiple]=\"false\"\r\n\t\t\t\t\t[hideSelected]=\"true\"\r\n\t\t\t\t\t[minTermLength]=\"0\"\r\n\t\t\t\t\t[loading]=\"tagsLoading\"\r\n\t\t\t\t\ttypeToSearchText=\"search\"\r\n\t\t\t\t\t[typeahead]=\"tagsInput$\"\r\n\t\t\t\t\t[(ngModel)]=\"selectedTags\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t\tplaceholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n\t\t\t\t\tname=\"selectedItem\"\r\n\t\t\t\t\t(change)=\"emitSelection($event)\"\r\n\t\t\t\t>\r\n\t\t\t\t</ng-select>\r\n\t\t\t</dxi-item>\r\n\t\t</dx-form>\r\n\t</form>\r\n</ng-template>\r\n\r\n<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t<button\r\n\t\tclass=\"submission-button px-5\"\r\n\t\t(click)=\"dialog.executeAction(onFormCollectionSubmit, [$event])\"\r\n\t>\r\n\t\t{{ 'FILE_MANAGER.ADD' | translate }}\r\n\t</button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i4.DxFormComponent, selector: "dx-form", inputs: ["accessKey", "activeStateEnabled", "alignItemLabels", "alignItemLabelsInAllGroups", "colCount", "colCountByScreen", "customizeItem", "disabled", "elementAttr", "focusStateEnabled", "formData", "height", "hint", "hoverStateEnabled", "items", "labelLocation", "labelMode", "minColWidth", "optionalMark", "readOnly", "requiredMark", "requiredMessage", "rtlEnabled", "screenByWidth", "scrollingEnabled", "showColonAfterLabel", "showOptionalMark", "showRequiredMark", "showValidationSummary", "tabIndex", "validationGroup", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onEditorEnterKey", "onFieldDataChanged", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "alignItemLabelsChange", "alignItemLabelsInAllGroupsChange", "colCountChange", "colCountByScreenChange", "customizeItemChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formDataChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemsChange", "labelLocationChange", "labelModeChange", "minColWidthChange", "optionalMarkChange", "readOnlyChange", "requiredMarkChange", "requiredMessageChange", "rtlEnabledChange", "screenByWidthChange", "scrollingEnabledChange", "showColonAfterLabelChange", "showOptionalMarkChange", "showRequiredMarkChange", "showValidationSummaryChange", "tabIndexChange", "validationGroupChange", "visibleChange", "widthChange"] }, { type: i5.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { type: i6.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"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i8.AsyncPipe, "translate": i9.TranslatePipe } });
113
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, decorators: [{
114
124
  type: Component,
115
125
  args: [{
@@ -117,9 +127,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
117
127
  templateUrl: './add-to-collection.component.html',
118
128
  styleUrls: ['./add-to-collection.component.scss']
119
129
  }]
120
- }], ctorParameters: function () { return [{ type: i1.FileManagerService }, { type: i2.CustomToastrService }]; }, propDecorators: { form: [{
130
+ }], ctorParameters: function () { return [{ type: i1.FileManagerService }, { type: i2.CustomToastrService }, { type: i3.NuxeoDialogService }, { type: i0.Injector }]; }, propDecorators: { form: [{
121
131
  type: ViewChild,
122
132
  args: [DxFormComponent, { static: false }]
133
+ }], contentTemplate: [{
134
+ type: ViewChild,
135
+ args: ['contentTemplate']
136
+ }], actionsTemplate: [{
137
+ type: ViewChild,
138
+ args: ['actionsTemplate']
123
139
  }], visible: [{
124
140
  type: Input
125
141
  }], visibleChange: [{
@@ -129,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
129
145
  }], selectedItems: [{
130
146
  type: Input
131
147
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2FkZC10by1jb2xsZWN0aW9uL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9hZGQtdG8tY29sbGVjdGlvbi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTckcsTUFBTSxPQUFPLHdCQUF3QjtJQTRCbkMsWUFDVSxrQkFBc0MsRUFDcEMsbUJBQXdDO1FBRDFDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWhCcEQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXhDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFJbkIsWUFBTyxHQUFHLEtBQUss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ZSxFQUNmLDRDQUE0QyxDQUM3QyxDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFDTixDQUFDO0tBQUE7O3NIQTVIVSx3QkFBd0I7MEdBQXhCLHdCQUF3QiwwT0FDeEIsZUFBZSxnRENiNUIsbW9FQWlDVzs0RkRyQkUsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNsRDsySUFFZ0QsSUFBSTtzQkFBbEQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV6QyxPQUFPO3NCQURWLEtBQUs7Z0JBWU4sYUFBYTtzQkFEWixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeEZvcm1Db21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBjb25jYXQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgY2F0Y2hFcnJvciwgdGFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9maWxlLW1hbmFnZXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hZGQtdG8tY29sbGVjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRUb0NvbGxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHhGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogRHhGb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuX3Zpc2libGUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuICBAT3V0cHV0KClcclxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KClcclxuICBydGxFbmFibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZEl0ZW1zOiBhbnk7XHJcblxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpc1NlbGVjdGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBjb2xsZWN0aW9uaWQ6IGFueTtcclxuICBzZWxlY3RlZFRhZ3M6IGFueTtcclxuICBpdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIHRhZ3NJbnB1dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgdGFnc0xvYWRpbmcgPSBmYWxzZTtcclxuICBfdmlzaWJsZSA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmaWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjdXN0b21Ub2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlXHJcblxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZW1pdFNlbGVjdGlvbihldmVudCkge1xyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVOZXdDb2xsZWN0aW9uKGV2ZW50LmRpc3BsYXlMYWJlbClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29sbGVjdGlvbmlkID0gcmVzLnVpZDtcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB0aGlzLmNvbGxlY3Rpb25pZCA9IGV2ZW50LmlkO1xyXG4gIH1cclxuXHJcbiAgbG9hZEl0ZW1zKCkge1xyXG4gICAgbGV0IHNlYXJjaHRlcm0gPSAnJztcclxuICAgIHRoaXMuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgbGV0IG15Y2F0ZWdvcmllcyA9IFtdO1xyXG4gICAgdGhpcy5pdGVtcyQgPSBjb25jYXQoXHJcbiAgICAgIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSkucGlwZShzd2l0Y2hNYXAoKHJlczphbnkpPT4ge1xyXG4gICAgICAgIHJlcy5lbnRyaWVzLm1hcChlbnRyeSA9PiB7XHJcbiAgICAgICAgICAgICAgICBteWNhdGVnb3JpZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUxhYmVsIDogZW50cnkudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWQgOiBlbnRyeS51aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aCxcclxuICAgICAgICAgICAgICAgICAgICBpY29uIDplbnRyeS5wcm9wZXJ0aWVzWydjb21tb246aWNvbiddXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIG9mKG15Y2F0ZWdvcmllcyk7XHJcbiAgICB9KSkgLCAvLyBkZWZhdWx0IGl0ZW1zXHJcbiAgICAgIHRoaXMudGFnc0lucHV0JC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFwKCgpID0+ICh0aGlzLnRhZ3NMb2FkaW5nID0gdHJ1ZSkpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoc2VhcmNodGVybSkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYgKHNlYXJjaHRlcm0gJiYgc2VhcmNodGVybS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSlcclxuICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSwgLy8gZW1wdHkgbGlzdCBvbiBlcnJvclxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChzZWFyY2hDYXQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgbGV0IG15SW5lckNhdGVnID0gW107XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFnc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgc2VhcmNoQ2F0LmVudHJpZXMubWFwKGVudHJ5ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBteUluZXJDYXRlZy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUxhYmVsIDogZW50cnkudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogZW50cnkudWlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBlbnRyeS5wYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uIDplbnRyeS5wcm9wZXJ0aWVzWydjb21tb246aWNvbiddXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobXlJbmVyQ2F0ZWcpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAgIC8vICAgdGhpcy50YWdzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgLy8gICByZXR1cm4gb2YoKTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25Gb3JtQ29sbGVjdGlvblN1Ym1pdChlKSB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuICAgICAgLmFkZFRvQ29sbGVjdGlvbih0aGlzLnNlbGVjdGVkSXRlbXMsIHRoaXMuY29sbGVjdGlvbmlkKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmluc3RhbmNlLnJlc2V0VmFsdWVzKCk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFncyA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICdUT0FTVEVSLlNVQ0NFU1MnLFxyXG4gICAgICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9BRERFRF9UT19DT0xMRUNUSU9OJ1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQURERURfVE9fQ09MTEVDVElPTl9FUlJPUidcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGR4LXBvcHVwIGNsYXNzPVwicG9wVXBQYXJlbnRcIiBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJwaG90by1wb3B1cFwiIFt3aWR0aF09XCI1MDBcIiBbaGVpZ2h0XT1cIjIwMFwiXHJcbiAgICAob25TaG93bik9XCJsb2FkSXRlbXMoKVwiIGNsb3NlT25PdXRzaWRlQ2xpY2s9XCJ0cnVlXCIgdGl0bGU9XCJ7eyAnRklMRV9NQU5BR0VSLkFERF9UT19DT0xMRUNUSU9OJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICBbKHZpc2libGUpXT1cInZpc2libGVcIj5cclxuICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cclxuICAgICAgICA8Zm9ybSAoc3VibWl0KT1cIm9uRm9ybUNvbGxlY3Rpb25TdWJtaXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8ZHgtZm9ybSBjbGFzcz1cImNvbGxlY3Rpb24tZm9ybS13cmFwcGVyXCIgI2NyZWF0ZUZvcm0gW2Zvcm1EYXRhXT1cImZvcm1EYXRhXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxkeGktaXRlbSBlZGl0b3JUeXBlPVwiZHhUZXh0Qm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIiBiaW5kTGFiZWw9XCJkaXNwbGF5TGFiZWxcIiBbYWRkVGFnXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRUYWdUZXh0PVwiQWRkIGNvbGxlY3Rpb25cIiBbbXVsdGlwbGVdPVwiZmFsc2VcIiBbaGlkZVNlbGVjdGVkXT1cInRydWVcIiBbbWluVGVybUxlbmd0aF09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidGFnc0xvYWRpbmdcIiB0eXBlVG9TZWFyY2hUZXh0PVwic2VhcmNoXCIgW3R5cGVhaGVhZF09XCJ0YWdzSW5wdXQkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRhZ3NcIiByZXF1aXJlZCBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdWT0NBQlVMQVJZLlNFTEVDVF9JVEVNJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIH19XCIgbmFtZT1cInNlbGVjdGVkSXRlbVwiIChjaGFuZ2UpPVwiZW1pdFNlbGVjdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1pdGVtIGl0ZW1UeXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1idXR0b24tb3B0aW9ucyB3aWR0aD1cIjMwJVwiIHR5cGU9XCJkYW5nZXJcIiBbdXNlU3VibWl0QmVoYXZpb3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCInYWRkVG9Db2xsZWN0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keG8tYnV0dG9uLW9wdGlvbnM+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZHhUZW1wbGF0ZT1cImxldCBpdGVtIG9mICdhZGRUb0NvbGxlY3Rpb25UZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImR4LWJ1dHRvbi10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1sb2FkLWluZGljYXRvciB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHgtbG9hZC1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmc+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRklMRV9NQU5BR0VSLkFERFwiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZHgtZm9ybT5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuPC9keC1wb3B1cD4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2FkZC10by1jb2xsZWN0aW9uL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9hZGQtdG8tY29sbGVjdGlvbi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFDTixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsR0FBRyxFQUVILE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFnQzFELFlBQ1Msa0JBQXNDLEVBQ3BDLG1CQUF3QyxFQUMzQyxrQkFBc0MsRUFFN0MsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFD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QUNFLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUV4QixPQUFPO3NCQURWLEtBQUs7Z0JBZU4sYUFBYTtzQkFEWixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5qZWN0b3IsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRUZW1wbGF0ZVJlZixcclxuXHRWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhGb3JtQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgY29uY2F0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG5cdGRlYm91bmNlVGltZSxcclxuXHRkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuXHRzd2l0Y2hNYXAsXHJcblx0Y2F0Y2hFcnJvcixcclxuXHR0YXAsXHJcblx0bWFwXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDdXN0b21Ub2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWxlTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZmlsZS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL21vZGVscy9kaWFsb2ctb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTmRmTnV4ZW9EaWFsb2cgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9udXhlby1kaWFsb2cvbnV4ZW8uZGlhbG9nJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOdXhlb0RpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9udXhlby1kaWFsb2cvc2VydmljZXMvbnV4ZW8tZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL21vZGVscy9kaWFsb2ctb3B0aW9uLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWFkZC10by1jb2xsZWN0aW9uJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFRvQ29sbGVjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBWaWV3Q2hpbGQoRHhGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogRHhGb3JtQ29tcG9uZW50O1xyXG5cdEBWaWV3Q2hpbGQoJ2NvbnRlbnRUZW1wbGF0ZScpIGNvbnRlbnRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QFZpZXdDaGlsZCgnYWN0aW9uc1RlbXBsYXRlJykgYWN0aW9uc1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRASW5wdXQoKVxyXG5cdHNldCB2aXNpYmxlKHZhbHVlOiBhbnkpIHtcclxuXHRcdGlmICh0aGlzLl92aXNpYmxlID09PSB2YWx1ZSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZiAodmFsdWUpIHtcclxuXHRcdFx0dGhpcy5vcGVuRGlhbG9nKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLl92aXNpYmxlID0gdmFsdWU7XHJcblx0XHR0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLl92aXNpYmxlKTtcclxuXHR9XHJcblx0Z2V0IHZpc2libGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuXHR9XHJcblx0QE91dHB1dCgpXHJcblx0dmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBJbnB1dCgpXHJcblx0cnRsRW5hYmxlZCA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpXHJcblx0c2VsZWN0ZWRJdGVtczogYW55O1xyXG5cclxuXHRpc1NlbGVjdGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHRjb2xsZWN0aW9uaWQ6IGFueTtcclxuXHRzZWxlY3RlZFRhZ3M6IGFueTtcclxuXHRpdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG5cdHRhZ3NJbnB1dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcblx0dGFnc0xvYWRpbmcgPSBmYWxzZTtcclxuXHRfdmlzaWJsZSA9IGZhbHNlO1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBmaWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBjdXN0b21Ub2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHVibGljIG51eGVvRGlhbG9nU2VydmljZTogTnV4ZW9EaWFsb2dTZXJ2aWNlLFxyXG5cclxuXHRcdGluamVjdG9yOiBJbmplY3RvclxyXG5cdCkge1xyXG5cdFx0c3VwZXIoaW5qZWN0b3IpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuXHRvcGVuRGlhbG9nKCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgb3B0aW9uczogRGlhbG9nT3B0aW9ucyA9IHtcclxuXHRcdFx0Y29tcG9uZW50OiBOZGZOdXhlb0RpYWxvZyxcclxuXHRcdFx0Y29uZmlnOiB7XHJcblx0XHRcdFx0dGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGSUxFX01BTkFHRVIuQUREX1RPX0NPTExFQ1RJT04nKSxcclxuXHRcdFx0XHRjb250ZW50VGVtcGxhdGU6IHRoaXMuY29udGVudFRlbXBsYXRlLFxyXG5cdFx0XHRcdGFjdGlvbnNUZW1wbGF0ZTogdGhpcy5hY3Rpb25zVGVtcGxhdGVcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHRcdHRoaXMubnV4ZW9EaWFsb2dTZXJ2aWNlXHJcblx0XHRcdC5vcGVuKG9wdGlvbnMpXHJcblx0XHRcdC5hZnRlckNsb3NlZCgpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGVtaXRTZWxlY3Rpb24oZXZlbnQpIHtcclxuXHRcdGlmICh0aGlzLmlzU2VsZWN0ZWQpIHtcclxuXHRcdFx0dGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuXHRcdFx0XHQuY3JlYXRlTmV3Q29sbGVjdGlvbihldmVudC5kaXNwbGF5TGFiZWwpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmNvbGxlY3Rpb25pZCA9IHJlcy51aWQ7XHJcblx0XHRcdFx0fSk7XHJcblx0XHR9IGVsc2UgdGhpcy5jb2xsZWN0aW9uaWQgPSBldmVudC5pZDtcclxuXHR9XHJcblxyXG5cdGxvYWRJdGVtcygpIHtcclxuXHRcdGxldCBzZWFyY2h0ZXJtID0gJyc7XHJcblx0XHR0aGlzLmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRcdGxldCBteWNhdGVnb3JpZXMgPSBbXTtcclxuXHRcdHRoaXMuaXRlbXMkID0gY29uY2F0KFxyXG5cdFx0XHR0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5nZXRDb2xsZWN0aW9uRnJvbVBQKHNlYXJjaHRlcm0pLnBpcGUoXHJcblx0XHRcdFx0c3dpdGNoTWFwKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0cmVzLmVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRteWNhdGVnb3JpZXMucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0ZGlzcGxheUxhYmVsOiBlbnRyeS50aXRsZSxcclxuXHRcdFx0XHRcdFx0XHRpZDogZW50cnkudWlkLFxyXG5cdFx0XHRcdFx0XHRcdHBhdGg6IGVudHJ5LnBhdGgsXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogZW50cnkucHJvcGVydGllc1snY29tbW9uOmljb24nXVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKG15Y2F0ZWdvcmllcyk7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KSwgLy8gZGVmYXVsdCBpdGVtc1xyXG5cdFx0XHR0aGlzLnRhZ3NJbnB1dCQucGlwZShcclxuXHRcdFx0XHRkZWJvdW5jZVRpbWUoMjAwKSxcclxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG5cdFx0XHRcdHRhcCgoKSA9PiAodGhpcy50YWdzTG9hZGluZyA9IHRydWUpKSxcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHNlYXJjaHRlcm0pID0+IHtcclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5nZXRDb2xsZWN0aW9uRnJvbVBQKHNlYXJjaHRlcm0pLnBpcGUoXHJcblx0XHRcdFx0XHRcdGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSwgLy8gZW1wdHkgbGlzdCBvbiBlcnJvclxyXG5cdFx0XHRcdFx0XHRzd2l0Y2hNYXAoKHNlYXJjaENhdCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBteUluZXJDYXRlZyA9IFtdO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudGFnc0xvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHNlYXJjaENhdC5lbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdG15SW5lckNhdGVnLnB1c2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5TGFiZWw6IGVudHJ5LnRpdGxlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZDogZW50cnkudWlkLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRwYXRoOiBlbnRyeS5wYXRoLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uOiBlbnRyeS5wcm9wZXJ0aWVzWydjb21tb246aWNvbiddXHJcblx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb2YobXlJbmVyQ2F0ZWcpO1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0b25Gb3JtQ29sbGVjdGlvblN1Ym1pdDogRGlhbG9nQWN0aW9uVHlwZSA9IChlKSA9PiB7XHJcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0cmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlXHJcblx0XHRcdC5hZGRUb0NvbGxlY3Rpb24odGhpcy5zZWxlY3RlZEl0ZW1zLCB0aGlzLmNvbGxlY3Rpb25pZClcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0dGFwKFxyXG5cdFx0XHRcdFx0KHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5mb3JtLmluc3RhbmNlLnJlc2V0VmFsdWVzKCk7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWdzID0gbnVsbDtcclxuXHRcdFx0XHRcdFx0dGhpcy52aXNpYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG5cdFx0XHRcdFx0XHRcdCdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdFx0XHQnVE9BU1RFUi5TVUNDRVNTJyxcclxuXHRcdFx0XHRcdFx0XHQnVE9BU1RFUi5ET0NVTUVOVF9BRERFRF9UT19DT0xMRUNUSU9OJ1xyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG5cdFx0XHRcdFx0XHRcdCdlcnJvcicsXHJcblx0XHRcdFx0XHRcdFx0J1RPQVNURVIuRVJST1InLFxyXG5cdFx0XHRcdFx0XHRcdCdUT0FTVEVSLkRPQ1VNRU5UX0FEREVEX1RPX0NPTExFQ1RJT05fRVJST1InXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpO1xyXG5cdH07XHJcbn1cclxuIiwiPCEtLSA8ZHgtcG9wdXAgY2xhc3M9XCJwb3BVcFBhcmVudFwiIFtydGxFbmFibGVkXT1cInJ0bEVuYWJsZWRcIiBpZD1cInBob3RvLXBvcHVwXCIgW3dpZHRoXT1cIjUwMFwiIFtoZWlnaHRdPVwiMjAwXCJcclxuICAgIChvblNob3duKT1cImxvYWRJdGVtcygpXCIgY2xvc2VPbk91dHNpZGVDbGljaz1cInRydWVcIiB0aXRsZT1cInt7ICcnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgIFsodmlzaWJsZSldPVwidmlzaWJsZVwiPlxyXG5cclxuPC9keC1wb3B1cD5cclxuXHJcblxyXG4gLS0+XHJcbjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxyXG5cdDxmb3JtPlxyXG5cdFx0PGR4LWZvcm1cclxuXHRcdFx0Y2xhc3M9XCJjb2xsZWN0aW9uLWZvcm0td3JhcHBlclwiXHJcblx0XHRcdCNjcmVhdGVGb3JtXHJcblx0XHRcdFtmb3JtRGF0YV09XCJmb3JtRGF0YVwiXHJcblx0XHRcdFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcclxuXHRcdD5cclxuXHRcdFx0PGR4aS1pdGVtIGVkaXRvclR5cGU9XCJkeFRleHRCb3hcIj5cclxuXHRcdFx0XHQ8bmctc2VsZWN0XHJcblx0XHRcdFx0XHRbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxyXG5cdFx0XHRcdFx0YmluZExhYmVsPVwiZGlzcGxheUxhYmVsXCJcclxuXHRcdFx0XHRcdFthZGRUYWddPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRhZGRUYWdUZXh0PVwiQWRkIGNvbGxlY3Rpb25cIlxyXG5cdFx0XHRcdFx0W211bHRpcGxlXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdFtoaWRlU2VsZWN0ZWRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRbbWluVGVybUxlbmd0aF09XCIwXCJcclxuXHRcdFx0XHRcdFtsb2FkaW5nXT1cInRhZ3NMb2FkaW5nXCJcclxuXHRcdFx0XHRcdHR5cGVUb1NlYXJjaFRleHQ9XCJzZWFyY2hcIlxyXG5cdFx0XHRcdFx0W3R5cGVhaGVhZF09XCJ0YWdzSW5wdXQkXCJcclxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwic2VsZWN0ZWRUYWdzXCJcclxuXHRcdFx0XHRcdHJlcXVpcmVkXHJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cInt7ICdWT0NBQlVMQVJZLlNFTEVDVF9JVEVNJyB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0XHRuYW1lPVwic2VsZWN0ZWRJdGVtXCJcclxuXHRcdFx0XHRcdChjaGFuZ2UpPVwiZW1pdFNlbGVjdGlvbigkZXZlbnQpXCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0PC9uZy1zZWxlY3Q+XHJcblx0XHRcdDwvZHhpLWl0ZW0+XHJcblx0XHQ8L2R4LWZvcm0+XHJcblx0PC9mb3JtPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhY3Rpb25zVGVtcGxhdGUgbGV0LWRpYWxvZz1cImRpYWxvZ1wiPlxyXG5cdDxidXR0b25cclxuXHRcdGNsYXNzPVwic3VibWlzc2lvbi1idXR0b24gcHgtNVwiXHJcblx0XHQoY2xpY2spPVwiZGlhbG9nLmV4ZWN1dGVBY3Rpb24ob25Gb3JtQ29sbGVjdGlvblN1Ym1pdCwgWyRldmVudF0pXCJcclxuXHQ+XHJcblx0XHR7eyAnRklMRV9NQU5BR0VSLkFERCcgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19