@eui/components 15.0.0-rc.15 → 15.0.0-rc.16

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.
@@ -4,10 +4,8 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import * as i1 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
- import * as i2$1 from '@eui/components/eui-button';
7
+ import * as i2 from '@eui/components/eui-button';
8
8
  import { EuiButtonModule } from '@eui/components/eui-button';
9
- import * as i2 from '@angular/material/progress-bar';
10
- import { MatProgressBarModule } from '@angular/material/progress-bar';
11
9
  import * as i3 from '@eui/components/eui-icon';
12
10
  import { EuiIconModule } from '@eui/components/eui-icon';
13
11
  import * as i5 from '@ngx-translate/core';
@@ -23,10 +21,10 @@ class EuiFileUploadProgressComponent {
23
21
  }
24
22
  }
25
23
  /** @nocollapse */ EuiFileUploadProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiFileUploadProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- /** @nocollapse */ EuiFileUploadProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiFileUploadProgressComponent, selector: "eui-file-upload-progress", inputs: { progress: "progress" }, ngImport: i0, template: "<div *ngIf=\"progress > 0\" class=\"file-upload__progress-bar\">\n <mat-progress-bar class=\"file-upload__progress-bar__bar\" [value]=\"progress\"></mat-progress-bar>\n <div class=\"file-upload__progress-value\">{{ progress }}%</div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24
+ /** @nocollapse */ EuiFileUploadProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiFileUploadProgressComponent, selector: "eui-file-upload-progress", inputs: { progress: "progress" }, ngImport: i0, template: "<div *ngIf=\"progress > 0\" class=\"file-upload__progress-bar\">\n <div class=\"progress-bar__container\">\n <div class=\"progress-bar\" [style.width]=\"progress + '%'\"></div>\n </div>\n <div class=\"file-upload__progress-value\">{{ progress }}%</div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
27
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiFileUploadProgressComponent, decorators: [{
28
26
  type: Component,
29
- args: [{ selector: 'eui-file-upload-progress', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"progress > 0\" class=\"file-upload__progress-bar\">\n <mat-progress-bar class=\"file-upload__progress-bar__bar\" [value]=\"progress\"></mat-progress-bar>\n <div class=\"file-upload__progress-value\">{{ progress }}%</div>\n</div>\n" }]
27
+ args: [{ selector: 'eui-file-upload-progress', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"progress > 0\" class=\"file-upload__progress-bar\">\n <div class=\"progress-bar__container\">\n <div class=\"progress-bar\" [style.width]=\"progress + '%'\"></div>\n </div>\n <div class=\"file-upload__progress-value\">{{ progress }}%</div>\n</div>\n" }]
30
28
  }], propDecorators: { progress: [{
31
29
  type: Input
32
30
  }] } });
@@ -152,7 +150,7 @@ class EuiFilePreviewComponent {
152
150
  }
153
151
  }
154
152
  /** @nocollapse */ EuiFilePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiFilePreviewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
155
- /** @nocollapse */ EuiFilePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiFilePreviewComponent, selector: "eui-file-preview", inputs: { file: "file", index: "index", previewAsIconConfig: "previewAsIconConfig", hasPreview: "hasPreview", isFilenameDisplayed: "isFilenameDisplayed", isFilesizeDisplayed: "isFilesizeDisplayed", isFiletypeDisplayed: "isFiletypeDisplayed", hasPreviewAsImage: "hasPreviewAsImage", hasPreviewAsIcon: "hasPreviewAsIcon" }, outputs: { removeFromList: "removeFromList" }, ngImport: i0, template: "<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <span class=\"eui-icon eui-icon-color {{ icon }}\" euiIconColored euiSize5XL></span>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiPrimary euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i3.EuiIconColorComponent, selector: "eui-icon-colored, span[euiIconColored], [euiIconColored]", inputs: ["iconClass"] }, { kind: "pipe", type: EuiFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
153
+ /** @nocollapse */ EuiFilePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiFilePreviewComponent, selector: "eui-file-preview", inputs: { file: "file", index: "index", previewAsIconConfig: "previewAsIconConfig", hasPreview: "hasPreview", isFilenameDisplayed: "isFilenameDisplayed", isFilesizeDisplayed: "isFilesizeDisplayed", isFiletypeDisplayed: "isFiletypeDisplayed", hasPreviewAsImage: "hasPreviewAsImage", hasPreviewAsIcon: "hasPreviewAsIcon" }, outputs: { removeFromList: "removeFromList" }, ngImport: i0, template: "<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <span class=\"eui-icon eui-icon-color {{ icon }}\" euiIconColored euiSize5XL></span>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiPrimary euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i3.EuiIconColorComponent, selector: "eui-icon-colored, span[euiIconColored], [euiIconColored]", inputs: ["iconClass"] }, { kind: "pipe", type: EuiFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
156
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiFilePreviewComponent, decorators: [{
157
155
  type: Component,
158
156
  args: [{ selector: 'eui-file-preview', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <span class=\"eui-icon eui-icon-color {{ icon }}\" euiIconColored euiSize5XL></span>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiPrimary euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n" }]
@@ -297,7 +295,7 @@ class EuiFileUploadComponent {
297
295
  useExisting: EuiFileUploadComponent,
298
296
  multi: true,
299
297
  },
300
- ], viewQueries: [{ propertyName: "fileInputs", predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\n <div [class]=\"dropAreaClass\" *ngIf=\"hasDragArea\">\n <span class=\"fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span class=\"file-msg\">{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"file-input\"\n attr.aria-label= \"{{'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\">\n </div>\n <div class=\"simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input #input *ngIf=\"isMultiple\" aria-label=\"Choose Multiple Files\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\" multiple>\n <input #input *ngIf=\"!isMultiple\" aria-label=\"Choose a single file\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\">\n </div>\n <eui-file-upload-progress *ngIf=\"hasProgressBar\" [progress]=\"progress\"></eui-file-upload-progress>\n\n <div *ngFor=\"let uploadedFile of uploadedFiles; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n\n <div *ngFor=\"let file of files; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n\n <div class=\"file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n</div>\n<ng-content></ng-content>\n<button euiButton class=\"file-upload__reset-button\" type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">{{ 'eui.euifileupload.RESET-LIST' | translate }}</button>\n", styles: [".file-upload .file-upload__total-size{font-weight:700;margin-bottom:1rem}.file-upload .file-drop-area{outline:1px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .file-drop-area-active{background-color:var(--eui-base-color-primary-5);outline:3px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .fake-btn{background-color:#fff;border:1px solid #9e9ec4;border-radius:3px;margin-right:8px;padding:8px 15px}.file-upload .file-input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.file-upload .simple-input-file .file-input{display:none}.file-upload .file-upload__preview{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:5px 0}.file-upload .file-upload__preview .file-upload__preview__image img{width:180px}.file-upload .file-upload__preview .file-upload__preview__filename{width:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: EuiFileUploadProgressComponent, selector: "eui-file-upload-progress", inputs: ["progress"] }, { kind: "component", type: EuiFilePreviewComponent, selector: "eui-file-preview", inputs: ["file", "index", "previewAsIconConfig", "hasPreview", "isFilenameDisplayed", "isFilesizeDisplayed", "isFiletypeDisplayed", "hasPreviewAsImage", "hasPreviewAsIcon"], outputs: ["removeFromList"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: EuiFileSizePipe, name: "filesize" }], encapsulation: i0.ViewEncapsulation.None });
298
+ ], viewQueries: [{ propertyName: "fileInputs", predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\n <div [class]=\"dropAreaClass\" *ngIf=\"hasDragArea\">\n <span class=\"fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span class=\"file-msg\">{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"file-input\"\n attr.aria-label= \"{{'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\">\n </div>\n <div class=\"simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input #input *ngIf=\"isMultiple\" aria-label=\"Choose Multiple Files\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\" multiple>\n <input #input *ngIf=\"!isMultiple\" aria-label=\"Choose a single file\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\">\n </div>\n <eui-file-upload-progress *ngIf=\"hasProgressBar\" [progress]=\"progress\"></eui-file-upload-progress>\n\n <div *ngFor=\"let uploadedFile of uploadedFiles; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n\n <div *ngFor=\"let file of files; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n\n <div class=\"file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n</div>\n<ng-content></ng-content>\n<button euiButton class=\"file-upload__reset-button\" type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">{{ 'eui.euifileupload.RESET-LIST' | translate }}</button>\n", styles: [".file-upload .file-upload__total-size{font-weight:700;margin-bottom:1rem}.file-upload .file-drop-area{outline:1px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .file-drop-area-active{background-color:var(--eui-base-color-primary-5);outline:3px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .fake-btn{background-color:#fff;border:1px solid #9e9ec4;border-radius:3px;margin-right:8px;padding:8px 15px}.file-upload .file-input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.file-upload .simple-input-file .file-input{display:none}.file-upload .file-upload__preview{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:5px 0}.file-upload .file-upload__preview .file-upload__preview__image img{width:180px}.file-upload .file-upload__preview .file-upload__preview__filename{width:50%}.file-upload .progress-bar__container{margin-bottom:var(--eui-base-spacing-2xs)}.file-upload .progress-bar__container .progress-bar{background-color:var(--eui-base-color-primary-100);height:var(--eui-base-spacing-2xs)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: EuiFileUploadProgressComponent, selector: "eui-file-upload-progress", inputs: ["progress"] }, { kind: "component", type: EuiFilePreviewComponent, selector: "eui-file-preview", inputs: ["file", "index", "previewAsIconConfig", "hasPreview", "isFilenameDisplayed", "isFilesizeDisplayed", "isFiletypeDisplayed", "hasPreviewAsImage", "hasPreviewAsIcon"], outputs: ["removeFromList"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: EuiFileSizePipe, name: "filesize" }], encapsulation: i0.ViewEncapsulation.None });
301
299
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiFileUploadComponent, decorators: [{
302
300
  type: Component,
303
301
  args: [{ selector: 'eui-file-upload', providers: [
@@ -306,7 +304,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
306
304
  useExisting: EuiFileUploadComponent,
307
305
  multi: true,
308
306
  },
309
- ], encapsulation: ViewEncapsulation.None, template: "<div class=\"file-upload\">\n <div [class]=\"dropAreaClass\" *ngIf=\"hasDragArea\">\n <span class=\"fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span class=\"file-msg\">{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"file-input\"\n attr.aria-label= \"{{'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\">\n </div>\n <div class=\"simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input #input *ngIf=\"isMultiple\" aria-label=\"Choose Multiple Files\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\" multiple>\n <input #input *ngIf=\"!isMultiple\" aria-label=\"Choose a single file\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\">\n </div>\n <eui-file-upload-progress *ngIf=\"hasProgressBar\" [progress]=\"progress\"></eui-file-upload-progress>\n\n <div *ngFor=\"let uploadedFile of uploadedFiles; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n\n <div *ngFor=\"let file of files; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n\n <div class=\"file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n</div>\n<ng-content></ng-content>\n<button euiButton class=\"file-upload__reset-button\" type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">{{ 'eui.euifileupload.RESET-LIST' | translate }}</button>\n", styles: [".file-upload .file-upload__total-size{font-weight:700;margin-bottom:1rem}.file-upload .file-drop-area{outline:1px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .file-drop-area-active{background-color:var(--eui-base-color-primary-5);outline:3px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .fake-btn{background-color:#fff;border:1px solid #9e9ec4;border-radius:3px;margin-right:8px;padding:8px 15px}.file-upload .file-input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.file-upload .simple-input-file .file-input{display:none}.file-upload .file-upload__preview{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:5px 0}.file-upload .file-upload__preview .file-upload__preview__image img{width:180px}.file-upload .file-upload__preview .file-upload__preview__filename{width:50%}\n"] }]
307
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"file-upload\">\n <div [class]=\"dropAreaClass\" *ngIf=\"hasDragArea\">\n <span class=\"fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span class=\"file-msg\">{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"file-input\"\n attr.aria-label= \"{{'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\">\n </div>\n <div class=\"simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input #input *ngIf=\"isMultiple\" aria-label=\"Choose Multiple Files\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\" multiple>\n <input #input *ngIf=\"!isMultiple\" aria-label=\"Choose a single file\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\">\n </div>\n <eui-file-upload-progress *ngIf=\"hasProgressBar\" [progress]=\"progress\"></eui-file-upload-progress>\n\n <div *ngFor=\"let uploadedFile of uploadedFiles; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n\n <div *ngFor=\"let file of files; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n\n <div class=\"file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n</div>\n<ng-content></ng-content>\n<button euiButton class=\"file-upload__reset-button\" type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">{{ 'eui.euifileupload.RESET-LIST' | translate }}</button>\n", styles: [".file-upload .file-upload__total-size{font-weight:700;margin-bottom:1rem}.file-upload .file-drop-area{outline:1px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .file-drop-area-active{background-color:var(--eui-base-color-primary-5);outline:3px dashed var(--eui-base-color-primary-75);border-radius:3px;margin:0 0 10px;padding:30px;position:relative;transition:.2s}.file-upload .fake-btn{background-color:#fff;border:1px solid #9e9ec4;border-radius:3px;margin-right:8px;padding:8px 15px}.file-upload .file-input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.file-upload .simple-input-file .file-input{display:none}.file-upload .file-upload__preview{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:5px 0}.file-upload .file-upload__preview .file-upload__preview__image img{width:180px}.file-upload .file-upload__preview .file-upload__preview__filename{width:50%}.file-upload .progress-bar__container{margin-bottom:var(--eui-base-spacing-2xs)}.file-upload .progress-bar__container .progress-bar{background-color:var(--eui-base-color-primary-100);height:var(--eui-base-spacing-2xs)}\n"] }]
310
308
  }], propDecorators: { progress: [{
311
309
  type: Input
312
310
  }], accept: [{
@@ -518,7 +516,7 @@ class EuiUploadedFileComponent {
518
516
  }
519
517
  }
520
518
  /** @nocollapse */ EuiUploadedFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiUploadedFileComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
521
- /** @nocollapse */ EuiUploadedFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiUploadedFileComponent, selector: "eui-uploaded-file", inputs: { file: "file", index: "index", previewAsIconConfig: "previewAsIconConfig", hasPreview: "hasPreview", isFilenameDisplayed: "isFilenameDisplayed", isFilesizeDisplayed: "isFilesizeDisplayed", isFiletypeDisplayed: "isFiletypeDisplayed", hasPreviewAsImage: "hasPreviewAsImage", hasPreviewAsIcon: "hasPreviewAsIcon" }, outputs: { removeFromList: "removeFromList" }, ngImport: i0, template: "<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <i class=\"fa {{ icon }}\"></i>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "pipe", type: EuiFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
519
+ /** @nocollapse */ EuiUploadedFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiUploadedFileComponent, selector: "eui-uploaded-file", inputs: { file: "file", index: "index", previewAsIconConfig: "previewAsIconConfig", hasPreview: "hasPreview", isFilenameDisplayed: "isFilenameDisplayed", isFilesizeDisplayed: "isFilesizeDisplayed", isFiletypeDisplayed: "isFiletypeDisplayed", hasPreviewAsImage: "hasPreviewAsImage", hasPreviewAsIcon: "hasPreviewAsIcon" }, outputs: { removeFromList: "removeFromList" }, ngImport: i0, template: "<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <i class=\"fa {{ icon }}\"></i>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "pipe", type: EuiFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
522
520
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiUploadedFileComponent, decorators: [{
523
521
  type: Component,
524
522
  args: [{ selector: 'eui-uploaded-file', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <i class=\"fa {{ icon }}\"></i>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n" }]
@@ -552,14 +550,12 @@ class EuiFileUploadModule {
552
550
  EuiFilePreviewComponent,
553
551
  EuiFileSizePipe,
554
552
  EuiUploadedFileComponent], imports: [CommonModule,
555
- MatProgressBarModule,
556
553
  EuiButtonModule,
557
554
  EuiIconModule,
558
555
  TranslateModule], exports: [EuiFileUploadComponent] });
559
556
  /** @nocollapse */ EuiFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiFileUploadModule, providers: [
560
557
  EuiFileUploadUtilsService,
561
558
  ], imports: [CommonModule,
562
- MatProgressBarModule,
563
559
  EuiButtonModule,
564
560
  EuiIconModule,
565
561
  TranslateModule] });
@@ -568,7 +564,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
568
564
  args: [{
569
565
  imports: [
570
566
  CommonModule,
571
- MatProgressBarModule,
572
567
  EuiButtonModule,
573
568
  EuiIconModule,
574
569
  TranslateModule,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-file-upload.mjs","sources":["../../eui-file-upload/progress/eui-file-upload-progress.component.ts","../../eui-file-upload/progress/eui-file-upload-progress.component.html","../../eui-file-upload/pipes/filesize.pipe.ts","../../eui-file-upload/file-preview/file-preview.component.ts","../../eui-file-upload/file-preview/file-preview.component.html","../../eui-file-upload/eui-file-upload.component.ts","../../eui-file-upload/eui-file-upload.component.html","../../eui-file-upload/utils/eui-file-upload.utils.ts","../../eui-file-upload/uploaded-file/uploaded-file.component.ts","../../eui-file-upload/uploaded-file/uploaded-file.component.html","../../eui-file-upload/eui-file-upload.module.ts","../../eui-file-upload/utils/eui-file-upload.validators.ts","../../eui-file-upload/models/uploaded-file.model.ts","../../eui-file-upload/eui-components-eui-file-upload.ts"],"sourcesContent":["import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'eui-file-upload-progress',\n templateUrl: './eui-file-upload-progress.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFileUploadProgressComponent {\n @Input() progress = 0;\n}\n","<div *ngIf=\"progress > 0\" class=\"file-upload__progress-bar\">\n <mat-progress-bar class=\"file-upload__progress-bar__bar\" [value]=\"progress\"></mat-progress-bar>\n <div class=\"file-upload__progress-value\">{{ progress }}%</div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filesize',\n})\nexport class EuiFileSizePipe implements PipeTransform {\n private units = [\n 'bytes',\n 'KB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n ];\n\n transform(bytes: number = 0, precision: number = 2): string {\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n\n while (bytes >= 1024) {\n bytes /= 1024;\n unit++;\n }\n\n return bytes.toFixed(+ precision) + ' ' + this.units[unit];\n }\n}\n","import { Component, OnInit, Input, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiUploadedFile } from '../models/uploaded-file.model';\n\n@Component({\n selector: 'eui-file-preview',\n templateUrl: './file-preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFilePreviewComponent implements OnInit {\n @Input() file: Blob | EuiUploadedFile | any;\n @Input() index: number;\n\n @Input() previewAsIconConfig = {\n avi: 'eui-icon-filetype-avi',\n html: 'eui-icon-filetype-html',\n htm: 'eui-icon-filetype-html',\n js: 'eui-icon-filetype-js',\n json: 'eui-icon-filetype-json',\n mp4: 'eui-icon-filetype-mp4',\n pdf: 'eui-icon-filetype-pdf',\n png: 'eui-icon-filetype-png',\n svg: 'eui-icon-filetype-svg',\n txt: 'eui-icon-filetype-txt',\n xml: 'eui-icon-filetype-xml',\n jpeg: 'eui-icon-filetype-jpg',\n jpg: 'eui-icon-filetype-jpg',\n zip: 'eui-icon-filetype-zip',\n doc: 'eui-icon-filetype-doc',\n docx: 'eui-icon-filetype-doc',\n xls: 'eui-icon-filetype-xls',\n xlsx: 'eui-icon-filetype-xls',\n ppt: 'eui-icon-filetype-ppt',\n csv: 'eui-icon-filetype-csv',\n rtf: 'eui-icon-filetype-rtf',\n };\n\n @Output() removeFromList = new EventEmitter<number>();\n\n public url: string;\n public icon: string;\n public fileExtension: string;\n public previewData: { image: boolean, display: string };\n\n @Input()\n get hasPreview(): boolean { return this._hasPreview; }\n set hasPreview(value: BooleanInput) { this._hasPreview = coerceBooleanProperty(value); }\n private _hasPreview = true;\n @Input()\n get isFilenameDisplayed(): boolean { return this._isFilenameDisplayed; }\n set isFilenameDisplayed(value: BooleanInput) { this._isFilenameDisplayed = coerceBooleanProperty(value); }\n private _isFilenameDisplayed = true;\n @Input()\n get isFilesizeDisplayed(): boolean { return this._isFilesizeDisplayed; }\n set isFilesizeDisplayed(value: BooleanInput) { this._isFilesizeDisplayed = coerceBooleanProperty(value); }\n private _isFilesizeDisplayed = true;\n @Input()\n get isFiletypeDisplayed(): boolean { return this._isFiletypeDisplayed; }\n set isFiletypeDisplayed(value: BooleanInput) { this._isFiletypeDisplayed = coerceBooleanProperty(value); }\n private _isFiletypeDisplayed = true;\n @Input()\n get hasPreviewAsImage(): boolean { return this._hasPreviewAsImage; }\n set hasPreviewAsImage(value: BooleanInput) { this._hasPreviewAsImage = coerceBooleanProperty(value); }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean { return this._hasPreviewAsIcon; }\n set hasPreviewAsIcon(value: BooleanInput) { this._hasPreviewAsIcon = coerceBooleanProperty(value); }\n private _hasPreviewAsIcon = false;\n\n constructor(private cd: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n\n if (this.file instanceof Blob) {\n const reader = new FileReader();\n reader.readAsDataURL(this.file as Blob);\n reader.onload = (event: any): void => {\n this.url = event.target.result;\n this.fileExtension = this.getFileExtension(this.file.name);\n this.icon = this.getIconForMime(this.fileExtension);\n this.previewData = this.getPreviewForMime(this.fileExtension);\n this.cd.detectChanges();\n };\n } else {\n this.url = (this.file as EuiUploadedFile).url;\n this.fileExtension = this.getFileExtension(this.file.name);\n this.icon = this.getIconForMime(this.fileExtension);\n this.previewData = this.getPreviewForMime(this.fileExtension);\n this.cd.detectChanges();\n }\n }\n\n public onRemoveFromList(): void {\n this.removeFromList.emit(this.index);\n }\n\n private getFileExtension(fileName: string): string {\n const ext = fileName.split('.');\n\n return ext[ext.length - 1];\n }\n\n private getPreviewForMime(fileExtension: string): { image: boolean, display: string } {\n const image = fileExtension === 'jpeg' || fileExtension === 'jpg' || fileExtension === 'png' ||\n fileExtension === 'gif' ? true : false;\n\n const display = fileExtension === 'jpeg' || fileExtension === 'jpg' || fileExtension === 'png' || fileExtension === 'gif' ?\n this.url :\n this.getIconForMime(fileExtension);\n\n return { image, display };\n }\n\n private getIconForMime(fileExtension: string): string {\n return !this.previewAsIconConfig[fileExtension] ? 'eui-icon-filetype-unknown' : this.previewAsIconConfig[fileExtension];\n }\n}\n","<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <span class=\"eui-icon eui-icon-color {{ icon }}\" euiIconColored euiSize5XL></span>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiPrimary euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n","import { Component, ElementRef, HostListener, Input, ViewEncapsulation, OnInit, ViewChildren, QueryList, Output, EventEmitter } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { EuiUploadedFile } from './models/uploaded-file.model';\n\n@Component({\n selector: 'eui-file-upload',\n templateUrl: './eui-file-upload.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: EuiFileUploadComponent,\n multi: true,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFileUploadComponent implements ControlValueAccessor, OnInit {\n @Input() progress: number;\n @Input() accept = '*';\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() drop = new EventEmitter();\n\n dropAreaClass = 'file-drop-area';\n public files: File[] = [];\n public filesTotalSize = 0;\n public randomNumberId = Math.floor(Math.random() * 10000);\n public uploadedFiles: EuiUploadedFile[] = [];\n @ViewChildren('input') fileInputs: QueryList<ElementRef<HTMLInputElement>>;\n\n @Input()\n get isMultiple(): boolean { return this._isMultiple; }\n set isMultiple(value: BooleanInput) { this._isMultiple = coerceBooleanProperty(value); }\n private _isMultiple = true;\n @Input()\n get hasProgressBar(): boolean { return this._hasProgressBar; }\n set hasProgressBar(value: BooleanInput) { this._hasProgressBar = coerceBooleanProperty(value); }\n private _hasProgressBar = true;\n @Input()\n get hasPreview(): boolean { return this._hasPreview; }\n set hasPreview(value: BooleanInput) { this._hasPreview = coerceBooleanProperty(value); }\n private _hasPreview = true;\n @Input()\n get hasPreviewAsImage(): boolean { return this._hasPreviewAsImage; }\n set hasPreviewAsImage(value: BooleanInput) { this._hasPreviewAsImage = coerceBooleanProperty(value); }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean { return this._hasPreviewAsIcon; }\n set hasPreviewAsIcon(value: BooleanInput) { this._hasPreviewAsIcon = coerceBooleanProperty(value); }\n private _hasPreviewAsIcon = false;\n @Input()\n get hasTotalSizeDisplayed(): boolean { return this._hasTotalSizeDisplayed; }\n set hasTotalSizeDisplayed(value: BooleanInput) { this._hasTotalSizeDisplayed = coerceBooleanProperty(value); }\n private _hasTotalSizeDisplayed = true;\n @Input()\n get hasResetButton(): boolean { return this._hasResetButton; }\n set hasResetButton(value: BooleanInput) { this._hasResetButton = coerceBooleanProperty(value); }\n private _hasResetButton = true;\n @Input()\n get hasDragArea(): boolean { return this._hasDragArea; }\n set hasDragArea(value: BooleanInput) { this._hasDragArea = coerceBooleanProperty(value); }\n private _hasDragArea = false;\n\n @HostListener('change', ['$event.target.files']) emitFiles(fileList: FileList): void {\n for (const property in fileList) {\n if (fileList[property] && typeof fileList[property] === 'object') {\n\n const fileName = fileList[property].name.split('.');\n const fileExtension = fileName[fileName.length - 1];\n\n if (this.accept.indexOf(fileExtension) !== -1 || this.accept === '*') {\n this.files.push(fileList[property]);\n }\n }\n }\n\n this.getTotalSize();\n this.uploadedFiles ? this.onChange([...this.uploadedFiles, ...this.files]) : this.onChange(this.files);\n if (this.fileInputs) {\n this.fileInputs.first.nativeElement.value = '';\n this.fileInputs.last.nativeElement.value = '';\n }\n this.dropAreaClass = 'file-drop-area';\n this.drop.emit();\n }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n }\n\n get showResetBtn(): boolean {\n return this.hasResetButton && (this.files.length > 0 || this.uploadedFiles.length > 0);\n }\n\n onDragEnter(): void {\n this.dropAreaClass = 'file-drop-area-active';\n }\n\n onDragLeave(): void {\n this.dropAreaClass = 'file-drop-area';\n }\n\n public removeFromList(index: number): void {\n this.files = this.files.filter((f, i) => i !== index);\n\n if (this.files.length === 0) {\n this.progress = 0;\n }\n this.getTotalSize();\n this.onChange([...this.uploadedFiles, ...this.files]);\n }\n\n public removeFromUploadedList(index: number): void {\n this.uploadedFiles = this.uploadedFiles.filter((f, i) => i !== index);\n\n if (this.files.length === 0) {\n this.progress = 0;\n }\n\n this.getTotalSize();\n this.onChange([...this.uploadedFiles, ...this.files]);\n }\n\n public resetList(): void {\n this.files = [];\n this.uploadedFiles = [];\n this.getTotalSize();\n this.progress = 0;\n this.onChange([...this.uploadedFiles, ...this.files]);\n }\n\n public openBrowseWindow(): void {\n this.fileInputs.first.nativeElement.click();\n }\n\n writeValue(value: any): void {\n this.uploadedFiles = value || [];\n this.files = [];\n this.getTotalSize();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n }\n\n private onChange: any = () => {};\n\n private getTotalSize(): void {\n this.filesTotalSize = 0;\n this.files.forEach((f) => {\n this.filesTotalSize += f.size;\n });\n }\n\n}\n","<div class=\"file-upload\">\n <div [class]=\"dropAreaClass\" *ngIf=\"hasDragArea\">\n <span class=\"fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span class=\"file-msg\">{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"file-input\"\n attr.aria-label= \"{{'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\">\n </div>\n <div class=\"simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input #input *ngIf=\"isMultiple\" aria-label=\"Choose Multiple Files\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\" multiple>\n <input #input *ngIf=\"!isMultiple\" aria-label=\"Choose a single file\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\">\n </div>\n <eui-file-upload-progress *ngIf=\"hasProgressBar\" [progress]=\"progress\"></eui-file-upload-progress>\n\n <div *ngFor=\"let uploadedFile of uploadedFiles; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n\n <div *ngFor=\"let file of files; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n\n <div class=\"file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n</div>\n<ng-content></ng-content>\n<button euiButton class=\"file-upload__reset-button\" type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">{{ 'eui.euifileupload.RESET-LIST' | translate }}</button>\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpEvent, HttpEventType, HttpResponse } from '@angular/common/http';\nimport { filter, map, tap } from 'rxjs/operators';\nimport { pipe, Observable, UnaryFunction, MonoTypeOperatorFunction } from 'rxjs';\n\n@Injectable()\nexport class EuiFileUploadUtilsService {\n\n constructor(private httpClient: HttpClient) {}\n\n /**\n * @param data Data to send to backend\n * @param APIEndPoint Endpoint URL\n *\n * @description\n * Method that will format data in `FormData` and send them to backend.\n *\n * @usageNotes\n * Call the method and log the response in the console.\n *\n * ```typescript\n * this.euiFileUploadUtilsService.sendData(this.form.value, 'http://localhost:3000/api/fake-api').pipe(\n * this.euiFileUploadUtilsService.uploadProgress((progress) => {\n * console.log(progress);\n * }),\n * this.euiFileUploadUtilsService.toResponseBody(),\n * ).subscribe((response) => {\n * console.log(response);\n * });\n * ```\n *\n * @returns The backend response.\n */\n public sendData(data: any, APIEndPoint: string): Observable<any> {\n return this.httpClient.post(APIEndPoint, this.toFormData(data), {\n reportProgress: true,\n observe: 'events',\n });\n }\n\n /**\n * @param cb A method to execute on each progress step.\n *\n * @description\n * Method that will return the upload progress.\n *\n * @usageNotes\n * Call the method and log the progress in the console.\n *\n * ```typescript\n * this.euiFileUploadUtilsService.sendData(this.form.value, 'http://localhost:3000/api/fake-api').pipe(\n * this.euiFileUploadUtilsService.uploadProgress((progress) => {\n * console.log(progress);\n * }),\n * this.euiFileUploadUtilsService.toResponseBody(),\n * ).subscribe((response) => {\n * console.log(response);\n * });\n * ```\n *\n * @returns A number between 0 and 100.\n */\n public uploadProgress<T>(cb: (progress: number) => void): MonoTypeOperatorFunction<HttpEvent<T>> {\n return tap((event: HttpEvent<T>) => {\n if (event.type === HttpEventType.UploadProgress) {\n cb(Math.round((100 * event.loaded) / event.total));\n }\n });\n }\n\n /**\n * @description\n * Method that will return only the body of the backend response.\n *\n * @usageNotes\n * Call the method and log the response in the console.\n *\n * ```typescript\n * this.euiFileUploadUtilsService.sendData(this.form.value, 'http://localhost:3000/api/fake-api').pipe(\n * this.euiFileUploadUtilsService.uploadProgress((progress) => {\n * console.log(progress);\n * }),\n * this.euiFileUploadUtilsService.toResponseBody(),\n * ).subscribe((response) => {\n * console.log(response);\n * });\n * ```\n *\n * @returns The backend response.\n */\n public toResponseBody<T>(): UnaryFunction<Observable<HttpEvent<T>>, Observable<T>> {\n return pipe(\n filter((event: HttpEvent<T>) => event.type === HttpEventType.Response),\n map((res: HttpResponse<T>) => res.body),\n );\n }\n\n private toFormData<T>(formValue: any): FormData {\n const formData = new FormData();\n\n for (const key of Object.keys(formValue)) {\n if (Array.isArray(formValue[key])) {\n let fileIndex = 0;\n formValue[key].forEach((value: any) => {\n if (value instanceof File) {\n formData.append(key + fileIndex, value);\n fileIndex ++;\n }\n });\n\n const a = [];\n formValue[key].forEach((value: any, index: number) => {\n a.push(value);\n });\n\n formData.append(key, JSON.stringify(a));\n } else {\n if (typeof formValue[key] === 'string') {\n formData.set(key, formValue[key]);\n } else {\n formData.set(key, JSON.stringify(formValue[key]));\n }\n }\n }\n\n return formData;\n }\n}\n","import { Component, OnInit, Input, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eui-uploaded-file',\n templateUrl: './uploaded-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUploadedFileComponent implements OnInit {\n @Input() file: any;\n @Input() index: number;\n\n @Input() previewAsIconConfig = {\n 'image/jpeg': 'fa-picture-o',\n 'image/gif': 'fa-picture-o',\n 'image/png': 'fa-picture-o',\n 'application/msword': 'fa-file-word-o',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'fa-file-word-o',\n 'application/vnd.ms-excel': 'fa-file-excel-o',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'fa-file-excel-o',\n 'application/pdf': 'fa-file-pdf-o',\n };\n\n @Output() removeFromList = new EventEmitter<number>();\n\n public url: string;\n public icon: string;\n public previewData: { image: boolean, display: string };\n\n @Input()\n get hasPreview(): boolean { return this._hasPreview; }\n set hasPreview(value: BooleanInput) { this._hasPreview = coerceBooleanProperty(value); }\n private _hasPreview = true;\n @Input()\n get isFilenameDisplayed(): boolean { return this._isFilenameDisplayed; }\n set isFilenameDisplayed(value: BooleanInput) { this._isFilenameDisplayed = coerceBooleanProperty(value); }\n private _isFilenameDisplayed = true;\n @Input()\n get isFilesizeDisplayed(): boolean { return this._isFilesizeDisplayed; }\n set isFilesizeDisplayed(value: BooleanInput) { this._isFilesizeDisplayed = coerceBooleanProperty(value); }\n private _isFilesizeDisplayed = true;\n @Input()\n get isFiletypeDisplayed(): boolean { return this._isFiletypeDisplayed; }\n set isFiletypeDisplayed(value: BooleanInput) { this._isFiletypeDisplayed = coerceBooleanProperty(value); }\n private _isFiletypeDisplayed = true;\n @Input()\n get hasPreviewAsImage(): boolean { return this._hasPreviewAsImage; }\n set hasPreviewAsImage(value: BooleanInput) { this._hasPreviewAsImage = coerceBooleanProperty(value); }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean { return this._hasPreviewAsIcon; }\n set hasPreviewAsIcon(value: BooleanInput) { this._hasPreviewAsIcon = coerceBooleanProperty(value); }\n private _hasPreviewAsIcon = false;\n\n constructor(private cd: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n\n const reader = new FileReader();\n reader.readAsDataURL(this.file);\n reader.onload = (event: any): void => {\n this.url = event.target.result;\n this.icon = this.getIconForMime(this.file.type);\n this.previewData = this.getPreviewForMime(this.file.type);\n this.cd.detectChanges();\n };\n }\n\n public onRemoveFromList(): void {\n this.removeFromList.emit(this.index);\n }\n\n private getPreviewForMime(mime: string): { image: boolean, display: string } {\n const image = mime === 'image/jpeg' || mime === 'image/gif' || mime === 'image/png' ? true : false;\n\n const display = mime === 'image/jpeg' || mime === 'image/gif' || mime === 'image/png' ?\n this.url :\n this.getIconForMime(mime);\n\n return { image, display };\n }\n\n private getIconForMime(mime: string): string {\n return !this.previewAsIconConfig[mime] ? 'fa-file-o' : this.previewAsIconConfig[mime];\n }\n}\n","<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <i class=\"fa {{ icon }}\"></i>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\nimport { EuiFileUploadComponent } from './eui-file-upload.component';\nimport { EuiFileUploadProgressComponent } from './progress/eui-file-upload-progress.component';\nimport { EuiFilePreviewComponent } from './file-preview/file-preview.component';\nimport { EuiFileSizePipe } from './pipes/filesize.pipe';\nimport { EuiFileUploadUtilsService } from './utils/eui-file-upload.utils';\nimport { EuiUploadedFileComponent } from './uploaded-file/uploaded-file.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressBarModule,\n EuiButtonModule,\n EuiIconModule,\n TranslateModule,\n ],\n declarations: [\n EuiFileUploadComponent,\n EuiFileUploadProgressComponent,\n EuiFilePreviewComponent,\n EuiFileSizePipe,\n EuiUploadedFileComponent,\n ],\n providers: [\n EuiFileUploadUtilsService,\n ],\n exports: [\n EuiFileUploadComponent,\n ],\n})\nexport class EuiFileUploadModule { }\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n/**\n * @description\n * Validator that requires the maximum length of files that can be uploaded.\n *\n * @usageNotes\n * Validate that the user selected maximum 3 files:\n *\n * ```typescript\n * const fileUpload = new FormControl(null, maxFilesValidator(3));\n * console.log(fileUpload.errors); // { maxFiles: 3 }\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `maxFiles` if the validation check fails, otherwise `null`.\n */\nexport const maxFilesValidator = (maxFiles: number): ValidatorFn => (control: AbstractControl): { 'maxFiles': number } | null =>\n control.value && control.value.length > maxFiles ? { maxFiles } : null;\n\n/**\n * @description\n * Validator that requires the maximum size (in bytes) of files that can be uploaded.\n *\n * @usageNotes\n * Validate that the user doesn't select a file have a size up to 300Kb:\n *\n * ```typescript\n * const fileUpload = new FormControl(null, maxSizeValidator(300000));\n * console.log(fileUpload.errors); // { maxSize: 300000 }\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `maxSize` if the validation check fails, otherwise `null`.\n */\nexport const maxSizeValidator = (maxSize: number): ValidatorFn => (control: AbstractControl): { 'maxSize': number } | null => {\n let totalSize = 0;\n if (control.value) {\n control.value.forEach((file: File) => {\n totalSize += file.size;\n });\n }\n\n return control.value && totalSize > (maxSize * 1.024) ? { maxSize } : null;\n};\n\n/**\n * @description\n * Validator that requires an array of mime type that can be uploaded.\n *\n * @usageNotes\n * Validate that the user doesn't select a file having another extension than .jpg or .jpeg:\n *\n * ```typescript\n * const fileUpload = new FormControl(null, mimeTypeExtensionValidator(['image/jpeg'])),\n * console.log(fileUpload.errors); // { invalidFileExtension: ['image/jpeg'] }\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `invalidFileExtension` if the validation check fails, otherwise `null`.\n */\nexport const mimeTypeExtensionValidator = (mimeTypes: string[]): ValidatorFn => (control: AbstractControl): { 'invalidFileExtension': string[] } | null => {\n const invalidFileExtension: string[] = [];\n if (control.value) {\n control.value.forEach((file: File) => {\n if (mimeTypes.indexOf(file.type) === -1) {\n invalidFileExtension.push(file.name);\n }\n });\n }\n\n return control.value && invalidFileExtension.length > 0 ? { invalidFileExtension } : null;\n};\n","export class EuiUploadedFile implements EuiUploadedFileInterface {\n name: string;\n url: string;\n size: number;\n type: string;\n\n constructor(values: EuiUploadedFileInterface) {\n Object.assign(this, values);\n }\n}\n\nexport interface EuiUploadedFileInterface {\n name?: string;\n url?: string;\n size?: number;\n type?: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i4.EuiFileSizePipe","i3.EuiFileUploadProgressComponent","i4.EuiFilePreviewComponent","i6.EuiFileSizePipe","i1"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-file-upload.mjs","sources":["../../eui-file-upload/progress/eui-file-upload-progress.component.ts","../../eui-file-upload/progress/eui-file-upload-progress.component.html","../../eui-file-upload/pipes/filesize.pipe.ts","../../eui-file-upload/file-preview/file-preview.component.ts","../../eui-file-upload/file-preview/file-preview.component.html","../../eui-file-upload/eui-file-upload.component.ts","../../eui-file-upload/eui-file-upload.component.html","../../eui-file-upload/utils/eui-file-upload.utils.ts","../../eui-file-upload/uploaded-file/uploaded-file.component.ts","../../eui-file-upload/uploaded-file/uploaded-file.component.html","../../eui-file-upload/eui-file-upload.module.ts","../../eui-file-upload/utils/eui-file-upload.validators.ts","../../eui-file-upload/models/uploaded-file.model.ts","../../eui-file-upload/eui-components-eui-file-upload.ts"],"sourcesContent":["import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'eui-file-upload-progress',\n templateUrl: './eui-file-upload-progress.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFileUploadProgressComponent {\n @Input() progress = 0;\n}\n","<div *ngIf=\"progress > 0\" class=\"file-upload__progress-bar\">\n <div class=\"progress-bar__container\">\n <div class=\"progress-bar\" [style.width]=\"progress + '%'\"></div>\n </div>\n <div class=\"file-upload__progress-value\">{{ progress }}%</div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filesize',\n})\nexport class EuiFileSizePipe implements PipeTransform {\n private units = [\n 'bytes',\n 'KB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n ];\n\n transform(bytes: number = 0, precision: number = 2): string {\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n\n while (bytes >= 1024) {\n bytes /= 1024;\n unit++;\n }\n\n return bytes.toFixed(+ precision) + ' ' + this.units[unit];\n }\n}\n","import { Component, OnInit, Input, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiUploadedFile } from '../models/uploaded-file.model';\n\n@Component({\n selector: 'eui-file-preview',\n templateUrl: './file-preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFilePreviewComponent implements OnInit {\n @Input() file: Blob | EuiUploadedFile | any;\n @Input() index: number;\n\n @Input() previewAsIconConfig = {\n avi: 'eui-icon-filetype-avi',\n html: 'eui-icon-filetype-html',\n htm: 'eui-icon-filetype-html',\n js: 'eui-icon-filetype-js',\n json: 'eui-icon-filetype-json',\n mp4: 'eui-icon-filetype-mp4',\n pdf: 'eui-icon-filetype-pdf',\n png: 'eui-icon-filetype-png',\n svg: 'eui-icon-filetype-svg',\n txt: 'eui-icon-filetype-txt',\n xml: 'eui-icon-filetype-xml',\n jpeg: 'eui-icon-filetype-jpg',\n jpg: 'eui-icon-filetype-jpg',\n zip: 'eui-icon-filetype-zip',\n doc: 'eui-icon-filetype-doc',\n docx: 'eui-icon-filetype-doc',\n xls: 'eui-icon-filetype-xls',\n xlsx: 'eui-icon-filetype-xls',\n ppt: 'eui-icon-filetype-ppt',\n csv: 'eui-icon-filetype-csv',\n rtf: 'eui-icon-filetype-rtf',\n };\n\n @Output() removeFromList = new EventEmitter<number>();\n\n public url: string;\n public icon: string;\n public fileExtension: string;\n public previewData: { image: boolean, display: string };\n\n @Input()\n get hasPreview(): boolean { return this._hasPreview; }\n set hasPreview(value: BooleanInput) { this._hasPreview = coerceBooleanProperty(value); }\n private _hasPreview = true;\n @Input()\n get isFilenameDisplayed(): boolean { return this._isFilenameDisplayed; }\n set isFilenameDisplayed(value: BooleanInput) { this._isFilenameDisplayed = coerceBooleanProperty(value); }\n private _isFilenameDisplayed = true;\n @Input()\n get isFilesizeDisplayed(): boolean { return this._isFilesizeDisplayed; }\n set isFilesizeDisplayed(value: BooleanInput) { this._isFilesizeDisplayed = coerceBooleanProperty(value); }\n private _isFilesizeDisplayed = true;\n @Input()\n get isFiletypeDisplayed(): boolean { return this._isFiletypeDisplayed; }\n set isFiletypeDisplayed(value: BooleanInput) { this._isFiletypeDisplayed = coerceBooleanProperty(value); }\n private _isFiletypeDisplayed = true;\n @Input()\n get hasPreviewAsImage(): boolean { return this._hasPreviewAsImage; }\n set hasPreviewAsImage(value: BooleanInput) { this._hasPreviewAsImage = coerceBooleanProperty(value); }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean { return this._hasPreviewAsIcon; }\n set hasPreviewAsIcon(value: BooleanInput) { this._hasPreviewAsIcon = coerceBooleanProperty(value); }\n private _hasPreviewAsIcon = false;\n\n constructor(private cd: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n\n if (this.file instanceof Blob) {\n const reader = new FileReader();\n reader.readAsDataURL(this.file as Blob);\n reader.onload = (event: any): void => {\n this.url = event.target.result;\n this.fileExtension = this.getFileExtension(this.file.name);\n this.icon = this.getIconForMime(this.fileExtension);\n this.previewData = this.getPreviewForMime(this.fileExtension);\n this.cd.detectChanges();\n };\n } else {\n this.url = (this.file as EuiUploadedFile).url;\n this.fileExtension = this.getFileExtension(this.file.name);\n this.icon = this.getIconForMime(this.fileExtension);\n this.previewData = this.getPreviewForMime(this.fileExtension);\n this.cd.detectChanges();\n }\n }\n\n public onRemoveFromList(): void {\n this.removeFromList.emit(this.index);\n }\n\n private getFileExtension(fileName: string): string {\n const ext = fileName.split('.');\n\n return ext[ext.length - 1];\n }\n\n private getPreviewForMime(fileExtension: string): { image: boolean, display: string } {\n const image = fileExtension === 'jpeg' || fileExtension === 'jpg' || fileExtension === 'png' ||\n fileExtension === 'gif' ? true : false;\n\n const display = fileExtension === 'jpeg' || fileExtension === 'jpg' || fileExtension === 'png' || fileExtension === 'gif' ?\n this.url :\n this.getIconForMime(fileExtension);\n\n return { image, display };\n }\n\n private getIconForMime(fileExtension: string): string {\n return !this.previewAsIconConfig[fileExtension] ? 'eui-icon-filetype-unknown' : this.previewAsIconConfig[fileExtension];\n }\n}\n","<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <span class=\"eui-icon eui-icon-color {{ icon }}\" euiIconColored euiSize5XL></span>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiPrimary euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n","import { Component, ElementRef, HostListener, Input, ViewEncapsulation, OnInit, ViewChildren, QueryList, Output, EventEmitter } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { EuiUploadedFile } from './models/uploaded-file.model';\n\n@Component({\n selector: 'eui-file-upload',\n templateUrl: './eui-file-upload.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: EuiFileUploadComponent,\n multi: true,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFileUploadComponent implements ControlValueAccessor, OnInit {\n @Input() progress: number;\n @Input() accept = '*';\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() drop = new EventEmitter();\n\n dropAreaClass = 'file-drop-area';\n public files: File[] = [];\n public filesTotalSize = 0;\n public randomNumberId = Math.floor(Math.random() * 10000);\n public uploadedFiles: EuiUploadedFile[] = [];\n @ViewChildren('input') fileInputs: QueryList<ElementRef<HTMLInputElement>>;\n\n @Input()\n get isMultiple(): boolean { return this._isMultiple; }\n set isMultiple(value: BooleanInput) { this._isMultiple = coerceBooleanProperty(value); }\n private _isMultiple = true;\n @Input()\n get hasProgressBar(): boolean { return this._hasProgressBar; }\n set hasProgressBar(value: BooleanInput) { this._hasProgressBar = coerceBooleanProperty(value); }\n private _hasProgressBar = true;\n @Input()\n get hasPreview(): boolean { return this._hasPreview; }\n set hasPreview(value: BooleanInput) { this._hasPreview = coerceBooleanProperty(value); }\n private _hasPreview = true;\n @Input()\n get hasPreviewAsImage(): boolean { return this._hasPreviewAsImage; }\n set hasPreviewAsImage(value: BooleanInput) { this._hasPreviewAsImage = coerceBooleanProperty(value); }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean { return this._hasPreviewAsIcon; }\n set hasPreviewAsIcon(value: BooleanInput) { this._hasPreviewAsIcon = coerceBooleanProperty(value); }\n private _hasPreviewAsIcon = false;\n @Input()\n get hasTotalSizeDisplayed(): boolean { return this._hasTotalSizeDisplayed; }\n set hasTotalSizeDisplayed(value: BooleanInput) { this._hasTotalSizeDisplayed = coerceBooleanProperty(value); }\n private _hasTotalSizeDisplayed = true;\n @Input()\n get hasResetButton(): boolean { return this._hasResetButton; }\n set hasResetButton(value: BooleanInput) { this._hasResetButton = coerceBooleanProperty(value); }\n private _hasResetButton = true;\n @Input()\n get hasDragArea(): boolean { return this._hasDragArea; }\n set hasDragArea(value: BooleanInput) { this._hasDragArea = coerceBooleanProperty(value); }\n private _hasDragArea = false;\n\n @HostListener('change', ['$event.target.files']) emitFiles(fileList: FileList): void {\n for (const property in fileList) {\n if (fileList[property] && typeof fileList[property] === 'object') {\n\n const fileName = fileList[property].name.split('.');\n const fileExtension = fileName[fileName.length - 1];\n\n if (this.accept.indexOf(fileExtension) !== -1 || this.accept === '*') {\n this.files.push(fileList[property]);\n }\n }\n }\n\n this.getTotalSize();\n this.uploadedFiles ? this.onChange([...this.uploadedFiles, ...this.files]) : this.onChange(this.files);\n if (this.fileInputs) {\n this.fileInputs.first.nativeElement.value = '';\n this.fileInputs.last.nativeElement.value = '';\n }\n this.dropAreaClass = 'file-drop-area';\n this.drop.emit();\n }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n }\n\n get showResetBtn(): boolean {\n return this.hasResetButton && (this.files.length > 0 || this.uploadedFiles.length > 0);\n }\n\n onDragEnter(): void {\n this.dropAreaClass = 'file-drop-area-active';\n }\n\n onDragLeave(): void {\n this.dropAreaClass = 'file-drop-area';\n }\n\n public removeFromList(index: number): void {\n this.files = this.files.filter((f, i) => i !== index);\n\n if (this.files.length === 0) {\n this.progress = 0;\n }\n this.getTotalSize();\n this.onChange([...this.uploadedFiles, ...this.files]);\n }\n\n public removeFromUploadedList(index: number): void {\n this.uploadedFiles = this.uploadedFiles.filter((f, i) => i !== index);\n\n if (this.files.length === 0) {\n this.progress = 0;\n }\n\n this.getTotalSize();\n this.onChange([...this.uploadedFiles, ...this.files]);\n }\n\n public resetList(): void {\n this.files = [];\n this.uploadedFiles = [];\n this.getTotalSize();\n this.progress = 0;\n this.onChange([...this.uploadedFiles, ...this.files]);\n }\n\n public openBrowseWindow(): void {\n this.fileInputs.first.nativeElement.click();\n }\n\n writeValue(value: any): void {\n this.uploadedFiles = value || [];\n this.files = [];\n this.getTotalSize();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n }\n\n private onChange: any = () => {};\n\n private getTotalSize(): void {\n this.filesTotalSize = 0;\n this.files.forEach((f) => {\n this.filesTotalSize += f.size;\n });\n }\n\n}\n","<div class=\"file-upload\">\n <div [class]=\"dropAreaClass\" *ngIf=\"hasDragArea\">\n <span class=\"fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span class=\"file-msg\">{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"file-input\"\n attr.aria-label= \"{{'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\">\n </div>\n <div class=\"simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input #input *ngIf=\"isMultiple\" aria-label=\"Choose Multiple Files\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\" multiple>\n <input #input *ngIf=\"!isMultiple\" aria-label=\"Choose a single file\" class=\"file-input\" id=\"file-{{ randomNumberId }}\" type=\"file\" accept=\"{{ accept }}\">\n </div>\n <eui-file-upload-progress *ngIf=\"hasProgressBar\" [progress]=\"progress\"></eui-file-upload-progress>\n\n <div *ngFor=\"let uploadedFile of uploadedFiles; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n\n <div *ngFor=\"let file of files; let i = index\">\n <eui-file-preview\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n\n <div class=\"file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n</div>\n<ng-content></ng-content>\n<button euiButton class=\"file-upload__reset-button\" type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">{{ 'eui.euifileupload.RESET-LIST' | translate }}</button>\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpEvent, HttpEventType, HttpResponse } from '@angular/common/http';\nimport { filter, map, tap } from 'rxjs/operators';\nimport { pipe, Observable, UnaryFunction, MonoTypeOperatorFunction } from 'rxjs';\n\n@Injectable()\nexport class EuiFileUploadUtilsService {\n\n constructor(private httpClient: HttpClient) {}\n\n /**\n * @param data Data to send to backend\n * @param APIEndPoint Endpoint URL\n *\n * @description\n * Method that will format data in `FormData` and send them to backend.\n *\n * @usageNotes\n * Call the method and log the response in the console.\n *\n * ```typescript\n * this.euiFileUploadUtilsService.sendData(this.form.value, 'http://localhost:3000/api/fake-api').pipe(\n * this.euiFileUploadUtilsService.uploadProgress((progress) => {\n * console.log(progress);\n * }),\n * this.euiFileUploadUtilsService.toResponseBody(),\n * ).subscribe((response) => {\n * console.log(response);\n * });\n * ```\n *\n * @returns The backend response.\n */\n public sendData(data: any, APIEndPoint: string): Observable<any> {\n return this.httpClient.post(APIEndPoint, this.toFormData(data), {\n reportProgress: true,\n observe: 'events',\n });\n }\n\n /**\n * @param cb A method to execute on each progress step.\n *\n * @description\n * Method that will return the upload progress.\n *\n * @usageNotes\n * Call the method and log the progress in the console.\n *\n * ```typescript\n * this.euiFileUploadUtilsService.sendData(this.form.value, 'http://localhost:3000/api/fake-api').pipe(\n * this.euiFileUploadUtilsService.uploadProgress((progress) => {\n * console.log(progress);\n * }),\n * this.euiFileUploadUtilsService.toResponseBody(),\n * ).subscribe((response) => {\n * console.log(response);\n * });\n * ```\n *\n * @returns A number between 0 and 100.\n */\n public uploadProgress<T>(cb: (progress: number) => void): MonoTypeOperatorFunction<HttpEvent<T>> {\n return tap((event: HttpEvent<T>) => {\n if (event.type === HttpEventType.UploadProgress) {\n cb(Math.round((100 * event.loaded) / event.total));\n }\n });\n }\n\n /**\n * @description\n * Method that will return only the body of the backend response.\n *\n * @usageNotes\n * Call the method and log the response in the console.\n *\n * ```typescript\n * this.euiFileUploadUtilsService.sendData(this.form.value, 'http://localhost:3000/api/fake-api').pipe(\n * this.euiFileUploadUtilsService.uploadProgress((progress) => {\n * console.log(progress);\n * }),\n * this.euiFileUploadUtilsService.toResponseBody(),\n * ).subscribe((response) => {\n * console.log(response);\n * });\n * ```\n *\n * @returns The backend response.\n */\n public toResponseBody<T>(): UnaryFunction<Observable<HttpEvent<T>>, Observable<T>> {\n return pipe(\n filter((event: HttpEvent<T>) => event.type === HttpEventType.Response),\n map((res: HttpResponse<T>) => res.body),\n );\n }\n\n private toFormData<T>(formValue: any): FormData {\n const formData = new FormData();\n\n for (const key of Object.keys(formValue)) {\n if (Array.isArray(formValue[key])) {\n let fileIndex = 0;\n formValue[key].forEach((value: any) => {\n if (value instanceof File) {\n formData.append(key + fileIndex, value);\n fileIndex ++;\n }\n });\n\n const a = [];\n formValue[key].forEach((value: any, index: number) => {\n a.push(value);\n });\n\n formData.append(key, JSON.stringify(a));\n } else {\n if (typeof formValue[key] === 'string') {\n formData.set(key, formValue[key]);\n } else {\n formData.set(key, JSON.stringify(formValue[key]));\n }\n }\n }\n\n return formData;\n }\n}\n","import { Component, OnInit, Input, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eui-uploaded-file',\n templateUrl: './uploaded-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUploadedFileComponent implements OnInit {\n @Input() file: any;\n @Input() index: number;\n\n @Input() previewAsIconConfig = {\n 'image/jpeg': 'fa-picture-o',\n 'image/gif': 'fa-picture-o',\n 'image/png': 'fa-picture-o',\n 'application/msword': 'fa-file-word-o',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'fa-file-word-o',\n 'application/vnd.ms-excel': 'fa-file-excel-o',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'fa-file-excel-o',\n 'application/pdf': 'fa-file-pdf-o',\n };\n\n @Output() removeFromList = new EventEmitter<number>();\n\n public url: string;\n public icon: string;\n public previewData: { image: boolean, display: string };\n\n @Input()\n get hasPreview(): boolean { return this._hasPreview; }\n set hasPreview(value: BooleanInput) { this._hasPreview = coerceBooleanProperty(value); }\n private _hasPreview = true;\n @Input()\n get isFilenameDisplayed(): boolean { return this._isFilenameDisplayed; }\n set isFilenameDisplayed(value: BooleanInput) { this._isFilenameDisplayed = coerceBooleanProperty(value); }\n private _isFilenameDisplayed = true;\n @Input()\n get isFilesizeDisplayed(): boolean { return this._isFilesizeDisplayed; }\n set isFilesizeDisplayed(value: BooleanInput) { this._isFilesizeDisplayed = coerceBooleanProperty(value); }\n private _isFilesizeDisplayed = true;\n @Input()\n get isFiletypeDisplayed(): boolean { return this._isFiletypeDisplayed; }\n set isFiletypeDisplayed(value: BooleanInput) { this._isFiletypeDisplayed = coerceBooleanProperty(value); }\n private _isFiletypeDisplayed = true;\n @Input()\n get hasPreviewAsImage(): boolean { return this._hasPreviewAsImage; }\n set hasPreviewAsImage(value: BooleanInput) { this._hasPreviewAsImage = coerceBooleanProperty(value); }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean { return this._hasPreviewAsIcon; }\n set hasPreviewAsIcon(value: BooleanInput) { this._hasPreviewAsIcon = coerceBooleanProperty(value); }\n private _hasPreviewAsIcon = false;\n\n constructor(private cd: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n\n const reader = new FileReader();\n reader.readAsDataURL(this.file);\n reader.onload = (event: any): void => {\n this.url = event.target.result;\n this.icon = this.getIconForMime(this.file.type);\n this.previewData = this.getPreviewForMime(this.file.type);\n this.cd.detectChanges();\n };\n }\n\n public onRemoveFromList(): void {\n this.removeFromList.emit(this.index);\n }\n\n private getPreviewForMime(mime: string): { image: boolean, display: string } {\n const image = mime === 'image/jpeg' || mime === 'image/gif' || mime === 'image/png' ? true : false;\n\n const display = mime === 'image/jpeg' || mime === 'image/gif' || mime === 'image/png' ?\n this.url :\n this.getIconForMime(mime);\n\n return { image, display };\n }\n\n private getIconForMime(mime: string): string {\n return !this.previewAsIconConfig[mime] ? 'fa-file-o' : this.previewAsIconConfig[mime];\n }\n}\n","<div class=\"file-upload__preview\">\n <div class=\"file-upload__preview__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\">\n <i class=\"fa {{ previewData.display }}\" *ngIf=\"previewData && !previewData.image\"></i>\n </div>\n <div class=\"file-upload__preview__icon\" *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <i class=\"fa {{ icon }}\"></i>\n </div>\n <div class=\"file-upload__preview__filename\" *ngIf=\"isFilenameDisplayed\">{{ file.name }}</div>\n <div class=\"file-upload__preview__filesize\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"file-upload__preview__filetype\" *ngIf=\"isFiletypeDisplayed\">{{ file.type }}</div>\n <div class=\"file-upload__preview__actions\">\n <div class=\"file-upload__preview__actions-container\">\n <button euiButton euiRounded euiIconButton euiSizeL euiBasicButton (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-close\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\nimport { EuiFileUploadComponent } from './eui-file-upload.component';\nimport { EuiFileUploadProgressComponent } from './progress/eui-file-upload-progress.component';\nimport { EuiFilePreviewComponent } from './file-preview/file-preview.component';\nimport { EuiFileSizePipe } from './pipes/filesize.pipe';\nimport { EuiFileUploadUtilsService } from './utils/eui-file-upload.utils';\nimport { EuiUploadedFileComponent } from './uploaded-file/uploaded-file.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EuiButtonModule,\n EuiIconModule,\n TranslateModule,\n ],\n declarations: [\n EuiFileUploadComponent,\n EuiFileUploadProgressComponent,\n EuiFilePreviewComponent,\n EuiFileSizePipe,\n EuiUploadedFileComponent,\n ],\n providers: [\n EuiFileUploadUtilsService,\n ],\n exports: [\n EuiFileUploadComponent,\n ],\n})\nexport class EuiFileUploadModule { }\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n/**\n * @description\n * Validator that requires the maximum length of files that can be uploaded.\n *\n * @usageNotes\n * Validate that the user selected maximum 3 files:\n *\n * ```typescript\n * const fileUpload = new FormControl(null, maxFilesValidator(3));\n * console.log(fileUpload.errors); // { maxFiles: 3 }\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `maxFiles` if the validation check fails, otherwise `null`.\n */\nexport const maxFilesValidator = (maxFiles: number): ValidatorFn => (control: AbstractControl): { 'maxFiles': number } | null =>\n control.value && control.value.length > maxFiles ? { maxFiles } : null;\n\n/**\n * @description\n * Validator that requires the maximum size (in bytes) of files that can be uploaded.\n *\n * @usageNotes\n * Validate that the user doesn't select a file have a size up to 300Kb:\n *\n * ```typescript\n * const fileUpload = new FormControl(null, maxSizeValidator(300000));\n * console.log(fileUpload.errors); // { maxSize: 300000 }\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `maxSize` if the validation check fails, otherwise `null`.\n */\nexport const maxSizeValidator = (maxSize: number): ValidatorFn => (control: AbstractControl): { 'maxSize': number } | null => {\n let totalSize = 0;\n if (control.value) {\n control.value.forEach((file: File) => {\n totalSize += file.size;\n });\n }\n\n return control.value && totalSize > (maxSize * 1.024) ? { maxSize } : null;\n};\n\n/**\n * @description\n * Validator that requires an array of mime type that can be uploaded.\n *\n * @usageNotes\n * Validate that the user doesn't select a file having another extension than .jpg or .jpeg:\n *\n * ```typescript\n * const fileUpload = new FormControl(null, mimeTypeExtensionValidator(['image/jpeg'])),\n * console.log(fileUpload.errors); // { invalidFileExtension: ['image/jpeg'] }\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `invalidFileExtension` if the validation check fails, otherwise `null`.\n */\nexport const mimeTypeExtensionValidator = (mimeTypes: string[]): ValidatorFn => (control: AbstractControl): { 'invalidFileExtension': string[] } | null => {\n const invalidFileExtension: string[] = [];\n if (control.value) {\n control.value.forEach((file: File) => {\n if (mimeTypes.indexOf(file.type) === -1) {\n invalidFileExtension.push(file.name);\n }\n });\n }\n\n return control.value && invalidFileExtension.length > 0 ? { invalidFileExtension } : null;\n};\n","export class EuiUploadedFile implements EuiUploadedFileInterface {\n name: string;\n url: string;\n size: number;\n type: string;\n\n constructor(values: EuiUploadedFileInterface) {\n Object.assign(this, values);\n }\n}\n\nexport interface EuiUploadedFileInterface {\n name?: string;\n url?: string;\n size?: number;\n type?: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.EuiFileSizePipe","i3.EuiFileUploadProgressComponent","i4.EuiFilePreviewComponent","i6.EuiFileSizePipe","i1"],"mappings":"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"}
@@ -609,7 +609,7 @@ class EuiUserProfileComponent {
609
609
  this.welcomeLabel = 'Welcome';
610
610
  this.impersonateLabel = 'impersonating';
611
611
  this.hasMenu = true;
612
- this._hasWelcomeLabel = false;
612
+ this._hasWelcomeLabel = true;
613
613
  }
614
614
  get hasWelcomeLabel() { return this._hasWelcomeLabel; }
615
615
  set hasWelcomeLabel(value) { this._hasWelcomeLabel = coerceBooleanProperty(value); }
@@ -626,10 +626,10 @@ class EuiUserProfileComponent {
626
626
  }
627
627
  }
628
628
  /** @nocollapse */ EuiUserProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiUserProfileComponent, deps: [{ token: i1.UxAppShellService }], target: i0.ɵɵFactoryTarget.Component });
629
- /** @nocollapse */ EuiUserProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiUserProfileComponent, selector: "eui-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", hasMenu: "hasMenu", hasWelcomeLabel: "hasWelcomeLabel", euiUserProfileSizeS: "euiUserProfileSizeS" }, host: { properties: { "class": "this.cssClasses" } }, ngImport: i0, template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown width=\"340px\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <div class=\"eui-user-profile-content\">\n <div class=\"eui-user-profile__infos\" [class.eui-user-profile__infos--no-subinfos]=\"(asService.getState('userSubInfos') | async) === '' && !hasWelcomeLabel\">\n <ng-template [ngIf]=\"(asService.getState('impersonatedUserInfos') | async) === ''\">\n <div class=\"eui-user-profile__infos-container\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span *ngIf=\"hasWelcomeLabel\">{{welcomeLabel}}&nbsp;</span>\n <span class=\"eui-user-profile__infos-name\">{{asService.getState('userInfos') | async}}</span>\n </div>\n </div>\n <div *ngIf=\"asService.getState('userSubInfos') | async\" class=\"eui-user-profile__infos-subinfos\">\n {{asService.getState('userSubInfos') | async}}\n </div>\n </ng-template>\n\n <ng-template [ngIf]=\"(asService.getState('impersonatedUserInfos') | async) !== ''\">\n <div class=\"eui-user-profile__infos-container\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span *ngIf=\"hasWelcomeLabel\">{{welcomeLabel}}&nbsp;</span>\n <strong>{{asService.getState('userInfos') | async}}</strong>\n &nbsp;{{impersonateLabel}}\n </div>\n </div>\n <span class=\"eui-user-profile__infos-name\">{{asService.getState('impersonatedUserInfos') | async}}</span>\n <div *ngIf=\"asService.getState('userSubInfos') | async\" class=\"eui-user-profile__infos-subinfos\">\n {{asService.getState('userSubInfos') | async}}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"asService.getState('impersonatedUserInfos') | async\" class=\"eui-user-profile__avatar-shadow\">\n <div class=\"eui-user-profile__avatar eui-u-svg eui-u-svg--default-avatar\"></div>\n </div>\n <div *ngIf=\"!avatarUrl\" class=\"eui-user-profile__avatar\" [ngClass]=\"isOnline ? 'eui-user-profile__avatar--online' : 'eui-user-profile__avatar--offline'\">\n </div>\n <div *ngIf=\"avatarUrl\" class=\"eui-user-profile__avatar eui-u-svg\">\n <img [src]=\"avatarUrl\" alt=\"avatar\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;cursor:pointer;display:flex}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;margin-right:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-toolbar-item .eui-user-profile__infos{margin-top:var(--eui-base-spacing-3xs);line-height:1.25}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font-size:var(--eui-base-font-size);font-weight:700}.eui-toolbar-item .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos--no-subinfos{display:flex}.eui-user-profile__avatar{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUzIDUzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MyA1MzsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIHN0eWxlPSJmaWxsOiNFN0VDRUQ7IiBkPSJNMTguNjEzLDQxLjU1MmwtNy45MDcsNC4zMTNjLTAuNDY0LDAuMjUzLTAuODgxLDAuNTY0LTEuMjY5LDAuOTAzQzE0LjA0Nyw1MC42NTUsMTkuOTk4LDUzLDI2LjUsNTNjNi40NTQsMCwxMi4zNjctMi4zMSwxNi45NjQtNi4xNDRjLTAuNDI0LTAuMzU4LTAuODg0LTAuNjgtMS4zOTQtMC45MzRsLTguNDY3LTQuMjMzYy0xLjA5NC0wLjU0Ny0xLjc4NS0xLjY2NS0xLjc4NS0yLjg4OHYtMy4zMjJjMC4yMzgtMC4yNzEsMC41MS0wLjYxOSwwLjgwMS0xLjAzYzEuMTU0LTEuNjMsMi4wMjctMy40MjMsMi42MzItNS4zMDRjMS4wODYtMC4zMzUsMS44ODYtMS4zMzgsMS44ODYtMi41M3YtMy41NDZjMC0wLjc4LTAuMzQ3LTEuNDc3LTAuODg2LTEuOTY1di01LjEyNmMwLDAsMS4wNTMtNy45NzctOS43NS03Ljk3N3MtOS43NSw3Ljk3Ny05Ljc1LDcuOTc3djUuMTI2Yy0wLjU0LDAuNDg4LTAuODg2LDEuMTg1LTAuODg2LDEuOTY1djMuNTQ2YzAsMC45MzQsMC40OTEsMS43NTYsMS4yMjYsMi4yMzFjMC44ODYsMy44NTcsMy4yMDYsNi42MzMsMy4yMDYsNi42MzN2My4yNEMyMC4yOTYsMzkuODk5LDE5LjY1LDQwLjk4NiwxOC42MTMsNDEuNTUyeiIvPjxnPjxwYXRoIHN0eWxlPSJmaWxsOiM1NTYwODA7IiBkPSJNMjYuOTUzLDAuMDA0QzEyLjMyLTAuMjQ2LDAuMjU0LDExLjQxNCwwLjAwNCwyNi4wNDdDLTAuMTM4LDM0LjM0NCwzLjU2LDQxLjgwMSw5LjQ0OCw0Ni43NmMwLjM4NS0wLjMzNiwwLjc5OC0wLjY0NCwxLjI1Ny0wLjg5NGw3LjkwNy00LjMxM2MxLjAzNy0wLjU2NiwxLjY4My0xLjY1MywxLjY4My0yLjgzNXYtMy4yNGMwLDAtMi4zMjEtMi43NzYtMy4yMDYtNi42MzNjLTAuNzM0LTAuNDc1LTEuMjI2LTEuMjk2LTEuMjI2LTIuMjMxdi0zLjU0NmMwLTAuNzgsMC4zNDctMS40NzcsMC44ODYtMS45NjV2LTUuMTI2YzAsMC0xLjA1My03Ljk3Nyw5Ljc1LTcuOTc3czkuNzUsNy45NzcsOS43NSw3Ljk3N3Y1LjEyNmMwLjU0LDAuNDg4LDAuODg2LDEuMTg1LDAuODg2LDEuOTY1djMuNTQ2YzAsMS4xOTItMC44LDIuMTk1LTEuODg2LDIuNTNjLTAuNjA1LDEuODgxLTEuNDc4LDMuNjc0LTIuNjMyLDUuMzA0Yy0wLjI5MSwwLjQxMS0wLjU2MywwLjc1OS0wLjgwMSwxLjAzVjM4LjhjMCwxLjIyMywwLjY5MSwyLjM0MiwxLjc4NSwyLjg4OGw4LjQ2Nyw0LjIzM2MwLjUwOCwwLjI1NCwwLjk2NywwLjU3NSwxLjM5LDAuOTMyYzUuNzEtNC43NjIsOS4zOTktMTEuODgyLDkuNTM2LTE5LjlDNTMuMjQ2LDEyLjMyLDQxLjU4NywwLjI1NCwyNi45NTMsMC4wMDR6Ii8+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjwvc3ZnPg==);background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;height:50px;margin-right:1rem;min-height:50px;min-width:50px;position:relative;width:50px;box-shadow:var(--eui-base-shadow-2)}.eui-user-profile__avatar-toggle{bottom:-23px;color:var(--eui-base-color-grey-25);cursor:pointer;right:14px;position:absolute}.eui-user-profile__avatar-toggle .eui-icon{font-size:var(--eui-base-font-size)}.eui-user-profile__avatar-toggle:hover{animation:none;color:var(--eui-base-color-primary-100)}.eui-user-profile__avatar--offline{border-color:var(--eui-base-color-danger-75)}.eui-user-profile__avatar--online{border-color:var(--eui-base-color-info-75)}.eui-user-profile__avatar img{background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;min-width:50px;margin-top:-3px;margin-left:-2px}.eui-user-profile__avatar-shadow{height:3rem;opacity:.5;position:relative;width:1.5rem}.eui-user-profile__avatar-shadow .eui-user-profile__avatar{border:2px solid var(--eui-base-color-grey-15)}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--size-s .eui-user-profile__avatar{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:2.5rem;width:2.5rem}.eui-user-profile--size-s .eui-user-profile__avatar-toggle{display:none}.eui-user-profile--size-s .eui-user-profile__avatar--offline,.eui-user-profile--size-s .eui-user-profile__avatar--online{border-color:var(--eui-base-color-grey-25)}.eui-user-profile--size-s .eui-user-profile__avatar-shadow{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:1.125rem;width:1.125rem}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
629
+ /** @nocollapse */ EuiUserProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: EuiUserProfileComponent, selector: "eui-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", hasMenu: "hasMenu", hasWelcomeLabel: "hasWelcomeLabel", euiUserProfileSizeS: "euiUserProfileSizeS" }, host: { properties: { "class": "this.cssClasses" } }, ngImport: i0, template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown width=\"340px\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <div class=\"eui-user-profile-content\">\n <div class=\"eui-user-profile__infos\" [class.eui-user-profile__infos--no-subinfos]=\"(asService.state$ | async).userSubInfos && !hasWelcomeLabel\">\n <ng-container *ngIf=\"(asService.state$ | async).impersonatedUserInfos; else notImpersonated\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span *ngIf=\"hasWelcomeLabel\">{{welcomeLabel}}&nbsp;</span>\n <strong>{{ (asService.state$ | async).userInfos }}</strong>\n &nbsp;{{impersonateLabel}}\n </div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).impersonatedUserInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-container>\n\n <ng-template #notImpersonated>\n <div *ngIf=\"hasWelcomeLabel\" class=\"eui-user-profile__infos-welcome\">{{welcomeLabel}}</div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).userInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"(asService.state$ | async).impersonatedUserInfos\" class=\"eui-user-profile__avatar-shadow\">\n <div class=\"eui-user-profile__avatar eui-u-svg eui-u-svg--default-avatar\"></div>\n </div>\n\n <div *ngIf=\"!avatarUrl\" class=\"eui-user-profile__avatar\"\n [ngClass]=\"isOnline ? 'eui-user-profile__avatar--online' : 'eui-user-profile__avatar--offline'\">\n </div>\n\n <div *ngIf=\"avatarUrl\" class=\"eui-user-profile__avatar eui-u-svg\">\n <img [src]=\"avatarUrl\" alt=\"avatar\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;cursor:pointer;display:flex}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;margin-right:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-toolbar-item .eui-user-profile__infos{margin-top:var(--eui-base-spacing-3xs);line-height:1.25}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font-size:var(--eui-base-font-size);font-weight:700}.eui-toolbar-item .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos--no-subinfos{display:flex}.eui-user-profile__avatar{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUzIDUzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MyA1MzsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIHN0eWxlPSJmaWxsOiNFN0VDRUQ7IiBkPSJNMTguNjEzLDQxLjU1MmwtNy45MDcsNC4zMTNjLTAuNDY0LDAuMjUzLTAuODgxLDAuNTY0LTEuMjY5LDAuOTAzQzE0LjA0Nyw1MC42NTUsMTkuOTk4LDUzLDI2LjUsNTNjNi40NTQsMCwxMi4zNjctMi4zMSwxNi45NjQtNi4xNDRjLTAuNDI0LTAuMzU4LTAuODg0LTAuNjgtMS4zOTQtMC45MzRsLTguNDY3LTQuMjMzYy0xLjA5NC0wLjU0Ny0xLjc4NS0xLjY2NS0xLjc4NS0yLjg4OHYtMy4zMjJjMC4yMzgtMC4yNzEsMC41MS0wLjYxOSwwLjgwMS0xLjAzYzEuMTU0LTEuNjMsMi4wMjctMy40MjMsMi42MzItNS4zMDRjMS4wODYtMC4zMzUsMS44ODYtMS4zMzgsMS44ODYtMi41M3YtMy41NDZjMC0wLjc4LTAuMzQ3LTEuNDc3LTAuODg2LTEuOTY1di01LjEyNmMwLDAsMS4wNTMtNy45NzctOS43NS03Ljk3N3MtOS43NSw3Ljk3Ny05Ljc1LDcuOTc3djUuMTI2Yy0wLjU0LDAuNDg4LTAuODg2LDEuMTg1LTAuODg2LDEuOTY1djMuNTQ2YzAsMC45MzQsMC40OTEsMS43NTYsMS4yMjYsMi4yMzFjMC44ODYsMy44NTcsMy4yMDYsNi42MzMsMy4yMDYsNi42MzN2My4yNEMyMC4yOTYsMzkuODk5LDE5LjY1LDQwLjk4NiwxOC42MTMsNDEuNTUyeiIvPjxnPjxwYXRoIHN0eWxlPSJmaWxsOiM1NTYwODA7IiBkPSJNMjYuOTUzLDAuMDA0QzEyLjMyLTAuMjQ2LDAuMjU0LDExLjQxNCwwLjAwNCwyNi4wNDdDLTAuMTM4LDM0LjM0NCwzLjU2LDQxLjgwMSw5LjQ0OCw0Ni43NmMwLjM4NS0wLjMzNiwwLjc5OC0wLjY0NCwxLjI1Ny0wLjg5NGw3LjkwNy00LjMxM2MxLjAzNy0wLjU2NiwxLjY4My0xLjY1MywxLjY4My0yLjgzNXYtMy4yNGMwLDAtMi4zMjEtMi43NzYtMy4yMDYtNi42MzNjLTAuNzM0LTAuNDc1LTEuMjI2LTEuMjk2LTEuMjI2LTIuMjMxdi0zLjU0NmMwLTAuNzgsMC4zNDctMS40NzcsMC44ODYtMS45NjV2LTUuMTI2YzAsMC0xLjA1My03Ljk3Nyw5Ljc1LTcuOTc3czkuNzUsNy45NzcsOS43NSw3Ljk3N3Y1LjEyNmMwLjU0LDAuNDg4LDAuODg2LDEuMTg1LDAuODg2LDEuOTY1djMuNTQ2YzAsMS4xOTItMC44LDIuMTk1LTEuODg2LDIuNTNjLTAuNjA1LDEuODgxLTEuNDc4LDMuNjc0LTIuNjMyLDUuMzA0Yy0wLjI5MSwwLjQxMS0wLjU2MywwLjc1OS0wLjgwMSwxLjAzVjM4LjhjMCwxLjIyMywwLjY5MSwyLjM0MiwxLjc4NSwyLjg4OGw4LjQ2Nyw0LjIzM2MwLjUwOCwwLjI1NCwwLjk2NywwLjU3NSwxLjM5LDAuOTMyYzUuNzEtNC43NjIsOS4zOTktMTEuODgyLDkuNTM2LTE5LjlDNTMuMjQ2LDEyLjMyLDQxLjU4NywwLjI1NCwyNi45NTMsMC4wMDR6Ii8+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjwvc3ZnPg==);background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;height:50px;margin-right:1rem;min-height:50px;min-width:50px;position:relative;width:50px;box-shadow:var(--eui-base-shadow-2)}.eui-user-profile__avatar-toggle{bottom:-23px;color:var(--eui-base-color-grey-25);cursor:pointer;right:14px;position:absolute}.eui-user-profile__avatar-toggle .eui-icon{font-size:var(--eui-base-font-size)}.eui-user-profile__avatar-toggle:hover{animation:none;color:var(--eui-base-color-primary-100)}.eui-user-profile__avatar--offline{border-color:var(--eui-base-color-danger-75)}.eui-user-profile__avatar--online{border-color:var(--eui-base-color-info-75)}.eui-user-profile__avatar img{background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;min-width:50px;margin-top:-3px;margin-left:-2px}.eui-user-profile__avatar-shadow{height:3rem;opacity:.5;position:relative;width:1.5rem}.eui-user-profile__avatar-shadow .eui-user-profile__avatar{border:2px solid var(--eui-base-color-grey-15)}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--size-s .eui-user-profile__avatar{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:2.5rem;width:2.5rem}.eui-user-profile--size-s .eui-user-profile__avatar-toggle{display:none}.eui-user-profile--size-s .eui-user-profile__avatar--offline,.eui-user-profile--size-s .eui-user-profile__avatar--online{border-color:var(--eui-base-color-grey-25)}.eui-user-profile--size-s .eui-user-profile__avatar-shadow{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:1.125rem;width:1.125rem}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
630
630
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: EuiUserProfileComponent, decorators: [{
631
631
  type: Component,
632
- args: [{ selector: 'eui-user-profile', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown width=\"340px\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <div class=\"eui-user-profile-content\">\n <div class=\"eui-user-profile__infos\" [class.eui-user-profile__infos--no-subinfos]=\"(asService.getState('userSubInfos') | async) === '' && !hasWelcomeLabel\">\n <ng-template [ngIf]=\"(asService.getState('impersonatedUserInfos') | async) === ''\">\n <div class=\"eui-user-profile__infos-container\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span *ngIf=\"hasWelcomeLabel\">{{welcomeLabel}}&nbsp;</span>\n <span class=\"eui-user-profile__infos-name\">{{asService.getState('userInfos') | async}}</span>\n </div>\n </div>\n <div *ngIf=\"asService.getState('userSubInfos') | async\" class=\"eui-user-profile__infos-subinfos\">\n {{asService.getState('userSubInfos') | async}}\n </div>\n </ng-template>\n\n <ng-template [ngIf]=\"(asService.getState('impersonatedUserInfos') | async) !== ''\">\n <div class=\"eui-user-profile__infos-container\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span *ngIf=\"hasWelcomeLabel\">{{welcomeLabel}}&nbsp;</span>\n <strong>{{asService.getState('userInfos') | async}}</strong>\n &nbsp;{{impersonateLabel}}\n </div>\n </div>\n <span class=\"eui-user-profile__infos-name\">{{asService.getState('impersonatedUserInfos') | async}}</span>\n <div *ngIf=\"asService.getState('userSubInfos') | async\" class=\"eui-user-profile__infos-subinfos\">\n {{asService.getState('userSubInfos') | async}}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"asService.getState('impersonatedUserInfos') | async\" class=\"eui-user-profile__avatar-shadow\">\n <div class=\"eui-user-profile__avatar eui-u-svg eui-u-svg--default-avatar\"></div>\n </div>\n <div *ngIf=\"!avatarUrl\" class=\"eui-user-profile__avatar\" [ngClass]=\"isOnline ? 'eui-user-profile__avatar--online' : 'eui-user-profile__avatar--offline'\">\n </div>\n <div *ngIf=\"avatarUrl\" class=\"eui-user-profile__avatar eui-u-svg\">\n <img [src]=\"avatarUrl\" alt=\"avatar\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;cursor:pointer;display:flex}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;margin-right:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-toolbar-item .eui-user-profile__infos{margin-top:var(--eui-base-spacing-3xs);line-height:1.25}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font-size:var(--eui-base-font-size);font-weight:700}.eui-toolbar-item .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos--no-subinfos{display:flex}.eui-user-profile__avatar{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUzIDUzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MyA1MzsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIHN0eWxlPSJmaWxsOiNFN0VDRUQ7IiBkPSJNMTguNjEzLDQxLjU1MmwtNy45MDcsNC4zMTNjLTAuNDY0LDAuMjUzLTAuODgxLDAuNTY0LTEuMjY5LDAuOTAzQzE0LjA0Nyw1MC42NTUsMTkuOTk4LDUzLDI2LjUsNTNjNi40NTQsMCwxMi4zNjctMi4zMSwxNi45NjQtNi4xNDRjLTAuNDI0LTAuMzU4LTAuODg0LTAuNjgtMS4zOTQtMC45MzRsLTguNDY3LTQuMjMzYy0xLjA5NC0wLjU0Ny0xLjc4NS0xLjY2NS0xLjc4NS0yLjg4OHYtMy4zMjJjMC4yMzgtMC4yNzEsMC41MS0wLjYxOSwwLjgwMS0xLjAzYzEuMTU0LTEuNjMsMi4wMjctMy40MjMsMi42MzItNS4zMDRjMS4wODYtMC4zMzUsMS44ODYtMS4zMzgsMS44ODYtMi41M3YtMy41NDZjMC0wLjc4LTAuMzQ3LTEuNDc3LTAuODg2LTEuOTY1di01LjEyNmMwLDAsMS4wNTMtNy45NzctOS43NS03Ljk3N3MtOS43NSw3Ljk3Ny05Ljc1LDcuOTc3djUuMTI2Yy0wLjU0LDAuNDg4LTAuODg2LDEuMTg1LTAuODg2LDEuOTY1djMuNTQ2YzAsMC45MzQsMC40OTEsMS43NTYsMS4yMjYsMi4yMzFjMC44ODYsMy44NTcsMy4yMDYsNi42MzMsMy4yMDYsNi42MzN2My4yNEMyMC4yOTYsMzkuODk5LDE5LjY1LDQwLjk4NiwxOC42MTMsNDEuNTUyeiIvPjxnPjxwYXRoIHN0eWxlPSJmaWxsOiM1NTYwODA7IiBkPSJNMjYuOTUzLDAuMDA0QzEyLjMyLTAuMjQ2LDAuMjU0LDExLjQxNCwwLjAwNCwyNi4wNDdDLTAuMTM4LDM0LjM0NCwzLjU2LDQxLjgwMSw5LjQ0OCw0Ni43NmMwLjM4NS0wLjMzNiwwLjc5OC0wLjY0NCwxLjI1Ny0wLjg5NGw3LjkwNy00LjMxM2MxLjAzNy0wLjU2NiwxLjY4My0xLjY1MywxLjY4My0yLjgzNXYtMy4yNGMwLDAtMi4zMjEtMi43NzYtMy4yMDYtNi42MzNjLTAuNzM0LTAuNDc1LTEuMjI2LTEuMjk2LTEuMjI2LTIuMjMxdi0zLjU0NmMwLTAuNzgsMC4zNDctMS40NzcsMC44ODYtMS45NjV2LTUuMTI2YzAsMC0xLjA1My03Ljk3Nyw5Ljc1LTcuOTc3czkuNzUsNy45NzcsOS43NSw3Ljk3N3Y1LjEyNmMwLjU0LDAuNDg4LDAuODg2LDEuMTg1LDAuODg2LDEuOTY1djMuNTQ2YzAsMS4xOTItMC44LDIuMTk1LTEuODg2LDIuNTNjLTAuNjA1LDEuODgxLTEuNDc4LDMuNjc0LTIuNjMyLDUuMzA0Yy0wLjI5MSwwLjQxMS0wLjU2MywwLjc1OS0wLjgwMSwxLjAzVjM4LjhjMCwxLjIyMywwLjY5MSwyLjM0MiwxLjc4NSwyLjg4OGw4LjQ2Nyw0LjIzM2MwLjUwOCwwLjI1NCwwLjk2NywwLjU3NSwxLjM5LDAuOTMyYzUuNzEtNC43NjIsOS4zOTktMTEuODgyLDkuNTM2LTE5LjlDNTMuMjQ2LDEyLjMyLDQxLjU4NywwLjI1NCwyNi45NTMsMC4wMDR6Ii8+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjwvc3ZnPg==);background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;height:50px;margin-right:1rem;min-height:50px;min-width:50px;position:relative;width:50px;box-shadow:var(--eui-base-shadow-2)}.eui-user-profile__avatar-toggle{bottom:-23px;color:var(--eui-base-color-grey-25);cursor:pointer;right:14px;position:absolute}.eui-user-profile__avatar-toggle .eui-icon{font-size:var(--eui-base-font-size)}.eui-user-profile__avatar-toggle:hover{animation:none;color:var(--eui-base-color-primary-100)}.eui-user-profile__avatar--offline{border-color:var(--eui-base-color-danger-75)}.eui-user-profile__avatar--online{border-color:var(--eui-base-color-info-75)}.eui-user-profile__avatar img{background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;min-width:50px;margin-top:-3px;margin-left:-2px}.eui-user-profile__avatar-shadow{height:3rem;opacity:.5;position:relative;width:1.5rem}.eui-user-profile__avatar-shadow .eui-user-profile__avatar{border:2px solid var(--eui-base-color-grey-15)}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--size-s .eui-user-profile__avatar{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:2.5rem;width:2.5rem}.eui-user-profile--size-s .eui-user-profile__avatar-toggle{display:none}.eui-user-profile--size-s .eui-user-profile__avatar--offline,.eui-user-profile--size-s .eui-user-profile__avatar--online{border-color:var(--eui-base-color-grey-25)}.eui-user-profile--size-s .eui-user-profile__avatar-shadow{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:1.125rem;width:1.125rem}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}\n"] }]
632
+ args: [{ selector: 'eui-user-profile', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown width=\"340px\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <div class=\"eui-user-profile-content\">\n <div class=\"eui-user-profile__infos\" [class.eui-user-profile__infos--no-subinfos]=\"(asService.state$ | async).userSubInfos && !hasWelcomeLabel\">\n <ng-container *ngIf=\"(asService.state$ | async).impersonatedUserInfos; else notImpersonated\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span *ngIf=\"hasWelcomeLabel\">{{welcomeLabel}}&nbsp;</span>\n <strong>{{ (asService.state$ | async).userInfos }}</strong>\n &nbsp;{{impersonateLabel}}\n </div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).impersonatedUserInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-container>\n\n <ng-template #notImpersonated>\n <div *ngIf=\"hasWelcomeLabel\" class=\"eui-user-profile__infos-welcome\">{{welcomeLabel}}</div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).userInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"(asService.state$ | async).impersonatedUserInfos\" class=\"eui-user-profile__avatar-shadow\">\n <div class=\"eui-user-profile__avatar eui-u-svg eui-u-svg--default-avatar\"></div>\n </div>\n\n <div *ngIf=\"!avatarUrl\" class=\"eui-user-profile__avatar\"\n [ngClass]=\"isOnline ? 'eui-user-profile__avatar--online' : 'eui-user-profile__avatar--offline'\">\n </div>\n\n <div *ngIf=\"avatarUrl\" class=\"eui-user-profile__avatar eui-u-svg\">\n <img [src]=\"avatarUrl\" alt=\"avatar\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;cursor:pointer;display:flex}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;margin-right:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-toolbar-item .eui-user-profile__infos{margin-top:var(--eui-base-spacing-3xs);line-height:1.25}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-welcome{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font-size:var(--eui-base-font-size);font-weight:700}.eui-toolbar-item .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-s)}.eui-toolbar-item .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15);font-size:85%}.eui-user-profile__infos--no-subinfos{display:flex}.eui-user-profile__avatar{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUzIDUzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MyA1MzsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIHN0eWxlPSJmaWxsOiNFN0VDRUQ7IiBkPSJNMTguNjEzLDQxLjU1MmwtNy45MDcsNC4zMTNjLTAuNDY0LDAuMjUzLTAuODgxLDAuNTY0LTEuMjY5LDAuOTAzQzE0LjA0Nyw1MC42NTUsMTkuOTk4LDUzLDI2LjUsNTNjNi40NTQsMCwxMi4zNjctMi4zMSwxNi45NjQtNi4xNDRjLTAuNDI0LTAuMzU4LTAuODg0LTAuNjgtMS4zOTQtMC45MzRsLTguNDY3LTQuMjMzYy0xLjA5NC0wLjU0Ny0xLjc4NS0xLjY2NS0xLjc4NS0yLjg4OHYtMy4zMjJjMC4yMzgtMC4yNzEsMC41MS0wLjYxOSwwLjgwMS0xLjAzYzEuMTU0LTEuNjMsMi4wMjctMy40MjMsMi42MzItNS4zMDRjMS4wODYtMC4zMzUsMS44ODYtMS4zMzgsMS44ODYtMi41M3YtMy41NDZjMC0wLjc4LTAuMzQ3LTEuNDc3LTAuODg2LTEuOTY1di01LjEyNmMwLDAsMS4wNTMtNy45NzctOS43NS03Ljk3N3MtOS43NSw3Ljk3Ny05Ljc1LDcuOTc3djUuMTI2Yy0wLjU0LDAuNDg4LTAuODg2LDEuMTg1LTAuODg2LDEuOTY1djMuNTQ2YzAsMC45MzQsMC40OTEsMS43NTYsMS4yMjYsMi4yMzFjMC44ODYsMy44NTcsMy4yMDYsNi42MzMsMy4yMDYsNi42MzN2My4yNEMyMC4yOTYsMzkuODk5LDE5LjY1LDQwLjk4NiwxOC42MTMsNDEuNTUyeiIvPjxnPjxwYXRoIHN0eWxlPSJmaWxsOiM1NTYwODA7IiBkPSJNMjYuOTUzLDAuMDA0QzEyLjMyLTAuMjQ2LDAuMjU0LDExLjQxNCwwLjAwNCwyNi4wNDdDLTAuMTM4LDM0LjM0NCwzLjU2LDQxLjgwMSw5LjQ0OCw0Ni43NmMwLjM4NS0wLjMzNiwwLjc5OC0wLjY0NCwxLjI1Ny0wLjg5NGw3LjkwNy00LjMxM2MxLjAzNy0wLjU2NiwxLjY4My0xLjY1MywxLjY4My0yLjgzNXYtMy4yNGMwLDAtMi4zMjEtMi43NzYtMy4yMDYtNi42MzNjLTAuNzM0LTAuNDc1LTEuMjI2LTEuMjk2LTEuMjI2LTIuMjMxdi0zLjU0NmMwLTAuNzgsMC4zNDctMS40NzcsMC44ODYtMS45NjV2LTUuMTI2YzAsMC0xLjA1My03Ljk3Nyw5Ljc1LTcuOTc3czkuNzUsNy45NzcsOS43NSw3Ljk3N3Y1LjEyNmMwLjU0LDAuNDg4LDAuODg2LDEuMTg1LDAuODg2LDEuOTY1djMuNTQ2YzAsMS4xOTItMC44LDIuMTk1LTEuODg2LDIuNTNjLTAuNjA1LDEuODgxLTEuNDc4LDMuNjc0LTIuNjMyLDUuMzA0Yy0wLjI5MSwwLjQxMS0wLjU2MywwLjc1OS0wLjgwMSwxLjAzVjM4LjhjMCwxLjIyMywwLjY5MSwyLjM0MiwxLjc4NSwyLjg4OGw4LjQ2Nyw0LjIzM2MwLjUwOCwwLjI1NCwwLjk2NywwLjU3NSwxLjM5LDAuOTMyYzUuNzEtNC43NjIsOS4zOTktMTEuODgyLDkuNTM2LTE5LjlDNTMuMjQ2LDEyLjMyLDQxLjU4NywwLjI1NCwyNi45NTMsMC4wMDR6Ii8+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjwvc3ZnPg==);background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;height:50px;margin-right:1rem;min-height:50px;min-width:50px;position:relative;width:50px;box-shadow:var(--eui-base-shadow-2)}.eui-user-profile__avatar-toggle{bottom:-23px;color:var(--eui-base-color-grey-25);cursor:pointer;right:14px;position:absolute}.eui-user-profile__avatar-toggle .eui-icon{font-size:var(--eui-base-font-size)}.eui-user-profile__avatar-toggle:hover{animation:none;color:var(--eui-base-color-primary-100)}.eui-user-profile__avatar--offline{border-color:var(--eui-base-color-danger-75)}.eui-user-profile__avatar--online{border-color:var(--eui-base-color-info-75)}.eui-user-profile__avatar img{background-size:cover;border:2px solid var(--eui-base-color-info-75);border-radius:50%;min-width:50px;margin-top:-3px;margin-left:-2px}.eui-user-profile__avatar-shadow{height:3rem;opacity:.5;position:relative;width:1.5rem}.eui-user-profile__avatar-shadow .eui-user-profile__avatar{border:2px solid var(--eui-base-color-grey-15)}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--size-s .eui-user-profile__avatar{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:2.5rem;width:2.5rem}.eui-user-profile--size-s .eui-user-profile__avatar-toggle{display:none}.eui-user-profile--size-s .eui-user-profile__avatar--offline,.eui-user-profile--size-s .eui-user-profile__avatar--online{border-color:var(--eui-base-color-grey-25)}.eui-user-profile--size-s .eui-user-profile__avatar-shadow{border-width:2px;box-shadow:none;height:2.5rem;margin:0;min-height:2.5rem;min-width:1.125rem;width:1.125rem}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}\n"] }]
633
633
  }], ctorParameters: function () { return [{ type: i1.UxAppShellService }]; }, propDecorators: { welcomeLabel: [{
634
634
  type: Input
635
635
  }], impersonateLabel: [{
@@ -1150,7 +1150,7 @@ class EuiToolbarItemUserProfileComponent {
1150
1150
  this.class = 'eui-toolbar-item-user-profile';
1151
1151
  this.welcomeLabel = 'Welcome';
1152
1152
  this.impersonateLabel = 'impersonating';
1153
- this._hasWelcomeLabel = false;
1153
+ this._hasWelcomeLabel = true;
1154
1154
  }
1155
1155
  get hasWelcomeLabel() { return this._hasWelcomeLabel; }
1156
1156
  set hasWelcomeLabel(value) { this._hasWelcomeLabel = coerceBooleanProperty(value); }