@simpleangularcontrols/sac-bootstrap3 13.0.0-rc.11 → 13.0.0-rc.13

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.
@@ -34,7 +34,7 @@ SacUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
34
34
  multi: true,
35
35
  useExisting: forwardRef(() => SacUploadComponent),
36
36
  },
37
- ], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.flex-grow]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 1 : null\">\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">{{ lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async }}</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\" />\r\n </div>\r\n </div>\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress() === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\">\r\n <span class=\"progress-text text-dark\">{{ Filename() | async }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"], components: [{ type: i2.SacTooltipComponent, selector: "sac-tooltip" }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelHeight": i4.SacToLabelHeightPipe, "toLabelWidthCss": i5.SacToLabelWidthCssPipe, "toControlWidthCss": i6.SacToControlWidthCssPipe, "async": i3.AsyncPipe } });
37
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n id=\"{{ name }}\"\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}_uploadinput\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.flex-grow]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 1 : null\">\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">{{ lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async }}</span>\r\n <input\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\" />\r\n </div>\r\n </div>\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress() === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\">\r\n <span class=\"progress-text text-dark\">{{ Filename() | async }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"], components: [{ type: i2.SacTooltipComponent, selector: "sac-tooltip" }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "toLabelHeight": i4.SacToLabelHeightPipe, "toLabelWidthCss": i5.SacToLabelWidthCssPipe, "toControlWidthCss": i6.SacToControlWidthCssPipe, "async": i3.AsyncPipe } });
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'sac-upload', providers: [
@@ -48,10 +48,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
48
48
  multi: true,
49
49
  useExisting: forwardRef(() => SacUploadComponent),
50
50
  },
51
- ], template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.flex-grow]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 1 : null\">\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">{{ lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async }}</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\" />\r\n </div>\r\n </div>\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress() === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\">\r\n <span class=\"progress-text text-dark\">{{ Filename() | async }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"] }]
51
+ ], template: "<div\r\n id=\"{{ name }}\"\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}_uploadinput\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.flex-grow]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 1 : null\">\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">{{ lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async }}</span>\r\n <input\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\" />\r\n </div>\r\n </div>\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress() === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\">\r\n <span class=\"progress-text text-dark\">{{ Filename() | async }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"] }]
52
52
  }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
53
53
  type: Host
54
54
  }, {
55
55
  type: Optional
56
56
  }] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjL2NvbnRyb2xzL3VwbG9hZC91cGxvYWQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdXBsb2FkL3VwbG9hZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFFBQVEsRUFFUixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQUcxRSw0Q0FBNEM7QUFtQjVDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBcUI7SUFDM0QsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3NCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7K0dBakJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFDQWJsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNsRDtLQUNGLGlEQzlCSCw4aU5BcUlBOzJGRHJHYSxrQkFBa0I7a0JBakI5QixTQUFTOytCQUNFLFlBQVksYUFHWDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLG9CQUFvQjt5QkFDaEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjs7MEJBYUUsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgTmdab25lLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkU2luZ2xlQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XHJcblxyXG4vLyBodHRwczovL2dpdGh1Yi5jb20va3VraGFyaWV2L25neC11cGxvYWR4L1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYWMtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFNhY1VwbG9hZENvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNVcGxvYWRDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgU2FjVXBsb2FkU2luZ2xlQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSByZW5kZXJlciBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmVcclxuICAgKiBAcGFyYW0gbmdab25lIG5nWm9uZSB0byBtYW5hZ2UgZXh0ZXJuYWwgamF2YXNjcmlwdHNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IsIHJlbmRlcmVyLCBuZ1pvbmUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCJcclxuICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgW25nQ2xhc3NdPVwiY29tcG9uZW50SGVpZ2h0IHwgdG9MYWJlbEhlaWdodFwiPlxyXG4gICAgPGxhYmVsXHJcbiAgICAgICAgKm5nSWY9XCJkaXNhYmxlbGFiZWwgPT09IGZhbHNlICYmICFpc0FkYXB0aXZlTGFiZWxcIlxyXG4gICAgICAgIGlkPVwie3sgbmFtZSB9fWxhYmVsXCJcclxuICAgICAgICBmb3I9XCJ7eyBuYW1lIH19XCJcclxuICAgICAgICBjbGFzcz1cImNvbC14cy0xMiBjb250cm9sLWxhYmVsXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0xhYmVsV2lkdGhDc3MpIDogJ3NyLW9ubHknXVwiXHJcbiAgICAgICAgW2NsYXNzLnJlcXVpcmVkXT1cImlzcmVxdWlyZWRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8c2FjLXRvb2x0aXBcclxuICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwdGV4dF09XCJoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJIZWxwdGV4dFRvb2x0aXBJY29uXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweFwiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zYWMtdG9vbHRpcD5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wteHMtMTJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvQ29udHJvbFdpZHRoQ3NzKSA6ICcnXVwiXHJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsID8gJ2ZsZXgnIDogbnVsbFwiPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlLmZsZXgtZ3Jvd109XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWwgPyAxIDogbnVsbFwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwIHVwbG9hZC1jb21wb25lbnQgdXBsb2FkLXNpbmdsZVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaW5wdXQtZ3JvdXAtc21dPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LlNtYWxsXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5pbnB1dC1ncm91cC1sZ109XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuTGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGltYWdlLXByZXZpZXctaW5wdXQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biB1cGxvYWQtaW5wdXQgY3VzdG9tLWZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiSGFzUXVldWVJdGVtKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRlZmF1bHRdPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiSWNvbkJyb3dzZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWQtYnJvd3NlXCI+e3sgbG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyh2YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25Ccm93c2UpIHwgYXN5bmMgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tZmlsZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmlsZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWxlcy52YWx1ZSA9ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1cGxvYWR4U3RhdGUpPVwib25VcGxvYWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkhhc1F1ZXVlSXRlbSgpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCB1cGxvYWQtcHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnByb2dyZXNzLWJhci1zdWNjZXNzXT1cIlByb2dyZXNzKCkgPT09IDEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJQcm9ncmVzcygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiUHJvZ3Jlc3MoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy10ZXh0IHRleHQtZGFya1wiPnt7IEZpbGVuYW1lKCkgfCBhc3luYyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBpbWFnZS1wcmV2aWV3LWNsZWFyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWxBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25EZWxldGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKGF1dG91cGxvYWQgPT09IGZhbHNlICYmIGVuYWJsZXBhdXNlKSB8fCAoYXV0b3VwbG9hZCAmJiBlbmFibGVwYXVzZSAmJiBJc1BhdXNlZCgpID09PSBmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwYXVzZUFsbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiSXNVcGxvYWRpbmcoKSA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uUGF1c2VcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0b3VwbG9hZCAmJiBlbmFibGVwYXVzZSAmJiBJc1BhdXNlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRlZmF1bHRdPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkNvbnRpbnVlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgPT09IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJJc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uVXBsb2FkXCI+PC9zcGFuPiB7eyBsbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKHZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkgfCBhc3luYyB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxwXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnICYmIGhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAge3sgaGVscHRleHQgfX1cclxuICAgICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrIGhlbHAtYmxvY2stZXJyb3JcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc2lubGluZWVycm9yZW5hYmxlZCAmJiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAge3sgR2V0RXJyb3JNZXNzYWdlKCkgfCBhc3luYyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0ICYmIGRpc2FibGVsYWJlbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweFwiPlxyXG4gICAgICAgICAgICA8c2FjLXRvb2x0aXBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXB0ZXh0XT1cImhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIkhlbHB0ZXh0VG9vbHRpcEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweDsgbWFyZ2luLXJpZ2h0OiA1cHhcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zYWMtdG9vbHRpcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjL2NvbnRyb2xzL3VwbG9hZC91cGxvYWQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdXBsb2FkL3VwbG9hZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFFBQVEsRUFFUixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQUcxRSw0Q0FBNEM7QUFtQjVDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBcUI7SUFDM0QsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3NCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7K0dBakJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFDQWJsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNsRDtLQUNGLGlEQzlCSCxncE5BdUlBOzJGRHZHYSxrQkFBa0I7a0JBakI5QixTQUFTOytCQUNFLFlBQVksYUFHWDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLG9CQUFvQjt5QkFDaEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjs7MEJBYUUsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgTmdab25lLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkU2luZ2xlQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XHJcblxyXG4vLyBodHRwczovL2dpdGh1Yi5jb20va3VraGFyaWV2L25neC11cGxvYWR4L1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYWMtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFNhY1VwbG9hZENvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNVcGxvYWRDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgU2FjVXBsb2FkU2luZ2xlQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSByZW5kZXJlciBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmVcclxuICAgKiBAcGFyYW0gbmdab25lIG5nWm9uZSB0byBtYW5hZ2UgZXh0ZXJuYWwgamF2YXNjcmlwdHNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IsIHJlbmRlcmVyLCBuZ1pvbmUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG4iLCI8ZGl2XHJcbiAgICBpZD1cInt7IG5hbWUgfX1cIlxyXG4gICAgY2xhc3M9XCJyb3cgZm9ybS1ncm91cFwiXHJcbiAgICBbY2xhc3MuaGFzLWVycm9yXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgIFtuZ0NsYXNzXT1cImNvbXBvbmVudEhlaWdodCB8IHRvTGFiZWxIZWlnaHRcIj5cclxuICAgIDxsYWJlbFxyXG4gICAgICAgICpuZ0lmPVwiZGlzYWJsZWxhYmVsID09PSBmYWxzZSAmJiAhaXNBZGFwdGl2ZUxhYmVsXCJcclxuICAgICAgICBpZD1cInt7IG5hbWUgfX1sYWJlbFwiXHJcbiAgICAgICAgZm9yPVwie3sgbmFtZSB9fV91cGxvYWRpbnB1dFwiXHJcbiAgICAgICAgY2xhc3M9XCJjb2wteHMtMTIgY29udHJvbC1sYWJlbFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9MYWJlbFdpZHRoQ3NzKSA6ICdzci1vbmx5J11cIlxyXG4gICAgICAgIFtjbGFzcy5yZXF1aXJlZF09XCJpc3JlcXVpcmVkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgPHNhYy10b29sdGlwXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICBbdG9vbHRpcHRleHRdPVwiaGVscHRleHRcIlxyXG4gICAgICAgICAgICBbaW5saW5lbW9kZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1cHhcIj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc2FjLXRvb2x0aXA+XHJcbiAgICA8L2xhYmVsPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiY29sLXhzLTEyXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0NvbnRyb2xXaWR0aENzcykgOiAnJ11cIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0ICYmIGRpc2FibGVsYWJlbCA/ICdmbGV4JyA6IG51bGxcIj5cclxuICAgICAgICA8ZGl2IFtzdHlsZS5mbGV4LWdyb3ddPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsID8gMSA6IG51bGxcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cCB1cGxvYWQtY29tcG9uZW50IHVwbG9hZC1zaW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlucHV0LWdyb3VwLXNtXT1cImNvbXBvbmVudEhlaWdodCA9PT0gQ29udHJvbEhlaWdodC5TbWFsbFwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaW5wdXQtZ3JvdXAtbGddPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LkxhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBpbWFnZS1wcmV2aWV3LWlucHV0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gdXBsb2FkLWlucHV0IGN1c3RvbS1maWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIkhhc1F1ZXVlSXRlbSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIkljb25Ccm93c2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWJyb3dzZVwiPnt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uQnJvd3NlKSB8IGFzeW5jIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3sgbmFtZSB9fV91cGxvYWRpbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1maWxlLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmaWxlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbGVzLnZhbHVlID0gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVwbG9hZHhTdGF0ZSk9XCJvblVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiSGFzUXVldWVJdGVtKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sIHVwbG9hZC1wcm9ncmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3NdPVwiUHJvZ3Jlc3MoKSA9PT0gMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cIlByb2dyZXNzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJQcm9ncmVzcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb2dyZXNzLXRleHQgdGV4dC1kYXJrXCI+e3sgRmlsZW5hbWUoKSB8IGFzeW5jIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGltYWdlLXByZXZpZXctY2xlYXIgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbEFsbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiSGFzUXVldWVJdGVtKCkgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRlZmF1bHRdPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkRlbGV0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoYXV0b3VwbG9hZCA9PT0gZmFsc2UgJiYgZW5hYmxlcGF1c2UpIHx8IChhdXRvdXBsb2FkICYmIGVuYWJsZXBhdXNlICYmIElzUGF1c2VkKCkgPT09IGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBhdXNlQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJJc1VwbG9hZGluZygpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25QYXVzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkICYmIGVuYWJsZXBhdXNlICYmIElzUGF1c2VkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uQ29udGludWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0b3VwbG9hZCA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25VcGxvYWRcIj48L3NwYW4+IHt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndGV4dCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBoZWxwdGV4dCB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhlbHAtYmxvY2sgaGVscC1ibG9jay1lcnJvclwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4XCI+XHJcbiAgICAgICAgICAgIDxzYWMtdG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcHRleHRdPVwiaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4OyBtYXJnaW4tcmlnaHQ6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NhYy10b29sdGlwPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -34,7 +34,7 @@ SacUploadMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
34
34
  multi: true,
35
35
  useExisting: forwardRef(() => SacUploadMultipleComponent),
36
36
  },
37
- ], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-xs-12\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\" />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let file of uploads\"\r\n style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\">\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"input-group-btn\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"], components: [{ type: i2.SacTooltipComponent, selector: "sac-tooltip" }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelHeight": i4.SacToLabelHeightPipe, "toLabelWidthCss": i5.SacToLabelWidthCssPipe, "toControlWidthCss": i6.SacToControlWidthCssPipe, "async": i3.AsyncPipe } });
37
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n id=\"{{ name }}\"\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}_uploadinput\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-xs-12\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\" />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let file of uploads\"\r\n style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\">\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"input-group-btn\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"], components: [{ type: i2.SacTooltipComponent, selector: "sac-tooltip" }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelHeight": i4.SacToLabelHeightPipe, "toLabelWidthCss": i5.SacToLabelWidthCssPipe, "toControlWidthCss": i6.SacToControlWidthCssPipe, "async": i3.AsyncPipe } });
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadMultipleComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'sac-uploadmultiple', providers: [
@@ -48,10 +48,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
48
48
  multi: true,
49
49
  useExisting: forwardRef(() => SacUploadMultipleComponent),
50
50
  },
51
- ], template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-xs-12\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\" />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let file of uploads\"\r\n style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\">\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"input-group-btn\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"] }]
51
+ ], template: "<div\r\n id=\"{{ name }}\"\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}_uploadinput\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-xs-12\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\" />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let file of uploads\"\r\n style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"form-control upload-progress\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\">\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"input-group-btn\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </a>\r\n <a\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconUpload\"></span> {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"] }]
52
52
  }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
53
53
  type: Host
54
54
  }, {
55
55
  type: Optional
56
56
  }] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdXBsb2FkL3VwbG9hZG11bHRpcGxlLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjL2NvbnRyb2xzL3VwbG9hZC91cGxvYWRtdWx0aXBsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFFBQVEsRUFFUixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQUc1RSw0Q0FBNEM7QUFtQjVDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx1QkFBdUI7SUFDckUsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3NCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7dUhBakJVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDZDQWIxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSwwQkFBMEI7U0FDeEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztTQUMxRDtLQUNGLGlEQzlCSCwwdlVBMExBOzJGRDFKYSwwQkFBMEI7a0JBakJ0QyxTQUFTOytCQUNFLG9CQUFvQixhQUduQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLDRCQUE0Qjt5QkFDeEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3lCQUMxRDtxQkFDRjs7MEJBYUUsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgTmdab25lLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkTXVsdGlwbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWtoYXJpZXYvbmd4LXVwbG9hZHgvXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy11cGxvYWRtdWx0aXBsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZG11bHRpcGxlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50IGV4dGVuZHMgU2FjVXBsb2FkTXVsdGlwbGVDb21tb24ge1xyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBuZ1pvbmUgbmdab25lIHRvIG1hbmFnZSBleHRlcm5hbCBqYXZhc2NyaXB0c1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcbiIsIjxkaXZcclxuICAgIGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIlxyXG4gICAgW2NsYXNzLmhhcy1lcnJvcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICBbbmdDbGFzc109XCJjb21wb25lbnRIZWlnaHQgfCB0b0xhYmVsSGVpZ2h0XCI+XHJcbiAgICA8bGFiZWxcclxuICAgICAgICAqbmdJZj1cImRpc2FibGVsYWJlbCA9PT0gZmFsc2UgJiYgIWlzQWRhcHRpdmVMYWJlbFwiXHJcbiAgICAgICAgaWQ9XCJ7eyBuYW1lIH19bGFiZWxcIlxyXG4gICAgICAgIGZvcj1cInt7IG5hbWUgfX1cIlxyXG4gICAgICAgIGNsYXNzPVwiY29sLXhzLTEyIGNvbnRyb2wtbGFiZWxcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvTGFiZWxXaWR0aENzcykgOiAnc3Itb25seSddXCJcclxuICAgICAgICBbY2xhc3MucmVxdWlyZWRdPVwiaXNyZXF1aXJlZFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDxzYWMtdG9vbHRpcFxyXG4gICAgICAgICAgICAqbmdJZj1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgW3Rvb2x0aXB0ZXh0XT1cImhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cIkhlbHB0ZXh0VG9vbHRpcEljb25cIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4XCI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NhYy10b29sdGlwPlxyXG4gICAgPC9sYWJlbD5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImNvbC14cy0xMlwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9Db250cm9sV2lkdGhDc3MpIDogJyddXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1jb21wb25lbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLXhzLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWwgPyAnZmxleCcgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1ncm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZ3JvdXAtc21dPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LlNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1ncm91cC1sZ109XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuTGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gdXBsb2FkLWlucHV0IGN1c3RvbS1maWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJtYXhmaWxlcyA+IDAgJiYgdXBsb2Fkcy5sZW5ndGggPj0gbWF4ZmlsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiSWNvbkJyb3dzZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWJyb3dzZVwiPkJyb3dzZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1maWxlLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmlsZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsZXMudmFsdWUgPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVwbG9hZHhTdGF0ZSk9XCJvblVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtYXhmaWxlcyA+IDAgJiYgdXBsb2Fkcy5sZW5ndGggPj0gbWF4ZmlsZXNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZ3JvdXAtc21dPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LlNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZ3JvdXAtbGddPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LkxhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGltYWdlLXByZXZpZXctY2xlYXIgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbEFsbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJIYXNRdWV1ZUl0ZW0oKSA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uRGVsZXRlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIihhdXRvdXBsb2FkID09PSBmYWxzZSAmJiBlbmFibGVwYXVzZSkgfHwgKGF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgSXNQYXVzZWQoKSA9PT0gZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBhdXNlQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIklzVXBsb2FkaW5nKCkgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvblBhdXNlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgSXNQYXVzZWQoKSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uQ29udGludWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0b3VwbG9hZCA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRlZmF1bHRdPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25VcGxvYWRcIj48L3NwYW4+IHt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYWMtdG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcHRleHRdPVwiaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4OyBtYXJnaW4tcmlnaHQ6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NhYy10b29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2Fkc1wiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAgdXBsb2FkLWNvbXBvbmVudCB1cGxvYWQtbXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pbnB1dC1ncm91cC1zbV09XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuU21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pbnB1dC1ncm91cC1sZ109XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuTGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sIHVwbG9hZC1wcm9ncmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnByb2dyZXNzLWJhci1zdWNjZXNzXT1cImZpbGUucHJvZ3Jlc3MgPT09IDEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImZpbGUucHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJmaWxlLnByb2dyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy10ZXh0IHRleHQtZGFya1wiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlucHV0LWdyb3VwLXNtXT1cImNvbXBvbmVudEhlaWdodCA9PT0gQ29udHJvbEhlaWdodC5TbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pbnB1dC1ncm91cC1sZ109XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuTGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBpbWFnZS1wcmV2aWV3LWNsZWFyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoZmlsZS51cGxvYWRJZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkRlbGV0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoYXV0b3VwbG9hZCA9PT0gZmFsc2UgJiYgZW5hYmxlcGF1c2UpIHx8IChhdXRvdXBsb2FkICYmIGVuYWJsZXBhdXNlICYmIGZpbGUuc3RhdHVzICE9PSAncGF1c2VkJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBhdXNlKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImZpbGUuc3RhdHVzICE9PSAndXBsb2FkaW5nJyA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25QYXVzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkICYmIGVuYWJsZXBhdXNlICYmIGZpbGUuc3RhdHVzID09PSAncGF1c2VkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25Db250aW51ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImZpbGUuc3RhdHVzICE9PSAnYWRkZWQnICYmIGZpbGUuc3RhdHVzICE9PSAncGF1c2VkJyA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25VcGxvYWRcIj48L3NwYW4+IHt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHBcclxuICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0ZXh0JyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiPlxyXG4gICAgICAgICAgICB7eyBoZWxwdGV4dCB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayBoZWxwLWJsb2NrLWVycm9yXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpc2lubGluZWVycm9yZW5hYmxlZCAmJiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdXBsb2FkL3VwbG9hZG11bHRpcGxlLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjL2NvbnRyb2xzL3VwbG9hZC91cGxvYWRtdWx0aXBsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFFBQVEsRUFFUixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQUc1RSw0Q0FBNEM7QUFtQjVDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx1QkFBdUI7SUFDckUsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3NCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7dUhBakJVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDZDQWIxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSwwQkFBMEI7U0FDeEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztTQUMxRDtLQUNGLGlEQzlCSCxnMlVBNExBOzJGRDVKYSwwQkFBMEI7a0JBakJ0QyxTQUFTOytCQUNFLG9CQUFvQixhQUduQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLDRCQUE0Qjt5QkFDeEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3lCQUMxRDtxQkFDRjs7MEJBYUUsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgTmdab25lLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkTXVsdGlwbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWtoYXJpZXYvbmd4LXVwbG9hZHgvXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy11cGxvYWRtdWx0aXBsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZG11bHRpcGxlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50IGV4dGVuZHMgU2FjVXBsb2FkTXVsdGlwbGVDb21tb24ge1xyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBuZ1pvbmUgbmdab25lIHRvIG1hbmFnZSBleHRlcm5hbCBqYXZhc2NyaXB0c1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcbiIsIjxkaXZcclxuICAgIGlkPVwie3sgbmFtZSB9fVwiXHJcbiAgICBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCJcclxuICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgW25nQ2xhc3NdPVwiY29tcG9uZW50SGVpZ2h0IHwgdG9MYWJlbEhlaWdodFwiPlxyXG4gICAgPGxhYmVsXHJcbiAgICAgICAgKm5nSWY9XCJkaXNhYmxlbGFiZWwgPT09IGZhbHNlICYmICFpc0FkYXB0aXZlTGFiZWxcIlxyXG4gICAgICAgIGlkPVwie3sgbmFtZSB9fWxhYmVsXCJcclxuICAgICAgICBmb3I9XCJ7eyBuYW1lIH19X3VwbG9hZGlucHV0XCJcclxuICAgICAgICBjbGFzcz1cImNvbC14cy0xMiBjb250cm9sLWxhYmVsXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0xhYmVsV2lkdGhDc3MpIDogJ3NyLW9ubHknXVwiXHJcbiAgICAgICAgW2NsYXNzLnJlcXVpcmVkXT1cImlzcmVxdWlyZWRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8c2FjLXRvb2x0aXBcclxuICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwdGV4dF09XCJoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJIZWxwdGV4dFRvb2x0aXBJY29uXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweFwiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zYWMtdG9vbHRpcD5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wteHMtMTJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvQ29udHJvbFdpZHRoQ3NzKSA6ICcnXVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtY29tcG9uZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC14cy0xMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsID8gJ2ZsZXgnIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZ3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWdyb3VwLXNtXT1cImNvbXBvbmVudEhlaWdodCA9PT0gQ29udHJvbEhlaWdodC5TbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZ3JvdXAtbGddPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LkxhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHVwbG9hZC1pbnB1dCBjdXN0b20tZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibWF4ZmlsZXMgPiAwICYmIHVwbG9hZHMubGVuZ3RoID49IG1heGZpbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIkljb25Ccm93c2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC1icm93c2VcIj5Ccm93c2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7IG5hbWUgfX1fdXBsb2FkaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1maWxlLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmlsZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsZXMudmFsdWUgPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVwbG9hZHhTdGF0ZSk9XCJvblVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtYXhmaWxlcyA+IDAgJiYgdXBsb2Fkcy5sZW5ndGggPj0gbWF4ZmlsZXNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZ3JvdXAtc21dPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LlNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZ3JvdXAtbGddPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LkxhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGltYWdlLXByZXZpZXctY2xlYXIgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbEFsbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJIYXNRdWV1ZUl0ZW0oKSA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uRGVsZXRlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIihhdXRvdXBsb2FkID09PSBmYWxzZSAmJiBlbmFibGVwYXVzZSkgfHwgKGF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgSXNQYXVzZWQoKSA9PT0gZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBhdXNlQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIklzVXBsb2FkaW5nKCkgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvblBhdXNlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgSXNQYXVzZWQoKSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uQ29udGludWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0b3VwbG9hZCA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRlZmF1bHRdPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25VcGxvYWRcIj48L3NwYW4+IHt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYWMtdG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcHRleHRdPVwiaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4OyBtYXJnaW4tcmlnaHQ6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NhYy10b29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2Fkc1wiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAgdXBsb2FkLWNvbXBvbmVudCB1cGxvYWQtbXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pbnB1dC1ncm91cC1zbV09XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuU21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pbnB1dC1ncm91cC1sZ109XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuTGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sIHVwbG9hZC1wcm9ncmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnByb2dyZXNzLWJhci1zdWNjZXNzXT1cImZpbGUucHJvZ3Jlc3MgPT09IDEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImZpbGUucHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJmaWxlLnByb2dyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy10ZXh0IHRleHQtZGFya1wiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlucHV0LWdyb3VwLXNtXT1cImNvbXBvbmVudEhlaWdodCA9PT0gQ29udHJvbEhlaWdodC5TbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pbnB1dC1ncm91cC1sZ109XCJjb21wb25lbnRIZWlnaHQgPT09IENvbnRyb2xIZWlnaHQuTGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBpbWFnZS1wcmV2aWV3LWNsZWFyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoZmlsZS51cGxvYWRJZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkRlbGV0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoYXV0b3VwbG9hZCA9PT0gZmFsc2UgJiYgZW5hYmxlcGF1c2UpIHx8IChhdXRvdXBsb2FkICYmIGVuYWJsZXBhdXNlICYmIGZpbGUuc3RhdHVzICE9PSAncGF1c2VkJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBhdXNlKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImZpbGUuc3RhdHVzICE9PSAndXBsb2FkaW5nJyA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25QYXVzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkICYmIGVuYWJsZXBhdXNlICYmIGZpbGUuc3RhdHVzID09PSAncGF1c2VkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25Db250aW51ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImZpbGUuc3RhdHVzICE9PSAnYWRkZWQnICYmIGZpbGUuc3RhdHVzICE9PSAncGF1c2VkJyA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGVmYXVsdF09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25VcGxvYWRcIj48L3NwYW4+IHt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHBcclxuICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0ZXh0JyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiPlxyXG4gICAgICAgICAgICB7eyBoZWxwdGV4dCB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayBoZWxwLWJsb2NrLWVycm9yXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpc2lubGluZWVycm9yZW5hYmxlZCAmJiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==