onshore-forms 0.0.23 → 0.0.25

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,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Optional, Output, Self } from '@angular/core';
2
+ import { OnshoreFormTemplateLayout } from '../../enums/form.enums';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/forms";
4
5
  import * as i2 from "primeng/dynamicdialog";
@@ -21,6 +22,7 @@ export class OnshoreFormImageItemComponent {
21
22
  this.imageReady = new EventEmitter();
22
23
  this.selectFromMedia = new EventEmitter();
23
24
  this.isLoading = new EventEmitter();
25
+ this.OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;
24
26
  this.defaultImageSettings = {
25
27
  imageWidth: 400,
26
28
  imageHeight: 400,
@@ -31,7 +33,19 @@ export class OnshoreFormImageItemComponent {
31
33
  mediaSelectionEnabled: true,
32
34
  deleteEnabled: true,
33
35
  placeholderImage: '',
34
- placeholderIcon: 'fa fa-image fa-10x'
36
+ placeholderIcon: 'fa fa-image fa-10x',
37
+ containerWidth: 250,
38
+ containerHeight: 250,
39
+ imageQuality: 100,
40
+ format: 'png',
41
+ alignImage: 'center',
42
+ cropperPreviewWidth: 400,
43
+ cropperPreviewHeight: 400,
44
+ webcamWidth: 400,
45
+ webcamHeight: 400,
46
+ circleCropper: false,
47
+ maxFileSize: 6400000,
48
+ backgroundColor: 'white'
35
49
  };
36
50
  this.image = '';
37
51
  this.disabled = false;
@@ -122,22 +136,48 @@ export class OnshoreFormImageItemComponent {
122
136
  this.imageSettings.aspectRatio = this.defaultImageSettings.aspectRatio;
123
137
  if (!imageSettings.containWithinAspectRatio)
124
138
  this.imageSettings.containWithinAspectRatio = this.defaultImageSettings.containWithinAspectRatio;
125
- if (!imageSettings.imageSelectionEnabled)
139
+ if (imageSettings.imageSelectionEnabled == null)
126
140
  this.imageSettings.imageSelectionEnabled = this.defaultImageSettings.imageSelectionEnabled;
127
- if (!imageSettings.mediaSelectionEnabled)
141
+ if (imageSettings.mediaSelectionEnabled == null)
128
142
  this.imageSettings.mediaSelectionEnabled = this.defaultImageSettings.mediaSelectionEnabled;
129
- if (!imageSettings.webcamSelectionEnabled)
143
+ if (imageSettings.webcamSelectionEnabled == null)
130
144
  this.imageSettings.webcamSelectionEnabled = this.defaultImageSettings.webcamSelectionEnabled;
131
- if (!imageSettings.deleteEnabled)
145
+ if (imageSettings.deleteEnabled == null)
132
146
  this.imageSettings.deleteEnabled = this.defaultImageSettings.deleteEnabled;
147
+ if (imageSettings.containerWidth == null)
148
+ this.imageSettings.containerWidth = this.defaultImageSettings.containerWidth;
149
+ if (imageSettings.containerHeight == null)
150
+ this.imageSettings.containerHeight = this.defaultImageSettings.containerHeight;
151
+ if (imageSettings.imageQuality == null)
152
+ this.imageSettings.imageQuality = this.defaultImageSettings.imageQuality;
153
+ if (imageSettings.format == null)
154
+ this.imageSettings.format = this.defaultImageSettings.format;
155
+ if (imageSettings.alignImage == null)
156
+ this.imageSettings.alignImage = this.defaultImageSettings.alignImage;
157
+ if (imageSettings.cropperPreviewWidth == null)
158
+ this.imageSettings.cropperPreviewWidth = this.defaultImageSettings.cropperPreviewWidth;
159
+ if (imageSettings.cropperPreviewHeight == null)
160
+ this.imageSettings.cropperPreviewHeight = this.defaultImageSettings.cropperPreviewHeight;
161
+ if (imageSettings.circleCropper == null)
162
+ this.imageSettings.circleCropper = this.defaultImageSettings.circleCropper;
163
+ if (imageSettings.maxFileSize == null)
164
+ this.imageSettings.maxFileSize = this.defaultImageSettings.maxFileSize;
165
+ if (imageSettings.backgroundColor == null)
166
+ this.imageSettings.backgroundColor = this.defaultImageSettings.backgroundColor;
167
+ if (imageSettings.webcamWidth == null)
168
+ this.imageSettings.webcamWidth = this.defaultImageSettings.webcamWidth;
169
+ if (imageSettings.webcamHeight == null)
170
+ this.imageSettings.webcamHeight = this.defaultImageSettings.webcamHeight;
133
171
  }
172
+ this.removeImage();
173
+ this.cdr.markForCheck();
134
174
  }
135
175
  }
136
176
  OnshoreFormImageItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: OnshoreFormImageItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.DialogService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
137
- OnshoreFormImageItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: OnshoreFormImageItemComponent, selector: "onshore-form-image-item", inputs: { formTemplate: "formTemplate", imageSettings: "imageSettings" }, outputs: { imageDeleted: "imageDeleted", imageCleared: "imageCleared", imageReady: "imageReady", selectFromMedia: "selectFromMedia", isLoading: "isLoading" }, usesOnChanges: true, ngImport: i0, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center flex-wrap\">\n\n <div class=\"position-relative flex justify-content-center align-items-center onshore-border-gray-4 border-solid border-1\" style=\"background-color: white\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n imageStyle=\"position: absolut; height: 250px; width: 250px\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n placeholderStyle=\"width: 250px; height: 250px\">\n </onshore-image-placeholder>\n </div>\n\n <div class=\"flex flex-column m-4\">\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.imageSelectionEnabled\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"onshore-button-primary mb-2\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </button>\n\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.webcamSelectionEnabled\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </button>\n\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.mediaSelectionEnabled\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </button>\n\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.deleteEnabled\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n class=\"onshore-button-light\"\n (click)=\"removeImage()\"\n [disabled]=\"!image || disabled\">\n </button>\n\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\">\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [resizeToWidth]=\"imageSettings.imageWidth\"\n [resizeToHeight]=\"imageSettings.imageHeight\"\n [containWithinAspectRatio]=\"imageSettings.containWithinAspectRatio\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n backgroundColor=\"transparent\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\">\n <onshore-webcam *ngIf=\"webcamDialogVisible\" (shot)=\"getWebcamImage($event)\" (canceled)=\"webcamDialogVisible = false\"></onshore-webcam>\n</p-dialog>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: i7.OnshoreImagePlaceholderComponent, selector: "onshore-image-placeholder", inputs: ["placeholderIcon", "placeholderImage", "image", "imageStyle", "placeholderStyle", "showLoader"] }, { kind: "component", type: i8.OnshoreFormItemContainer, selector: "onshore-form-item-container", inputs: ["formTemplate", "ngControl"] }, { kind: "component", type: i9.OnshoreImageChooserComponent, selector: "onshore-image-chooser", inputs: ["imageQuality", "resizeToHeight", "resizeToWidth", "backgroundColor", "format", "alignImage", "containWithinAspectRatio", "aspectRatio", "cropperPreviewHeight", "cropperPreviewWidth", "circleCropper", "autoSave", "inverseColor"], outputs: ["choosen", "canceled"] }, { kind: "component", type: i10.WebcamComponent, selector: "onshore-webcam", inputs: ["inverseColor", "imageQuality", "resizeToHeight", "resizeToWidth", "backgroundColor", "format", "alignImage", "containWithinAspectRatio", "aspectRatio", "cropperPreviewHeight", "cropperPreviewWidth", "circleCropper"], outputs: ["shot", "canceled"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
177
+ OnshoreFormImageItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: OnshoreFormImageItemComponent, selector: "onshore-form-image-item", inputs: { formTemplate: "formTemplate", imageSettings: "imageSettings" }, outputs: { imageDeleted: "imageDeleted", imageCleared: "imageCleared", imageReady: "imageReady", selectFromMedia: "selectFromMedia", isLoading: "isLoading" }, usesOnChanges: true, ngImport: i0, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center flex-wrap\" [class.flex-column]=\"formTemplate.layout === OnshoreFormTemplateLayout.vertical\">\n\n <div class=\"position-relative flex justify-content-center align-items-center onshore-border-gray-4 border-solid border-1\" style=\"background-color: white\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n [imageStyle]=\"'position: absolut; width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n [placeholderStyle]=\"'width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\">\n </onshore-image-placeholder>\n </div>\n\n <div class=\"flex flex-column m-4\">\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.imageSelectionEnabled\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"onshore-button-primary mb-2\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.webcamSelectionEnabled\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.mediaSelectionEnabled\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.deleteEnabled\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n class=\"onshore-button-light\"\n (click)=\"removeImage()\"\n [disabled]=\"!image || disabled\">\n </button>\n\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" >\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [imageSettings]=\"imageSettings\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\">\n <onshore-webcam\n *ngIf=\"webcamDialogVisible\"\n (shot)=\"getWebcamImage($event)\"\n (canceled)=\"webcamDialogVisible = false\"\n [imageSettings]=\"imageSettings\"></onshore-webcam>\n</p-dialog>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: i7.OnshoreImagePlaceholderComponent, selector: "onshore-image-placeholder", inputs: ["placeholderIcon", "placeholderImage", "image", "imageStyle", "placeholderStyle", "showLoader"] }, { kind: "component", type: i8.OnshoreFormItemContainer, selector: "onshore-form-item-container", inputs: ["formTemplate", "ngControl"] }, { kind: "component", type: i9.OnshoreImageChooserComponent, selector: "onshore-image-chooser", inputs: ["imageSettings"], outputs: ["choosen", "canceled"] }, { kind: "component", type: i10.WebcamComponent, selector: "onshore-webcam", inputs: ["imageSettings"], outputs: ["shot", "canceled"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
138
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: OnshoreFormImageItemComponent, decorators: [{
139
179
  type: Component,
140
- args: [{ selector: 'onshore-form-image-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center flex-wrap\">\n\n <div class=\"position-relative flex justify-content-center align-items-center onshore-border-gray-4 border-solid border-1\" style=\"background-color: white\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n imageStyle=\"position: absolut; height: 250px; width: 250px\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n placeholderStyle=\"width: 250px; height: 250px\">\n </onshore-image-placeholder>\n </div>\n\n <div class=\"flex flex-column m-4\">\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.imageSelectionEnabled\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"onshore-button-primary mb-2\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </button>\n\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.webcamSelectionEnabled\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </button>\n\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.mediaSelectionEnabled\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </button>\n\n <button pButton\n type=\"button\"\n [hidden]=\"!imageSettings.deleteEnabled\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n class=\"onshore-button-light\"\n (click)=\"removeImage()\"\n [disabled]=\"!image || disabled\">\n </button>\n\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\">\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [resizeToWidth]=\"imageSettings.imageWidth\"\n [resizeToHeight]=\"imageSettings.imageHeight\"\n [containWithinAspectRatio]=\"imageSettings.containWithinAspectRatio\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n backgroundColor=\"transparent\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\">\n <onshore-webcam *ngIf=\"webcamDialogVisible\" (shot)=\"getWebcamImage($event)\" (canceled)=\"webcamDialogVisible = false\"></onshore-webcam>\n</p-dialog>\n" }]
180
+ args: [{ selector: 'onshore-form-image-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center flex-wrap\" [class.flex-column]=\"formTemplate.layout === OnshoreFormTemplateLayout.vertical\">\n\n <div class=\"position-relative flex justify-content-center align-items-center onshore-border-gray-4 border-solid border-1\" style=\"background-color: white\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n [imageStyle]=\"'position: absolut; width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n [placeholderStyle]=\"'width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\">\n </onshore-image-placeholder>\n </div>\n\n <div class=\"flex flex-column m-4\">\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.imageSelectionEnabled\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"onshore-button-primary mb-2\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.webcamSelectionEnabled\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.mediaSelectionEnabled\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.deleteEnabled\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n class=\"onshore-button-light\"\n (click)=\"removeImage()\"\n [disabled]=\"!image || disabled\">\n </button>\n\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" >\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [imageSettings]=\"imageSettings\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\">\n <onshore-webcam\n *ngIf=\"webcamDialogVisible\"\n (shot)=\"getWebcamImage($event)\"\n (canceled)=\"webcamDialogVisible = false\"\n [imageSettings]=\"imageSettings\"></onshore-webcam>\n</p-dialog>\n" }]
141
181
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NgControl, decorators: [{
142
182
  type: Self
143
183
  }, {
@@ -157,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
157
197
  }], isLoading: [{
158
198
  type: Output
159
199
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbWFnZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uc2hvcmUtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW1hZ2UtaXRlbS9mb3JtLWltYWdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbWFnZS1pdGVtL2Zvcm0taW1hZ2UtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM5QixRQUFRLEVBQUUsTUFBTSxFQUNoQixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7OztBQVl2QixNQUFNLE9BQU8sNkJBQTZCO0lBOEh4QyxZQUFtQixHQUFzQixFQUNGLFNBQW9CLEVBQ3hDLGFBQTRCLEVBQzNCLFNBQTJCO1FBSDVCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ0YsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQTdIckMsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGNBQVMsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRSx5QkFBb0IsR0FBNkI7WUFDL0MsVUFBVSxFQUFFLEdBQUc7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQix3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLFdBQVcs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RyxDQUFDLGFBQWEsQ0FBQyxhQUFhO2dCQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUM7U0FDN0c7SUFDSCxDQUFDOzswSEE1SFUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsNlRDbEIxQyxnM0dBMkVBOzJGRHpEYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFpSWxDLElBQUk7OzBCQUFJLFFBQVE7dUdBOUhwQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsXG4gIE9wdGlvbmFsLCBPdXRwdXQsXG4gIFNlbGYsIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncywgT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvbnNob3JlLWZvcm0taW1hZ2UtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWltYWdlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgT25zaG9yZUZvcm1JbWFnZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZvcm1UZW1wbGF0ZSE6IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtO1xuICBASW5wdXQoKSBpbWFnZVNldHRpbmdzOiBPbnNob3JlRm9ybUltYWdlU2V0dGluZ3M7XG5cbiAgQE91dHB1dCgpIGltYWdlRGVsZXRlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpbWFnZUNsZWFyZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaW1hZ2VSZWFkeTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RGcm9tTWVkaWE6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXNMb2FkaW5nOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZGVmYXVsdEltYWdlU2V0dGluZ3M6IE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncyA9IHtcbiAgICBpbWFnZVdpZHRoOiA0MDAsXG4gICAgaW1hZ2VIZWlnaHQ6IDQwMCxcbiAgICBjb250YWluV2l0aGluQXNwZWN0UmF0aW86IGZhbHNlLFxuICAgIGFzcGVjdFJhdGlvOiAxIC8gMSxcbiAgICBpbWFnZVNlbGVjdGlvbkVuYWJsZWQ6IHRydWUsXG4gICAgd2ViY2FtU2VsZWN0aW9uRW5hYmxlZDogdHJ1ZSxcbiAgICBtZWRpYVNlbGVjdGlvbkVuYWJsZWQ6IHRydWUsXG4gICAgZGVsZXRlRW5hYmxlZDogdHJ1ZSxcbiAgICBwbGFjZWhvbGRlckltYWdlOiAnJyxcbiAgICBwbGFjZWhvbGRlckljb246ICdmYSBmYS1pbWFnZSBmYS0xMHgnXG4gIH07XG5cbiAgaW1hZ2U6IHN0cmluZyB8IG51bGwgPSAnJztcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgd2ViY2FtRGlhbG9nVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpbWFnZUNob29zZXJEaWFsb2dWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gIGdldEZpbGVJbWFnZShpbWFnZTogYW55KSB7XG4gICAgdGhpcy5pbWFnZUNob29zZXJEaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgaWYoaW1hZ2UpIHtcbiAgICAgIHRoaXMuaW1hZ2UgPSBpbWFnZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2UpO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5pbWFnZVJlYWR5LmVtaXQodGhpcy5pbWFnZSk7XG4gICAgICB9LCA1MDApO1xuICAgIH1cbiAgfVxuXG4gIGdldFdlYmNhbUltYWdlKGltYWdlOiBhbnkpIHtcbiAgICB0aGlzLndlYmNhbURpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICBpZihpbWFnZSkge1xuICAgICAgdGhpcy5pbWFnZSA9IGltYWdlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZSk7XG4gICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB0aGlzLmltYWdlUmVhZHkuZW1pdCh0aGlzLmltYWdlKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlSW1hZ2UoKSB7XG4gICAgaWYodGhpcy5pbWFnZSAmJiAhdGhpcy5pbWFnZS5pbmNsdWRlcygnYmFzZTY0JykpIHtcbiAgICAgIHRoaXMuaW1hZ2VEZWxldGVkLmVtaXQodGhpcy5pbWFnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW1hZ2VDbGVhcmVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5pbWFnZSA9ICcnO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZihvYmogJiYgIW9iai5pbmNsdWRlcygnYmFzZTY0JykpIHtcbiAgICAgIHRoaXMuaW1hZ2UgPSBvYmo7XG4gICAgfVxuICAgIGlmKG9iaiA9PSBudWxsKSB7XG4gICAgICB0aGlzLmltYWdlID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5pbWFnZVJlYWR5LmVtaXQodGhpcy5pbWFnZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgaWYodGhpcy5uZ0NvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMuaW1hZ2UgPSB0aGlzLm5nQ29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7fVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZih0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsdWUgPT0gJycgJiYgdGhpcy5mb3JtVGVtcGxhdGUuZGVmYXVsdCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLmZvcm1UZW1wbGF0ZS5kZWZhdWx0KTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmRpc2FibGUoKTtcbiAgICB0aGlzLmltYWdlID0gbnVsbDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBpbWFnZVNldHRpbmdzOiBPbnNob3JlRm9ybUltYWdlU2V0dGluZ3MgPSBjaGFuZ2VzWydpbWFnZVNldHRpbmdzJ10/LmN1cnJlbnRWYWx1ZTtcbiAgICBpZihpbWFnZVNldHRpbmdzKSB7XG4gICAgICBpZighaW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoIHx8ICFpbWFnZVNldHRpbmdzLmltYWdlSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuaW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoO1xuICAgICAgICB0aGlzLmltYWdlU2V0dGluZ3MuaW1hZ2VIZWlnaHQgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmltYWdlSGVpZ2h0O1xuICAgICAgfVxuICAgICAgaWYoIWltYWdlU2V0dGluZ3MucGxhY2Vob2xkZXJJY29uICYmICFpbWFnZVNldHRpbmdzLnBsYWNlaG9sZGVySW1hZ2UpIHRoaXMuaW1hZ2VTZXR0aW5ncy5wbGFjZWhvbGRlckljb24gPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLnBsYWNlaG9sZGVySWNvbjtcbiAgICAgIGlmKCFpbWFnZVNldHRpbmdzLmFzcGVjdFJhdGlvKSB0aGlzLmltYWdlU2V0dGluZ3MuYXNwZWN0UmF0aW8gPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmFzcGVjdFJhdGlvO1xuICAgICAgaWYoIWltYWdlU2V0dGluZ3MuY29udGFpbldpdGhpbkFzcGVjdFJhdGlvKSB0aGlzLmltYWdlU2V0dGluZ3MuY29udGFpbldpdGhpbkFzcGVjdFJhdGlvID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5jb250YWluV2l0aGluQXNwZWN0UmF0aW87XG4gICAgICBpZighaW1hZ2VTZXR0aW5ncy5pbWFnZVNlbGVjdGlvbkVuYWJsZWQpIHRoaXMuaW1hZ2VTZXR0aW5ncy5pbWFnZVNlbGVjdGlvbkVuYWJsZWQgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmltYWdlU2VsZWN0aW9uRW5hYmxlZDtcbiAgICAgIGlmKCFpbWFnZVNldHRpbmdzLm1lZGlhU2VsZWN0aW9uRW5hYmxlZCkgdGhpcy5pbWFnZVNldHRpbmdzLm1lZGlhU2VsZWN0aW9uRW5hYmxlZCA9IHRoaXMuZGVmYXVsdEltYWdlU2V0dGluZ3MubWVkaWFTZWxlY3Rpb25FbmFibGVkO1xuICAgICAgaWYoIWltYWdlU2V0dGluZ3Mud2ViY2FtU2VsZWN0aW9uRW5hYmxlZCkgdGhpcy5pbWFnZVNldHRpbmdzLndlYmNhbVNlbGVjdGlvbkVuYWJsZWQgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLndlYmNhbVNlbGVjdGlvbkVuYWJsZWQ7XG4gICAgICBpZighaW1hZ2VTZXR0aW5ncy5kZWxldGVFbmFibGVkKSB0aGlzLmltYWdlU2V0dGluZ3MuZGVsZXRlRW5hYmxlZCA9IHRoaXMuZGVmYXVsdEltYWdlU2V0dGluZ3MuZGVsZXRlRW5hYmxlZDtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgICAgICAgIHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG59XG4iLCI8b25zaG9yZS1mb3JtLWl0ZW0tY29udGFpbmVyIFtmb3JtVGVtcGxhdGVdPVwiZm9ybVRlbXBsYXRlXCIgW25nQ29udHJvbF09XCJuZ0NvbnRyb2xcIj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXBcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG9uc2hvcmUtYm9yZGVyLWdyYXktNCBib3JkZXItc29saWQgYm9yZGVyLTFcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHdoaXRlXCI+XG4gICAgICA8b25zaG9yZS1pbWFnZS1wbGFjZWhvbGRlclxuICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgIFtpbWFnZV09XCJpbWFnZVwiXG4gICAgICAgIGltYWdlU3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dDsgaGVpZ2h0OiAyNTBweDsgd2lkdGg6IDI1MHB4XCJcbiAgICAgICAgW3BsYWNlaG9sZGVySWNvbl09XCJpbWFnZVNldHRpbmdzLnBsYWNlaG9sZGVySWNvblwiXG4gICAgICAgIFtwbGFjZWhvbGRlckltYWdlXT1cImltYWdlU2V0dGluZ3MucGxhY2Vob2xkZXJJbWFnZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyU3R5bGU9XCJ3aWR0aDogMjUwcHg7IGhlaWdodDogMjUwcHhcIj5cbiAgICAgIDwvb25zaG9yZS1pbWFnZS1wbGFjZWhvbGRlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG0tNFwiPlxuICAgICAgPGJ1dHRvbiBwQnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFpbWFnZVNldHRpbmdzLmltYWdlU2VsZWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICAgIGljb249XCJmYSBmYS1pbWFnZVwiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInZm9ybS5pbWFnZUNvbnRyb2wudXBsb2FkSW1hZ2VCdXR0b24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJvbnNob3JlLWJ1dHRvbi1wcmltYXJ5IG1iLTJcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaW1hZ2VDaG9vc2VyRGlhbG9nVmlzaWJsZSA9IHRydWU7IGNkci5kZXRlY3RDaGFuZ2VzKClcIj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uIHBCdXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWltYWdlU2V0dGluZ3Mud2ViY2FtU2VsZWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICAgIGljb249XCJmYSBmYS1jYW1lcmFcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLndlYmNhbUltYWdlQnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwib25zaG9yZS1idXR0b24tbGlnaHQgbWItMlwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ3ZWJjYW1EaWFsb2dWaXNpYmxlID0gdHJ1ZVwiPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gcEJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2hpZGRlbl09XCIhaW1hZ2VTZXR0aW5ncy5tZWRpYVNlbGVjdGlvbkVuYWJsZWRcIlxuICAgICAgICAgICAgICBpY29uPVwiZmEgZmEtcGhvdG8tdmlkZW9cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLm1lZGlhSW1hZ2VCdXR0b24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJvbnNob3JlLWJ1dHRvbi1saWdodCBtYi0yXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEZyb21NZWRpYS5lbWl0KClcIj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uIHBCdXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWltYWdlU2V0dGluZ3MuZGVsZXRlRW5hYmxlZFwiXG4gICAgICAgICAgICAgIGljb249XCJmYSBmYS1lcmFzZXJcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLnJlbW92ZUltYWdlQnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwib25zaG9yZS1idXR0b24tbGlnaHRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSW1hZ2UoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaW1hZ2UgfHwgZGlzYWJsZWRcIj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG48L29uc2hvcmUtZm9ybS1pdGVtLWNvbnRhaW5lcj5cblxuPHAtZGlhbG9nIFtoZWFkZXJdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLnVwbG9hZEltYWdlVGl0bGUnIHwgdHJhbnNsYXRlXCIgWyh2aXNpYmxlKV09XCJpbWFnZUNob29zZXJEaWFsb2dWaXNpYmxlXCIgW21vZGFsXT1cInRydWVcIiBbc3R5bGVdPVwieydtYXgtd2lkdGgnOiAnNTB2dyd9XCI+XG4gIDxvbnNob3JlLWltYWdlLWNob29zZXJcbiAgICAgICAgICAgICAgICAgICAgIChjaG9vc2VuKT1cImdldEZpbGVJbWFnZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxlZCk9XCJpbWFnZUNob29zZXJEaWFsb2dWaXNpYmxlID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgW3Jlc2l6ZVRvV2lkdGhdPVwiaW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyZXNpemVUb0hlaWdodF09XCJpbWFnZVNldHRpbmdzLmltYWdlSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgIFtjb250YWluV2l0aGluQXNwZWN0UmF0aW9dPVwiaW1hZ2VTZXR0aW5ncy5jb250YWluV2l0aGluQXNwZWN0UmF0aW9cIlxuICAgICAgICAgICAgICAgICAgICAgW2FzcGVjdFJhdGlvXT1cImltYWdlU2V0dGluZ3MuYXNwZWN0UmF0aW9cIlxuICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPVwidHJhbnNwYXJlbnRcIj5cbiAgPC9vbnNob3JlLWltYWdlLWNob29zZXI+XG48L3AtZGlhbG9nPlxuXG48cC1kaWFsb2cgW2hlYWRlcl09XCInZm9ybS5pbWFnZUNvbnRyb2wud2ViYWNtSW1hZ2VUaXRsZScgfCB0cmFuc2xhdGVcIiBbKHZpc2libGUpXT1cIndlYmNhbURpYWxvZ1Zpc2libGVcIiBbbW9kYWxdPVwidHJ1ZVwiIFtzdHlsZV09XCJ7J21heC13aWR0aCc6ICc1MHZ3J31cIj5cbiAgPG9uc2hvcmUtd2ViY2FtICpuZ0lmPVwid2ViY2FtRGlhbG9nVmlzaWJsZVwiIChzaG90KT1cImdldFdlYmNhbUltYWdlKCRldmVudClcIiAoY2FuY2VsZWQpPVwid2ViY2FtRGlhbG9nVmlzaWJsZSA9IGZhbHNlXCI+PC9vbnNob3JlLXdlYmNhbT5cbjwvcC1kaWFsb2c+XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbWFnZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uc2hvcmUtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW1hZ2UtaXRlbS9mb3JtLWltYWdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbWFnZS1pdGVtL2Zvcm0taW1hZ2UtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM5QixRQUFRLEVBQUUsTUFBTSxFQUNoQixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQU9uRSxNQUFNLE9BQU8sNkJBQTZCO0lBMEp4QyxZQUFtQixHQUFzQixFQUNGLFNBQW9CLEVBQ3hDLGFBQTRCLEVBQzNCLFNBQTJCO1FBSDVCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ0YsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXpKckMsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGNBQVMsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRSw4QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztRQUV0RCx5QkFBb0IsR0FBNkI7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NkI7OEdBQTdCLDZCQUE2Qiw2VENuQjFDLG8xR0EyRUE7MkZEeERhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBRWxCLHVCQUF1QixDQUFDLE1BQU07OzBCQTZKbEMsSUFBSTs7MEJBQUksUUFBUTt1R0ExSnBCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCxcbiAgT3B0aW9uYWwsIE91dHB1dCxcbiAgU2VsZiwgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT25zaG9yZUZvcm1JbWFnZVNldHRpbmdzLCBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVscyc7XG5pbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0IH0gZnJvbSAnLi4vLi4vZW51bXMvZm9ybS5lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29uc2hvcmUtZm9ybS1pbWFnZS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW1hZ2UtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPbnNob3JlRm9ybUltYWdlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZm9ybVRlbXBsYXRlITogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW07XG4gIEBJbnB1dCgpIGltYWdlU2V0dGluZ3M6IE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncztcblxuICBAT3V0cHV0KCkgaW1hZ2VEZWxldGVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGltYWdlQ2xlYXJlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpbWFnZVJlYWR5OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNlbGVjdEZyb21NZWRpYTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpc0xvYWRpbmc6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0ID0gT25zaG9yZUZvcm1UZW1wbGF0ZUxheW91dDtcblxuICBkZWZhdWx0SW1hZ2VTZXR0aW5nczogT25zaG9yZUZvcm1JbWFnZVNldHRpbmdzID0ge1xuICAgIGltYWdlV2lkdGg6IDQwMCxcbiAgICBpbWFnZUhlaWdodDogNDAwLFxuICAgIGNvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgYXNwZWN0UmF0aW86IDEgLyAxLFxuICAgIGltYWdlU2VsZWN0aW9uRW5hYmxlZDogdHJ1ZSxcbiAgICB3ZWJjYW1TZWxlY3Rpb25FbmFibGVkOiB0cnVlLFxuICAgIG1lZGlhU2VsZWN0aW9uRW5hYmxlZDogdHJ1ZSxcbiAgICBkZWxldGVFbmFibGVkOiB0cnVlLFxuICAgIHBsYWNlaG9sZGVySW1hZ2U6ICcnLFxuICAgIHBsYWNlaG9sZGVySWNvbjogJ2ZhIGZhLWltYWdlIGZhLTEweCcsXG4gICAgY29udGFpbmVyV2lkdGg6IDI1MCxcbiAgICBjb250YWluZXJIZWlnaHQ6IDI1MCxcbiAgICBpbWFnZVF1YWxpdHk6IDEwMCxcbiAgICBmb3JtYXQ6ICdwbmcnLFxuICAgIGFsaWduSW1hZ2U6ICdjZW50ZXInLFxuICAgIGNyb3BwZXJQcmV2aWV3V2lkdGg6IDQwMCxcbiAgICBjcm9wcGVyUHJldmlld0hlaWdodDogNDAwLFxuICAgIHdlYmNhbVdpZHRoOiA0MDAsXG4gICAgd2ViY2FtSGVpZ2h0OiA0MDAsXG4gICAgY2lyY2xlQ3JvcHBlcjogZmFsc2UsXG4gICAgbWF4RmlsZVNpemU6IDY0MDAwMDAsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnXG4gIH07XG5cbiAgaW1hZ2U6IHN0cmluZyB8IG51bGwgPSAnJztcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgd2ViY2FtRGlhbG9nVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpbWFnZUNob29zZXJEaWFsb2dWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gIGdldEZpbGVJbWFnZShpbWFnZTogYW55KSB7XG4gICAgdGhpcy5pbWFnZUNob29zZXJEaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgaWYoaW1hZ2UpIHtcbiAgICAgIHRoaXMuaW1hZ2UgPSBpbWFnZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2UpO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5pbWFnZVJlYWR5LmVtaXQodGhpcy5pbWFnZSk7XG4gICAgICB9LCA1MDApO1xuICAgIH1cbiAgfVxuXG4gIGdldFdlYmNhbUltYWdlKGltYWdlOiBhbnkpIHtcbiAgICB0aGlzLndlYmNhbURpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICBpZihpbWFnZSkge1xuICAgICAgdGhpcy5pbWFnZSA9IGltYWdlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZSk7XG4gICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB0aGlzLmltYWdlUmVhZHkuZW1pdCh0aGlzLmltYWdlKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlSW1hZ2UoKSB7XG4gICAgaWYodGhpcy5pbWFnZSAmJiAhdGhpcy5pbWFnZS5pbmNsdWRlcygnYmFzZTY0JykpIHtcbiAgICAgIHRoaXMuaW1hZ2VEZWxldGVkLmVtaXQodGhpcy5pbWFnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW1hZ2VDbGVhcmVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5pbWFnZSA9ICcnO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZihvYmogJiYgIW9iai5pbmNsdWRlcygnYmFzZTY0JykpIHtcbiAgICAgIHRoaXMuaW1hZ2UgPSBvYmo7XG4gICAgfVxuICAgIGlmKG9iaiA9PSBudWxsKSB7XG4gICAgICB0aGlzLmltYWdlID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5pbWFnZVJlYWR5LmVtaXQodGhpcy5pbWFnZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgaWYodGhpcy5uZ0NvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMuaW1hZ2UgPSB0aGlzLm5nQ29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7fVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZih0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsdWUgPT0gJycgJiYgdGhpcy5mb3JtVGVtcGxhdGUuZGVmYXVsdCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLmZvcm1UZW1wbGF0ZS5kZWZhdWx0KTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmRpc2FibGUoKTtcbiAgICB0aGlzLmltYWdlID0gbnVsbDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBpbWFnZVNldHRpbmdzOiBPbnNob3JlRm9ybUltYWdlU2V0dGluZ3MgPSBjaGFuZ2VzWydpbWFnZVNldHRpbmdzJ10/LmN1cnJlbnRWYWx1ZTtcbiAgICBpZihpbWFnZVNldHRpbmdzKSB7XG4gICAgICBpZighaW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoIHx8ICFpbWFnZVNldHRpbmdzLmltYWdlSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuaW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoO1xuICAgICAgICB0aGlzLmltYWdlU2V0dGluZ3MuaW1hZ2VIZWlnaHQgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmltYWdlSGVpZ2h0O1xuICAgICAgfVxuICAgICAgaWYoIWltYWdlU2V0dGluZ3MucGxhY2Vob2xkZXJJY29uICYmICFpbWFnZVNldHRpbmdzLnBsYWNlaG9sZGVySW1hZ2UpIHRoaXMuaW1hZ2VTZXR0aW5ncy5wbGFjZWhvbGRlckljb24gPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLnBsYWNlaG9sZGVySWNvbjtcbiAgICAgIGlmKCFpbWFnZVNldHRpbmdzLmFzcGVjdFJhdGlvKSB0aGlzLmltYWdlU2V0dGluZ3MuYXNwZWN0UmF0aW8gPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmFzcGVjdFJhdGlvO1xuICAgICAgaWYoIWltYWdlU2V0dGluZ3MuY29udGFpbldpdGhpbkFzcGVjdFJhdGlvKSB0aGlzLmltYWdlU2V0dGluZ3MuY29udGFpbldpdGhpbkFzcGVjdFJhdGlvID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5jb250YWluV2l0aGluQXNwZWN0UmF0aW87XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmltYWdlU2VsZWN0aW9uRW5hYmxlZCA9PSBudWxsKSB0aGlzLmltYWdlU2V0dGluZ3MuaW1hZ2VTZWxlY3Rpb25FbmFibGVkID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5pbWFnZVNlbGVjdGlvbkVuYWJsZWQ7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLm1lZGlhU2VsZWN0aW9uRW5hYmxlZCA9PSBudWxsKSB0aGlzLmltYWdlU2V0dGluZ3MubWVkaWFTZWxlY3Rpb25FbmFibGVkID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5tZWRpYVNlbGVjdGlvbkVuYWJsZWQ7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLndlYmNhbVNlbGVjdGlvbkVuYWJsZWQgPT0gbnVsbCkgdGhpcy5pbWFnZVNldHRpbmdzLndlYmNhbVNlbGVjdGlvbkVuYWJsZWQgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLndlYmNhbVNlbGVjdGlvbkVuYWJsZWQ7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmRlbGV0ZUVuYWJsZWQgPT0gbnVsbCkgdGhpcy5pbWFnZVNldHRpbmdzLmRlbGV0ZUVuYWJsZWQgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmRlbGV0ZUVuYWJsZWQ7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmNvbnRhaW5lcldpZHRoID09IG51bGwpIHRoaXMuaW1hZ2VTZXR0aW5ncy5jb250YWluZXJXaWR0aCA9IHRoaXMuZGVmYXVsdEltYWdlU2V0dGluZ3MuY29udGFpbmVyV2lkdGg7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmNvbnRhaW5lckhlaWdodCA9PSBudWxsKSB0aGlzLmltYWdlU2V0dGluZ3MuY29udGFpbmVySGVpZ2h0ID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5jb250YWluZXJIZWlnaHQ7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmltYWdlUXVhbGl0eSA9PSBudWxsKSB0aGlzLmltYWdlU2V0dGluZ3MuaW1hZ2VRdWFsaXR5ID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5pbWFnZVF1YWxpdHk7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmZvcm1hdCA9PSBudWxsKSB0aGlzLmltYWdlU2V0dGluZ3MuZm9ybWF0ID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5mb3JtYXQ7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmFsaWduSW1hZ2UgPT0gbnVsbCkgdGhpcy5pbWFnZVNldHRpbmdzLmFsaWduSW1hZ2UgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmFsaWduSW1hZ2U7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmNyb3BwZXJQcmV2aWV3V2lkdGggPT0gbnVsbCkgdGhpcy5pbWFnZVNldHRpbmdzLmNyb3BwZXJQcmV2aWV3V2lkdGggPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmNyb3BwZXJQcmV2aWV3V2lkdGg7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmNyb3BwZXJQcmV2aWV3SGVpZ2h0ID09IG51bGwpIHRoaXMuaW1hZ2VTZXR0aW5ncy5jcm9wcGVyUHJldmlld0hlaWdodCA9IHRoaXMuZGVmYXVsdEltYWdlU2V0dGluZ3MuY3JvcHBlclByZXZpZXdIZWlnaHQ7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmNpcmNsZUNyb3BwZXIgPT0gbnVsbCkgdGhpcy5pbWFnZVNldHRpbmdzLmNpcmNsZUNyb3BwZXIgPSB0aGlzLmRlZmF1bHRJbWFnZVNldHRpbmdzLmNpcmNsZUNyb3BwZXI7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLm1heEZpbGVTaXplID09IG51bGwpIHRoaXMuaW1hZ2VTZXR0aW5ncy5tYXhGaWxlU2l6ZSA9IHRoaXMuZGVmYXVsdEltYWdlU2V0dGluZ3MubWF4RmlsZVNpemU7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLmJhY2tncm91bmRDb2xvciA9PSBudWxsKSB0aGlzLmltYWdlU2V0dGluZ3MuYmFja2dyb3VuZENvbG9yID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLndlYmNhbVdpZHRoID09IG51bGwpIHRoaXMuaW1hZ2VTZXR0aW5ncy53ZWJjYW1XaWR0aCA9IHRoaXMuZGVmYXVsdEltYWdlU2V0dGluZ3Mud2ViY2FtV2lkdGg7XG4gICAgICBpZihpbWFnZVNldHRpbmdzLndlYmNhbUhlaWdodCA9PSBudWxsKSB0aGlzLmltYWdlU2V0dGluZ3Mud2ViY2FtSGVpZ2h0ID0gdGhpcy5kZWZhdWx0SW1hZ2VTZXR0aW5ncy53ZWJjYW1IZWlnaHQ7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlSW1hZ2UoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgICAgICAgcHVibGljIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gIH1cbn1cbiIsIjxvbnNob3JlLWZvcm0taXRlbS1jb250YWluZXIgW2Zvcm1UZW1wbGF0ZV09XCJmb3JtVGVtcGxhdGVcIiBbbmdDb250cm9sXT1cIm5nQ29udHJvbFwiPlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcFwiIFtjbGFzcy5mbGV4LWNvbHVtbl09XCJmb3JtVGVtcGxhdGUubGF5b3V0ID09PSBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0LnZlcnRpY2FsXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBvbnNob3JlLWJvcmRlci1ncmF5LTQgYm9yZGVyLXNvbGlkIGJvcmRlci0xXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZVwiPlxuICAgICAgPG9uc2hvcmUtaW1hZ2UtcGxhY2Vob2xkZXJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICBbaW1hZ2VdPVwiaW1hZ2VcIlxuICAgICAgICBbaW1hZ2VTdHlsZV09XCIncG9zaXRpb246IGFic29sdXQ7IHdpZHRoOiAnICsgaW1hZ2VTZXR0aW5ncy5jb250YWluZXJXaWR0aCArICdweDsgaGVpZ2h0OiAnICsgaW1hZ2VTZXR0aW5ncy5jb250YWluZXJIZWlnaHQgKyAncHgnXCJcbiAgICAgICAgW3BsYWNlaG9sZGVySWNvbl09XCJpbWFnZVNldHRpbmdzLnBsYWNlaG9sZGVySWNvblwiXG4gICAgICAgIFtwbGFjZWhvbGRlckltYWdlXT1cImltYWdlU2V0dGluZ3MucGxhY2Vob2xkZXJJbWFnZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlclN0eWxlXT1cIid3aWR0aDogJyArIGltYWdlU2V0dGluZ3MuY29udGFpbmVyV2lkdGggKyAncHg7IGhlaWdodDogJyArIGltYWdlU2V0dGluZ3MuY29udGFpbmVySGVpZ2h0ICsgJ3B4J1wiPlxuICAgICAgPC9vbnNob3JlLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbS00XCI+XG4gICAgICA8YnV0dG9uIHBCdXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW1hZ2VTZXR0aW5ncy5pbWFnZVNlbGVjdGlvbkVuYWJsZWRcIlxuICAgICAgICAgICAgICBpY29uPVwiZmEgZmEtaW1hZ2VcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLnVwbG9hZEltYWdlQnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwib25zaG9yZS1idXR0b24tcHJpbWFyeSBtYi0yXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImltYWdlQ2hvb3NlckRpYWxvZ1Zpc2libGUgPSB0cnVlOyBjZHIuZGV0ZWN0Q2hhbmdlcygpXCI+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvbiBwQnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAqbmdJZj1cImltYWdlU2V0dGluZ3Mud2ViY2FtU2VsZWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICAgIGljb249XCJmYSBmYS1jYW1lcmFcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLndlYmNhbUltYWdlQnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwib25zaG9yZS1idXR0b24tbGlnaHQgbWItMlwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ3ZWJjYW1EaWFsb2dWaXNpYmxlID0gdHJ1ZVwiPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gcEJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbWFnZVNldHRpbmdzLm1lZGlhU2VsZWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICAgIGljb249XCJmYSBmYS1waG90by12aWRlb1wiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInZm9ybS5pbWFnZUNvbnRyb2wubWVkaWFJbWFnZUJ1dHRvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm9uc2hvcmUtYnV0dG9uLWxpZ2h0IG1iLTJcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RnJvbU1lZGlhLmVtaXQoKVwiPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gcEJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbWFnZVNldHRpbmdzLmRlbGV0ZUVuYWJsZWRcIlxuICAgICAgICAgICAgICBpY29uPVwiZmEgZmEtZXJhc2VyXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidmb3JtLmltYWdlQ29udHJvbC5yZW1vdmVJbWFnZUJ1dHRvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm9uc2hvcmUtYnV0dG9uLWxpZ2h0XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUltYWdlKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWltYWdlIHx8IGRpc2FibGVkXCI+XG4gICAgICA8L2J1dHRvbj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9vbnNob3JlLWZvcm0taXRlbS1jb250YWluZXI+XG5cbjxwLWRpYWxvZyBbaGVhZGVyXT1cIidmb3JtLmltYWdlQ29udHJvbC51cGxvYWRJbWFnZVRpdGxlJyB8IHRyYW5zbGF0ZVwiIFsodmlzaWJsZSldPVwiaW1hZ2VDaG9vc2VyRGlhbG9nVmlzaWJsZVwiIFttb2RhbF09XCJ0cnVlXCIgW3N0eWxlXT1cInsnbWF4LXdpZHRoJzogJzUwdncnfVwiID5cbiAgPG9uc2hvcmUtaW1hZ2UtY2hvb3NlclxuICAgICAgICAgICAgICAgICAgICAgKGNob29zZW4pPVwiZ2V0RmlsZUltYWdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbGVkKT1cImltYWdlQ2hvb3NlckRpYWxvZ1Zpc2libGUgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICBbaW1hZ2VTZXR0aW5nc109XCJpbWFnZVNldHRpbmdzXCI+XG4gIDwvb25zaG9yZS1pbWFnZS1jaG9vc2VyPlxuPC9wLWRpYWxvZz5cblxuPHAtZGlhbG9nIFtoZWFkZXJdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLndlYmFjbUltYWdlVGl0bGUnIHwgdHJhbnNsYXRlXCIgWyh2aXNpYmxlKV09XCJ3ZWJjYW1EaWFsb2dWaXNpYmxlXCIgW21vZGFsXT1cInRydWVcIiBbc3R5bGVdPVwieydtYXgtd2lkdGgnOiAnNTB2dyd9XCI+XG4gIDxvbnNob3JlLXdlYmNhbVxuICAgICpuZ0lmPVwid2ViY2FtRGlhbG9nVmlzaWJsZVwiXG4gICAgKHNob3QpPVwiZ2V0V2ViY2FtSW1hZ2UoJGV2ZW50KVwiXG4gICAgKGNhbmNlbGVkKT1cIndlYmNhbURpYWxvZ1Zpc2libGUgPSBmYWxzZVwiXG4gICAgW2ltYWdlU2V0dGluZ3NdPVwiaW1hZ2VTZXR0aW5nc1wiPjwvb25zaG9yZS13ZWJjYW0+XG48L3AtZGlhbG9nPlxuIl19
@@ -14,19 +14,6 @@ export class OnshoreImageChooserComponent {
14
14
  this.finalImage = '';
15
15
  this.imageErrorType = OnshoreImageError;
16
16
  this.imageError = OnshoreImageError.none;
17
- this.imageQuality = 100;
18
- this.resizeToHeight = 400;
19
- this.resizeToWidth = 400;
20
- this.backgroundColor = 'white';
21
- this.format = 'png';
22
- this.alignImage = 'center';
23
- this.containWithinAspectRatio = false;
24
- this.aspectRatio = 1 / 1;
25
- this.cropperPreviewHeight = 200;
26
- this.cropperPreviewWidth = 200;
27
- this.circleCropper = false;
28
- this.autoSave = true;
29
- this.inverseColor = false;
30
17
  this.choosen = new EventEmitter();
31
18
  this.canceled = new EventEmitter();
32
19
  }
@@ -43,7 +30,7 @@ export class OnshoreImageChooserComponent {
43
30
  this.imageError = OnshoreImageError.fileType;
44
31
  return;
45
32
  }
46
- if (file?.size > 6400000) {
33
+ if (file?.size > this.imageSettings.maxFileSize) {
47
34
  this.imageError = OnshoreImageError.size;
48
35
  return;
49
36
  }
@@ -56,7 +43,7 @@ export class OnshoreImageChooserComponent {
56
43
  img.onload = () => {
57
44
  const originalWidth = img.width;
58
45
  const originalHeight = img.height;
59
- if (originalWidth >= this.resizeToWidth && originalHeight >= this.resizeToHeight) {
46
+ if (originalWidth >= this.imageSettings.imageWidth && originalHeight >= this.imageSettings.imageHeight) {
60
47
  this.image = reader.result?.toString() || '';
61
48
  }
62
49
  else {
@@ -78,39 +65,15 @@ export class OnshoreImageChooserComponent {
78
65
  }
79
66
  }
80
67
  OnshoreImageChooserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: OnshoreImageChooserComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
81
- OnshoreImageChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: OnshoreImageChooserComponent, selector: "onshore-image-chooser", inputs: { imageQuality: "imageQuality", resizeToHeight: "resizeToHeight", resizeToWidth: "resizeToWidth", backgroundColor: "backgroundColor", format: "format", alignImage: "alignImage", containWithinAspectRatio: "containWithinAspectRatio", aspectRatio: "aspectRatio", cropperPreviewHeight: "cropperPreviewHeight", cropperPreviewWidth: "cropperPreviewWidth", circleCropper: "circleCropper", autoSave: "autoSave", inverseColor: "inverseColor" }, outputs: { choosen: "choosen", canceled: "canceled" }, ngImport: i0, template: "<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <!--<div style=\"max-width: 400px\" class=\"pt-4\">\n <app-info-box title=\"Hinweis\"\n [description]=\"'Die Bilddatei muss mindestens ' + resizeToWidth + 'px x ' + resizeToHeight + 'px betragen, darf maximal 6,4 MB gro\u00DF sein und muss im Dateiformat JPG oder PNG vorliegen.'\"\n icon=\"fa-info-circle\"\n backgroud=\"navy\"\n iconPosition=\"bottom\"\n [descriptionWrap]=\"true\">\n </app-info-box>\n </div>-->\n\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg p-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x onshore-color-gray-4\"></i>\n <small class=\"onshore-color-gray-4 mb-2\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-file\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\"\n class=\"onshore-button-primary mr-2\">\n </button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"onshore-image-input absolute w-full h-full\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <!--<div style=\"max-width: 400px\" class=\"pt-4\">\n <app-info-box title=\"Hinweis\"\n description=\"W\u00E4hle einen Bereich der vom Bild verwendet werden soll.\"\n icon=\"fa-info-circle\"\n backgroud=\"navy\"\n iconPosition=\"bottom\"\n [descriptionWrap]=\"true\">\n </app-info-box>\n </div>-->\n\n <image-cropper\n class=\"onshore-image-cropper m-3\"\n [class.onshore-cropper-circle]=\"circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageQuality\"\n [alignImage]=\"alignImage\"\n [backgroundColor]=\"backgroundColor\"\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\n [format]=\"format\"\n [aspectRatio]=\"aspectRatio\"\n [resizeToHeight]=\"resizeToHeight\"\n [resizeToWidth]=\"resizeToWidth\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center onshore-color-danger\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth, resizeToHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"clear(); canceled.emit(true)\">\n </button>\n\n <button pButton\n type=\"button\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n class=\"onshore-button-light\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i3.Footer, selector: "p-footer" }, { kind: "component", type: i4.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
+ OnshoreImageChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: OnshoreImageChooserComponent, selector: "onshore-image-chooser", inputs: { imageSettings: "imageSettings" }, outputs: { choosen: "choosen", canceled: "canceled" }, ngImport: i0, template: "<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <!--<div style=\"max-width: 400px\" class=\"pt-4\">\n <app-info-box title=\"Hinweis\"\n [description]=\"'Die Bilddatei muss mindestens ' + resizeToWidth + 'px x ' + resizeToHeight + 'px betragen, darf maximal 6,4 MB gro\u00DF sein und muss im Dateiformat JPG oder PNG vorliegen.'\"\n icon=\"fa-info-circle\"\n backgroud=\"navy\"\n iconPosition=\"bottom\"\n [descriptionWrap]=\"true\">\n </app-info-box>\n </div>-->\n\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg p-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x onshore-color-gray-4\"></i>\n <small class=\"onshore-color-gray-4 mb-2\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-file\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\"\n class=\"onshore-button-primary mr-2\">\n </button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"onshore-image-input absolute w-full h-full\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <image-cropper\n class=\"m-3\" [style]=\"'height: ' + imageSettings.cropperPreviewHeight + 'px; width: ' + imageSettings.cropperPreviewWidth + 'px'\"\n [class.onshore-cropper-circle]=\"this.imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"this.imageSettings.imageQuality\"\n [alignImage]=\"this.imageSettings.alignImage\"\n [backgroundColor]=\"this.imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"this.imageSettings.containWithinAspectRatio\"\n [format]=\"this.imageSettings.format\"\n [aspectRatio]=\"this.imageSettings.aspectRatio\"\n [resizeToHeight]=\"this.imageSettings.imageWidth\"\n [resizeToWidth]=\"this.imageSettings.imageHeight\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center onshore-color-danger\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth: this.imageSettings.imageWidth, resizeToHeight: this.imageSettings.imageHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"clear(); canceled.emit(true)\">\n </button>\n\n <button pButton\n type=\"button\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n class=\"onshore-button-light\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i3.Footer, selector: "p-footer" }, { kind: "component", type: i4.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: OnshoreImageChooserComponent, decorators: [{
83
70
  type: Component,
84
- args: [{ selector: 'onshore-image-chooser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <!--<div style=\"max-width: 400px\" class=\"pt-4\">\n <app-info-box title=\"Hinweis\"\n [description]=\"'Die Bilddatei muss mindestens ' + resizeToWidth + 'px x ' + resizeToHeight + 'px betragen, darf maximal 6,4 MB gro\u00DF sein und muss im Dateiformat JPG oder PNG vorliegen.'\"\n icon=\"fa-info-circle\"\n backgroud=\"navy\"\n iconPosition=\"bottom\"\n [descriptionWrap]=\"true\">\n </app-info-box>\n </div>-->\n\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg p-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x onshore-color-gray-4\"></i>\n <small class=\"onshore-color-gray-4 mb-2\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-file\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\"\n class=\"onshore-button-primary mr-2\">\n </button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"onshore-image-input absolute w-full h-full\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <!--<div style=\"max-width: 400px\" class=\"pt-4\">\n <app-info-box title=\"Hinweis\"\n description=\"W\u00E4hle einen Bereich der vom Bild verwendet werden soll.\"\n icon=\"fa-info-circle\"\n backgroud=\"navy\"\n iconPosition=\"bottom\"\n [descriptionWrap]=\"true\">\n </app-info-box>\n </div>-->\n\n <image-cropper\n class=\"onshore-image-cropper m-3\"\n [class.onshore-cropper-circle]=\"circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageQuality\"\n [alignImage]=\"alignImage\"\n [backgroundColor]=\"backgroundColor\"\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\n [format]=\"format\"\n [aspectRatio]=\"aspectRatio\"\n [resizeToHeight]=\"resizeToHeight\"\n [resizeToWidth]=\"resizeToWidth\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center onshore-color-danger\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth, resizeToHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"clear(); canceled.emit(true)\">\n </button>\n\n <button pButton\n type=\"button\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n class=\"onshore-button-light\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n" }]
85
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { imageQuality: [{
86
- type: Input
87
- }], resizeToHeight: [{
88
- type: Input
89
- }], resizeToWidth: [{
90
- type: Input
91
- }], backgroundColor: [{
92
- type: Input
93
- }], format: [{
94
- type: Input
95
- }], alignImage: [{
96
- type: Input
97
- }], containWithinAspectRatio: [{
98
- type: Input
99
- }], aspectRatio: [{
100
- type: Input
101
- }], cropperPreviewHeight: [{
102
- type: Input
103
- }], cropperPreviewWidth: [{
104
- type: Input
105
- }], circleCropper: [{
106
- type: Input
107
- }], autoSave: [{
108
- type: Input
109
- }], inverseColor: [{
71
+ args: [{ selector: 'onshore-image-chooser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <!--<div style=\"max-width: 400px\" class=\"pt-4\">\n <app-info-box title=\"Hinweis\"\n [description]=\"'Die Bilddatei muss mindestens ' + resizeToWidth + 'px x ' + resizeToHeight + 'px betragen, darf maximal 6,4 MB gro\u00DF sein und muss im Dateiformat JPG oder PNG vorliegen.'\"\n icon=\"fa-info-circle\"\n backgroud=\"navy\"\n iconPosition=\"bottom\"\n [descriptionWrap]=\"true\">\n </app-info-box>\n </div>-->\n\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg p-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x onshore-color-gray-4\"></i>\n <small class=\"onshore-color-gray-4 mb-2\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-file\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\"\n class=\"onshore-button-primary mr-2\">\n </button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"onshore-image-input absolute w-full h-full\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <image-cropper\n class=\"m-3\" [style]=\"'height: ' + imageSettings.cropperPreviewHeight + 'px; width: ' + imageSettings.cropperPreviewWidth + 'px'\"\n [class.onshore-cropper-circle]=\"this.imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"this.imageSettings.imageQuality\"\n [alignImage]=\"this.imageSettings.alignImage\"\n [backgroundColor]=\"this.imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"this.imageSettings.containWithinAspectRatio\"\n [format]=\"this.imageSettings.format\"\n [aspectRatio]=\"this.imageSettings.aspectRatio\"\n [resizeToHeight]=\"this.imageSettings.imageWidth\"\n [resizeToWidth]=\"this.imageSettings.imageHeight\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center onshore-color-danger\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth: this.imageSettings.imageWidth, resizeToHeight: this.imageSettings.imageHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"clear(); canceled.emit(true)\">\n </button>\n\n <button pButton\n type=\"button\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n class=\"onshore-button-light\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n" }]
72
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { imageSettings: [{
110
73
  type: Input
111
74
  }], choosen: [{
112
75
  type: Output
113
76
  }], canceled: [{
114
77
  type: Output
115
78
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2hvb3Nlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnNob3JlLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS1jaG9vc2VyL2ltYWdlLWNob29zZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtY2hvb3Nlci9pbWFnZS1jaG9vc2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBTzNELE1BQU0sT0FBTyw0QkFBNEI7SUFxRnZDLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkYxQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsbUJBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUNuQyxlQUFVLEdBQXNCLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUV2QyxpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUNuQixtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUNyQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQixvQkFBZSxHQUFHLE9BQU8sQ0FBQztRQUMxQixXQUFNLEdBQTRDLEtBQUssQ0FBQztRQUN4RCxlQUFVLEdBQXNCLFFBQVEsQ0FBQztRQUN6Qyw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFDakMsZ0JBQVcsR0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLHlCQUFvQixHQUFH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QUFTOytCQUNFLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTTt3R0FVL0IsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1Usd0JBQXdCO3NCQUF2QyxLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VDcm9wcGVkRXZlbnQgfSBmcm9tICduZ3gtaW1hZ2UtY3JvcHBlcic7XG5pbXBvcnQgeyBPbnNob3JlSW1hZ2VFcnJvciB9IGZyb20gJy4uLy4uL2VudW1zL2Zvcm0uZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvbnNob3JlLWltYWdlLWNob29zZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtY2hvb3Nlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPbnNob3JlSW1hZ2VDaG9vc2VyQ29tcG9uZW50IHtcblxuICBkcmFnID0gZmFsc2U7XG4gIGltYWdlID0gJyc7XG4gIGZpbmFsSW1hZ2UgPSAnJztcbiAgaW1hZ2VFcnJvclR5cGUgPSBPbnNob3JlSW1hZ2VFcnJvcjtcbiAgaW1hZ2VFcnJvcjogT25zaG9yZUltYWdlRXJyb3IgPSBPbnNob3JlSW1hZ2VFcnJvci5ub25lO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZVF1YWxpdHkgPSAxMDA7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXNpemVUb0hlaWdodCA9IDQwMDtcbiAgQElucHV0KCkgcHVibGljIHJlc2l6ZVRvV2lkdGggPSA0MDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBiYWNrZ3JvdW5kQ29sb3IgPSAnd2hpdGUnO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0OiAncG5nJyB8ICdqcGVnJyB8ICdibXAnIHwgJ3dlYnAnIHwgJ2ljbycgPSAncG5nJztcbiAgQElucHV0KCkgcHVibGljIGFsaWduSW1hZ2U6ICdsZWZ0JyB8ICdjZW50ZXInID0gJ2NlbnRlcic7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250YWluV2l0aGluQXNwZWN0UmF0aW8gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGFzcGVjdFJhdGlvOiBudW1iZXIgPSAxIC8gMTtcbiAgQElucHV0KCkgcHVibGljIGNyb3BwZXJQcmV2aWV3SGVpZ2h0ID0gMjAwO1xuICBASW5wdXQoKSBwdWJsaWMgY3JvcHBlclByZXZpZXdXaWR0aCA9IDIwMDtcbiAgQElucHV0KCkgcHVibGljIGNpcmNsZUNyb3BwZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGF1dG9TYXZlID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGludmVyc2VDb2xvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBjaG9vc2VuOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5pbWFnZSA9ICcnO1xuICAgIHRoaXMuZmluYWxJbWFnZSA9ICcnO1xuICAgIHRoaXMuaW1hZ2VFcnJvciA9IE9uc2hvcmVJbWFnZUVycm9yLm5vbmU7XG4gIH1cblxuICBwdWJsaWMgZmlsZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmltYWdlRXJyb3IgPSBPbnNob3JlSW1hZ2VFcnJvci5ub25lO1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGZpbGU6IEZpbGUgfCB1bmRlZmluZWQgfCBudWxsID0gdGFyZ2V0Py5maWxlcyA/IHRhcmdldD8uZmlsZXNbMF0gOiBudWxsO1xuXG4gICAgaWYgKGZpbGU/LnR5cGUgIT0gJ2ltYWdlL3BuZycgJiYgZmlsZT8udHlwZSAhPSAnaW1hZ2UvanBlZycgJiYgZmlsZT8udHlwZSAhPSAnaW1hZ2Uvd2VicCcpIHtcbiAgICAgIHRoaXMuaW1hZ2VFcnJvciA9IE9uc2hvcmVJbWFnZUVycm9yLmZpbGVUeXBlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmaWxlPy5zaXplID4gNjQwMDAwMCkge1xuICAgICAgdGhpcy5pbWFnZUVycm9yID0gT25zaG9yZUltYWdlRXJyb3Iuc2l6ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcblxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgaW1nLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuXG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxXaWR0aCA9IGltZy53aWR0aDtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEhlaWdodCA9IGltZy5oZWlnaHQ7XG5cbiAgICAgICAgICBpZiAob3JpZ2luYWxXaWR0aCA+PSB0aGlzLnJlc2l6ZVRvV2lkdGggJiYgb3JpZ2luYWxIZWlnaHQgPj0gdGhpcy5yZXNpemVUb0hlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5pbWFnZSA9IHJlYWRlci5yZXN1bHQ/LnRvU3RyaW5nKCkgfHwgJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VFcnJvciA9IE9uc2hvcmVJbWFnZUVycm9yLnJhdGlvO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICB9XG5cbiAgICAgIH07XG4gICAgfVxuXG5cblxuICB9XG5cbiAgcHVibGljIGltYWdlQ3JvcHBlZChldmVudDogSW1hZ2VDcm9wcGVkRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBUb0RvOiBDaGVjayBuZWVkZWQgYmFzZTY0IGZvcm1hdFxuICAgIC8vdGhpcy5maW5hbEltYWdlID0gZXZlbnQuYmFzZTY0LnNwbGl0KCcsJylbMV07XG4gICAgdGhpcy5maW5hbEltYWdlID0gZXZlbnQuYmFzZTY0IHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGltYWdlQ3JvcHBlZFJlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMuY2hvb3Nlbi5lbWl0KHRoaXMuZmluYWxJbWFnZSk7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHctZnVsbFwiPlxuXG4gIDxkaXYgKm5nSWY9XCIhaW1hZ2VcIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy1mdWxsXCI+XG4gICAgPCEtLTxkaXYgc3R5bGU9XCJtYXgtd2lkdGg6IDQwMHB4XCIgY2xhc3M9XCJwdC00XCI+XG4gICAgICA8YXBwLWluZm8tYm94IHRpdGxlPVwiSGlud2Vpc1wiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCInRGllIEJpbGRkYXRlaSBtdXNzIG1pbmRlc3RlbnMgJyArIHJlc2l6ZVRvV2lkdGggKyAncHggeCAnICsgcmVzaXplVG9IZWlnaHQgKyAncHggYmV0cmFnZW4sIGRhcmYgbWF4aW1hbCA2LDQgTUIgZ3Jvw58gc2VpbiB1bmQgbXVzcyBpbSBEYXRlaWZvcm1hdCBKUEcgb2RlciBQTkcgdm9ybGllZ2VuLidcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZmEtaW5mby1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdWQ9XCJuYXZ5XCJcbiAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uV3JhcF09XCJ0cnVlXCI+XG4gICAgICA8L2FwcC1pbmZvLWJveD5cbiAgICA8L2Rpdj4tLT5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwib25zaG9yZS1pbWFnZS11cGxvYWQgZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBwLTQgcmVsYXRpdmUgbS0zXCJcbiAgICAgIFtjbGFzcy5vbnNob3JlLWJvcmRlci1ncmF5LTNdPVwiZHJhZ1wiXG4gICAgICBbY2xhc3Mub25zaG9yZS1ib3JkZXItZGFuZ2VyXT1cImltYWdlRXJyb3IgIT0gaW1hZ2VFcnJvclR5cGUubm9uZVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbWFnZSBmYS01eCBvbnNob3JlLWNvbG9yLWdyYXktNFwiPjwvaT5cbiAgICAgIDxzbWFsbCBjbGFzcz1cIm9uc2hvcmUtY29sb3ItZ3JheS00IG1iLTJcIj57eydmb3JtLmltYWdlQ29udHJvbC5kcm9wSW1hZ2VMYWJlbCcgfCB0cmFuc2xhdGV9fTwvc21hbGw+XG5cbiAgICAgIDxidXR0b24gcEJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgaWNvbj1cImZhIGZhLWZpbGVcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLmltYWdlQ2hvb3NlckZpbGVCdXR0b24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJvbnNob3JlLWJ1dHRvbi1wcmltYXJ5IG1yLTJcIj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8aW5wdXRcbiAgICAgICAgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAqbmdJZj1cIiFpbWFnZVwiXG4gICAgICAgIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZywgaW1hZ2Uvd2VicFwiXG4gICAgICAgIGNsYXNzPVwib25zaG9yZS1pbWFnZS1pbnB1dCBhYnNvbHV0ZSB3LWZ1bGwgaC1mdWxsXCJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAoZHJhZ2VudGVyKT1cImRyYWcgPSB0cnVlXCJcbiAgICAgICAgKGRyYWdsZWF2ZSk9XCJkcmFnID0gZmFsc2VcIlxuICAgICAgICAoZHJhZ2VuZCk9XCJkcmFnID0gZmFsc2VcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gcmVsYXRpdmUgYWxpZ24taXRlbXMtY2VudGVyIHctZnVsbFwiICpuZ0lmPVwiaW1hZ2VcIj5cbiAgICA8IS0tPGRpdiBzdHlsZT1cIm1heC13aWR0aDogNDAwcHhcIiBjbGFzcz1cInB0LTRcIj5cbiAgICAgIDxhcHAtaW5mby1ib3ggdGl0bGU9XCJIaW53ZWlzXCJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJXw6RobGUgZWluZW4gQmVyZWljaCBkZXIgdm9tIEJpbGQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLlwiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJmYS1pbmZvLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91ZD1cIm5hdnlcIlxuICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25XcmFwXT1cInRydWVcIj5cbiAgICAgIDwvYXBwLWluZm8tYm94PlxuICAgIDwvZGl2Pi0tPlxuXG4gICAgPGltYWdlLWNyb3BwZXJcbiAgICAgIGNsYXNzPVwib25zaG9yZS1pbWFnZS1jcm9wcGVyIG0tM1wiXG4gICAgICBbY2xhc3Mub25zaG9yZS1jcm9wcGVyLWNpcmNsZV09XCJjaXJjbGVDcm9wcGVyXCJcbiAgICAgIChpbWFnZUNyb3BwZWQpPVwiaW1hZ2VDcm9wcGVkKCRldmVudClcIlxuICAgICAgW2ltYWdlQmFzZTY0XT1cImltYWdlXCJcbiAgICAgIFtpbWFnZVF1YWxpdHldPVwiaW1hZ2VRdWFsaXR5XCJcbiAgICAgIFthbGlnbkltYWdlXT1cImFsaWduSW1hZ2VcIlxuICAgICAgW2JhY2tncm91bmRDb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgW2NvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpb109XCJjb250YWluV2l0aGluQXNwZWN0UmF0aW9cIlxuICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgW2FzcGVjdFJhdGlvXT1cImFzcGVjdFJhdGlvXCJcbiAgICAgIFtyZXNpemVUb0hlaWdodF09XCJyZXNpemVUb0hlaWdodFwiXG4gICAgICBbcmVzaXplVG9XaWR0aF09XCJyZXNpemVUb1dpZHRoXCI+XG4gICAgPC9pbWFnZS1jcm9wcGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiaW1hZ2VFcnJvclwiY2xhc3M9XCJwYi0yIHRleHQtd3JhcCB0ZXh0LWNlbnRlciBvbnNob3JlLWNvbG9yLWRhbmdlclwiPlxuICAgIDxzbWFsbCAqbmdJZj1cImltYWdlRXJyb3IgPT0gaW1hZ2VFcnJvclR5cGUucmF0aW9cIj57eydmb3JtLmltYWdlQ29udHJvbC5pbWFnZUVycm9yUmF0aW8nIHwgdHJhbnNsYXRlOiB7cmVzaXplVG9XaWR0aCwgcmVzaXplVG9IZWlnaHR9IH19PC9zbWFsbD5cbiAgICA8c21hbGwgKm5nSWY9XCJpbWFnZUVycm9yID09IGltYWdlRXJyb3JUeXBlLmZpbGVUeXBlXCI+e3snZm9ybS5pbWFnZUNvbnRyb2wuaW1hZ2VFcnJvckZpbGVUeXBlJyB8IHRyYW5zbGF0ZX19PC9zbWFsbD5cbiAgICA8c21hbGwgKm5nSWY9XCJpbWFnZUVycm9yID09IGltYWdlRXJyb3JUeXBlLnNpemVcIj57eydmb3JtLmltYWdlQ29udHJvbC5pbWFnZUVycm9yU2l6ZScgfCB0cmFuc2xhdGV9fTwvc21hbGw+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuPHAtZm9vdGVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCI+XG4gICAgPGJ1dHRvbiBwQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb249XCJmYSBmYS10aW1lc1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLmltYWdlQ2hvb3NlckNhbmNlbEJ1dHRvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJvbnNob3JlLWJ1dHRvbi1saWdodCBtci0yXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigpOyBjYW5jZWxlZC5lbWl0KHRydWUpXCI+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIHBCdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidmb3JtLmltYWdlQ29udHJvbC5pbWFnZUNob29zZXJTZWxlY3RCdXR0b24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGNsYXNzPVwib25zaG9yZS1idXR0b24tbGlnaHRcIlxuICAgICAgICAgICAgaWNvbj1cImZhIGZhLWNoZWNrXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbWFnZUNyb3BwZWRSZWFkeSgpXCI+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9wLWZvb3Rlcj5cblxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2hvb3Nlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnNob3JlLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS1jaG9vc2VyL2ltYWdlLWNob29zZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtY2hvb3Nlci9pbWFnZS1jaG9vc2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBUTNELE1BQU0sT0FBTyw0QkFBNEI7SUF5RXZDLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdkUxQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsbUJBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUNuQyxlQUFVLEdBQXNCLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUk3QyxZQUFPLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsYUFBUSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBK0QvRCxDQUFDO0lBN0RELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVk7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDaEQsTUFBTSxJQUFJLEdBQTRCLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU5RSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksV0FBVyxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksWUFBWSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksWUFBWSxFQUFFO1lBQ3pGLElBQUksQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQzdDLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUN6QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksRUFBRTtZQUNSLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFFbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0MsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7b0JBRWhCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ2hDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7b0JBRWxDLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTt3QkFDdEcsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztxQkFDOUM7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7cUJBQzNDO29CQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBRTFCLENBQUMsQ0FBQTtZQUVILENBQUMsQ0FBQztTQUNIO0lBSUgsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUF3QjtRQUMxQyxtQ0FBbUM7UUFDbkMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzs7eUhBdkVVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGdLQ2pCekMsd3pIQXFGQTsyRkRwRWEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTTt3R0FVdEMsYUFBYTtzQkFBckIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VDcm9wcGVkRXZlbnQgfSBmcm9tICduZ3gtaW1hZ2UtY3JvcHBlcic7XG5pbXBvcnQgeyBPbnNob3JlSW1hZ2VFcnJvciB9IGZyb20gJy4uLy4uL2VudW1zL2Zvcm0uZW51bXMnO1xuaW1wb3J0IHsgT25zaG9yZUZvcm1JbWFnZVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb25zaG9yZS1pbWFnZS1jaG9vc2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWNob29zZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgT25zaG9yZUltYWdlQ2hvb3NlckNvbXBvbmVudCB7XG5cbiAgZHJhZyA9IGZhbHNlO1xuICBpbWFnZSA9ICcnO1xuICBmaW5hbEltYWdlID0gJyc7XG4gIGltYWdlRXJyb3JUeXBlID0gT25zaG9yZUltYWdlRXJyb3I7XG4gIGltYWdlRXJyb3I6IE9uc2hvcmVJbWFnZUVycm9yID0gT25zaG9yZUltYWdlRXJyb3Iubm9uZTtcblxuICBASW5wdXQoKSBpbWFnZVNldHRpbmdzOiBPbnNob3JlRm9ybUltYWdlU2V0dGluZ3M7XG5cbiAgQE91dHB1dCgpIGNob29zZW46IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2FuY2VsZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmltYWdlID0gJyc7XG4gICAgdGhpcy5maW5hbEltYWdlID0gJyc7XG4gICAgdGhpcy5pbWFnZUVycm9yID0gT25zaG9yZUltYWdlRXJyb3Iubm9uZTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VFcnJvciA9IE9uc2hvcmVJbWFnZUVycm9yLm5vbmU7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZTogRmlsZSB8IHVuZGVmaW5lZCB8IG51bGwgPSB0YXJnZXQ/LmZpbGVzID8gdGFyZ2V0Py5maWxlc1swXSA6IG51bGw7XG5cbiAgICBpZiAoZmlsZT8udHlwZSAhPSAnaW1hZ2UvcG5nJyAmJiBmaWxlPy50eXBlICE9ICdpbWFnZS9qcGVnJyAmJiBmaWxlPy50eXBlICE9ICdpbWFnZS93ZWJwJykge1xuICAgICAgdGhpcy5pbWFnZUVycm9yID0gT25zaG9yZUltYWdlRXJyb3IuZmlsZVR5cGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZpbGU/LnNpemUgPiB0aGlzLmltYWdlU2V0dGluZ3MubWF4RmlsZVNpemUpIHtcbiAgICAgIHRoaXMuaW1hZ2VFcnJvciA9IE9uc2hvcmVJbWFnZUVycm9yLnNpemU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG5cbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGltZy5zcmMgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcblxuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsV2lkdGggPSBpbWcud2lkdGg7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxIZWlnaHQgPSBpbWcuaGVpZ2h0O1xuXG4gICAgICAgICAgaWYgKG9yaWdpbmFsV2lkdGggPj0gdGhpcy5pbWFnZVNldHRpbmdzLmltYWdlV2lkdGggJiYgb3JpZ2luYWxIZWlnaHQgPj0gdGhpcy5pbWFnZVNldHRpbmdzLmltYWdlSGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLmltYWdlID0gcmVhZGVyLnJlc3VsdD8udG9TdHJpbmcoKSB8fCAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUVycm9yID0gT25zaG9yZUltYWdlRXJyb3IucmF0aW87XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIH1cblxuICAgICAgfTtcbiAgICB9XG5cblxuXG4gIH1cblxuICBwdWJsaWMgaW1hZ2VDcm9wcGVkKGV2ZW50OiBJbWFnZUNyb3BwZWRFdmVudCk6IHZvaWQge1xuICAgIC8vIFRvRG86IENoZWNrIG5lZWRlZCBiYXNlNjQgZm9ybWF0XG4gICAgLy90aGlzLmZpbmFsSW1hZ2UgPSBldmVudC5iYXNlNjQuc3BsaXQoJywnKVsxXTtcbiAgICB0aGlzLmZpbmFsSW1hZ2UgPSBldmVudC5iYXNlNjQgfHwgJyc7XG4gIH1cblxuICBwdWJsaWMgaW1hZ2VDcm9wcGVkUmVhZHkoKTogdm9pZCB7XG4gICAgdGhpcy5jaG9vc2VuLmVtaXQodGhpcy5maW5hbEltYWdlKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgdy1mdWxsXCI+XG5cbiAgPGRpdiAqbmdJZj1cIiFpbWFnZVwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciB3LWZ1bGxcIj5cbiAgICA8IS0tPGRpdiBzdHlsZT1cIm1heC13aWR0aDogNDAwcHhcIiBjbGFzcz1cInB0LTRcIj5cbiAgICAgIDxhcHAtaW5mby1ib3ggdGl0bGU9XCJIaW53ZWlzXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidEaWUgQmlsZGRhdGVpIG11c3MgbWluZGVzdGVucyAnICsgcmVzaXplVG9XaWR0aCArICdweCB4ICcgKyByZXNpemVUb0hlaWdodCArICdweCBiZXRyYWdlbiwgZGFyZiBtYXhpbWFsIDYsNCBNQiBncm/DnyBzZWluIHVuZCBtdXNzIGltIERhdGVpZm9ybWF0IEpQRyBvZGVyIFBORyB2b3JsaWVnZW4uJ1wiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJmYS1pbmZvLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91ZD1cIm5hdnlcIlxuICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25XcmFwXT1cInRydWVcIj5cbiAgICAgIDwvYXBwLWluZm8tYm94PlxuICAgIDwvZGl2Pi0tPlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJvbnNob3JlLWltYWdlLXVwbG9hZCBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciByb3VuZGVkLWxnIHAtNCByZWxhdGl2ZSBtLTNcIlxuICAgICAgW2NsYXNzLm9uc2hvcmUtYm9yZGVyLWdyYXktM109XCJkcmFnXCJcbiAgICAgIFtjbGFzcy5vbnNob3JlLWJvcmRlci1kYW5nZXJdPVwiaW1hZ2VFcnJvciAhPSBpbWFnZUVycm9yVHlwZS5ub25lXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLWltYWdlIGZhLTV4IG9uc2hvcmUtY29sb3ItZ3JheS00XCI+PC9pPlxuICAgICAgPHNtYWxsIGNsYXNzPVwib25zaG9yZS1jb2xvci1ncmF5LTQgbWItMlwiPnt7J2Zvcm0uaW1hZ2VDb250cm9sLmRyb3BJbWFnZUxhYmVsJyB8IHRyYW5zbGF0ZX19PC9zbWFsbD5cblxuICAgICAgPGJ1dHRvbiBwQnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBpY29uPVwiZmEgZmEtZmlsZVwiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInZm9ybS5pbWFnZUNvbnRyb2wuaW1hZ2VDaG9vc2VyRmlsZUJ1dHRvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm9uc2hvcmUtYnV0dG9uLXByaW1hcnkgbXItMlwiPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICAoY2hhbmdlKT1cImZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICpuZ0lmPVwiIWltYWdlXCJcbiAgICAgICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnLCBpbWFnZS93ZWJwXCJcbiAgICAgICAgY2xhc3M9XCJvbnNob3JlLWltYWdlLWlucHV0IGFic29sdXRlIHctZnVsbCBoLWZ1bGxcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIChkcmFnZW50ZXIpPVwiZHJhZyA9IHRydWVcIlxuICAgICAgICAoZHJhZ2xlYXZlKT1cImRyYWcgPSBmYWxzZVwiXG4gICAgICAgIChkcmFnZW5kKT1cImRyYWcgPSBmYWxzZVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiByZWxhdGl2ZSBhbGlnbi1pdGVtcy1jZW50ZXIgdy1mdWxsXCIgKm5nSWY9XCJpbWFnZVwiPlxuICAgIDxpbWFnZS1jcm9wcGVyXG4gICAgICBjbGFzcz1cIm0tM1wiIFtzdHlsZV09XCInaGVpZ2h0OiAnICsgaW1hZ2VTZXR0aW5ncy5jcm9wcGVyUHJldmlld0hlaWdodCArICdweDsgd2lkdGg6ICcgKyBpbWFnZVNldHRpbmdzLmNyb3BwZXJQcmV2aWV3V2lkdGggKyAncHgnXCJcbiAgICAgIFtjbGFzcy5vbnNob3JlLWNyb3BwZXItY2lyY2xlXT1cInRoaXMuaW1hZ2VTZXR0aW5ncy5jaXJjbGVDcm9wcGVyXCJcbiAgICAgIChpbWFnZUNyb3BwZWQpPVwiaW1hZ2VDcm9wcGVkKCRldmVudClcIlxuICAgICAgW2ltYWdlQmFzZTY0XT1cImltYWdlXCJcbiAgICAgIFtpbWFnZVF1YWxpdHldPVwidGhpcy5pbWFnZVNldHRpbmdzLmltYWdlUXVhbGl0eVwiXG4gICAgICBbYWxpZ25JbWFnZV09XCJ0aGlzLmltYWdlU2V0dGluZ3MuYWxpZ25JbWFnZVwiXG4gICAgICBbYmFja2dyb3VuZENvbG9yXT1cInRoaXMuaW1hZ2VTZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgW2NvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpb109XCJ0aGlzLmltYWdlU2V0dGluZ3MuY29udGFpbldpdGhpbkFzcGVjdFJhdGlvXCJcbiAgICAgIFtmb3JtYXRdPVwidGhpcy5pbWFnZVNldHRpbmdzLmZvcm1hdFwiXG4gICAgICBbYXNwZWN0UmF0aW9dPVwidGhpcy5pbWFnZVNldHRpbmdzLmFzcGVjdFJhdGlvXCJcbiAgICAgIFtyZXNpemVUb0hlaWdodF09XCJ0aGlzLmltYWdlU2V0dGluZ3MuaW1hZ2VXaWR0aFwiXG4gICAgICBbcmVzaXplVG9XaWR0aF09XCJ0aGlzLmltYWdlU2V0dGluZ3MuaW1hZ2VIZWlnaHRcIj5cbiAgICA8L2ltYWdlLWNyb3BwZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJpbWFnZUVycm9yXCJjbGFzcz1cInBiLTIgdGV4dC13cmFwIHRleHQtY2VudGVyIG9uc2hvcmUtY29sb3ItZGFuZ2VyXCI+XG4gICAgPHNtYWxsICpuZ0lmPVwiaW1hZ2VFcnJvciA9PSBpbWFnZUVycm9yVHlwZS5yYXRpb1wiPnt7J2Zvcm0uaW1hZ2VDb250cm9sLmltYWdlRXJyb3JSYXRpbycgfCB0cmFuc2xhdGU6IHtyZXNpemVUb1dpZHRoOiB0aGlzLmltYWdlU2V0dGluZ3MuaW1hZ2VXaWR0aCwgcmVzaXplVG9IZWlnaHQ6IHRoaXMuaW1hZ2VTZXR0aW5ncy5pbWFnZUhlaWdodH0gfX08L3NtYWxsPlxuICAgIDxzbWFsbCAqbmdJZj1cImltYWdlRXJyb3IgPT0gaW1hZ2VFcnJvclR5cGUuZmlsZVR5cGVcIj57eydmb3JtLmltYWdlQ29udHJvbC5pbWFnZUVycm9yRmlsZVR5cGUnIHwgdHJhbnNsYXRlfX08L3NtYWxsPlxuICAgIDxzbWFsbCAqbmdJZj1cImltYWdlRXJyb3IgPT0gaW1hZ2VFcnJvclR5cGUuc2l6ZVwiPnt7J2Zvcm0uaW1hZ2VDb250cm9sLmltYWdlRXJyb3JTaXplJyB8IHRyYW5zbGF0ZX19PC9zbWFsbD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG48cC1mb290ZXI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cbiAgICA8YnV0dG9uIHBCdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvbj1cImZhIGZhLXRpbWVzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInZm9ybS5pbWFnZUNvbnRyb2wuaW1hZ2VDaG9vc2VyQ2FuY2VsQnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm9uc2hvcmUtYnV0dG9uLWxpZ2h0IG1yLTJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKCk7IGNhbmNlbGVkLmVtaXQodHJ1ZSlcIj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gcEJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLmltYWdlQ2hvb3NlclNlbGVjdEJ1dHRvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJvbnNob3JlLWJ1dHRvbi1saWdodFwiXG4gICAgICAgICAgICBpY29uPVwiZmEgZmEtY2hlY2tcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImltYWdlQ3JvcHBlZFJlYWR5KClcIj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3AtZm9vdGVyPlxuXG4iXX0=
@@ -10,18 +10,6 @@ import * as i6 from "@ngx-translate/core";
10
10
  export class WebcamComponent {
11
11
  constructor(cdr) {
12
12
  this.cdr = cdr;
13
- this.inverseColor = false;
14
- this.imageQuality = 100;
15
- this.resizeToHeight = 400;
16
- this.resizeToWidth = 400;
17
- this.backgroundColor = 'white';
18
- this.format = 'png';
19
- this.alignImage = 'center';
20
- this.containWithinAspectRatio = false;
21
- this.aspectRatio = 1 / 1;
22
- this.cropperPreviewHeight = 200;
23
- this.cropperPreviewWidth = 200;
24
- this.circleCropper = false;
25
13
  this.shot = new EventEmitter();
26
14
  this.canceled = new EventEmitter();
27
15
  this.image = '';
@@ -47,37 +35,15 @@ export class WebcamComponent {
47
35
  }
48
36
  }
49
37
  WebcamComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: WebcamComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
50
- WebcamComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: WebcamComponent, selector: "onshore-webcam", inputs: { inverseColor: "inverseColor", imageQuality: "imageQuality", resizeToHeight: "resizeToHeight", resizeToWidth: "resizeToWidth", backgroundColor: "backgroundColor", format: "format", alignImage: "alignImage", containWithinAspectRatio: "containWithinAspectRatio", aspectRatio: "aspectRatio", cropperPreviewHeight: "cropperPreviewHeight", cropperPreviewWidth: "cropperPreviewWidth", circleCropper: "circleCropper" }, outputs: { shot: "shot", canceled: "canceled" }, ngImport: i0, template: "<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\" [class.onshore-inverse-color]=\"inverseColor\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"400\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <!--<div class=\"onshore-webcam-border position-absolute w-100 h-100\"></div>-->\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"onshore-image-cropper m-3\"\n [class.onshore-cropper-circle]=\"circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageQuality\"\n [alignImage]=\"alignImage\"\n [backgroundColor]=\"backgroundColor\"\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\n [format]=\"format\"\n [aspectRatio]=\"aspectRatio\"\n [resizeToHeight]=\"resizeToHeight\"\n [resizeToWidth]=\"resizeToWidth\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\" [class.onshore-inverse-color]=\"inverseColor\">\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n class=\"onshore-button-primary mr-2\"\n (click)=\"canceled.emit(true)\">\n </button>\n\n <button *ngIf=\"!image || image == ''\"\n pButton\n type=\"button\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </button>\n\n <button *ngIf=\"image && image != ''\"\n pButton\n type=\"button\"\n [label]=\"'global.use' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i3.Footer, selector: "p-footer" }, { kind: "component", type: i4.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange"] }, { kind: "component", type: i5.WebcamComponent, selector: "webcam", inputs: ["width", "height", "videoOptions", "allowCameraSwitch", "mirrorImage", "captureImageData", "imageType", "imageQuality", "trigger", "switchCamera"], outputs: ["imageCapture", "initError", "imageClick", "cameraSwitched"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
+ WebcamComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: WebcamComponent, selector: "onshore-webcam", inputs: { imageSettings: "imageSettings" }, outputs: { shot: "shot", canceled: "canceled" }, ngImport: i0, template: "<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"imageSettings.webcamWidth\"\n [width]=\"imageSettings.webcamHeight\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n [imageQuality]=\"imageSettings.imageQuality / 100\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"m-3\" [style]=\"'height: ' + imageSettings.cropperPreviewWidth + 'px; width: ' + imageSettings.cropperPreviewHeight + 'px'\"\n [class.onshore-cropper-circle]=\"imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageSettings.imageQuality\"\n [alignImage]=\"imageSettings.alignImage\"\n [backgroundColor]=\"imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"imageSettings.containWithinAspectRatio\"\n [format]=\"imageSettings.format\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n [resizeToHeight]=\"imageSettings.imageHeight\"\n [resizeToWidth]=\"imageSettings.imageWidth\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n class=\"onshore-button-primary mr-2\"\n (click)=\"canceled.emit(true)\">\n </button>\n\n <button *ngIf=\"!image || image == ''\"\n pButton\n type=\"button\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </button>\n\n <button *ngIf=\"image && image != ''\"\n pButton\n type=\"button\"\n [label]=\"'global.use' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i3.Footer, selector: "p-footer" }, { kind: "component", type: i4.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange"] }, { kind: "component", type: i5.WebcamComponent, selector: "webcam", inputs: ["width", "height", "videoOptions", "allowCameraSwitch", "mirrorImage", "captureImageData", "imageType", "imageQuality", "trigger", "switchCamera"], outputs: ["imageCapture", "initError", "imageClick", "cameraSwitched"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: WebcamComponent, decorators: [{
52
40
  type: Component,
53
- args: [{ selector: 'onshore-webcam', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\" [class.onshore-inverse-color]=\"inverseColor\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"400\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <!--<div class=\"onshore-webcam-border position-absolute w-100 h-100\"></div>-->\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"onshore-image-cropper m-3\"\n [class.onshore-cropper-circle]=\"circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageQuality\"\n [alignImage]=\"alignImage\"\n [backgroundColor]=\"backgroundColor\"\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\n [format]=\"format\"\n [aspectRatio]=\"aspectRatio\"\n [resizeToHeight]=\"resizeToHeight\"\n [resizeToWidth]=\"resizeToWidth\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\" [class.onshore-inverse-color]=\"inverseColor\">\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n class=\"onshore-button-primary mr-2\"\n (click)=\"canceled.emit(true)\">\n </button>\n\n <button *ngIf=\"!image || image == ''\"\n pButton\n type=\"button\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </button>\n\n <button *ngIf=\"image && image != ''\"\n pButton\n type=\"button\"\n [label]=\"'global.use' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n\n" }]
54
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { inverseColor: [{
55
- type: Input
56
- }], imageQuality: [{
57
- type: Input
58
- }], resizeToHeight: [{
59
- type: Input
60
- }], resizeToWidth: [{
61
- type: Input
62
- }], backgroundColor: [{
63
- type: Input
64
- }], format: [{
65
- type: Input
66
- }], alignImage: [{
67
- type: Input
68
- }], containWithinAspectRatio: [{
69
- type: Input
70
- }], aspectRatio: [{
71
- type: Input
72
- }], cropperPreviewHeight: [{
73
- type: Input
74
- }], cropperPreviewWidth: [{
75
- type: Input
76
- }], circleCropper: [{
41
+ args: [{ selector: 'onshore-webcam', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"imageSettings.webcamWidth\"\n [width]=\"imageSettings.webcamHeight\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n [imageQuality]=\"imageSettings.imageQuality / 100\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"m-3\" [style]=\"'height: ' + imageSettings.cropperPreviewWidth + 'px; width: ' + imageSettings.cropperPreviewHeight + 'px'\"\n [class.onshore-cropper-circle]=\"imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageSettings.imageQuality\"\n [alignImage]=\"imageSettings.alignImage\"\n [backgroundColor]=\"imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"imageSettings.containWithinAspectRatio\"\n [format]=\"imageSettings.format\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n [resizeToHeight]=\"imageSettings.imageHeight\"\n [resizeToWidth]=\"imageSettings.imageWidth\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n class=\"onshore-button-primary mr-2\"\n (click)=\"canceled.emit(true)\">\n </button>\n\n <button *ngIf=\"!image || image == ''\"\n pButton\n type=\"button\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </button>\n\n <button *ngIf=\"image && image != ''\"\n pButton\n type=\"button\"\n [label]=\"'global.use' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n\n" }]
42
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { imageSettings: [{
77
43
  type: Input
78
44
  }], shot: [{
79
45
  type: Output
80
46
  }], canceled: [{
81
47
  type: Output
82
48
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY2FtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uc2hvcmUtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3dlYmNhbS93ZWJjYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvd2ViY2FtL3dlYmNhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sZUFBZTtJQTZDMUIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzQzFCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsT0FBTyxDQUFDO1FBQzFCLFdBQU0sR0FBNEMsS0FBSyxDQUFDO1FBQ3hELGVBQVUsR0FBc0IsUUFBUSxDQUFDO1FBQ3pDLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUNqQyxnQkFBVyxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIseUJBQW9CLEdBQUcsR0FBRyxDQUFDO1FBQzNCLHdCQUFtQixHQUFHLEdBQUcsQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUM1QixTQUFJLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsYUFBUSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9ELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRVQsWUFBTyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBMEJwRCxDQUFDO0lBeEJNLFlBQVksQ0FBQyxXQUF3QjtRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQXdCO1FBQzFDLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFHRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs0R0EzQ1UsZUFBZTtnR0FBZixlQUFlLDZnQkNqQjVCLHVnRUEyREE7MkZEMUNhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU07d0dBSS9CLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1Usd0JBQXdCO3NCQUF2QyxLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNJLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdlYmNhbUltYWdlIH0gZnJvbSAnbmd4LXdlYmNhbSc7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZWRFdmVudCB9IGZyb20gJ25neC1pbWFnZS1jcm9wcGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb25zaG9yZS13ZWJjYW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vd2ViY2FtLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFdlYmNhbUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIGludmVyc2VDb2xvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaW1hZ2VRdWFsaXR5ID0gMTAwO1xuICBASW5wdXQoKSBwdWJsaWMgcmVzaXplVG9IZWlnaHQgPSA0MDA7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXNpemVUb1dpZHRoID0gNDAwO1xuICBASW5wdXQoKSBwdWJsaWMgYmFja2dyb3VuZENvbG9yID0gJ3doaXRlJztcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdDogJ3BuZycgfCAnanBlZycgfCAnYm1wJyB8ICd3ZWJwJyB8ICdpY28nID0gJ3BuZyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGlnbkltYWdlOiAnbGVmdCcgfCAnY2VudGVyJyA9ICdjZW50ZXInO1xuICBASW5wdXQoKSBwdWJsaWMgY29udGFpbldpdGhpbkFzcGVjdFJhdGlvID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBhc3BlY3RSYXRpbzogbnVtYmVyID0gMSAvIDE7XG4gIEBJbnB1dCgpIHB1YmxpYyBjcm9wcGVyUHJldmlld0hlaWdodCA9IDIwMDtcbiAgQElucHV0KCkgcHVibGljIGNyb3BwZXJQcmV2aWV3V2lkdGggPSAyMDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBjaXJjbGVDcm9wcGVyID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzaG90OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgaW1hZ2UgPSAnJztcbiAgZmluYWxJbWFnZSA9ICcnO1xuXG4gIHB1YmxpYyB0cmlnZ2VyOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgY2FtSW1hZ2VTaG90KHdlYmNhbUltYWdlOiBXZWJjYW1JbWFnZSk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2UgPSB3ZWJjYW1JbWFnZS5pbWFnZUFzRGF0YVVybDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpbWFnZUNyb3BwZWQoZXZlbnQ6IEltYWdlQ3JvcHBlZEV2ZW50KTogdm9pZCB7XG4gICAgLy8gVG9EbzogQ2hlY2sgbmVlZGVkIGJhc2U2NCBmb3JtYXRcbiAgICB0aGlzLmZpbmFsSW1hZ2UgPSBldmVudC5iYXNlNjQgfHwgJyc7XG4gIH1cblxuICBwdWJsaWMgaW1hZ2VDcm9wcGVkUmVhZHkoKTogdm9pZCB7XG4gICAgdGhpcy5zaG90LmVtaXQodGhpcy5maW5hbEltYWdlKTtcbiAgfVxuXG5cbiAgcHVibGljIGdldCB0cmlnZ2VyT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJTbmFwc2hvdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyaWdnZXIubmV4dCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlbiBwLTJcIiBbY2xhc3Mub25zaG9yZS1pbnZlcnNlLWNvbG9yXT1cImludmVyc2VDb2xvclwiPlxuICA8d2ViY2FtICpuZ0lmPVwiIWltYWdlIHx8IGltYWdlID09ICcnXCJcbiAgICAgICAgICBbbWlycm9ySW1hZ2VdPVwiJ25ldmVyJ1wiXG4gICAgICAgICAgW2hlaWdodF09XCI0MDBcIlxuICAgICAgICAgIFthbGxvd0NhbWVyYVN3aXRjaF09XCJ0cnVlXCJcbiAgICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2VyT2JzZXJ2YWJsZVwiXG4gICAgICAgICAgKGltYWdlQ2FwdHVyZSk9XCJjYW1JbWFnZVNob3QoJGV2ZW50KVwiPlxuICA8L3dlYmNhbT5cblxuICA8IS0tPGRpdiBjbGFzcz1cIm9uc2hvcmUtd2ViY2FtLWJvcmRlciBwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBoLTEwMFwiPjwvZGl2Pi0tPlxuXG4gIDxpbWFnZS1jcm9wcGVyICpuZ0lmPVwiaW1hZ2UgJiYgaW1hZ2UgIT0gJydcIlxuICAgIGNsYXNzPVwib25zaG9yZS1pbWFnZS1jcm9wcGVyIG0tM1wiXG4gICAgW2NsYXNzLm9uc2hvcmUtY3JvcHBlci1jaXJjbGVdPVwiY2lyY2xlQ3JvcHBlclwiXG4gICAgKGltYWdlQ3JvcHBlZCk9XCJpbWFnZUNyb3BwZWQoJGV2ZW50KVwiXG4gICAgW2ltYWdlQmFzZTY0XT1cImltYWdlXCJcbiAgICBbaW1hZ2VRdWFsaXR5XT1cImltYWdlUXVhbGl0eVwiXG4gICAgW2FsaWduSW1hZ2VdPVwiYWxpZ25JbWFnZVwiXG4gICAgW2JhY2tncm91bmRDb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxuICAgIFtjb250YWluV2l0aGluQXNwZWN0UmF0aW9dPVwiY29udGFpbldpdGhpbkFzcGVjdFJhdGlvXCJcbiAgICBbZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgW2FzcGVjdFJhdGlvXT1cImFzcGVjdFJhdGlvXCJcbiAgICBbcmVzaXplVG9IZWlnaHRdPVwicmVzaXplVG9IZWlnaHRcIlxuICAgIFtyZXNpemVUb1dpZHRoXT1cInJlc2l6ZVRvV2lkdGhcIj5cbiAgPC9pbWFnZS1jcm9wcGVyPlxuPC9kaXY+XG5cbjxwLWZvb3Rlcj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiIFtjbGFzcy5vbnNob3JlLWludmVyc2UtY29sb3JdPVwiaW52ZXJzZUNvbG9yXCI+XG5cbiAgICA8YnV0dG9uIHBCdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvbj1cImZhIGZhLXRpbWVzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInZ2xvYmFsLmNhbmNlbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJvbnNob3JlLWJ1dHRvbi1wcmltYXJ5IG1yLTJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbGVkLmVtaXQodHJ1ZSlcIj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gKm5nSWY9XCIhaW1hZ2UgfHwgaW1hZ2UgPT0gJydcIlxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2Zvcm0uaW1hZ2VDb250cm9sLndlYmNhbVNtaWxlQnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm9uc2hvcmUtYnV0dG9uLXByaW1hcnlcIlxuICAgICAgICAgICAgaWNvbj1cImZhIGZhLWxhdWdoLXdpbmtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRyaWdnZXJTbmFwc2hvdCgpXCI+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uICpuZ0lmPVwiaW1hZ2UgJiYgaW1hZ2UgIT0gJydcIlxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2dsb2JhbC51c2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGNsYXNzPVwib25zaG9yZS1idXR0b24tcHJpbWFyeVwiXG4gICAgICAgICAgICBpY29uPVwiZmEgZmEtY2hlY2tcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImltYWdlQ3JvcHBlZFJlYWR5KClcIj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3AtZm9vdGVyPlxuXG5cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY2FtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uc2hvcmUtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3dlYmNhbS93ZWJjYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvd2ViY2FtL3dlYmNhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVUzQyxNQUFNLE9BQU8sZUFBZTtJQW1DMUIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQmhDLFNBQUksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxhQUFRLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0QsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFVCxZQUFPLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7SUEwQnBELENBQUM7SUF4Qk0sWUFBWSxDQUFDLFdBQXdCO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBd0I7UUFDMUMsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUdELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OzRHQWpDVSxlQUFlO2dHQUFmLGVBQWUsbUpDbEI1QixtckVBMkRBOzJGRHpDYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGdCQUFnQixtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNO3dHQUl0QyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdlYmNhbUltYWdlIH0gZnJvbSAnbmd4LXdlYmNhbSc7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZWRFdmVudCB9IGZyb20gJ25neC1pbWFnZS1jcm9wcGVyJztcbmltcG9ydCB7IE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29uc2hvcmUtd2ViY2FtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dlYmNhbS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXZWJjYW1Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGltYWdlU2V0dGluZ3M6IE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncztcblxuICBAT3V0cHV0KCkgc2hvdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGltYWdlID0gJyc7XG4gIGZpbmFsSW1hZ2UgPSAnJztcblxuICBwdWJsaWMgdHJpZ2dlcjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGNhbUltYWdlU2hvdCh3ZWJjYW1JbWFnZTogV2ViY2FtSW1hZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmltYWdlID0gd2ViY2FtSW1hZ2UuaW1hZ2VBc0RhdGFVcmw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgaW1hZ2VDcm9wcGVkKGV2ZW50OiBJbWFnZUNyb3BwZWRFdmVudCk6IHZvaWQge1xuICAgIC8vIFRvRG86IENoZWNrIG5lZWRlZCBiYXNlNjQgZm9ybWF0XG4gICAgdGhpcy5maW5hbEltYWdlID0gZXZlbnQuYmFzZTY0IHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGltYWdlQ3JvcHBlZFJlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvdC5lbWl0KHRoaXMuZmluYWxJbWFnZSk7XG4gIH1cblxuXG4gIHB1YmxpYyBnZXQgdHJpZ2dlck9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlci5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmlnZ2VyU25hcHNob3QoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLm5leHQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW4gcC0yXCI+XG4gIDx3ZWJjYW0gKm5nSWY9XCIhaW1hZ2UgfHwgaW1hZ2UgPT0gJydcIlxuICAgICAgICAgIFttaXJyb3JJbWFnZV09XCInbmV2ZXInXCJcbiAgICAgICAgICBbaGVpZ2h0XT1cImltYWdlU2V0dGluZ3Mud2ViY2FtV2lkdGhcIlxuICAgICAgICAgIFt3aWR0aF09XCJpbWFnZVNldHRpbmdzLndlYmNhbUhlaWdodFwiXG4gICAgICAgICAgW2FsbG93Q2FtZXJhU3dpdGNoXT1cInRydWVcIlxuICAgICAgICAgIFt0cmlnZ2VyXT1cInRyaWdnZXJPYnNlcnZhYmxlXCJcbiAgICAgICAgICBbaW1hZ2VRdWFsaXR5XT1cImltYWdlU2V0dGluZ3MuaW1hZ2VRdWFsaXR5IC8gMTAwXCJcbiAgICAgICAgICAoaW1hZ2VDYXB0dXJlKT1cImNhbUltYWdlU2hvdCgkZXZlbnQpXCI+XG4gIDwvd2ViY2FtPlxuXG4gIDxpbWFnZS1jcm9wcGVyICpuZ0lmPVwiaW1hZ2UgJiYgaW1hZ2UgIT0gJydcIlxuICAgIGNsYXNzPVwibS0zXCIgW3N0eWxlXT1cIidoZWlnaHQ6ICcgKyBpbWFnZVNldHRpbmdzLmNyb3BwZXJQcmV2aWV3V2lkdGggKyAncHg7IHdpZHRoOiAnICsgaW1hZ2VTZXR0aW5ncy5jcm9wcGVyUHJldmlld0hlaWdodCArICdweCdcIlxuICAgIFtjbGFzcy5vbnNob3JlLWNyb3BwZXItY2lyY2xlXT1cImltYWdlU2V0dGluZ3MuY2lyY2xlQ3JvcHBlclwiXG4gICAgKGltYWdlQ3JvcHBlZCk9XCJpbWFnZUNyb3BwZWQoJGV2ZW50KVwiXG4gICAgW2ltYWdlQmFzZTY0XT1cImltYWdlXCJcbiAgICBbaW1hZ2VRdWFsaXR5XT1cImltYWdlU2V0dGluZ3MuaW1hZ2VRdWFsaXR5XCJcbiAgICBbYWxpZ25JbWFnZV09XCJpbWFnZVNldHRpbmdzLmFsaWduSW1hZ2VcIlxuICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiaW1hZ2VTZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgIFtjb250YWluV2l0aGluQXNwZWN0UmF0aW9dPVwiaW1hZ2VTZXR0aW5ncy5jb250YWluV2l0aGluQXNwZWN0UmF0aW9cIlxuICAgIFtmb3JtYXRdPVwiaW1hZ2VTZXR0aW5ncy5mb3JtYXRcIlxuICAgIFthc3BlY3RSYXRpb109XCJpbWFnZVNldHRpbmdzLmFzcGVjdFJhdGlvXCJcbiAgICBbcmVzaXplVG9IZWlnaHRdPVwiaW1hZ2VTZXR0aW5ncy5pbWFnZUhlaWdodFwiXG4gICAgW3Jlc2l6ZVRvV2lkdGhdPVwiaW1hZ2VTZXR0aW5ncy5pbWFnZVdpZHRoXCI+XG4gIDwvaW1hZ2UtY3JvcHBlcj5cbjwvZGl2PlxuXG48cC1mb290ZXI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cblxuICAgIDxidXR0b24gcEJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBpY29uPVwiZmEgZmEtdGltZXNcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidnbG9iYWwuY2FuY2VsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm9uc2hvcmUtYnV0dG9uLXByaW1hcnkgbXItMlwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsZWQuZW1pdCh0cnVlKVwiPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cIiFpbWFnZSB8fCBpbWFnZSA9PSAnJ1wiXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInZm9ybS5pbWFnZUNvbnRyb2wud2ViY2FtU21pbGVCdXR0b24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGNsYXNzPVwib25zaG9yZS1idXR0b24tcHJpbWFyeVwiXG4gICAgICAgICAgICBpY29uPVwiZmEgZmEtbGF1Z2gtd2lua1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidHJpZ2dlclNuYXBzaG90KClcIj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gKm5nSWY9XCJpbWFnZSAmJiBpbWFnZSAhPSAnJ1wiXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInZ2xvYmFsLnVzZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJvbnNob3JlLWJ1dHRvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgIGljb249XCJmYSBmYS1jaGVja1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW1hZ2VDcm9wcGVkUmVhZHkoKVwiPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvcC1mb290ZXI+XG5cblxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnNob3JlLWZvcm1zL3NyYy9saWIvbW9kZWxzL2Zvcm0ubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0LCBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZSB9IGZyb20gJy4uL2VudW1zL2Zvcm0uZW51bXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlQ291bnRyeUNvZGUge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFscGhhMjogc3RyaW5nO1xyXG4gIGFscGhhMzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVMYW5ndWFnZUxvY2FsZSB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY29kZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxTdHlsZT86IHN0cmluZztcclxuICB0eXBlPzogT25zaG9yZUZvcm1UZW1wbGF0ZVR5cGU7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgZW5hYmxlZD86IGJvb2xlYW47XHJcbiAgbG9ja2VkPzogYm9vbGVhbjtcclxuICBsYXlvdXQ/OiBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0O1xyXG4gIG9wdGlvbnM/OiBPbnNob3JlRm9ybVRlbXBsYXRlT3B0aW9uc1tdIHwgdm9pZFtdO1xyXG4gIG9wdGlvbkRhdGFLZXk/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdD86IGFueTtcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICB2YWxpZGF0aW9uSXRlbXM/OiBzdHJpbmdbXTtcclxuICB2YWxpZGF0b3JzPzogYW55W107XHJcbiAgc3ViZm9ybUFycmF5PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxuICBzdWJmb3JtT2JqZWN0PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlRm9ybVRlbXBsYXRlT3B0aW9ucyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtQXV0b2NvbXBsZXRlSXRlbSB7XHJcbiAgZmlyc3RMaW5lTGFiZWw6IHN0cmluZztcclxuICBzZWNvbmRMaW5lTGFiZWw/OiBzdHJpbmc7XHJcbiAgdGhpcmRMaW5lTGFiZWw/OiBzdHJpbmc7XHJcbiAgZGF0YTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncyB7XHJcbiAgaW1hZ2VXaWR0aD86IG51bWJlcjtcclxuICBpbWFnZUhlaWdodD86IG51bWJlcjtcclxuICBjb250YWluV2l0aGluQXNwZWN0UmF0aW8/OiBib29sZWFuO1xyXG4gIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xyXG4gIGltYWdlU2VsZWN0aW9uRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgd2ViY2FtU2VsZWN0aW9uRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgbWVkaWFTZWxlY3Rpb25FbmFibGVkPzogYm9vbGVhbjtcclxuICBkZWxldGVFbmFibGVkPzogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlckltYWdlPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVySWNvbj86IHN0cmluZztcclxufVxyXG5cclxuXHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnNob3JlLWZvcm1zL3NyYy9saWIvbW9kZWxzL2Zvcm0ubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0LCBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZSB9IGZyb20gJy4uL2VudW1zL2Zvcm0uZW51bXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlQ291bnRyeUNvZGUge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFscGhhMjogc3RyaW5nO1xyXG4gIGFscGhhMzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVMYW5ndWFnZUxvY2FsZSB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY29kZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxTdHlsZT86IHN0cmluZztcclxuICB0eXBlPzogT25zaG9yZUZvcm1UZW1wbGF0ZVR5cGU7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgZW5hYmxlZD86IGJvb2xlYW47XHJcbiAgbG9ja2VkPzogYm9vbGVhbjtcclxuICBsYXlvdXQ/OiBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0O1xyXG4gIG9wdGlvbnM/OiBPbnNob3JlRm9ybVRlbXBsYXRlT3B0aW9uc1tdIHwgdm9pZFtdO1xyXG4gIG9wdGlvbkRhdGFLZXk/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdD86IGFueTtcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICB2YWxpZGF0aW9uSXRlbXM/OiBzdHJpbmdbXTtcclxuICB2YWxpZGF0b3JzPzogYW55W107XHJcbiAgc3ViZm9ybUFycmF5PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxuICBzdWJmb3JtT2JqZWN0PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlRm9ybVRlbXBsYXRlT3B0aW9ucyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtQXV0b2NvbXBsZXRlSXRlbSB7XHJcbiAgZmlyc3RMaW5lTGFiZWw6IHN0cmluZztcclxuICBzZWNvbmRMaW5lTGFiZWw/OiBzdHJpbmc7XHJcbiAgdGhpcmRMaW5lTGFiZWw/OiBzdHJpbmc7XHJcbiAgZGF0YTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncyB7XHJcbiAgaW1hZ2VXaWR0aD86IG51bWJlcjtcclxuICBpbWFnZUhlaWdodD86IG51bWJlcjtcclxuICBjb250YWluV2l0aGluQXNwZWN0UmF0aW8/OiBib29sZWFuO1xyXG4gIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xyXG4gIGltYWdlU2VsZWN0aW9uRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgd2ViY2FtU2VsZWN0aW9uRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgbWVkaWFTZWxlY3Rpb25FbmFibGVkPzogYm9vbGVhbjtcclxuICBkZWxldGVFbmFibGVkPzogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlckltYWdlPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVySWNvbj86IHN0cmluZztcclxuICBjb250YWluZXJXaWR0aD86IG51bWJlcjtcclxuICBjb250YWluZXJIZWlnaHQ/OiBudW1iZXI7XHJcbiAgaW1hZ2VRdWFsaXR5PzogbnVtYmVyO1xyXG4gIG1heEZpbGVTaXplPzogbnVtYmVyO1xyXG4gIGZvcm1hdD86ICdwbmcnIHwgJ2pwZWcnIHwgJ2JtcCcgfCAnd2VicCcgfCAnaWNvJztcclxuICBhbGlnbkltYWdlPzogJ2xlZnQnIHwgJ2NlbnRlcic7XHJcbiAgY3JvcHBlclByZXZpZXdIZWlnaHQ/OiBudW1iZXI7XHJcbiAgY3JvcHBlclByZXZpZXdXaWR0aD86IG51bWJlcjtcclxuICB3ZWJjYW1IZWlnaHQ/OiBudW1iZXI7XHJcbiAgd2ViY2FtV2lkdGg/OiBudW1iZXI7XHJcbiAgY2lyY2xlQ3JvcHBlcj86IGJvb2xlYW47XHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuIl19