nuxeo-development-framework 4.4.4 → 4.4.5

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,9 +1,9 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { DxFormComponent } from 'devextreme-angular';
3
- import { concat, of, Subject } from 'rxjs';
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';
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";
2
+ import { DxFormComponent } from "devextreme-angular";
3
+ import { concat, of, Subject } from "rxjs";
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";
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../../../../shared-services/file-manager.service";
9
9
  import * as i2 from "../../../custom-toastr/services/custom-toastr.service";
@@ -20,6 +20,9 @@ export class AddToCollectionComponent extends BaseComponent {
20
20
  this.fileManagerService = fileManagerService;
21
21
  this.customToastrService = customToastrService;
22
22
  this.nuxeoDialogService = nuxeoDialogService;
23
+ this.createOperation = "Collection.Create";
24
+ this.addOperation = "Document.AddToCollection";
25
+ this.getCollectionPP = "PP_DMS_User_Collections";
23
26
  this.visibleChange = new EventEmitter();
24
27
  this.rtlEnabled = false;
25
28
  this.isSelected = true;
@@ -30,16 +33,16 @@ export class AddToCollectionComponent extends BaseComponent {
30
33
  e.preventDefault();
31
34
  this.loading = true;
32
35
  return this.fileManagerService
33
- .addToCollection(this.selectedItems, this.collectionid)
36
+ .addToCollection(this.selectedItems, this.collectionid, this.addOperation)
34
37
  .pipe(tap((res) => {
35
38
  this.loading = false;
36
39
  this.form.instance.resetValues();
37
40
  this.selectedTags = null;
38
41
  this.visible = false;
39
- this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION');
42
+ this.customToastrService.show("success", "TOASTER.SUCCESS", "TOASTER.DOCUMENT_ADDED_TO_COLLECTION");
40
43
  }, (err) => {
41
44
  this.loading = false;
42
- this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR');
45
+ this.customToastrService.show("error", "TOASTER.ERROR", "TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR");
43
46
  }));
44
47
  };
45
48
  }
@@ -61,12 +64,12 @@ export class AddToCollectionComponent extends BaseComponent {
61
64
  const options = {
62
65
  component: NdfNuxeoDialog,
63
66
  //TODO [Asem] how to put the wrapper ID
64
- panelClass: 'popUpParent',
67
+ panelClass: "popUpParent",
65
68
  config: {
66
- title: this.translateService.instant('FILE_MANAGER.ADD_TO_COLLECTION'),
69
+ title: this.translateService.instant("FILE_MANAGER.ADD_TO_COLLECTION"),
67
70
  contentTemplate: this.contentTemplate,
68
- actionsTemplate: this.actionsTemplate
69
- }
71
+ actionsTemplate: this.actionsTemplate,
72
+ },
70
73
  };
71
74
  this.nuxeoDialogService
72
75
  .open(options)
@@ -78,7 +81,7 @@ export class AddToCollectionComponent extends BaseComponent {
78
81
  emitSelection(event) {
79
82
  if (this.isSelected) {
80
83
  this.fileManagerService
81
- .createNewCollection(event.displayLabel)
84
+ .createNewCollection(event.displayLabel, this.createOperation)
82
85
  .subscribe((res) => {
83
86
  this.collectionid = res.uid;
84
87
  });
@@ -87,22 +90,26 @@ export class AddToCollectionComponent extends BaseComponent {
87
90
  this.collectionid = event.id;
88
91
  }
89
92
  loadItems() {
90
- let searchterm = '';
93
+ let searchterm = "";
91
94
  this.isSelected = false;
92
95
  let mycategories = [];
93
- this.items$ = concat(this.fileManagerService.getCollectionFromPP(searchterm).pipe(switchMap((res) => {
96
+ this.items$ = concat(this.fileManagerService
97
+ .getCollectionFromPP(searchterm, this.getCollectionPP)
98
+ .pipe(switchMap((res) => {
94
99
  res.entries.map((entry) => {
95
100
  mycategories.push({
96
101
  displayLabel: entry.title,
97
102
  id: entry.uid,
98
103
  path: entry.path,
99
- icon: entry.properties['common:icon']
104
+ icon: entry.properties["common:icon"],
100
105
  });
101
106
  });
102
107
  return of(mycategories);
103
108
  })), // default items
104
109
  this.tagsInput$.pipe(debounceTime(200), distinctUntilChanged(), tap(() => (this.tagsLoading = true)), switchMap((searchterm) => {
105
- return this.fileManagerService.getCollectionFromPP(searchterm).pipe(catchError(() => of([])), // empty list on error
110
+ return this.fileManagerService
111
+ .getCollectionFromPP(searchterm, this.getCollectionPP)
112
+ .pipe(catchError(() => of([])), // empty list on error
106
113
  switchMap((searchCat) => {
107
114
  let myInerCateg = [];
108
115
  this.tagsLoading = false;
@@ -112,7 +119,7 @@ export class AddToCollectionComponent extends BaseComponent {
112
119
  displayLabel: entry.title,
113
120
  id: entry.uid,
114
121
  path: entry.path,
115
- icon: entry.properties['common:icon']
122
+ icon: entry.properties["common:icon"],
116
123
  });
117
124
  });
118
125
  return of(myInerCateg);
@@ -121,23 +128,29 @@ export class AddToCollectionComponent extends BaseComponent {
121
128
  }
122
129
  }
123
130
  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 });
124
- 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: "<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<span\r\n\t\tclass=\"dx-button-text\"\r\n\t\t(click)=\"dialog.executeAction(onFormCollectionSubmit, [$event])\"\r\n\t>\r\n\t\t{{ 'FILE_MANAGER.ADD' | translate }}\r\n\t</span>\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 } });
131
+ AddToCollectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddToCollectionComponent, selector: "app-add-to-collection", inputs: { createOperation: "createOperation", addOperation: "addOperation", getCollectionPP: "getCollectionPP", 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: "<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<span\r\n\t\tclass=\"dx-button-text\"\r\n\t\t(click)=\"dialog.executeAction(onFormCollectionSubmit, [$event])\"\r\n\t>\r\n\t\t{{ 'FILE_MANAGER.ADD' | translate }}\r\n\t</span>\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 } });
125
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, decorators: [{
126
133
  type: Component,
127
134
  args: [{
128
- selector: 'app-add-to-collection',
129
- templateUrl: './add-to-collection.component.html',
130
- styleUrls: ['./add-to-collection.component.scss']
135
+ selector: "app-add-to-collection",
136
+ templateUrl: "./add-to-collection.component.html",
137
+ styleUrls: ["./add-to-collection.component.scss"],
131
138
  }]
132
139
  }], ctorParameters: function () { return [{ type: i1.FileManagerService }, { type: i2.CustomToastrService }, { type: i3.NuxeoDialogService }, { type: i0.Injector }]; }, propDecorators: { form: [{
133
140
  type: ViewChild,
134
141
  args: [DxFormComponent, { static: false }]
135
142
  }], contentTemplate: [{
136
143
  type: ViewChild,
137
- args: ['contentTemplate']
144
+ args: ["contentTemplate"]
138
145
  }], actionsTemplate: [{
139
146
  type: ViewChild,
140
- args: ['actionsTemplate']
147
+ args: ["actionsTemplate"]
148
+ }], createOperation: [{
149
+ type: Input
150
+ }], addOperation: [{
151
+ type: Input
152
+ }], getCollectionPP: [{
153
+ type: Input
141
154
  }], visible: [{
142
155
  type: Input
143
156
  }], visibleChange: [{
@@ -147,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
147
160
  }], selectedItems: [{
148
161
  type: Input
149
162
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2FkZC10by1jb2xsZWN0aW9uL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9hZGQtdG8tY29sbGVjdGlvbi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFDTixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsR0FBRyxFQUVILE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFnQzFELFlBQ1Msa0JBQXNDLEVBQ3BDLG1CQUF3QyxFQUMzQyxrQkFBc0MsRUFFN0MsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFD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ZixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDRSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFeEIsT0FBTztzQkFEVixLQUFLO2dCQWVOLGFBQWE7c0JBRFosTUFBTTtnQkFHUCxVQUFVO3NCQURULEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdEluamVjdG9yLFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0LFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0Vmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4Rm9ybUNvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IGNvbmNhdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuXHRkZWJvdW5jZVRpbWUsXHJcblx0ZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcblx0c3dpdGNoTWFwLFxyXG5cdGNhdGNoRXJyb3IsXHJcblx0dGFwLFxyXG5cdG1hcFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE5kZk51eGVvRGlhbG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL251eGVvLmRpYWxvZyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnV4ZW9EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL3NlcnZpY2VzL251eGVvLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nQWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1hZGQtdG8tY29sbGVjdGlvbicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRUb0NvbGxlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRAVmlld0NoaWxkKER4Rm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm06IER4Rm9ybUNvbXBvbmVudDtcclxuXHRAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBWaWV3Q2hpbGQoJ2FjdGlvbnNUZW1wbGF0ZScpIGFjdGlvbnNUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QElucHV0KClcclxuXHRzZXQgdmlzaWJsZSh2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAodGhpcy5fdmlzaWJsZSA9PT0gdmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHZhbHVlKSB7XHJcblx0XHRcdHRoaXMub3BlbkRpYWxvZygpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG5cdFx0dGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XHJcblx0fVxyXG5cdGdldCB2aXNpYmxlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcblx0fVxyXG5cdEBPdXRwdXQoKVxyXG5cdHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRASW5wdXQoKVxyXG5cdHJ0bEVuYWJsZWQgPSBmYWxzZTtcclxuXHRASW5wdXQoKVxyXG5cdHNlbGVjdGVkSXRlbXM6IGFueTtcclxuXHJcblx0aXNTZWxlY3RlZDogYm9vbGVhbiA9IHRydWU7XHJcblx0Y29sbGVjdGlvbmlkOiBhbnk7XHJcblx0c2VsZWN0ZWRUYWdzOiBhbnk7XHJcblx0aXRlbXMkOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHR0YWdzSW5wdXQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG5cdHRhZ3NMb2FkaW5nID0gZmFsc2U7XHJcblx0X3Zpc2libGUgPSBmYWxzZTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgZmlsZU1hbmFnZXJTZXJ2aWNlOiBGaWxlTWFuYWdlclNlcnZpY2UsXHJcblx0XHRwcm90ZWN0ZWQgY3VzdG9tVG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuXHRcdHB1YmxpYyBudXhlb0RpYWxvZ1NlcnZpY2U6IE51eGVvRGlhbG9nU2VydmljZSxcclxuXHJcblx0XHRpbmplY3RvcjogSW5qZWN0b3JcclxuXHQpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcblx0b3BlbkRpYWxvZygpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG9wdGlvbnM6IERpYWxvZ09wdGlvbnMgPSB7XHJcblx0XHRcdGNvbXBvbmVudDogTmRmTnV4ZW9EaWFsb2csXHJcblx0XHRcdC8vVE9ETyBbQXNlbV0gaG93IHRvIHB1dCB0aGUgd3JhcHBlciBJRFxyXG5cdFx0XHRwYW5lbENsYXNzOiAncG9wVXBQYXJlbnQnLFxyXG5cdFx0XHRjb25maWc6IHtcclxuXHRcdFx0XHR0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZJTEVfTUFOQUdFUi5BRERfVE9fQ09MTEVDVElPTicpLFxyXG5cdFx0XHRcdGNvbnRlbnRUZW1wbGF0ZTogdGhpcy5jb250ZW50VGVtcGxhdGUsXHJcblx0XHRcdFx0YWN0aW9uc1RlbXBsYXRlOiB0aGlzLmFjdGlvbnNUZW1wbGF0ZVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0dGhpcy5udXhlb0RpYWxvZ1NlcnZpY2VcclxuXHRcdFx0Lm9wZW4ob3B0aW9ucylcclxuXHRcdFx0LmFmdGVyQ2xvc2VkKClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy52aXNpYmxlID0gZmFsc2U7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZW1pdFNlbGVjdGlvbihldmVudCkge1xyXG5cdFx0aWYgKHRoaXMuaXNTZWxlY3RlZCkge1xyXG5cdFx0XHR0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG5cdFx0XHRcdC5jcmVhdGVOZXdDb2xsZWN0aW9uKGV2ZW50LmRpc3BsYXlMYWJlbClcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuY29sbGVjdGlvbmlkID0gcmVzLnVpZDtcclxuXHRcdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB0aGlzLmNvbGxlY3Rpb25pZCA9IGV2ZW50LmlkO1xyXG5cdH1cclxuXHJcblx0bG9hZEl0ZW1zKCkge1xyXG5cdFx0bGV0IHNlYXJjaHRlcm0gPSAnJztcclxuXHRcdHRoaXMuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0bGV0IG15Y2F0ZWdvcmllcyA9IFtdO1xyXG5cdFx0dGhpcy5pdGVtcyQgPSBjb25jYXQoXHJcblx0XHRcdHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSkucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRyZXMuZW50cmllcy5tYXAoKGVudHJ5KSA9PiB7XHJcblx0XHRcdFx0XHRcdG15Y2F0ZWdvcmllcy5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5TGFiZWw6IGVudHJ5LnRpdGxlLFxyXG5cdFx0XHRcdFx0XHRcdGlkOiBlbnRyeS51aWQsXHJcblx0XHRcdFx0XHRcdFx0cGF0aDogZW50cnkucGF0aCxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiBlbnRyeS5wcm9wZXJ0aWVzWydjb21tb246aWNvbiddXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRyZXR1cm4gb2YobXljYXRlZ29yaWVzKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpLCAvLyBkZWZhdWx0IGl0ZW1zXHJcblx0XHRcdHRoaXMudGFnc0lucHV0JC5waXBlKFxyXG5cdFx0XHRcdGRlYm91bmNlVGltZSgyMDApLFxyXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcblx0XHRcdFx0dGFwKCgpID0+ICh0aGlzLnRhZ3NMb2FkaW5nID0gdHJ1ZSkpLFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoc2VhcmNodGVybSkgPT4ge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSkucGlwZShcclxuXHRcdFx0XHRcdFx0Y2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLCAvLyBlbXB0eSBsaXN0IG9uIGVycm9yXHJcblx0XHRcdFx0XHRcdHN3aXRjaE1hcCgoc2VhcmNoQ2F0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IG15SW5lckNhdGVnID0gW107XHJcblx0XHRcdFx0XHRcdFx0dGhpcy50YWdzTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaXNTZWxlY3RlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0c2VhcmNoQ2F0LmVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0bXlJbmVyQ2F0ZWcucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXlMYWJlbDogZW50cnkudGl0bGUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGlkOiBlbnRyeS51aWQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHBhdGg6IGVudHJ5LnBhdGgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGljb246IGVudHJ5LnByb3BlcnRpZXNbJ2NvbW1vbjppY29uJ11cclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiBvZihteUluZXJDYXRlZyk7XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRvbkZvcm1Db2xsZWN0aW9uU3VibWl0OiBEaWFsb2dBY3Rpb25UeXBlID0gKGUpID0+IHtcclxuXHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0XHRyZXR1cm4gdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuXHRcdFx0LmFkZFRvQ29sbGVjdGlvbih0aGlzLnNlbGVjdGVkSXRlbXMsIHRoaXMuY29sbGVjdGlvbmlkKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHR0YXAoXHJcblx0XHRcdFx0XHQocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZvcm0uaW5zdGFuY2UucmVzZXRWYWx1ZXMoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFRhZ3MgPSBudWxsO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcblx0XHRcdFx0XHRcdFx0J3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdCdUT0FTVEVSLlNVQ0NFU1MnLFxyXG5cdFx0XHRcdFx0XHRcdCdUT0FTVEVSLkRPQ1VNRU5UX0FEREVEX1RPX0NPTExFQ1RJT04nXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0KGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcblx0XHRcdFx0XHRcdFx0J2Vycm9yJyxcclxuXHRcdFx0XHRcdFx0XHQnVE9BU1RFUi5FUlJPUicsXHJcblx0XHRcdFx0XHRcdFx0J1RPQVNURVIuRE9DVU1FTlRfQURERURfVE9fQ09MTEVDVElPTl9FUlJPUidcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblx0fTtcclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT5cclxuXHQ8Zm9ybT5cclxuXHRcdDxkeC1mb3JtXHJcblx0XHRcdGNsYXNzPVwiY29sbGVjdGlvbi1mb3JtLXdyYXBwZXJcIlxyXG5cdFx0XHQjY3JlYXRlRm9ybVxyXG5cdFx0XHRbZm9ybURhdGFdPVwiZm9ybURhdGFcIlxyXG5cdFx0XHRbZGlzYWJsZWRdPVwibG9hZGluZ1wiXHJcblx0XHQ+XHJcblx0XHRcdDxkeGktaXRlbSBlZGl0b3JUeXBlPVwiZHhUZXh0Qm94XCI+XHJcblx0XHRcdFx0PG5nLXNlbGVjdFxyXG5cdFx0XHRcdFx0W2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuXHRcdFx0XHRcdGJpbmRMYWJlbD1cImRpc3BsYXlMYWJlbFwiXHJcblx0XHRcdFx0XHRbYWRkVGFnXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0YWRkVGFnVGV4dD1cIkFkZCBjb2xsZWN0aW9uXCJcclxuXHRcdFx0XHRcdFttdWx0aXBsZV09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbaGlkZVNlbGVjdGVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0W21pblRlcm1MZW5ndGhdPVwiMFwiXHJcblx0XHRcdFx0XHRbbG9hZGluZ109XCJ0YWdzTG9hZGluZ1wiXHJcblx0XHRcdFx0XHR0eXBlVG9TZWFyY2hUZXh0PVwic2VhcmNoXCJcclxuXHRcdFx0XHRcdFt0eXBlYWhlYWRdPVwidGFnc0lucHV0JFwiXHJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGFnc1wiXHJcblx0XHRcdFx0XHRyZXF1aXJlZFxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJ7eyAnVk9DQUJVTEFSWS5TRUxFQ1RfSVRFTScgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0bmFtZT1cInNlbGVjdGVkSXRlbVwiXHJcblx0XHRcdFx0XHQoY2hhbmdlKT1cImVtaXRTZWxlY3Rpb24oJGV2ZW50KVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbmctc2VsZWN0PlxyXG5cdFx0XHQ8L2R4aS1pdGVtPlxyXG5cdFx0PC9keC1mb3JtPlxyXG5cdDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYWN0aW9uc1RlbXBsYXRlIGxldC1kaWFsb2c9XCJkaWFsb2dcIj5cclxuXHQ8c3BhblxyXG5cdFx0Y2xhc3M9XCJkeC1idXR0b24tdGV4dFwiXHJcblx0XHQoY2xpY2spPVwiZGlhbG9nLmV4ZWN1dGVBY3Rpb24ob25Gb3JtQ29sbGVjdGlvblN1Ym1pdCwgWyRldmVudF0pXCJcclxuXHQ+XHJcblx0XHR7eyAnRklMRV9NQU5BR0VSLkFERCcgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2FkZC10by1jb2xsZWN0aW9uL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9hZGQtdG8tY29sbGVjdGlvbi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsR0FBRyxHQUVKLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFxQ3pELFlBQ1Usa0JBQXNDLEVBQ3BDLG1CQUF3QyxFQUMzQyxrQkFBc0MsRUFFN0MsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFD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cEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7bU1BRWdELElBQUk7c0JBQWxELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDZixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDRSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFbkIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQWVOLGFBQWE7c0JBRFosTUFBTTtnQkFHUCxVQUFVO3NCQURULEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IER4Rm9ybUNvbXBvbmVudCB9IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHsgY29uY2F0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIHN3aXRjaE1hcCxcclxuICBjYXRjaEVycm9yLFxyXG4gIHRhcCxcclxuICBtYXAsXHJcbn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9maWxlLW1hbmFnZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEaWFsb2dPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBOZGZOdXhlb0RpYWxvZyB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9udXhlby1kaWFsb2cvbnV4ZW8uZGlhbG9nXCI7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOdXhlb0RpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL3NlcnZpY2VzL251eGVvLWRpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERpYWxvZ0FjdGlvblR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL21vZGVscy9kaWFsb2ctb3B0aW9uLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtYWRkLXRvLWNvbGxlY3Rpb25cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkVG9Db2xsZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChEeEZvcm1Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JtOiBEeEZvcm1Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImNvbnRlbnRUZW1wbGF0ZVwiKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoXCJhY3Rpb25zVGVtcGxhdGVcIikgYWN0aW9uc1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KCkgY3JlYXRlT3BlcmF0aW9uOiBzdHJpbmcgPSBcIkNvbGxlY3Rpb24uQ3JlYXRlXCI7XHJcbiAgQElucHV0KCkgYWRkT3BlcmF0aW9uOiBzdHJpbmcgPSBcIkRvY3VtZW50LkFkZFRvQ29sbGVjdGlvblwiO1xyXG4gIEBJbnB1dCgpIGdldENvbGxlY3Rpb25QUDogc3RyaW5nID0gXCJQUF9ETVNfVXNlcl9Db2xsZWN0aW9uc1wiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLl92aXNpYmxlID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5vcGVuRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XHJcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLl92aXNpYmxlKTtcclxuICB9XHJcbiAgZ2V0IHZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcbiAgQE91dHB1dCgpXHJcbiAgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgcnRsRW5hYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRJdGVtczogYW55O1xyXG5cclxuICBpc1NlbGVjdGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBjb2xsZWN0aW9uaWQ6IGFueTtcclxuICBzZWxlY3RlZFRhZ3M6IGFueTtcclxuICBpdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIHRhZ3NJbnB1dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgdGFnc0xvYWRpbmcgPSBmYWxzZTtcclxuICBfdmlzaWJsZSA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmaWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjdXN0b21Ub2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHVibGljIG51eGVvRGlhbG9nU2VydmljZTogTnV4ZW9EaWFsb2dTZXJ2aWNlLFxyXG5cclxuICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICBvcGVuRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgb3B0aW9uczogRGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgY29tcG9uZW50OiBOZGZOdXhlb0RpYWxvZyxcclxuICAgICAgLy9UT0RPIFtBc2VtXSBob3cgdG8gcHV0IHRoZSB3cmFwcGVyIElEXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFwicG9wVXBQYXJlbnRcIixcclxuICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiRklMRV9NQU5BR0VSLkFERF9UT19DT0xMRUNUSU9OXCIpLFxyXG4gICAgICAgIGNvbnRlbnRUZW1wbGF0ZTogdGhpcy5jb250ZW50VGVtcGxhdGUsXHJcbiAgICAgICAgYWN0aW9uc1RlbXBsYXRlOiB0aGlzLmFjdGlvbnNUZW1wbGF0ZSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLm51eGVvRGlhbG9nU2VydmljZVxyXG4gICAgICAub3BlbihvcHRpb25zKVxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWl0U2VsZWN0aW9uKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlXHJcbiAgICAgICAgLmNyZWF0ZU5ld0NvbGxlY3Rpb24oZXZlbnQuZGlzcGxheUxhYmVsLCB0aGlzLmNyZWF0ZU9wZXJhdGlvbilcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29sbGVjdGlvbmlkID0gcmVzLnVpZDtcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB0aGlzLmNvbGxlY3Rpb25pZCA9IGV2ZW50LmlkO1xyXG4gIH1cclxuXHJcbiAgbG9hZEl0ZW1zKCkge1xyXG4gICAgbGV0IHNlYXJjaHRlcm0gPSBcIlwiO1xyXG4gICAgdGhpcy5pc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBsZXQgbXljYXRlZ29yaWVzID0gW107XHJcbiAgICB0aGlzLml0ZW1zJCA9IGNvbmNhdChcclxuICAgICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuICAgICAgICAuZ2V0Q29sbGVjdGlvbkZyb21QUChzZWFyY2h0ZXJtLCB0aGlzLmdldENvbGxlY3Rpb25QUClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHN3aXRjaE1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmVzLmVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAgIG15Y2F0ZWdvcmllcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbDogZW50cnkudGl0bGUsXHJcbiAgICAgICAgICAgICAgICBpZDogZW50cnkudWlkLFxyXG4gICAgICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aCxcclxuICAgICAgICAgICAgICAgIGljb246IGVudHJ5LnByb3BlcnRpZXNbXCJjb21tb246aWNvblwiXSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBvZihteWNhdGVnb3JpZXMpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLCAvLyBkZWZhdWx0IGl0ZW1zXHJcbiAgICAgIHRoaXMudGFnc0lucHV0JC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFwKCgpID0+ICh0aGlzLnRhZ3NMb2FkaW5nID0gdHJ1ZSkpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoc2VhcmNodGVybSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRDb2xsZWN0aW9uRnJvbVBQKHNlYXJjaHRlcm0sIHRoaXMuZ2V0Q29sbGVjdGlvblBQKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksIC8vIGVtcHR5IGxpc3Qgb24gZXJyb3JcclxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHNlYXJjaENhdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IG15SW5lckNhdGVnID0gW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhZ3NMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgc2VhcmNoQ2F0LmVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBteUluZXJDYXRlZy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TGFiZWw6IGVudHJ5LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBlbnRyeS51aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aCxcclxuICAgICAgICAgICAgICAgICAgICBpY29uOiBlbnRyeS5wcm9wZXJ0aWVzW1wiY29tbW9uOmljb25cIl0sXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobXlJbmVyQ2F0ZWcpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uRm9ybUNvbGxlY3Rpb25TdWJtaXQ6IERpYWxvZ0FjdGlvblR5cGUgPSAoZSkgPT4ge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG4gICAgICAuYWRkVG9Db2xsZWN0aW9uKHRoaXMuc2VsZWN0ZWRJdGVtcywgdGhpcy5jb2xsZWN0aW9uaWQsIHRoaXMuYWRkT3BlcmF0aW9uKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uaW5zdGFuY2UucmVzZXRWYWx1ZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhZ3MgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgXCJUT0FTVEVSLlNVQ0NFU1NcIixcclxuICAgICAgICAgICAgICBcIlRPQVNURVIuRE9DVU1FTlRfQURERURfVE9fQ09MTEVDVElPTlwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgIFwiVE9BU1RFUi5FUlJPUlwiLFxyXG4gICAgICAgICAgICAgIFwiVE9BU1RFUi5ET0NVTUVOVF9BRERFRF9UT19DT0xMRUNUSU9OX0VSUk9SXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgfTtcclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT5cclxuXHQ8Zm9ybT5cclxuXHRcdDxkeC1mb3JtXHJcblx0XHRcdGNsYXNzPVwiY29sbGVjdGlvbi1mb3JtLXdyYXBwZXJcIlxyXG5cdFx0XHQjY3JlYXRlRm9ybVxyXG5cdFx0XHRbZm9ybURhdGFdPVwiZm9ybURhdGFcIlxyXG5cdFx0XHRbZGlzYWJsZWRdPVwibG9hZGluZ1wiXHJcblx0XHQ+XHJcblx0XHRcdDxkeGktaXRlbSBlZGl0b3JUeXBlPVwiZHhUZXh0Qm94XCI+XHJcblx0XHRcdFx0PG5nLXNlbGVjdFxyXG5cdFx0XHRcdFx0W2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuXHRcdFx0XHRcdGJpbmRMYWJlbD1cImRpc3BsYXlMYWJlbFwiXHJcblx0XHRcdFx0XHRbYWRkVGFnXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0YWRkVGFnVGV4dD1cIkFkZCBjb2xsZWN0aW9uXCJcclxuXHRcdFx0XHRcdFttdWx0aXBsZV09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbaGlkZVNlbGVjdGVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0W21pblRlcm1MZW5ndGhdPVwiMFwiXHJcblx0XHRcdFx0XHRbbG9hZGluZ109XCJ0YWdzTG9hZGluZ1wiXHJcblx0XHRcdFx0XHR0eXBlVG9TZWFyY2hUZXh0PVwic2VhcmNoXCJcclxuXHRcdFx0XHRcdFt0eXBlYWhlYWRdPVwidGFnc0lucHV0JFwiXHJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGFnc1wiXHJcblx0XHRcdFx0XHRyZXF1aXJlZFxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJ7eyAnVk9DQUJVTEFSWS5TRUxFQ1RfSVRFTScgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0bmFtZT1cInNlbGVjdGVkSXRlbVwiXHJcblx0XHRcdFx0XHQoY2hhbmdlKT1cImVtaXRTZWxlY3Rpb24oJGV2ZW50KVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbmctc2VsZWN0PlxyXG5cdFx0XHQ8L2R4aS1pdGVtPlxyXG5cdFx0PC9keC1mb3JtPlxyXG5cdDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYWN0aW9uc1RlbXBsYXRlIGxldC1kaWFsb2c9XCJkaWFsb2dcIj5cclxuXHQ8c3BhblxyXG5cdFx0Y2xhc3M9XCJkeC1idXR0b24tdGV4dFwiXHJcblx0XHQoY2xpY2spPVwiZGlhbG9nLmV4ZWN1dGVBY3Rpb24ob25Gb3JtQ29sbGVjdGlvblN1Ym1pdCwgWyRldmVudF0pXCJcclxuXHQ+XHJcblx0XHR7eyAnRklMRV9NQU5BR0VSLkFERCcgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29yZS9tb2RlbHMvYXBpLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRyeU1vZGVsLCBRdWlja0ZpbHRlciB9IGZyb20gJy4vYmFzZS1yZXNwb25zZS5tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZU1vZGVsPFRFbnRyeSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBFbnRyeU1vZGVsPiB7XHJcbiAgJ2VudGl0eS10eXBlJzogc3RyaW5nO1xyXG4gIGlzUGFnaW5hYmxlOiBib29sZWFuO1xyXG4gIHJlc3VsdHNDb3VudDogbnVtYmVyO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgbWF4UGFnZVNpemU6IG51bWJlcjtcclxuICByZXN1bHRzQ291bnRMaW1pdDogbnVtYmVyO1xyXG4gIGN1cnJlbnRQYWdlU2l6ZTogbnVtYmVyO1xyXG4gIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlcjtcclxuICBjdXJyZW50UGFnZU9mZnNldDogbnVtYmVyO1xyXG4gIG51bWJlck9mUGFnZXM6IG51bWJlcjtcclxuICBpc1ByZXZpb3VzUGFnZUF2YWlsYWJsZTogYm9vbGVhbjtcclxuICBpc05leHRQYWdlQXZhaWxhYmxlOiBib29sZWFuO1xyXG4gIGlzTGFzdFBhZ2VBdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgaXNTb3J0YWJsZTogYm9vbGVhbjtcclxuICBoYXNFcnJvcjogYm9vbGVhbjtcclxuICBlcnJvck1lc3NhZ2U6IGFueTtcclxuICB0b3RhbFNpemU/OiBudW1iZXI7XHJcbiAgcGFnZUluZGV4OiBudW1iZXI7XHJcbiAgcGFnZUNvdW50OiBudW1iZXI7XHJcbiAgcXVpY2tGaWx0ZXJzPzogUXVpY2tGaWx0ZXJbXTtcclxuICBlbnRyaWVzOiBURW50cnlbXTtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29yZS9tb2RlbHMvYXBpLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRyeU1vZGVsLCBRdWlja0ZpbHRlciB9IGZyb20gJy4vYmFzZS1yZXNwb25zZS5tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZU1vZGVsPFRFbnRyeSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBFbnRyeU1vZGVsPiB7XHJcbiAgJ2VudGl0eS10eXBlJzogc3RyaW5nO1xyXG4gIGlzUGFnaW5hYmxlOiBib29sZWFuO1xyXG4gIHJlc3VsdHNDb3VudDogbnVtYmVyO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgbWF4UGFnZVNpemU6IG51bWJlcjtcclxuICByZXN1bHRzQ291bnRMaW1pdDogbnVtYmVyO1xyXG4gIGN1cnJlbnRQYWdlU2l6ZTogbnVtYmVyO1xyXG4gIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlcjtcclxuICBjdXJyZW50UGFnZU9mZnNldDogbnVtYmVyO1xyXG4gIG51bWJlck9mUGFnZXM6IG51bWJlcjtcclxuICBpc1ByZXZpb3VzUGFnZUF2YWlsYWJsZTogYm9vbGVhbjtcclxuICBpc05leHRQYWdlQXZhaWxhYmxlOiBib29sZWFuO1xyXG4gIGlzTGFzdFBhZ2VBdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgaXNTb3J0YWJsZTogYm9vbGVhbjtcclxuICBoYXNFcnJvcjogYm9vbGVhbjtcclxuICBlcnJvck1lc3NhZ2U6IGFueTtcclxuICB0b3RhbFNpemU/OiBudW1iZXI7XHJcbiAgcGFnZUluZGV4OiBudW1iZXI7XHJcbiAgcGFnZUNvdW50OiBudW1iZXI7XHJcbiAgcXVpY2tGaWx0ZXJzPzogUXVpY2tGaWx0ZXJbXTtcclxuICBlbnRyaWVzOiBURW50cnlbXTtcclxuICBhZ2dyZWdhdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcbiJdfQ==
@@ -19133,6 +19133,9 @@ class AddToCollectionComponent extends BaseComponent {
19133
19133
  this.fileManagerService = fileManagerService;
19134
19134
  this.customToastrService = customToastrService;
19135
19135
  this.nuxeoDialogService = nuxeoDialogService;
19136
+ this.createOperation = "Collection.Create";
19137
+ this.addOperation = "Document.AddToCollection";
19138
+ this.getCollectionPP = "PP_DMS_User_Collections";
19136
19139
  this.visibleChange = new EventEmitter();
19137
19140
  this.rtlEnabled = false;
19138
19141
  this.isSelected = true;
@@ -19143,16 +19146,16 @@ class AddToCollectionComponent extends BaseComponent {
19143
19146
  e.preventDefault();
19144
19147
  this.loading = true;
19145
19148
  return this.fileManagerService
19146
- .addToCollection(this.selectedItems, this.collectionid)
19149
+ .addToCollection(this.selectedItems, this.collectionid, this.addOperation)
19147
19150
  .pipe(tap((res) => {
19148
19151
  this.loading = false;
19149
19152
  this.form.instance.resetValues();
19150
19153
  this.selectedTags = null;
19151
19154
  this.visible = false;
19152
- this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION');
19155
+ this.customToastrService.show("success", "TOASTER.SUCCESS", "TOASTER.DOCUMENT_ADDED_TO_COLLECTION");
19153
19156
  }, (err) => {
19154
19157
  this.loading = false;
19155
- this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR');
19158
+ this.customToastrService.show("error", "TOASTER.ERROR", "TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR");
19156
19159
  }));
19157
19160
  };
19158
19161
  }
@@ -19174,12 +19177,12 @@ class AddToCollectionComponent extends BaseComponent {
19174
19177
  const options = {
19175
19178
  component: NdfNuxeoDialog,
19176
19179
  //TODO [Asem] how to put the wrapper ID
19177
- panelClass: 'popUpParent',
19180
+ panelClass: "popUpParent",
19178
19181
  config: {
19179
- title: this.translateService.instant('FILE_MANAGER.ADD_TO_COLLECTION'),
19182
+ title: this.translateService.instant("FILE_MANAGER.ADD_TO_COLLECTION"),
19180
19183
  contentTemplate: this.contentTemplate,
19181
- actionsTemplate: this.actionsTemplate
19182
- }
19184
+ actionsTemplate: this.actionsTemplate,
19185
+ },
19183
19186
  };
19184
19187
  this.nuxeoDialogService
19185
19188
  .open(options)
@@ -19191,7 +19194,7 @@ class AddToCollectionComponent extends BaseComponent {
19191
19194
  emitSelection(event) {
19192
19195
  if (this.isSelected) {
19193
19196
  this.fileManagerService
19194
- .createNewCollection(event.displayLabel)
19197
+ .createNewCollection(event.displayLabel, this.createOperation)
19195
19198
  .subscribe((res) => {
19196
19199
  this.collectionid = res.uid;
19197
19200
  });
@@ -19200,22 +19203,26 @@ class AddToCollectionComponent extends BaseComponent {
19200
19203
  this.collectionid = event.id;
19201
19204
  }
19202
19205
  loadItems() {
19203
- let searchterm = '';
19206
+ let searchterm = "";
19204
19207
  this.isSelected = false;
19205
19208
  let mycategories = [];
19206
- this.items$ = concat(this.fileManagerService.getCollectionFromPP(searchterm).pipe(switchMap((res) => {
19209
+ this.items$ = concat(this.fileManagerService
19210
+ .getCollectionFromPP(searchterm, this.getCollectionPP)
19211
+ .pipe(switchMap((res) => {
19207
19212
  res.entries.map((entry) => {
19208
19213
  mycategories.push({
19209
19214
  displayLabel: entry.title,
19210
19215
  id: entry.uid,
19211
19216
  path: entry.path,
19212
- icon: entry.properties['common:icon']
19217
+ icon: entry.properties["common:icon"],
19213
19218
  });
19214
19219
  });
19215
19220
  return of(mycategories);
19216
19221
  })), // default items
19217
19222
  this.tagsInput$.pipe(debounceTime(200), distinctUntilChanged(), tap(() => (this.tagsLoading = true)), switchMap((searchterm) => {
19218
- return this.fileManagerService.getCollectionFromPP(searchterm).pipe(catchError(() => of([])), // empty list on error
19223
+ return this.fileManagerService
19224
+ .getCollectionFromPP(searchterm, this.getCollectionPP)
19225
+ .pipe(catchError(() => of([])), // empty list on error
19219
19226
  switchMap((searchCat) => {
19220
19227
  let myInerCateg = [];
19221
19228
  this.tagsLoading = false;
@@ -19225,7 +19232,7 @@ class AddToCollectionComponent extends BaseComponent {
19225
19232
  displayLabel: entry.title,
19226
19233
  id: entry.uid,
19227
19234
  path: entry.path,
19228
- icon: entry.properties['common:icon']
19235
+ icon: entry.properties["common:icon"],
19229
19236
  });
19230
19237
  });
19231
19238
  return of(myInerCateg);
@@ -19234,23 +19241,29 @@ class AddToCollectionComponent extends BaseComponent {
19234
19241
  }
19235
19242
  }
19236
19243
  AddToCollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, deps: [{ token: FileManagerService }, { token: CustomToastrService }, { token: NuxeoDialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
19237
- 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: "<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<span\r\n\t\tclass=\"dx-button-text\"\r\n\t\t(click)=\"dialog.executeAction(onFormCollectionSubmit, [$event])\"\r\n\t>\r\n\t\t{{ 'FILE_MANAGER.ADD' | translate }}\r\n\t</span>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i4$4.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$2.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: i3$3.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: i2$6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2$6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe } });
19244
+ AddToCollectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddToCollectionComponent, selector: "app-add-to-collection", inputs: { createOperation: "createOperation", addOperation: "addOperation", getCollectionPP: "getCollectionPP", 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: "<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<span\r\n\t\tclass=\"dx-button-text\"\r\n\t\t(click)=\"dialog.executeAction(onFormCollectionSubmit, [$event])\"\r\n\t>\r\n\t\t{{ 'FILE_MANAGER.ADD' | translate }}\r\n\t</span>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i4$4.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$2.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: i3$3.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: i2$6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2$6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe } });
19238
19245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, decorators: [{
19239
19246
  type: Component,
19240
19247
  args: [{
19241
- selector: 'app-add-to-collection',
19242
- templateUrl: './add-to-collection.component.html',
19243
- styleUrls: ['./add-to-collection.component.scss']
19248
+ selector: "app-add-to-collection",
19249
+ templateUrl: "./add-to-collection.component.html",
19250
+ styleUrls: ["./add-to-collection.component.scss"],
19244
19251
  }]
19245
19252
  }], ctorParameters: function () { return [{ type: FileManagerService }, { type: CustomToastrService }, { type: NuxeoDialogService }, { type: i0.Injector }]; }, propDecorators: { form: [{
19246
19253
  type: ViewChild,
19247
19254
  args: [DxFormComponent, { static: false }]
19248
19255
  }], contentTemplate: [{
19249
19256
  type: ViewChild,
19250
- args: ['contentTemplate']
19257
+ args: ["contentTemplate"]
19251
19258
  }], actionsTemplate: [{
19252
19259
  type: ViewChild,
19253
- args: ['actionsTemplate']
19260
+ args: ["actionsTemplate"]
19261
+ }], createOperation: [{
19262
+ type: Input
19263
+ }], addOperation: [{
19264
+ type: Input
19265
+ }], getCollectionPP: [{
19266
+ type: Input
19254
19267
  }], visible: [{
19255
19268
  type: Input
19256
19269
  }], visibleChange: [{