@eui/components 17.1.1-snapshot-1705458354654 → 17.1.1-snapshot-1705498145097

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.
@@ -47,7 +47,7 @@ export class EuiFileUploadComponent {
47
47
  if (fileList[property] && typeof fileList[property] === 'object' && (!this.maxFiles || i < this.maxFiles)) {
48
48
  const fileName = fileList[property].name.split('.');
49
49
  const fileExtension = fileName[fileName.length - 1];
50
- if (this.accept.indexOf(fileExtension) !== -1 || this.accept === '*') {
50
+ if (this.accept.indexOf(fileExtension.toLowerCase()) !== -1 || this.accept === '*') {
51
51
  this.files.push(fileList[property]);
52
52
  }
53
53
  i++;
@@ -231,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
231
231
  type: HostListener,
232
232
  args: ['change', ['$event.target.files']]
233
233
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9ldWktZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWZpbGUtdXBsb2FkL2V1aS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxpQkFBaUIsRUFFakIsWUFBWSxFQUVaLE1BQU0sRUFDTixZQUFZLEdBR2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQW9CMUMsTUFBTSxPQUFPLHNCQUFzQjtJQVUvQixJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQXFDRCxZQUFtQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpEbEQsWUFBTyxHQUFHLGlCQUFpQixDQUFDO1FBRTVCLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFFWixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxtSEFBbUg7UUFDbkgsOERBQThEO1FBQ3BELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBeUMsQ0FBQztRQU96RSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDbkQsa0JB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LGlCQUVjLGlCQUFpQixDQUFDLElBQUk7d0ZBRzVCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csU0FBUztzQkFBbEIsTUFBTTtnQkFHSSxVQUFVO3NCQURwQixXQUFXO3VCQUFDLE9BQU87Z0JBVUcsVUFBVTtzQkFBaEMsWUFBWTt1QkFBQyxPQUFPO2dCQUlyQixVQUFVO3NCQUZULEtBQUs7Z0JBS04sY0FBYztzQkFGYixLQUFLO2dCQUtOLFVBQVU7c0JBRlQsS0FBSztnQkFLTixpQkFBaUI7c0JBRmhCLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQUZmLEtBQUs7Z0JBS04scUJBQXFCO3NCQUZwQixLQUFLO2dCQUtOLGNBQWM7c0JBRmIsS0FBSztnQkFLTixXQUFXO3NCQUZWLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQUZmLEtBQUs7Z0JBTTJDLFNBQVM7c0JBQXpELFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEV1aVVwbG9hZGVkRmlsZUludGVyZmFjZSB9IGZyb20gJy4vbW9kZWxzL3VwbG9hZGVkLWZpbGUubW9kZWwnO1xuaW1wb3J0IHsgQmFzZVN0YXRlc0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRXVpRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWZpbGUtdXBsb2FkJztcbiAgICBASW5wdXQoKSBwcm9ncmVzczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGFjY2VwdCA9ICcqJztcbiAgICBASW5wdXQoKSBtYXhGaWxlczogbnVtYmVyO1xuICAgIEBPdXRwdXQoKSBmaWxlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxCbG9iIHwgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIHwgYW55PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENzc0NsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICAgIHB1YmxpYyBmaWxlc1RvdGFsU2l6ZSA9IDA7XG4gICAgcHVibGljIHJhbmRvbU51bWJlcklkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xuICAgIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2VbXSA9IFtdO1xuICAgIHB1YmxpYyBkcmFnRW50ZXJlZCA9IGZhbHNlO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2lucHV0JykgZmlsZUlucHV0czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuXG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGlzTXVsdGlwbGU6Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzUHJvZ3Jlc3NCYXI6Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzUHJldmlldzpCb29sZWFuSW5wdXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNQcmV2aWV3QXNJbWFnZTpCb29sZWFuSW5wdXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNQcmV2aWV3QXNJY29uOkJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNUb3RhbFNpemVEaXNwbGF5ZWQ6Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzUmVzZXRCdXR0b246Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzRHJhZ0FyZWE6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0l0ZW1zQ2xpY2thYmxlOkJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQuZmlsZXMnXSkgZW1pdEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IHZvaWQge1xuICAgICAgICBsZXQgaSA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdLmxlbmd0aDtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmaWxlTGlzdCkge1xuICAgICAgICAgICAgaWYgKGZpbGVMaXN0W3Byb3BlcnR5XSAmJiB0eXBlb2YgZmlsZUxpc3RbcHJvcGVydHldID09PSAnb2JqZWN0JyAmJiAoIXRoaXMubWF4RmlsZXMgfHwgaSA8IHRoaXMubWF4RmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlTGlzdFtwcm9wZXJ0eV0ubmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVtmaWxlTmFtZS5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjY2VwdC5pbmRleE9mKGZpbGVFeHRlbnNpb24pICE9PSAtMSB8fCB0aGlzLmFjY2VwdCA9PT0gJyonKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMucHVzaChmaWxlTGlzdFtwcm9wZXJ0eV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA/IHRoaXMub25DaGFuZ2UoWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10pIDogdGhpcy5vbkNoYW5nZSh0aGlzLmZpbGVzKTtcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0cykge1xuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXRzLmZpcnN0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0cy5sYXN0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZHJhZ0VudGVyZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maWxlRHJvcC5lbWl0KCk7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dSZXNldEJ0bigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUmVzZXRCdXR0b24gJiYgdGhpcy5pc011bHRpcGxlICYmICh0aGlzLmZpbGVzLmxlbmd0aCA+IDAgfHwgdGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDApO1xuICAgIH1cblxuICAgIGdldCBpc0Ryb3BBcmVhRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoIXRoaXMuaXNNdWx0aXBsZSAmJiB0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMSkgfHwgWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10ubGVuZ3RoID09PSB0aGlzLm1heEZpbGVzO1xuICAgIH1cblxuICAgIC8vIFRPRE8gY2hlY2sgdGhpcyBmdW5jdGlvbiBoYXMgbmV2ZXIgY2FsbGVkIChub3QgaW1wbGVtZW50ZWQgY2xhc3MgbGV2ZWwpXG4gICAgLy8gbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vICAgICBpZiAoYz8uaXNNdWx0aXBsZSkge1xuICAgIC8vICAgICAgICAgdGhpcy5tYXhGaWxlcyA9IDE7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJldmlld0FzSWNvbikge1xuICAgICAgICAgICAgdGhpcy5oYXNQcmV2aWV3QXNJbWFnZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Ryb3BBcmVhRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VudGVyZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnTGVhdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJhZ0VudGVyZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlRnJvbUxpc3QoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGYsIGkpID0+IGkgIT09IGluZGV4KTtcblxuICAgICAgICBpZiAodGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGcm9tVXBsb2FkZWRMaXN0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcigoZiwgaSkgPT4gaSAhPT0gaW5kZXgpO1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldFRvdGFsU2l6ZSgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVzID0gW107XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmdldFRvdGFsU2l6ZSgpO1xuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi50aGlzLmZpbGVzXSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5Ccm93c2VXaW5kb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZUlucHV0cy5maXJzdC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIG9uSXRlbUNsaWNrKGU6IEJsb2IgfCBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2UgfCBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdChlKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdmFsdWUgfHwgW107XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRUb3RhbFNpemUoKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsvKiBOb3RoaW5nIHRvIGJlIERvbmUgc28gZmFyICovfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCk6IHZvaWQgPT4gey8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi99O1xuXG4gICAgcHJpdmF0ZSBnZXRUb3RhbFNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZXNUb3RhbFNpemUgPSAwO1xuICAgICAgICB0aGlzLmZpbGVzLmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXNUb3RhbFNpemUgKz0gZi5zaXplO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLWZpbGUtdXBsb2FkJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19kcm9wLWFyZWFcIlxuICAgIFtjbGFzcy5ldWktZmlsZS11cGxvYWRfX2Ryb3AtYXJlYS0tYWN0aXZlXT1cImRyYWdFbnRlcmVkXCJcbiAgICBbY2xhc3MuZXVpLWZpbGUtdXBsb2FkX19kcm9wLWFyZWEtLWRpc2FibGVkXT1cImlzRHJvcEFyZWFEaXNhYmxlZFwiXG4gICAgKm5nSWY9XCJoYXNEcmFnQXJlYVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19mYWtlLWJ0blwiPnt7ICdldWkuZXVpZmlsZXVwbG9hZC5DSE9PU0UtRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPHNwYW4+e3sgJ2V1aS5ldWlmaWxldXBsb2FkLkRSQUctQU5ELURST1AtRklMRS1IRVJFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19maWxlLWlucHV0XCJcbiAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgJ2V1aS5ldWlmaWxldXBsb2FkLkNIT09TRS1GSUxFJyB8IHRyYW5zbGF0ZSB9fSAnb3InIHt7XG4gICAgICAgICAgICAnZXVpLmV1aWZpbGV1cGxvYWQuRFJBRy1BTkQtRFJPUC1GSUxFLUhFUkUnIHwgdHJhbnNsYXRlXG4gICAgICAgIH19XCJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICBhY2NlcHQ9XCJ7eyBhY2NlcHQgfX1cIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Ryb3BBcmVhRGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJpc011bHRpcGxlXCJcbiAgICAgICAgKGRyYWdlbnRlcik9XCJvbkRyYWdFbnRlcigpXCJcbiAgICAgICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgpXCIgLz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImV1aS1maWxlLXVwbG9hZF9fc2ltcGxlLWlucHV0LWZpbGUgZXVpLXUtbWIteHNcIiAqbmdJZj1cIiFoYXNEcmFnQXJlYVwiPlxuICAgIDxsYWJlbCBmb3I9XCJmaWxlLXt7IHJhbmRvbU51bWJlcklkIH19XCI+XG4gICAgICAgIDxidXR0b24gZXVpQnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbkJyb3dzZVdpbmRvdygpXCI+e3sgJ2V1aS5ldWlmaWxldXBsb2FkLkNIT09TRS1GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgICpuZ0lmPVwiaXNNdWx0aXBsZVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDaG9vc2UgTXVsdGlwbGUgRmlsZXNcIlxuICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXRcIlxuICAgICAgICBpZD1cImZpbGUte3sgcmFuZG9tTnVtYmVySWQgfX1cIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cInt7IGFjY2VwdCB9fVwiXG4gICAgICAgIG11bHRpcGxlIC8+XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICAqbmdJZj1cIiFpc011bHRpcGxlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNob29zZSBhIHNpbmdsZSBmaWxlXCJcbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgaWQ9XCJmaWxlLXt7IHJhbmRvbU51bWJlcklkIH19XCJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICBhY2NlcHQ9XCJ7eyBhY2NlcHQgfX1cIiAvPlxuPC9kaXY+XG48ZXVpLWZpbGUtdXBsb2FkLXByb2dyZXNzICpuZ0lmPVwiaGFzUHJvZ3Jlc3NCYXJcIiBbcHJvZ3Jlc3NdPVwicHJvZ3Jlc3NcIj48L2V1aS1maWxlLXVwbG9hZC1wcm9ncmVzcz5cblxuPGRpdiAqbmdGb3I9XCJsZXQgdXBsb2FkZWRGaWxlIG9mIHVwbG9hZGVkRmlsZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICA8ZXVpLWZpbGUtcHJldmlld1xuICAgICAgICBbaXNJdGVtc0NsaWNrYWJsZV09XCJpc0l0ZW1zQ2xpY2thYmxlXCJcbiAgICAgICAgW2luZGV4XT1cImlcIlxuICAgICAgICBbZmlsZV09XCJ1cGxvYWRlZEZpbGVcIlxuICAgICAgICBbaGFzUHJldmlld109XCJoYXNQcmV2aWV3XCJcbiAgICAgICAgW2hhc1ByZXZpZXdBc0ltYWdlXT1cImhhc1ByZXZpZXdBc0ltYWdlXCJcbiAgICAgICAgW2hhc1ByZXZpZXdBc0ljb25dPVwiaGFzUHJldmlld0FzSWNvblwiXG4gICAgICAgIChpdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChyZW1vdmVGcm9tTGlzdCk9XCJyZW1vdmVGcm9tVXBsb2FkZWRMaXN0KCRldmVudClcIj5cbiAgICA8L2V1aS1maWxlLXByZXZpZXc+XG48L2Rpdj5cblxuPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDxldWktZmlsZS1wcmV2aWV3XG4gICAgICAgIFtpc0l0ZW1zQ2xpY2thYmxlXT1cImlzSXRlbXNDbGlja2FibGVcIlxuICAgICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICAgIFtmaWxlXT1cImZpbGVcIlxuICAgICAgICBbaGFzUHJldmlld109XCJoYXNQcmV2aWV3XCJcbiAgICAgICAgW2hhc1ByZXZpZXdBc0ltYWdlXT1cImhhc1ByZXZpZXdBc0ltYWdlXCJcbiAgICAgICAgW2hhc1ByZXZpZXdBc0ljb25dPVwiaGFzUHJldmlld0FzSWNvblwiXG4gICAgICAgIChpdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChyZW1vdmVGcm9tTGlzdCk9XCJyZW1vdmVGcm9tTGlzdCgkZXZlbnQpXCI+XG4gICAgPC9ldWktZmlsZS1wcmV2aWV3PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3RvdGFsLXNpemVcIiAqbmdJZj1cImZpbGVzVG90YWxTaXplICYmIGhhc1RvdGFsU2l6ZURpc3BsYXllZFwiPlxuICAgIHt7IGZpbGVzVG90YWxTaXplIHwgZmlsZXNpemUgfX0ge3sgJ2V1aS5ldWlmaWxldXBsb2FkLlRPVEFMLVNJWkUnIHwgdHJhbnNsYXRlIH19XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGJ1dHRvbiBldWlCdXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXNldExpc3QoKVwiICpuZ0lmPVwic2hvd1Jlc2V0QnRuXCI+XG4gICAge3sgJ2V1aS5ldWlmaWxldXBsb2FkLlJFU0VULUxJU1QnIHwgdHJhbnNsYXRlIH19XG48L2J1dHRvbj5cbiJdfQ==
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9ldWktZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWZpbGUtdXBsb2FkL2V1aS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxpQkFBaUIsRUFFakIsWUFBWSxFQUVaLE1BQU0sRUFDTixZQUFZLEdBR2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQW9CMUMsTUFBTSxPQUFPLHNCQUFzQjtJQVUvQixJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQXFDRCxZQUFtQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpEbEQsWUFBTyxHQUFHLGlCQUFpQixDQUFDO1FBRTVCLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFFWixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxtSEFBbUg7UUFDbkgsOERBQThEO1FBQ3BELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBeUMsQ0FBQztRQU96RSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDbkQsa0JB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bUI7eUJBQ2pDO3FCQUNKLGlCQUVjLGlCQUFpQixDQUFDLElBQUk7d0ZBRzVCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csU0FBUztzQkFBbEIsTUFBTTtnQkFHSSxVQUFVO3NCQURwQixXQUFXO3VCQUFDLE9BQU87Z0JBVUcsVUFBVTtzQkFBaEMsWUFBWTt1QkFBQyxPQUFPO2dCQUlyQixVQUFVO3NCQUZULEtBQUs7Z0JBS04sY0FBYztzQkFGYixLQUFLO2dCQUtOLFVBQVU7c0JBRlQsS0FBSztnQkFLTixpQkFBaUI7c0JBRmhCLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQUZmLEtBQUs7Z0JBS04scUJBQXFCO3NCQUZwQixLQUFLO2dCQUtOLGNBQWM7c0JBRmIsS0FBSztnQkFLTixXQUFXO3NCQUZWLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQUZmLEtBQUs7Z0JBTTJDLFNBQVM7c0JBQXpELFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEV1aVVwbG9hZGVkRmlsZUludGVyZmFjZSB9IGZyb20gJy4vbW9kZWxzL3VwbG9hZGVkLWZpbGUubW9kZWwnO1xuaW1wb3J0IHsgQmFzZVN0YXRlc0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRXVpRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWZpbGUtdXBsb2FkJztcbiAgICBASW5wdXQoKSBwcm9ncmVzczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGFjY2VwdCA9ICcqJztcbiAgICBASW5wdXQoKSBtYXhGaWxlczogbnVtYmVyO1xuICAgIEBPdXRwdXQoKSBmaWxlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxCbG9iIHwgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIHwgYW55PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENzc0NsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICAgIHB1YmxpYyBmaWxlc1RvdGFsU2l6ZSA9IDA7XG4gICAgcHVibGljIHJhbmRvbU51bWJlcklkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xuICAgIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2VbXSA9IFtdO1xuICAgIHB1YmxpYyBkcmFnRW50ZXJlZCA9IGZhbHNlO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2lucHV0JykgZmlsZUlucHV0czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuXG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGlzTXVsdGlwbGU6Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzUHJvZ3Jlc3NCYXI6Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzUHJldmlldzpCb29sZWFuSW5wdXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNQcmV2aWV3QXNJbWFnZTpCb29sZWFuSW5wdXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNQcmV2aWV3QXNJY29uOkJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNUb3RhbFNpemVEaXNwbGF5ZWQ6Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzUmVzZXRCdXR0b246Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzRHJhZ0FyZWE6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0l0ZW1zQ2xpY2thYmxlOkJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQuZmlsZXMnXSkgZW1pdEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IHZvaWQge1xuICAgICAgICBsZXQgaSA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdLmxlbmd0aDtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmaWxlTGlzdCkge1xuICAgICAgICAgICAgaWYgKGZpbGVMaXN0W3Byb3BlcnR5XSAmJiB0eXBlb2YgZmlsZUxpc3RbcHJvcGVydHldID09PSAnb2JqZWN0JyAmJiAoIXRoaXMubWF4RmlsZXMgfHwgaSA8IHRoaXMubWF4RmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlTGlzdFtwcm9wZXJ0eV0ubmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVtmaWxlTmFtZS5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjY2VwdC5pbmRleE9mKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8IHRoaXMuYWNjZXB0ID09PSAnKicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKGZpbGVMaXN0W3Byb3BlcnR5XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nZXRUb3RhbFNpemUoKTtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID8gdGhpcy5vbkNoYW5nZShbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi50aGlzLmZpbGVzXSkgOiB0aGlzLm9uQ2hhbmdlKHRoaXMuZmlsZXMpO1xuICAgICAgICBpZiAodGhpcy5maWxlSW5wdXRzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVJbnB1dHMuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXRzLmxhc3QubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kcmFnRW50ZXJlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbGVEcm9wLmVtaXQoKTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd1Jlc2V0QnRuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNSZXNldEJ1dHRvbiAmJiB0aGlzLmlzTXVsdGlwbGUgJiYgKHRoaXMuZmlsZXMubGVuZ3RoID4gMCB8fCB0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzRHJvcEFyZWFEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICghdGhpcy5pc011bHRpcGxlICYmIHRoaXMuZmlsZXMubGVuZ3RoID09PSAxKSB8fCBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi50aGlzLmZpbGVzXS5sZW5ndGggPT09IHRoaXMubWF4RmlsZXM7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBjaGVjayB0aGlzIGZ1bmN0aW9uIGhhcyBuZXZlciBjYWxsZWQgKG5vdCBpbXBsZW1lbnRlZCBjbGFzcyBsZXZlbClcbiAgICAvLyBuZ09uQ2hhbmdlcyhjOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gICAgIGlmIChjPy5pc011bHRpcGxlKSB7XG4gICAgLy8gICAgICAgICB0aGlzLm1heEZpbGVzID0gMTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oYXNQcmV2aWV3QXNJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1ByZXZpZXdBc0ltYWdlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRyYWdFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRHJvcEFyZWFEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kcmFnRW50ZXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRyYWdMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcmFnRW50ZXJlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGcm9tTGlzdChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZXMgPSB0aGlzLmZpbGVzLmZpbHRlcigoZiwgaSkgPT4gaSAhPT0gaW5kZXgpO1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nZXRUb3RhbFNpemUoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi50aGlzLmZpbGVzXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUZyb21VcGxvYWRlZExpc3QoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKChmLCBpKSA9PiBpICE9PSBpbmRleCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldExpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkJyb3dzZVdpbmRvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWxlSW5wdXRzLmZpcnN0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgb25JdGVtQ2xpY2soZTogQmxvYiB8IEV1aVVwbG9hZGVkRmlsZUludGVyZmFjZSB8IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1DbGljay5lbWl0KGUpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB2YWx1ZSB8fCBbXTtcbiAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmdldFRvdGFsU2l6ZSgpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgey8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi99XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBhbnkgPSAoKTogdm9pZCA9PiB7LyogTm90aGluZyB0byBiZSBEb25lIHNvIGZhciAqL307XG5cbiAgICBwcml2YXRlIGdldFRvdGFsU2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWxlc1RvdGFsU2l6ZSA9IDA7XG4gICAgICAgIHRoaXMuZmlsZXMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWxlc1RvdGFsU2l6ZSArPSBmLnNpemU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3RoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5nZXRDc3NDbGFzc2VzKCdldWktZmlsZS11cGxvYWQnKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2Ryb3AtYXJlYVwiXG4gICAgW2NsYXNzLmV1aS1maWxlLXVwbG9hZF9fZHJvcC1hcmVhLS1hY3RpdmVdPVwiZHJhZ0VudGVyZWRcIlxuICAgIFtjbGFzcy5ldWktZmlsZS11cGxvYWRfX2Ryb3AtYXJlYS0tZGlzYWJsZWRdPVwiaXNEcm9wQXJlYURpc2FibGVkXCJcbiAgICAqbmdJZj1cImhhc0RyYWdBcmVhXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2Zha2UtYnRuXCI+e3sgJ2V1aS5ldWlmaWxldXBsb2FkLkNIT09TRS1GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8c3Bhbj57eyAnZXVpLmV1aWZpbGV1cGxvYWQuRFJBRy1BTkQtRFJPUC1GSUxFLUhFUkUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2ZpbGUtaW5wdXRcIlxuICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnZXVpLmV1aWZpbGV1cGxvYWQuQ0hPT1NFLUZJTEUnIHwgdHJhbnNsYXRlIH19ICdvcicge3tcbiAgICAgICAgICAgICdldWkuZXVpZmlsZXVwbG9hZC5EUkFHLUFORC1EUk9QLUZJTEUtSEVSRScgfCB0cmFuc2xhdGVcbiAgICAgICAgfX1cIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cInt7IGFjY2VwdCB9fVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRHJvcEFyZWFEaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxuICAgICAgICAoZHJhZ2VudGVyKT1cIm9uRHJhZ0VudGVyKClcIlxuICAgICAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKClcIiAvPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19zaW1wbGUtaW5wdXQtZmlsZSBldWktdS1tYi14c1wiICpuZ0lmPVwiIWhhc0RyYWdBcmVhXCI+XG4gICAgPGxhYmVsIGZvcj1cImZpbGUte3sgcmFuZG9tTnVtYmVySWQgfX1cIj5cbiAgICAgICAgPGJ1dHRvbiBldWlCdXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuQnJvd3NlV2luZG93KClcIj57eyAnZXVpLmV1aWZpbGV1cGxvYWQuQ0hPT1NFLUZJTEUnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgPC9sYWJlbD5cblxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgKm5nSWY9XCJpc011bHRpcGxlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNob29zZSBNdWx0aXBsZSBGaWxlc1wiXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIGlkPVwiZmlsZS17eyByYW5kb21OdW1iZXJJZCB9fVwiXG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgYWNjZXB0PVwie3sgYWNjZXB0IH19XCJcbiAgICAgICAgbXVsdGlwbGUgLz5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgICpuZ0lmPVwiIWlzTXVsdGlwbGVcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2hvb3NlIGEgc2luZ2xlIGZpbGVcIlxuICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXRcIlxuICAgICAgICBpZD1cImZpbGUte3sgcmFuZG9tTnVtYmVySWQgfX1cIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cInt7IGFjY2VwdCB9fVwiIC8+XG48L2Rpdj5cbjxldWktZmlsZS11cGxvYWQtcHJvZ3Jlc3MgKm5nSWY9XCJoYXNQcm9ncmVzc0JhclwiIFtwcm9ncmVzc109XCJwcm9ncmVzc1wiPjwvZXVpLWZpbGUtdXBsb2FkLXByb2dyZXNzPlxuXG48ZGl2ICpuZ0Zvcj1cImxldCB1cGxvYWRlZEZpbGUgb2YgdXBsb2FkZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDxldWktZmlsZS1wcmV2aWV3XG4gICAgICAgIFtpc0l0ZW1zQ2xpY2thYmxlXT1cImlzSXRlbXNDbGlja2FibGVcIlxuICAgICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICAgIFtmaWxlXT1cInVwbG9hZGVkRmlsZVwiXG4gICAgICAgIFtoYXNQcmV2aWV3XT1cImhhc1ByZXZpZXdcIlxuICAgICAgICBbaGFzUHJldmlld0FzSW1hZ2VdPVwiaGFzUHJldmlld0FzSW1hZ2VcIlxuICAgICAgICBbaGFzUHJldmlld0FzSWNvbl09XCJoYXNQcmV2aWV3QXNJY29uXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHJlbW92ZUZyb21MaXN0KT1cInJlbW92ZUZyb21VcGxvYWRlZExpc3QoJGV2ZW50KVwiPlxuICAgIDwvZXVpLWZpbGUtcHJldmlldz5cbjwvZGl2PlxuXG48ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPGV1aS1maWxlLXByZXZpZXdcbiAgICAgICAgW2lzSXRlbXNDbGlja2FibGVdPVwiaXNJdGVtc0NsaWNrYWJsZVwiXG4gICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXG4gICAgICAgIFtoYXNQcmV2aWV3XT1cImhhc1ByZXZpZXdcIlxuICAgICAgICBbaGFzUHJldmlld0FzSW1hZ2VdPVwiaGFzUHJldmlld0FzSW1hZ2VcIlxuICAgICAgICBbaGFzUHJldmlld0FzSWNvbl09XCJoYXNQcmV2aWV3QXNJY29uXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHJlbW92ZUZyb21MaXN0KT1cInJlbW92ZUZyb21MaXN0KCRldmVudClcIj5cbiAgICA8L2V1aS1maWxlLXByZXZpZXc+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImV1aS1maWxlLXVwbG9hZF9fdG90YWwtc2l6ZVwiICpuZ0lmPVwiZmlsZXNUb3RhbFNpemUgJiYgaGFzVG90YWxTaXplRGlzcGxheWVkXCI+XG4gICAge3sgZmlsZXNUb3RhbFNpemUgfCBmaWxlc2l6ZSB9fSB7eyAnZXVpLmV1aWZpbGV1cGxvYWQuVE9UQUwtU0laRScgfCB0cmFuc2xhdGUgfX1cbjwvZGl2PlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48YnV0dG9uIGV1aUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0TGlzdCgpXCIgKm5nSWY9XCJzaG93UmVzZXRCdG5cIj5cbiAgICB7eyAnZXVpLmV1aWZpbGV1cGxvYWQuUkVTRVQtTElTVCcgfCB0cmFuc2xhdGUgfX1cbjwvYnV0dG9uPlxuIl19
@@ -95,6 +95,7 @@ export class EuiAppComponent {
95
95
  this.asService.setState({
96
96
  ...this.asService.state,
97
97
  isSidebarExpandOnHover: changes.isSidebarExpandOnHover.currentValue,
98
+ isSidebarHover: changes.isSidebarExpandOnHover.currentValue,
98
99
  });
99
100
  }
100
101
  }
@@ -146,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
146
147
  type: Directive,
147
148
  args: [{ selector: 'eui-app-page-wrapper' }]
148
149
  }] });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9sYXlvdXQvZXVpLWFwcC9ldWktYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xheW91dC9ldWktYXBwL2V1aS1hcHAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFdBQVcsRUFHWCxLQUFLLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFLVixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLGVBQWU7SUF3QnhCLFlBQ1csU0FBNkIsRUFDN0IsZUFBZ0MsRUFDL0IscUJBQTRDLEVBQzVDLEtBQXdCO1FBSHpCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMvQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBM0JkLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFcEMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV6QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFZSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDOUIseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FB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QUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxvQkFBb0I7c0JBQTNELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFHdEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFJdEQsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztnQkFJMUQsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzs7QUEyRjFELG9CQUFvQjtBQUVwQixNQUFNLE9BQU8sMEJBQTBCO2lJQUExQiwwQkFBMEI7cUhBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEdEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIElucHV0LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlLCBFdWlHcm93bFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpQXBwU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vZXVpLWFwcC1zaWRlYmFyJztcbmltcG9ydCB7IEV1aUFwcFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2V1aS1hcHAtdG9vbGJhcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLWFwcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1hcHAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL19zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlBcHBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY3NzQ2xhc3NlcyA9ICdldWktYXBwJztcblxuICAgIEBJbnB1dCgpIGFwcFN1YlRpdGxlID0gJyc7XG4gICAgQElucHV0KCkgdGhlbWVDbGFzcyA9ICcnO1xuXG4gICAgaGFzTm9QYWdlV3JhcHBlciA9IGZhbHNlO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzU2lkZWJhck9wZW4gPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNTaWRlYmFyRXhwYW5kT25Ib3ZlciA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzU2hyaW5rSGVhZGVyQWN0aXZlID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNTaWRlYmFySGlkZGVuID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gRXVpQXBwU2lkZWJhckNvbXBvbmVudCkpXG4gICAgYXBwU2lkZWJhcjogRXVpQXBwU2lkZWJhckNvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlBcHBQYWdlV3JhcHBlckRpcmVjdGl2ZSkpXG4gICAgY3VzdG9tUGFnZVdyYXBwZXI6IEV1aUFwcFBhZ2VXcmFwcGVyRGlyZWN0aXZlO1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aUFwcFRvb2xiYXJDb21wb25lbnQpKVxuICAgIGFwcFRvb2xiYXI6IEV1aUFwcFRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgYXNTZXJ2aWNlOiBFdWlBcHBTaGVsbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBldWlHcm93bFNlcnZpY2U6IEV1aUdyb3dsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZXZpY2VEZXRlY3RvclNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc05vUGFnZVdyYXBwZXIgPSAhdGhpcy5jdXN0b21QYWdlV3JhcHBlcjtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hc1NlcnZpY2UuZmV0Y2hDc3NWYXJzKCk7XG4gICAgICAgIHRoaXMuYXNTZXJ2aWNlLmluaXRDc3NWYXJzKCk7XG5cbiAgICAgICAgY29uc3QgZGV2aWNlSW5mbyA9IHRoaXMuZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmdldERldmljZUluZm8oKTtcblxuICAgICAgICB0aGlzLmFzU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLmFzU2VydmljZS5zdGF0ZSxcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodDogd2luZG93LmlubmVySGVpZ2h0LFxuICAgICAgICAgICAgd2luZG93V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoLFxuICAgICAgICAgICAgaGFzSGVhZGVyOiBmYWxzZSxcbiAgICAgICAgICAgIGhhc1NpZGViYXI6IGZhbHNlLFxuICAgICAgICAgICAgZGV2aWNlSW5mbzoge1xuICAgICAgICAgICAgICAgIGluZm86IGRldmljZUluZm8sXG4gICAgICAgICAgICAgICAgaXNDaHJvbWU6IGRldmljZUluZm8uYnJvd3NlciA9PT0gJ0Nocm9tZScsXG4gICAgICAgICAgICAgICAgaXNJRTogZGV2aWNlSW5mby5icm93c2VyID09PSAnSUUnLFxuICAgICAgICAgICAgICAgIGlzSUUxMTogZGV2aWNlSW5mby5icm93c2VyID09PSAnSUUnICYmIGRldmljZUluZm8uYnJvd3Nlcl92ZXJzaW9uID09PSAnMTEuMCcsXG4gICAgICAgICAgICAgICAgaXNGRjogZGV2aWNlSW5mby5icm93c2VyID09PSAnRmlyZWZveCcsXG4gICAgICAgICAgICAgICAgaXNFZGdlOiBkZXZpY2VJbmZvLmJyb3dzZXIgPT09ICdNUy1FZGdlLUNocm9taXVtJyxcbiAgICAgICAgICAgICAgICBpc01vYmlsZTogdGhpcy5kZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNNb2JpbGUoKSxcbiAgICAgICAgICAgICAgICBpc0Rlc2t0b3A6IHRoaXMuZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzRGVza3RvcCgpLFxuICAgICAgICAgICAgICAgIGlzVGFibGV0OiB0aGlzLmRldmljZURldGVjdG9yU2VydmljZS5pc1RhYmxldCgpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFwcEJhc2VGb250U2l6ZTogdGhpcy5hc1NlcnZpY2UuZ2V0QmFzZUZvbnRTaXplKCksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYXNTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0U3RhdGUoJ3dyYXBwZXJDbGFzc2VzJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGFjaCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3NzQ2xhc3NlcyA9IFsnZXVpLWFwcCcsIHN0YXRlXS5qb2luKCcgJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5yZWF0dGFjaCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFzU2VydmljZT8uc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmFzU2VydmljZS5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgd2luZG93SGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvd1dpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmFzU2VydmljZS5zZXRBcHBWaWV3cG9ydENzc1ZhcnMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNTaWRlYmFySGlkZGVuKSB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5hc1NlcnZpY2Uuc3RhdGUsXG4gICAgICAgICAgICAgICAgaXNTaWRlYmFySGlkZGVuOiBjaGFuZ2VzLmlzU2lkZWJhckhpZGRlbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5pc1NpZGViYXJPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5hc1NlcnZpY2Uuc3RhdGUsXG4gICAgICAgICAgICAgICAgaXNTaWRlYmFyT3BlbjogY2hhbmdlcy5pc1NpZGViYXJPcGVuLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzU2lkZWJhckV4cGFuZE9uSG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmFzU2VydmljZS5zdGF0ZSxcbiAgICAgICAgICAgICAgICBpc1NpZGViYXJFeHBhbmRPbkhvdmVyOiBjaGFuZ2VzLmlzU2lkZWJhckV4cGFuZE9uSG92ZXIuY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpLWFwcC1wYWdlLXdyYXBwZXInIH0pXG5leHBvcnQgY2xhc3MgRXVpQXBwUGFnZVdyYXBwZXJEaXJlY3RpdmUgeyB9XG5cbiIsIjxldWktZGltbWVyIFtpc0RpbW1lckFjdGl2ZV09XCIoYXNTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5pc0RpbW1lckFjdGl2ZVwiPjwvZXVpLWRpbW1lcj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWFwcC1zaWRlYmFyXCI+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhcHBTaWRlYmFyICYmIChhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLm1lbnVMaW5rcy5sZW5ndGggIT09IDAgJiYgKGFzU2VydmljZS5zdGF0ZSQgfCBhc3luYykuaGFzSGVhZGVyICYmIChhc1NlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCI+XG4gICAgPGV1aS1hcHAtc2lkZWJhcj5cbiAgICAgICAgPGV1aS1hcHAtc2lkZWJhci1ib2R5PlxuICAgICAgICAgICAgPGV1aS1hcHAtc2lkZWJhci1tZW51IFtpdGVtc109XCIoYXNTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5tZW51TGlua3NcIiBbaGFzSWNvbnNdPVwidHJ1ZVwiPjwvZXVpLWFwcC1zaWRlYmFyLW1lbnU+XG4gICAgICAgIDwvZXVpLWFwcC1zaWRlYmFyLWJvZHk+XG4gICAgPC9ldWktYXBwLXNpZGViYXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImV1aS1hcHAtbWFpblwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1hcHAtdG9wLW1lc3NhZ2VcIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktYXBwLWhlYWRlclwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCIhYXBwVG9vbGJhciAmJiAoYXNTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5oYXNIZWFkZXIgJiYgKGFzU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGU7IGVsc2UgZWxzZUJsb2NrVG9vbGJhclwiPlxuICAgICAgICA8ZXVpLWFwcC10b29sYmFyPlxuICAgICAgICAgICAgPGV1aS10b29sYmFyPjwvZXVpLXRvb2xiYXI+XG4gICAgICAgIDwvZXVpLWFwcC10b29sYmFyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNlbHNlQmxvY2tUb29sYmFyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktYXBwLXRvb2xiYXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1hcHAtYnJlYWRjcnVtYlwiPjwvbmctY29udGVudD5cblxuICAgIDxkaXYgY2xhc3M9XCJldWktYXBwLW1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1hcHAtcGFnZS13cmFwcGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8IS0tIFRPRE86IGNvbnNpZGVyIHJlbW92aW5nIGNvZGUgYmVsb3cgaW4gdGhlIGZ1dHVyZSBieSB0cmFuc2ZlcnJpbmcgcmVzcG9uc2liaWxpdHkgb2YgcHJvdmlkaW5nIDxyb3V0ZXItb3V0bGV0PiB0byB0aGUgZGV2ZWxvcGVyIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTm9QYWdlV3JhcHBlclwiPlxuICAgICAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1hcHAtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxldWktZ3Jvd2xcbiAgICBbdmFsdWVdPVwiZXVpR3Jvd2xTZXJ2aWNlLmdyb3dsTWVzc2FnZXNcIlxuICAgIFtzdGlja3ldPVwiZXVpR3Jvd2xTZXJ2aWNlLmlzR3Jvd2xTdGlja3lcIlxuICAgIFtjbG9zZUFsbFN0aWNreV09XCJldWlHcm93bFNlcnZpY2UuaXNDbG9zZUFsbFN0aWNreVwiXG4gICAgW2xpZmVdPVwiZXVpR3Jvd2xTZXJ2aWNlLmdyb3dsTGlmZVwiXG4gICAgW3Bvc2l0aW9uXT1cImV1aUdyb3dsU2VydmljZS5ncm93bFBvc2l0aW9uXCJcbiAgICAoY2xpY2tlZCk9XCJldWlHcm93bFNlcnZpY2UuZ3Jvd2xDYWxsYmFjayA/IGV1aUdyb3dsU2VydmljZS5ncm93bENhbGxiYWNrKCk6IG51bGxcIj48L2V1aS1ncm93bD5cblxuPGV1aS1ibG9jay1kb2N1bWVudCBbaXNCbG9ja2VkXT1cIihhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmlzQmxvY2tEb2N1bWVudEFjdGl2ZVwiPjwvZXVpLWJsb2NrLWRvY3VtZW50PlxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9sYXlvdXQvZXVpLWFwcC9ldWktYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xheW91dC9ldWktYXBwL2V1aS1hcHAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFdBQVcsRUFHWCxLQUFLLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFLVixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLGVBQWU7SUF3QnhCLFlBQ1csU0FBNkIsRUFDN0IsZUFBZ0MsRUFDL0IscUJBQTRDLEVBQzVDLEtBQXdCO1FBSHpCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMvQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBM0JkLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFcEMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV6QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFZSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDOUIseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FB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Z0JBQWdCLEVBQUU7Z0JBQ0Usc0JBQXNCO3NCQUE3RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG9CQUFvQjtzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxlQUFlO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUd0QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUl0RCxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2dCQUkxRCxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDOztBQTRGMUQsb0JBQW9CO0FBRXBCLE1BQU0sT0FBTywwQkFBMEI7aUlBQTFCLDBCQUEwQjtxSEFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UsIEV1aUdyb3dsU2VydmljZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlBcHBTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktYXBwLXNpZGViYXInO1xuaW1wb3J0IHsgRXVpQXBwVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vZXVpLWFwcC10b29sYmFyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktYXBwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWFwcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vX3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aUFwcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjc3NDbGFzc2VzID0gJ2V1aS1hcHAnO1xuXG4gICAgQElucHV0KCkgYXBwU3ViVGl0bGUgPSAnJztcbiAgICBASW5wdXQoKSB0aGVtZUNsYXNzID0gJyc7XG5cbiAgICBoYXNOb1BhZ2VXcmFwcGVyID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNTaWRlYmFyT3BlbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1NpZGViYXJFeHBhbmRPbkhvdmVyID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNTaHJpbmtIZWFkZXJBY3RpdmUgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1NpZGViYXJIaWRkZW4gPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlBcHBTaWRlYmFyQ29tcG9uZW50KSlcbiAgICBhcHBTaWRlYmFyOiBFdWlBcHBTaWRlYmFyQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aUFwcFBhZ2VXcmFwcGVyRGlyZWN0aXZlKSlcbiAgICBjdXN0b21QYWdlV3JhcHBlcjogRXVpQXBwUGFnZVdyYXBwZXJEaXJlY3RpdmU7XG5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gRXVpQXBwVG9vbGJhckNvbXBvbmVudCkpXG4gICAgYXBwVG9vbGJhcjogRXVpQXBwVG9vbGJhckNvbXBvbmVudDtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHVibGljIGV1aUdyb3dsU2VydmljZTogRXVpR3Jvd2xTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRldmljZURldGVjdG9yU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzTm9QYWdlV3JhcHBlciA9ICF0aGlzLmN1c3RvbVBhZ2VXcmFwcGVyO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFzU2VydmljZS5mZXRjaENzc1ZhcnMoKTtcbiAgICAgICAgdGhpcy5hc1NlcnZpY2UuaW5pdENzc1ZhcnMoKTtcblxuICAgICAgICBjb25zdCBkZXZpY2VJbmZvID0gdGhpcy5kZXZpY2VEZXRlY3RvclNlcnZpY2UuZ2V0RGV2aWNlSW5mbygpO1xuXG4gICAgICAgIHRoaXMuYXNTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMuYXNTZXJ2aWNlLnN0YXRlLFxuICAgICAgICAgICAgd2luZG93SGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQsXG4gICAgICAgICAgICB3aW5kb3dXaWR0aDogd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgICAgICBoYXNIZWFkZXI6IGZhbHNlLFxuICAgICAgICAgICAgaGFzU2lkZWJhcjogZmFsc2UsXG4gICAgICAgICAgICBkZXZpY2VJbmZvOiB7XG4gICAgICAgICAgICAgICAgaW5mbzogZGV2aWNlSW5mbyxcbiAgICAgICAgICAgICAgICBpc0Nocm9tZTogZGV2aWNlSW5mby5icm93c2VyID09PSAnQ2hyb21lJyxcbiAgICAgICAgICAgICAgICBpc0lFOiBkZXZpY2VJbmZvLmJyb3dzZXIgPT09ICdJRScsXG4gICAgICAgICAgICAgICAgaXNJRTExOiBkZXZpY2VJbmZvLmJyb3dzZXIgPT09ICdJRScgJiYgZGV2aWNlSW5mby5icm93c2VyX3ZlcnNpb24gPT09ICcxMS4wJyxcbiAgICAgICAgICAgICAgICBpc0ZGOiBkZXZpY2VJbmZvLmJyb3dzZXIgPT09ICdGaXJlZm94JyxcbiAgICAgICAgICAgICAgICBpc0VkZ2U6IGRldmljZUluZm8uYnJvd3NlciA9PT0gJ01TLUVkZ2UtQ2hyb21pdW0nLFxuICAgICAgICAgICAgICAgIGlzTW9iaWxlOiB0aGlzLmRldmljZURldGVjdG9yU2VydmljZS5pc01vYmlsZSgpLFxuICAgICAgICAgICAgICAgIGlzRGVza3RvcDogdGhpcy5kZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNEZXNrdG9wKCksXG4gICAgICAgICAgICAgICAgaXNUYWJsZXQ6IHRoaXMuZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzVGFibGV0KCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXBwQmFzZUZvbnRTaXplOiB0aGlzLmFzU2VydmljZS5nZXRCYXNlRm9udFNpemUoKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hc1NlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdGF0ZSgnd3JhcHBlckNsYXNzZXMnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jc3NDbGFzc2VzID0gWydldWktYXBwJywgc3RhdGVdLmpvaW4oJyAnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLnJlYXR0YWNoKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlPy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuYXNTZXJ2aWNlLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3dIZWlnaHQ6IHdpbmRvdy5pbm5lckhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgd2luZG93V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLnNldEFwcFZpZXdwb3J0Q3NzVmFycygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5pc1NpZGViYXJIaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmFzU2VydmljZS5zdGF0ZSxcbiAgICAgICAgICAgICAgICBpc1NpZGViYXJIaWRkZW46IGNoYW5nZXMuaXNTaWRlYmFySGlkZGVuLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzU2lkZWJhck9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmFzU2VydmljZS5zdGF0ZSxcbiAgICAgICAgICAgICAgICBpc1NpZGViYXJPcGVuOiBjaGFuZ2VzLmlzU2lkZWJhck9wZW4uY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMuaXNTaWRlYmFyRXhwYW5kT25Ib3Zlcikge1xuICAgICAgICAgICAgdGhpcy5hc1NlcnZpY2Uuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuYXNTZXJ2aWNlLnN0YXRlLFxuICAgICAgICAgICAgICAgIGlzU2lkZWJhckV4cGFuZE9uSG92ZXI6IGNoYW5nZXMuaXNTaWRlYmFyRXhwYW5kT25Ib3Zlci5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgaXNTaWRlYmFySG92ZXI6IGNoYW5nZXMuaXNTaWRlYmFyRXhwYW5kT25Ib3Zlci5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktYXBwLXBhZ2Utd3JhcHBlcicgfSlcbmV4cG9ydCBjbGFzcyBFdWlBcHBQYWdlV3JhcHBlckRpcmVjdGl2ZSB7IH1cblxuIiwiPGV1aS1kaW1tZXIgW2lzRGltbWVyQWN0aXZlXT1cIihhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmlzRGltbWVyQWN0aXZlXCI+PC9ldWktZGltbWVyPlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJldWktYXBwLXNpZGViYXJcIj48L25nLWNvbnRlbnQ+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWFwcFNpZGViYXIgJiYgKGFzU2VydmljZS5zdGF0ZSQgfCBhc3luYykubWVudUxpbmtzLmxlbmd0aCAhPT0gMCAmJiAoYXNTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5oYXNIZWFkZXIgJiYgKGFzU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIj5cbiAgICA8ZXVpLWFwcC1zaWRlYmFyPlxuICAgICAgICA8ZXVpLWFwcC1zaWRlYmFyLWJvZHk+XG4gICAgICAgICAgICA8ZXVpLWFwcC1zaWRlYmFyLW1lbnUgW2l0ZW1zXT1cIihhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLm1lbnVMaW5rc1wiIFtoYXNJY29uc109XCJ0cnVlXCI+PC9ldWktYXBwLXNpZGViYXItbWVudT5cbiAgICAgICAgPC9ldWktYXBwLXNpZGViYXItYm9keT5cbiAgICA8L2V1aS1hcHAtc2lkZWJhcj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiZXVpLWFwcC1tYWluXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWFwcC10b3AtbWVzc2FnZVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1hcHAtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIiFhcHBUb29sYmFyICYmIChhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmhhc0hlYWRlciAmJiAoYXNTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZTsgZWxzZSBlbHNlQmxvY2tUb29sYmFyXCI+XG4gICAgICAgIDxldWktYXBwLXRvb2xiYXI+XG4gICAgICAgICAgICA8ZXVpLXRvb2xiYXI+PC9ldWktdG9vbGJhcj5cbiAgICAgICAgPC9ldWktYXBwLXRvb2xiYXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9ja1Rvb2xiYXI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1hcHAtdG9vbGJhclwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWFwcC1icmVhZGNydW1iXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdiBjbGFzcz1cImV1aS1hcHAtbWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWFwcC1wYWdlLXdyYXBwZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwhLS0gVE9ETzogY29uc2lkZXIgcmVtb3ZpbmcgY29kZSBiZWxvdyBpbiB0aGUgZnV0dXJlIGJ5IHRyYW5zZmVycmluZyByZXNwb25zaWJpbGl0eSBvZiBwcm92aWRpbmcgPHJvdXRlci1vdXRsZXQ+IHRvIHRoZSBkZXZlbG9wZXIgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNOb1BhZ2VXcmFwcGVyXCI+XG4gICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWFwcC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGV1aS1ncm93bFxuICAgIFt2YWx1ZV09XCJldWlHcm93bFNlcnZpY2UuZ3Jvd2xNZXNzYWdlc1wiXG4gICAgW3N0aWNreV09XCJldWlHcm93bFNlcnZpY2UuaXNHcm93bFN0aWNreVwiXG4gICAgW2Nsb3NlQWxsU3RpY2t5XT1cImV1aUdyb3dsU2VydmljZS5pc0Nsb3NlQWxsU3RpY2t5XCJcbiAgICBbbGlmZV09XCJldWlHcm93bFNlcnZpY2UuZ3Jvd2xMaWZlXCJcbiAgICBbcG9zaXRpb25dPVwiZXVpR3Jvd2xTZXJ2aWNlLmdyb3dsUG9zaXRpb25cIlxuICAgIChjbGlja2VkKT1cImV1aUdyb3dsU2VydmljZS5ncm93bENhbGxiYWNrID8gZXVpR3Jvd2xTZXJ2aWNlLmdyb3dsQ2FsbGJhY2soKTogbnVsbFwiPjwvZXVpLWdyb3dsPlxuXG48ZXVpLWJsb2NrLWRvY3VtZW50IFtpc0Jsb2NrZWRdPVwiKGFzU2VydmljZS5zdGF0ZSQgfCBhc3luYykuaXNCbG9ja0RvY3VtZW50QWN0aXZlXCI+PC9ldWktYmxvY2stZG9jdW1lbnQ+XG4iXX0=
@@ -262,7 +262,7 @@ class EuiFileUploadComponent {
262
262
  if (fileList[property] && typeof fileList[property] === 'object' && (!this.maxFiles || i < this.maxFiles)) {
263
263
  const fileName = fileList[property].name.split('.');
264
264
  const fileExtension = fileName[fileName.length - 1];
265
- if (this.accept.indexOf(fileExtension) !== -1 || this.accept === '*') {
265
+ if (this.accept.indexOf(fileExtension.toLowerCase()) !== -1 || this.accept === '*') {
266
266
  this.files.push(fileList[property]);
267
267
  }
268
268
  i++;
@@ -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/eui-file-upload.module.ts","../../eui-file-upload/utils/mime-types.ts","../../eui-file-upload/utils/eui-file-upload.validators.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\">\n <div class=\"eui-file-upload__progress-bar-container\">\n <div class=\"progress-bar\" [style.width]=\"progress + '%'\"></div>\n </div>\n <div>{{ 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 = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n transform(bytes = 0, precision = 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 {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiUploadedFileInterface } 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() file: Blob | EuiUploadedFileInterface | any;\n @Input() index: number;\n\n @Input() previewAsIconConfig = {\n avi: 'eui-file-video',\n html: 'eui-file-html',\n htm: 'eui-file-code',\n js: 'eui-file-code',\n json: 'eui-file-code',\n mp3: 'eui-file-audio',\n mp4: 'eui-file-video',\n pdf: 'eui-file-pdf',\n png: 'eui-file-image',\n svg: 'eui-file-image',\n txt: 'eui-file-text',\n xml: 'eui-file-code',\n jpeg: 'eui-file-image',\n jpg: 'eui-file-image',\n zip: 'eui-file-archive',\n doc: 'eui-file-word',\n docx: 'eui-file-word-o',\n xls: 'eui-file-excel-o',\n xlsx: 'eui-file-excel-o',\n ppt: 'eui-file-powerpoint',\n csv: 'eui-file-text',\n rtf: 'eui-file-text',\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 public isLoading = false;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() itemClick = new EventEmitter<Blob | EuiUploadedFileInterface | any>();\n\n @Input()\n get hasPreview(): boolean {\n return this._hasPreview;\n }\n set hasPreview(value: BooleanInput) {\n this._hasPreview = coerceBooleanProperty(value);\n }\n private _hasPreview = true;\n @Input()\n get isFilenameDisplayed(): boolean {\n return this._isFilenameDisplayed;\n }\n set isFilenameDisplayed(value: BooleanInput) {\n this._isFilenameDisplayed = coerceBooleanProperty(value);\n }\n private _isFilenameDisplayed = true;\n @Input()\n get isFilesizeDisplayed(): boolean {\n return this._isFilesizeDisplayed;\n }\n set isFilesizeDisplayed(value: BooleanInput) {\n this._isFilesizeDisplayed = coerceBooleanProperty(value);\n }\n private _isFilesizeDisplayed = true;\n @Input()\n get isFiletypeDisplayed(): boolean {\n return this._isFiletypeDisplayed;\n }\n set isFiletypeDisplayed(value: BooleanInput) {\n this._isFiletypeDisplayed = coerceBooleanProperty(value);\n }\n private _isFiletypeDisplayed = true;\n @Input()\n get hasPreviewAsImage(): boolean {\n return this._hasPreviewAsImage;\n }\n set hasPreviewAsImage(value: BooleanInput) {\n this._hasPreviewAsImage = coerceBooleanProperty(value);\n }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean {\n return this._hasPreviewAsIcon;\n }\n set hasPreviewAsIcon(value: BooleanInput) {\n this._hasPreviewAsIcon = coerceBooleanProperty(value);\n }\n private _hasPreviewAsIcon = false;\n @Input()\n get isItemsClickable(): boolean {\n return this._isItemsClickable;\n }\n set isItemsClickable(value: BooleanInput) {\n this._isItemsClickable = coerceBooleanProperty(value);\n }\n private _isItemsClickable = 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.readAsArrayBuffer(this.file as Blob);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 reader.onloadstart = (event: ProgressEvent): void => {\n this.isLoading = true;\n this.cd.detectChanges();\n };\n reader.onloadend = (event: ProgressEvent): void => {\n this.isLoading = false;\n this.cd.detectChanges();\n };\n } else {\n this.url = (this.file as EuiUploadedFileInterface).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 public onItemClick(e: Event): void {\n this.itemClick.emit(this.file);\n e.preventDefault();\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 f = fileExtension.toLowerCase();\n const image = f === 'jpeg' || f === 'jpg' || f === 'png' || f === 'gif' ? true : false;\n const display = f === 'jpeg' || f === 'jpg' || f === 'png' || f === 'gif' ? this.url : this.getIconForMime(f);\n\n return { image, display };\n }\n\n private getIconForMime(fileExtension: string): string {\n const f = fileExtension.toLowerCase();\n return !this.previewAsIconConfig[f] ? 'eui-file-empty-o' : this.previewAsIconConfig[f];\n }\n}\n","<div class=\"eui-file-upload__preview\">\n <div class=\"eui-file-upload__preview--left\">\n <div class=\"eui-file-upload__preview--left__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\" />\n <span\n *ngIf=\"previewData && !previewData.image\"\n class=\"eui-icon eui-icon-color {{ previewData.display }}\"\n euiIconColored\n euiSize5XL></span>\n <div *ngIf=\"isLoading\" class=\"loading-container\">\n <eui-icon-svg isLoading size=\"2xl\"></eui-icon-svg>\n </div>\n </div>\n <div *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <!-- <span class=\"eui-icon eui-icon-color {{ icon }}\" euiIconColored euiSize4XL></span> -->\n <eui-icon-svg icon=\"{{ icon }}\" size=\"l\" fillColor=\"info-100\" class=\"eui-u-mr-s\"></eui-icon-svg>\n </div>\n <div class=\"eui-file-upload__preview--left__filename eui-u-text-truncate\" *ngIf=\"isFilenameDisplayed\">\n <ng-container *ngIf=\"!isItemsClickable\">\n {{ file.name }}\n </ng-container>\n <ng-container *ngIf=\"isItemsClickable\">\n <a href=\"#\" (click)=\"onItemClick($event)\" class=\"eui-u-text-link eui-u-text-truncate\">{{ file.name }}</a>\n </ng-container>\n </div>\n </div>\n <div class=\"eui-file-upload__preview--right\">\n <div class=\"eui-u-text-no-wrap eui-u-ml-m\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"eui-u-ml-m\" *ngIf=\"isFiletypeDisplayed\"><span euiLabel>{{ file.type }}</span></div>\n <div class=\"eui-u-ml-m\">\n <button euiButton euiDanger euiRounded euiIconButton euiBasicButton type=\"button\" (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-delete-forever\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n","import {\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n ViewEncapsulation,\n OnInit,\n ViewChildren,\n QueryList,\n Output,\n EventEmitter,\n SimpleChanges,\n OnChanges,\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { EuiUploadedFileInterface } from './models/uploaded-file.model';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { coerceBoolean } from '@eui/base';\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 hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFileUploadComponent implements ControlValueAccessor, OnInit {\n @Input() e2eAttr = 'eui-file-upload';\n @Input() progress: number;\n @Input() accept = '*';\n @Input() maxFiles: number;\n @Output() fileDrop = new EventEmitter();\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() itemClick = new EventEmitter<Blob | EuiUploadedFileInterface | any>();\n\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n\n public files: File[] = [];\n public filesTotalSize = 0;\n public randomNumberId = Math.floor(Math.random() * 10000);\n public uploadedFiles: EuiUploadedFileInterface[] = [];\n public dragEntered = false;\n @ViewChildren('input') fileInputs: QueryList<ElementRef<HTMLInputElement>>;\n\n @Input()\n @coerceBoolean\n isMultiple:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasProgressBar:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasPreview:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasPreviewAsImage:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasPreviewAsIcon:BooleanInput = false;\n @Input()\n @coerceBoolean\n hasTotalSizeDisplayed:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasResetButton:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasDragArea: BooleanInput = false;\n @Input()\n @coerceBoolean\n isItemsClickable:BooleanInput = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n @HostListener('change', ['$event.target.files']) emitFiles(fileList: FileList): void {\n let i = [...this.uploadedFiles, ...this.files].length;\n for (const property in fileList) {\n if (fileList[property] && typeof fileList[property] === 'object' && (!this.maxFiles || i < this.maxFiles)) {\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 i++;\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\n this.dragEntered = false;\n this.fileDrop.emit();\n }\n\n get showResetBtn(): boolean {\n return this.hasResetButton && this.isMultiple && (this.files.length > 0 || this.uploadedFiles.length > 0);\n }\n\n get isDropAreaDisabled(): boolean {\n return (!this.isMultiple && this.files.length === 1) || [...this.uploadedFiles, ...this.files].length === this.maxFiles;\n }\n\n // TODO check this function has never called (not implemented class level)\n // ngOnChanges(c: SimpleChanges): void {\n // if (c?.isMultiple) {\n // this.maxFiles = 1;\n // }\n // }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n }\n\n onDragEnter(): void {\n if (!this.isDropAreaDisabled) {\n this.dragEntered = true;\n }\n }\n\n onDragLeave(): void {\n this.dragEntered = false;\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onItemClick(e: Blob | EuiUploadedFileInterface | any): void {\n this.itemClick.emit(e);\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.uploadedFiles = value || [];\n this.files = [];\n this.getTotalSize();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {/* Nothing to be Done so far */}\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: any = (): void => {/* Nothing to be Done so far */};\n\n private getTotalSize(): void {\n this.filesTotalSize = 0;\n this.files.forEach((f) => {\n this.filesTotalSize += f.size;\n });\n }\n\n private getCssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-file-upload')].join(' ').trim();\n }\n}\n","<div\n class=\"eui-file-upload__drop-area\"\n [class.eui-file-upload__drop-area--active]=\"dragEntered\"\n [class.eui-file-upload__drop-area--disabled]=\"isDropAreaDisabled\"\n *ngIf=\"hasDragArea\">\n <span class=\"eui-file-upload__fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span>{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"eui-file-upload__file-input\"\n attr.aria-label=\"{{ 'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{\n 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate\n }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [attr.disabled]=\"isDropAreaDisabled ? 'disabled' : null\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n</div>\n<div class=\"eui-file-upload__simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton type=\"button\" (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input\n #input\n *ngIf=\"isMultiple\"\n aria-label=\"Choose Multiple Files\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n multiple />\n <input\n #input\n *ngIf=\"!isMultiple\"\n aria-label=\"Choose a single file\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n 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 [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (itemClick)=\"onItemClick($event)\"\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 [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n</div>\n\n<div class=\"eui-file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n</div>\n\n<ng-content></ng-content>\n<button euiButton type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">\n {{ 'eui.euifileupload.RESET-LIST' | translate }}\n</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 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private toFormData(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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n formValue[key].forEach((value: any): void => {\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 { 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';\n\n@NgModule({\n imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule],\n declarations: [EuiFileUploadComponent, EuiFileUploadProgressComponent, EuiFilePreviewComponent, EuiFileSizePipe],\n providers: [EuiFileUploadUtilsService],\n exports: [EuiFileUploadComponent],\n})\nexport class EuiFileUploadModule {}\n","export type MimeType =\n | 'image/jpeg'\n | 'image/png'\n | 'image/gif'\n | 'image/webp'\n | 'image/flif'\n | 'image/x-xcf'\n | 'image/x-canon-cr2'\n | 'image/x-canon-cr3'\n | 'image/tiff'\n | 'image/bmp'\n | 'image/icns'\n | 'image/vnd.ms-photo'\n | 'image/vnd.adobe.photoshop'\n | 'application/x-indesign'\n | 'application/epub+zip'\n | 'application/x-xpinstall'\n | 'application/vnd.oasis.opendocument.text'\n | 'application/vnd.oasis.opendocument.spreadsheet'\n | 'application/vnd.oasis.opendocument.presentation'\n | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n | 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\n | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n | 'application/zip'\n | 'application/json'\n | 'application/x-tar'\n | 'application/x-rar-compressed'\n | 'application/gzip'\n | 'application/x-bzip2'\n | 'application/x-7z-compressed'\n | 'application/x-apple-diskimage'\n | 'video/mp4'\n | 'audio/midi'\n | 'video/x-matroska'\n | 'video/webm'\n | 'video/quicktime'\n | 'video/vnd.avi'\n | 'audio/vnd.wave'\n | 'audio/qcelp'\n | 'audio/x-ms-asf'\n | 'video/x-ms-asf'\n | 'application/vnd.ms-asf'\n | 'video/mpeg'\n | 'video/3gpp'\n | 'audio/mpeg'\n | 'audio/mp4'\n | 'audio/opus'\n | 'video/ogg'\n | 'audio/ogg'\n | 'application/ogg'\n | 'audio/x-flac'\n | 'audio/ape'\n | 'audio/wavpack'\n | 'audio/amr'\n | 'application/pdf'\n | 'application/x-elf'\n | 'application/x-msdownload'\n | 'application/x-shockwave-flash'\n | 'application/rtf'\n | 'application/wasm'\n | 'font/woff'\n | 'font/woff2'\n | 'application/vnd.ms-fontobject'\n | 'font/ttf'\n | 'font/otf'\n | 'image/x-icon'\n | 'video/x-flv'\n | 'application/postscript'\n | 'application/eps'\n | 'application/x-xz'\n | 'application/x-sqlite3'\n | 'application/x-nintendo-nes-rom'\n | 'application/x-google-chrome-extension'\n | 'application/vnd.ms-cab-compressed'\n | 'application/x-deb'\n | 'application/x-unix-archive'\n | 'application/x-rpm'\n | 'application/x-compress'\n | 'application/x-lzip'\n | 'application/x-cfb'\n | 'application/x-mie'\n | 'application/x-apache-arrow'\n | 'application/mxf'\n | 'video/mp2t'\n | 'application/x-blender'\n | 'image/bpg'\n | 'image/j2c'\n | 'image/jp2'\n | 'image/jpx'\n | 'image/jpm'\n | 'image/mj2'\n | 'audio/aiff'\n | 'application/xml'\n | 'application/x-mobipocket-ebook'\n | 'image/heif'\n | 'image/heif-sequence'\n | 'image/heic'\n | 'image/heic-sequence'\n | 'image/ktx'\n | 'application/dicom'\n | 'audio/x-musepack'\n | 'text/calendar'\n | 'text/vcard'\n | 'model/gltf-binary'\n | 'application/vnd.tcpdump.pcap'\n | 'audio/x-voc'\n | 'audio/vnd.dolby.dd-raw'\n | 'audio/x-m4a'\n | 'image/apng'\n | 'image/x-olympus-orf'\n | 'image/x-sony-arw'\n | 'image/x-adobe-dng'\n | 'image/x-nikon-nef'\n | 'image/x-panasonic-rw2'\n | 'image/x-fujifilm-raf'\n | 'video/x-m4v'\n | 'video/3gpp2'\n | 'application/x-esri-shape'\n | 'audio/aac'\n | 'audio/x-it'\n | 'audio/x-s3m'\n | 'audio/x-xm'\n | 'video/MP1S'\n | 'video/MP2P'\n | 'application/vnd.sketchup.skp'\n | 'image/avif'\n | 'application/x-lzh-compressed'\n | 'application/pgp-encrypted'\n | 'application/x-asar'\n | 'model/stl'\n | 'application/vnd.ms-htmlhelp'\n | 'model/3mf'\n | 'image/jxl'\n | 'application/zstd'\n | 'image/jls'\n | 'application/vnd.ms-outlook'\n | 'image/vnd.dwg'\n | 'application/x-parquet'\n | 'application/java-vm'\n | 'application/x-arj'\n | 'application/x-cpio'\n | 'application/x-ace-compressed'\n | 'application/avro'\n | 'application/vnd.iccprofile'; // eslint-disable-line semi-style\n\nexport const getMimeType = (header: Uint8Array): MimeType => {\n // convert Uint8Array to hex string\n const hex = uint8ArrayToHexString(header);\n\n // map hex string to mime type\n if (hex.startsWith('ffd8ffe000104a46')) return 'image/jpeg';\n if (hex.startsWith('89504e47')) return 'image/png';\n if (hex.startsWith('464c4946')) return 'image/flif';\n if (hex.startsWith('67696d7020786366')) return 'image/x-xcf';\n if (hex.startsWith('49492a00')) return 'image/x-canon-cr2';\n if (hex.startsWith('49492a00')) return 'image/x-canon-cr3';\n if (hex.startsWith('49492a00')) return 'image/tiff';\n if (hex.startsWith('424d')) return 'image/bmp';\n if (hex.startsWith('69636e73')) return 'image/icns';\n if (hex.startsWith('49491a0000004845415050')) return 'image/vnd.ms-photo';\n if (hex.startsWith('38425053')) return 'image/vnd.adobe.photoshop';\n if (hex.startsWith('06054b50')) return 'application/x-indesign';\n if (hex.startsWith('504b0304')) return 'application/epub+zip';\n if (hex.startsWith('504b0304')) return 'application/x-xpinstall';\n if (hex.startsWith('504b0304')) return 'application/vnd.oasis.opendocument.text';\n if (hex.startsWith('504b0304')) return 'application/vnd.oasis.opendocument.spreadsheet';\n if (hex.startsWith('504b0304')) return 'application/vnd.oasis.opendocument.presentation';\n if (hex.startsWith('504b0304')) return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n if (hex.startsWith('504b0304')) return 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\n if (hex.startsWith('504b0304')) return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n if (hex.startsWith('504b0304')) return 'application/zip';\n if (hex.startsWith('7b2274797065223a226a736f6e227d')) return 'application/json';\n if (hex.startsWith('7573746172')) return 'application/x-tar';\n if (hex.startsWith('526172211a0700')) return 'application/x-rar-compressed';\n if (hex.startsWith('1f8b08')) return 'application/gzip';\n if (hex.startsWith('425a68')) return 'application/x-bzip2';\n if (hex.startsWith('377abcaf271c')) return 'application/x-7z-compressed';\n if (hex.startsWith('78da')) return 'application/x-apple-diskimage';\n if (hex.startsWith('00000020667479706d70')) return 'video/mp4';\n if (hex.startsWith('4d546864')) return 'audio/midi';\n if (hex.startsWith('1a45dfa393428288')) return 'video/x-matroska';\n if (hex.startsWith('1a45dfa3')) return 'video/webm';\n if (hex.startsWith('00000014667479707174')) return 'video/quicktime';\n if (hex.startsWith('52494646')) return 'video/vnd.avi';\n if (hex.startsWith('52494646')) return 'audio/vnd.wave';\n if (hex.startsWith('0a010301')) return 'audio/qcelp';\n if (hex.startsWith('3026b2758e66cf11')) return 'audio/x-ms-asf';\n if (hex.startsWith('3026b2758e66cf11')) return 'video/x-ms-asf';\n if (hex.startsWith('3026b2758e66cf11')) return 'application/vnd.ms-asf';\n if (hex.startsWith('000001ba')) return 'video/mpeg';\n if (hex.startsWith('00000020667479703367')) return 'video/3gpp';\n if (hex.startsWith('494433')) return 'audio/mpeg';\n if (hex.startsWith('00000020667479704d344120')) return 'audio/mp4';\n if (hex.startsWith('4f707573')) return 'audio/opus';\n if (hex.startsWith('4f676753')) return 'video/ogg';\n if (hex.startsWith('4f676753')) return 'audio/ogg';\n if (hex.startsWith('4f676753')) return 'application/ogg';\n if (hex.startsWith('664c6143')) return 'audio/x-flac';\n if (hex.startsWith('4d414320')) return 'audio/ape';\n if (hex.startsWith('7776706b')) return 'audio/wavpack';\n if (hex.startsWith('2321414d520a')) return 'audio/amr';\n if (hex.startsWith('255044462d312e')) return 'application/pdf';\n if (hex.startsWith('7f454c46')) return 'application/x-elf';\n if (hex.startsWith('4d5a')) return 'application/x-msdownload';\n if (hex.startsWith('435753')) return 'application/x-shockwave-flash';\n if (hex.startsWith('7b5c72746631')) return 'application/rtf';\n if (hex.startsWith('0061736d')) return 'application/wasm';\n if (hex.startsWith('774f4646')) return 'font/woff';\n if (hex.startsWith('774f4632')) return 'font/woff2';\n if (hex.startsWith('000100000008')) return 'application/vnd.ms-fontobject';\n if (hex.startsWith('0001000000')) return 'font/ttf';\n if (hex.startsWith('4f54544f00')) return 'font/otf';\n if (hex.startsWith('000001000100')) return 'image/x-icon';\n if (hex.startsWith('464c560105')) return 'video/x-flv';\n if (hex.startsWith('25215053')) return 'application/postscript';\n if (hex.startsWith('25215053')) return 'application/eps';\n if (hex.startsWith('fd377a585a00')) return 'application/x-xz';\n if (hex.startsWith('53514c69746520666f726d6174203300')) return 'application/x-sqlite3';\n if (hex.startsWith('4e45531a00000001')) return 'application/x-nintendo-nes-rom';\n if (hex.startsWith('504b0304')) return 'application/x-google-chrome-extension';\n if (hex.startsWith('4d534346')) return 'application/vnd.ms-cab-compressed';\n if (hex.startsWith('213c617263683e0a')) return 'application/x-deb';\n if (hex.startsWith('1f8b08')) return 'application/x-unix-archive';\n if (hex.startsWith('edabeedb')) return 'application/x-rpm';\n if (hex.startsWith('1f9d90')) return 'application/x-compress';\n if (hex.startsWith('4c5a4950')) return 'application/x-lzip';\n if (hex.startsWith('d0cf11e0a1b11ae1')) return 'application/x-cfb';\n if (hex.startsWith('4d49455f')) return 'application/x-mie';\n if (hex.startsWith('4141523146')) return 'application/x-apache-arrow';\n if (hex.startsWith('060e2b3402050101')) return 'application/mxf';\n if (hex.startsWith('47')) return 'video/mp2t';\n if (hex.startsWith('4250e4')) return 'application/x-blender';\n if (hex.startsWith('425047fb')) return 'image/bpg';\n if (hex.startsWith('ff4fff51')) return 'image/j2c';\n if (hex.startsWith('0000000c6a5020200d0a')) return 'image/jp2';\n if (hex.startsWith('6a5020200d0a870a')) return 'image/jpx';\n if (hex.startsWith('6a5020200d0a870a')) return 'image/jpm';\n if (hex.startsWith('0000000c6a5020200d0a')) return 'image/mj2';\n if (hex.startsWith('464f524d')) return 'audio/aiff';\n if (hex.startsWith('3c3f786d6c20')) return 'application/xml';\n if (hex.startsWith('424f4f4b4d4f4249')) return 'application/x-mobipocket-ebook';\n if (hex.startsWith('667479706174')) return 'image/heif';\n if (hex.startsWith('667479706174')) return 'image/heif-sequence';\n if (hex.startsWith('667479706174')) return 'image/heic';\n if (hex.startsWith('667479706174')) return 'image/heic-sequence';\n if (hex.startsWith('4b545820')) return 'image/ktx';\n if (hex.startsWith('4449434d')) return 'application/dicom';\n if (hex.startsWith('4d50434b')) return 'audio/x-musepack';\n if (hex.startsWith('56656e64')) return 'text/calendar';\n if (hex.startsWith('424547494e3a5643415244')) return 'text/vcard';\n if (hex.startsWith('676c5458')) return 'model/gltf-binary';\n if (hex.startsWith('d4c3b2a1')) return 'application/vnd.tcpdump.pcap';\n if (hex.startsWith('464f524d')) return 'audio/x-voc';\n if (hex.startsWith('64646f6c')) return 'audio/vnd.dolby.dd-raw';\n\n return null;\n};\n\nconst uint8ArrayToHexString = (uint8Array): string => {\n return Array.prototype.map.call(uint8Array, (byte) => ('00' + byte.toString(16)).slice(-2)).join('');\n};\n","import { AbstractControl, AsyncValidatorFn, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { Observable, of, zip } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { getMimeType, MimeType } from './mime-types';\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 =\n (maxFiles: number): ValidatorFn =>\n (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 =\n (maxSize: number): ValidatorFn =>\n (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 * @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 =\n (mimeTypes: string[]): ValidatorFn =>\n (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\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); // { invalidMimeFileType: ['image/jpeg'] }\n * ```\n *\n * @returns An Async validator function that returns an error map with the\n * `invalidMimeFileType` if the validation check fails, otherwise `null`.\n */\nexport const asyncMimeTypeExtensionValidator =\n (mimeTypes: MimeType[]): AsyncValidatorFn =>\n (control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n if (control.value) {\n const fileErrorObservables: Observable<ValidationErrors | null>[] = [];\n // iterate over files\n control.value.forEach((file: File) => {\n // push observable which will check the mime validation type\n fileErrorObservables.push(validateFileMimeType(file, mimeTypes));\n });\n return zip(...fileErrorObservables).pipe(\n map((fileErrors) => {\n const errors = fileErrors.filter((fileError) => fileError !== null);\n // Error should be { fileName: FileType }\n return { invalidMimeFileType: errors };\n }),\n );\n }\n return of(null);\n };\n\nconst validateFileMimeType = (file: File, mimeTypes: MimeType[]): Observable<{ [key: string]: MimeType }> => {\n return new Observable<{ [p: string]: MimeType }>((subscriber) => {\n const reader = new FileReader();\n reader.onloadend = (): void => {\n const buffer = reader.result as ArrayBuffer;\n const headerBytes = new Uint8Array(buffer).slice(0, 8);\n const mime = getMimeType(headerBytes);\n if (mimeTypes.indexOf(mime) === -1) {\n subscriber.next({ [file.name]: mime });\n }\n subscriber.complete();\n };\n reader.readAsArrayBuffer(file);\n });\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.EuiFileSizePipe","i1","i2","i3","i4.EuiFileUploadProgressComponent","i5.EuiFilePreviewComponent","i7.EuiFileSizePipe"],"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/eui-file-upload.module.ts","../../eui-file-upload/utils/mime-types.ts","../../eui-file-upload/utils/eui-file-upload.validators.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\">\n <div class=\"eui-file-upload__progress-bar-container\">\n <div class=\"progress-bar\" [style.width]=\"progress + '%'\"></div>\n </div>\n <div>{{ 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 = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n transform(bytes = 0, precision = 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 {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiUploadedFileInterface } 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() file: Blob | EuiUploadedFileInterface | any;\n @Input() index: number;\n\n @Input() previewAsIconConfig = {\n avi: 'eui-file-video',\n html: 'eui-file-html',\n htm: 'eui-file-code',\n js: 'eui-file-code',\n json: 'eui-file-code',\n mp3: 'eui-file-audio',\n mp4: 'eui-file-video',\n pdf: 'eui-file-pdf',\n png: 'eui-file-image',\n svg: 'eui-file-image',\n txt: 'eui-file-text',\n xml: 'eui-file-code',\n jpeg: 'eui-file-image',\n jpg: 'eui-file-image',\n zip: 'eui-file-archive',\n doc: 'eui-file-word',\n docx: 'eui-file-word-o',\n xls: 'eui-file-excel-o',\n xlsx: 'eui-file-excel-o',\n ppt: 'eui-file-powerpoint',\n csv: 'eui-file-text',\n rtf: 'eui-file-text',\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 public isLoading = false;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() itemClick = new EventEmitter<Blob | EuiUploadedFileInterface | any>();\n\n @Input()\n get hasPreview(): boolean {\n return this._hasPreview;\n }\n set hasPreview(value: BooleanInput) {\n this._hasPreview = coerceBooleanProperty(value);\n }\n private _hasPreview = true;\n @Input()\n get isFilenameDisplayed(): boolean {\n return this._isFilenameDisplayed;\n }\n set isFilenameDisplayed(value: BooleanInput) {\n this._isFilenameDisplayed = coerceBooleanProperty(value);\n }\n private _isFilenameDisplayed = true;\n @Input()\n get isFilesizeDisplayed(): boolean {\n return this._isFilesizeDisplayed;\n }\n set isFilesizeDisplayed(value: BooleanInput) {\n this._isFilesizeDisplayed = coerceBooleanProperty(value);\n }\n private _isFilesizeDisplayed = true;\n @Input()\n get isFiletypeDisplayed(): boolean {\n return this._isFiletypeDisplayed;\n }\n set isFiletypeDisplayed(value: BooleanInput) {\n this._isFiletypeDisplayed = coerceBooleanProperty(value);\n }\n private _isFiletypeDisplayed = true;\n @Input()\n get hasPreviewAsImage(): boolean {\n return this._hasPreviewAsImage;\n }\n set hasPreviewAsImage(value: BooleanInput) {\n this._hasPreviewAsImage = coerceBooleanProperty(value);\n }\n private _hasPreviewAsImage = true;\n @Input()\n get hasPreviewAsIcon(): boolean {\n return this._hasPreviewAsIcon;\n }\n set hasPreviewAsIcon(value: BooleanInput) {\n this._hasPreviewAsIcon = coerceBooleanProperty(value);\n }\n private _hasPreviewAsIcon = false;\n @Input()\n get isItemsClickable(): boolean {\n return this._isItemsClickable;\n }\n set isItemsClickable(value: BooleanInput) {\n this._isItemsClickable = coerceBooleanProperty(value);\n }\n private _isItemsClickable = 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.readAsArrayBuffer(this.file as Blob);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 reader.onloadstart = (event: ProgressEvent): void => {\n this.isLoading = true;\n this.cd.detectChanges();\n };\n reader.onloadend = (event: ProgressEvent): void => {\n this.isLoading = false;\n this.cd.detectChanges();\n };\n } else {\n this.url = (this.file as EuiUploadedFileInterface).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 public onItemClick(e: Event): void {\n this.itemClick.emit(this.file);\n e.preventDefault();\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 f = fileExtension.toLowerCase();\n const image = f === 'jpeg' || f === 'jpg' || f === 'png' || f === 'gif' ? true : false;\n const display = f === 'jpeg' || f === 'jpg' || f === 'png' || f === 'gif' ? this.url : this.getIconForMime(f);\n\n return { image, display };\n }\n\n private getIconForMime(fileExtension: string): string {\n const f = fileExtension.toLowerCase();\n return !this.previewAsIconConfig[f] ? 'eui-file-empty-o' : this.previewAsIconConfig[f];\n }\n}\n","<div class=\"eui-file-upload__preview\">\n <div class=\"eui-file-upload__preview--left\">\n <div class=\"eui-file-upload__preview--left__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\" />\n <span\n *ngIf=\"previewData && !previewData.image\"\n class=\"eui-icon eui-icon-color {{ previewData.display }}\"\n euiIconColored\n euiSize5XL></span>\n <div *ngIf=\"isLoading\" class=\"loading-container\">\n <eui-icon-svg isLoading size=\"2xl\"></eui-icon-svg>\n </div>\n </div>\n <div *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <!-- <span class=\"eui-icon eui-icon-color {{ icon }}\" euiIconColored euiSize4XL></span> -->\n <eui-icon-svg icon=\"{{ icon }}\" size=\"l\" fillColor=\"info-100\" class=\"eui-u-mr-s\"></eui-icon-svg>\n </div>\n <div class=\"eui-file-upload__preview--left__filename eui-u-text-truncate\" *ngIf=\"isFilenameDisplayed\">\n <ng-container *ngIf=\"!isItemsClickable\">\n {{ file.name }}\n </ng-container>\n <ng-container *ngIf=\"isItemsClickable\">\n <a href=\"#\" (click)=\"onItemClick($event)\" class=\"eui-u-text-link eui-u-text-truncate\">{{ file.name }}</a>\n </ng-container>\n </div>\n </div>\n <div class=\"eui-file-upload__preview--right\">\n <div class=\"eui-u-text-no-wrap eui-u-ml-m\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"eui-u-ml-m\" *ngIf=\"isFiletypeDisplayed\"><span euiLabel>{{ file.type }}</span></div>\n <div class=\"eui-u-ml-m\">\n <button euiButton euiDanger euiRounded euiIconButton euiBasicButton type=\"button\" (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-delete-forever\"></eui-icon-svg>\n </button>\n </div>\n </div>\n</div>\n","import {\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n ViewEncapsulation,\n OnInit,\n ViewChildren,\n QueryList,\n Output,\n EventEmitter,\n SimpleChanges,\n OnChanges,\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { EuiUploadedFileInterface } from './models/uploaded-file.model';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { coerceBoolean } from '@eui/base';\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 hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFileUploadComponent implements ControlValueAccessor, OnInit {\n @Input() e2eAttr = 'eui-file-upload';\n @Input() progress: number;\n @Input() accept = '*';\n @Input() maxFiles: number;\n @Output() fileDrop = new EventEmitter();\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() itemClick = new EventEmitter<Blob | EuiUploadedFileInterface | any>();\n\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n\n public files: File[] = [];\n public filesTotalSize = 0;\n public randomNumberId = Math.floor(Math.random() * 10000);\n public uploadedFiles: EuiUploadedFileInterface[] = [];\n public dragEntered = false;\n @ViewChildren('input') fileInputs: QueryList<ElementRef<HTMLInputElement>>;\n\n @Input()\n @coerceBoolean\n isMultiple:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasProgressBar:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasPreview:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasPreviewAsImage:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasPreviewAsIcon:BooleanInput = false;\n @Input()\n @coerceBoolean\n hasTotalSizeDisplayed:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasResetButton:BooleanInput = true;\n @Input()\n @coerceBoolean\n hasDragArea: BooleanInput = false;\n @Input()\n @coerceBoolean\n isItemsClickable:BooleanInput = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n @HostListener('change', ['$event.target.files']) emitFiles(fileList: FileList): void {\n let i = [...this.uploadedFiles, ...this.files].length;\n for (const property in fileList) {\n if (fileList[property] && typeof fileList[property] === 'object' && (!this.maxFiles || i < this.maxFiles)) {\n const fileName = fileList[property].name.split('.');\n const fileExtension = fileName[fileName.length - 1];\n\n if (this.accept.indexOf(fileExtension.toLowerCase()) !== -1 || this.accept === '*') {\n this.files.push(fileList[property]);\n }\n\n i++;\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\n this.dragEntered = false;\n this.fileDrop.emit();\n }\n\n get showResetBtn(): boolean {\n return this.hasResetButton && this.isMultiple && (this.files.length > 0 || this.uploadedFiles.length > 0);\n }\n\n get isDropAreaDisabled(): boolean {\n return (!this.isMultiple && this.files.length === 1) || [...this.uploadedFiles, ...this.files].length === this.maxFiles;\n }\n\n // TODO check this function has never called (not implemented class level)\n // ngOnChanges(c: SimpleChanges): void {\n // if (c?.isMultiple) {\n // this.maxFiles = 1;\n // }\n // }\n\n ngOnInit(): void {\n if (this.hasPreviewAsIcon) {\n this.hasPreviewAsImage = false;\n }\n }\n\n onDragEnter(): void {\n if (!this.isDropAreaDisabled) {\n this.dragEntered = true;\n }\n }\n\n onDragLeave(): void {\n this.dragEntered = false;\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onItemClick(e: Blob | EuiUploadedFileInterface | any): void {\n this.itemClick.emit(e);\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.uploadedFiles = value || [];\n this.files = [];\n this.getTotalSize();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {/* Nothing to be Done so far */}\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: any = (): void => {/* Nothing to be Done so far */};\n\n private getTotalSize(): void {\n this.filesTotalSize = 0;\n this.files.forEach((f) => {\n this.filesTotalSize += f.size;\n });\n }\n\n private getCssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-file-upload')].join(' ').trim();\n }\n}\n","<div\n class=\"eui-file-upload__drop-area\"\n [class.eui-file-upload__drop-area--active]=\"dragEntered\"\n [class.eui-file-upload__drop-area--disabled]=\"isDropAreaDisabled\"\n *ngIf=\"hasDragArea\">\n <span class=\"eui-file-upload__fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span>{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"eui-file-upload__file-input\"\n attr.aria-label=\"{{ 'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{\n 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate\n }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [attr.disabled]=\"isDropAreaDisabled ? 'disabled' : null\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n</div>\n<div class=\"eui-file-upload__simple-input-file eui-u-mb-xs\" *ngIf=\"!hasDragArea\">\n <label for=\"file-{{ randomNumberId }}\">\n <button euiButton type=\"button\" (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n </label>\n\n <input\n #input\n *ngIf=\"isMultiple\"\n aria-label=\"Choose Multiple Files\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n multiple />\n <input\n #input\n *ngIf=\"!isMultiple\"\n aria-label=\"Choose a single file\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n 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 [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (itemClick)=\"onItemClick($event)\"\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 [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n</div>\n\n<div class=\"eui-file-upload__total-size\" *ngIf=\"filesTotalSize && hasTotalSizeDisplayed\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n</div>\n\n<ng-content></ng-content>\n<button euiButton type=\"button\" (click)=\"resetList()\" *ngIf=\"showResetBtn\">\n {{ 'eui.euifileupload.RESET-LIST' | translate }}\n</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 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private toFormData(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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n formValue[key].forEach((value: any): void => {\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 { 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';\n\n@NgModule({\n imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule],\n declarations: [EuiFileUploadComponent, EuiFileUploadProgressComponent, EuiFilePreviewComponent, EuiFileSizePipe],\n providers: [EuiFileUploadUtilsService],\n exports: [EuiFileUploadComponent],\n})\nexport class EuiFileUploadModule {}\n","export type MimeType =\n | 'image/jpeg'\n | 'image/png'\n | 'image/gif'\n | 'image/webp'\n | 'image/flif'\n | 'image/x-xcf'\n | 'image/x-canon-cr2'\n | 'image/x-canon-cr3'\n | 'image/tiff'\n | 'image/bmp'\n | 'image/icns'\n | 'image/vnd.ms-photo'\n | 'image/vnd.adobe.photoshop'\n | 'application/x-indesign'\n | 'application/epub+zip'\n | 'application/x-xpinstall'\n | 'application/vnd.oasis.opendocument.text'\n | 'application/vnd.oasis.opendocument.spreadsheet'\n | 'application/vnd.oasis.opendocument.presentation'\n | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n | 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\n | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n | 'application/zip'\n | 'application/json'\n | 'application/x-tar'\n | 'application/x-rar-compressed'\n | 'application/gzip'\n | 'application/x-bzip2'\n | 'application/x-7z-compressed'\n | 'application/x-apple-diskimage'\n | 'video/mp4'\n | 'audio/midi'\n | 'video/x-matroska'\n | 'video/webm'\n | 'video/quicktime'\n | 'video/vnd.avi'\n | 'audio/vnd.wave'\n | 'audio/qcelp'\n | 'audio/x-ms-asf'\n | 'video/x-ms-asf'\n | 'application/vnd.ms-asf'\n | 'video/mpeg'\n | 'video/3gpp'\n | 'audio/mpeg'\n | 'audio/mp4'\n | 'audio/opus'\n | 'video/ogg'\n | 'audio/ogg'\n | 'application/ogg'\n | 'audio/x-flac'\n | 'audio/ape'\n | 'audio/wavpack'\n | 'audio/amr'\n | 'application/pdf'\n | 'application/x-elf'\n | 'application/x-msdownload'\n | 'application/x-shockwave-flash'\n | 'application/rtf'\n | 'application/wasm'\n | 'font/woff'\n | 'font/woff2'\n | 'application/vnd.ms-fontobject'\n | 'font/ttf'\n | 'font/otf'\n | 'image/x-icon'\n | 'video/x-flv'\n | 'application/postscript'\n | 'application/eps'\n | 'application/x-xz'\n | 'application/x-sqlite3'\n | 'application/x-nintendo-nes-rom'\n | 'application/x-google-chrome-extension'\n | 'application/vnd.ms-cab-compressed'\n | 'application/x-deb'\n | 'application/x-unix-archive'\n | 'application/x-rpm'\n | 'application/x-compress'\n | 'application/x-lzip'\n | 'application/x-cfb'\n | 'application/x-mie'\n | 'application/x-apache-arrow'\n | 'application/mxf'\n | 'video/mp2t'\n | 'application/x-blender'\n | 'image/bpg'\n | 'image/j2c'\n | 'image/jp2'\n | 'image/jpx'\n | 'image/jpm'\n | 'image/mj2'\n | 'audio/aiff'\n | 'application/xml'\n | 'application/x-mobipocket-ebook'\n | 'image/heif'\n | 'image/heif-sequence'\n | 'image/heic'\n | 'image/heic-sequence'\n | 'image/ktx'\n | 'application/dicom'\n | 'audio/x-musepack'\n | 'text/calendar'\n | 'text/vcard'\n | 'model/gltf-binary'\n | 'application/vnd.tcpdump.pcap'\n | 'audio/x-voc'\n | 'audio/vnd.dolby.dd-raw'\n | 'audio/x-m4a'\n | 'image/apng'\n | 'image/x-olympus-orf'\n | 'image/x-sony-arw'\n | 'image/x-adobe-dng'\n | 'image/x-nikon-nef'\n | 'image/x-panasonic-rw2'\n | 'image/x-fujifilm-raf'\n | 'video/x-m4v'\n | 'video/3gpp2'\n | 'application/x-esri-shape'\n | 'audio/aac'\n | 'audio/x-it'\n | 'audio/x-s3m'\n | 'audio/x-xm'\n | 'video/MP1S'\n | 'video/MP2P'\n | 'application/vnd.sketchup.skp'\n | 'image/avif'\n | 'application/x-lzh-compressed'\n | 'application/pgp-encrypted'\n | 'application/x-asar'\n | 'model/stl'\n | 'application/vnd.ms-htmlhelp'\n | 'model/3mf'\n | 'image/jxl'\n | 'application/zstd'\n | 'image/jls'\n | 'application/vnd.ms-outlook'\n | 'image/vnd.dwg'\n | 'application/x-parquet'\n | 'application/java-vm'\n | 'application/x-arj'\n | 'application/x-cpio'\n | 'application/x-ace-compressed'\n | 'application/avro'\n | 'application/vnd.iccprofile'; // eslint-disable-line semi-style\n\nexport const getMimeType = (header: Uint8Array): MimeType => {\n // convert Uint8Array to hex string\n const hex = uint8ArrayToHexString(header);\n\n // map hex string to mime type\n if (hex.startsWith('ffd8ffe000104a46')) return 'image/jpeg';\n if (hex.startsWith('89504e47')) return 'image/png';\n if (hex.startsWith('464c4946')) return 'image/flif';\n if (hex.startsWith('67696d7020786366')) return 'image/x-xcf';\n if (hex.startsWith('49492a00')) return 'image/x-canon-cr2';\n if (hex.startsWith('49492a00')) return 'image/x-canon-cr3';\n if (hex.startsWith('49492a00')) return 'image/tiff';\n if (hex.startsWith('424d')) return 'image/bmp';\n if (hex.startsWith('69636e73')) return 'image/icns';\n if (hex.startsWith('49491a0000004845415050')) return 'image/vnd.ms-photo';\n if (hex.startsWith('38425053')) return 'image/vnd.adobe.photoshop';\n if (hex.startsWith('06054b50')) return 'application/x-indesign';\n if (hex.startsWith('504b0304')) return 'application/epub+zip';\n if (hex.startsWith('504b0304')) return 'application/x-xpinstall';\n if (hex.startsWith('504b0304')) return 'application/vnd.oasis.opendocument.text';\n if (hex.startsWith('504b0304')) return 'application/vnd.oasis.opendocument.spreadsheet';\n if (hex.startsWith('504b0304')) return 'application/vnd.oasis.opendocument.presentation';\n if (hex.startsWith('504b0304')) return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n if (hex.startsWith('504b0304')) return 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\n if (hex.startsWith('504b0304')) return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n if (hex.startsWith('504b0304')) return 'application/zip';\n if (hex.startsWith('7b2274797065223a226a736f6e227d')) return 'application/json';\n if (hex.startsWith('7573746172')) return 'application/x-tar';\n if (hex.startsWith('526172211a0700')) return 'application/x-rar-compressed';\n if (hex.startsWith('1f8b08')) return 'application/gzip';\n if (hex.startsWith('425a68')) return 'application/x-bzip2';\n if (hex.startsWith('377abcaf271c')) return 'application/x-7z-compressed';\n if (hex.startsWith('78da')) return 'application/x-apple-diskimage';\n if (hex.startsWith('00000020667479706d70')) return 'video/mp4';\n if (hex.startsWith('4d546864')) return 'audio/midi';\n if (hex.startsWith('1a45dfa393428288')) return 'video/x-matroska';\n if (hex.startsWith('1a45dfa3')) return 'video/webm';\n if (hex.startsWith('00000014667479707174')) return 'video/quicktime';\n if (hex.startsWith('52494646')) return 'video/vnd.avi';\n if (hex.startsWith('52494646')) return 'audio/vnd.wave';\n if (hex.startsWith('0a010301')) return 'audio/qcelp';\n if (hex.startsWith('3026b2758e66cf11')) return 'audio/x-ms-asf';\n if (hex.startsWith('3026b2758e66cf11')) return 'video/x-ms-asf';\n if (hex.startsWith('3026b2758e66cf11')) return 'application/vnd.ms-asf';\n if (hex.startsWith('000001ba')) return 'video/mpeg';\n if (hex.startsWith('00000020667479703367')) return 'video/3gpp';\n if (hex.startsWith('494433')) return 'audio/mpeg';\n if (hex.startsWith('00000020667479704d344120')) return 'audio/mp4';\n if (hex.startsWith('4f707573')) return 'audio/opus';\n if (hex.startsWith('4f676753')) return 'video/ogg';\n if (hex.startsWith('4f676753')) return 'audio/ogg';\n if (hex.startsWith('4f676753')) return 'application/ogg';\n if (hex.startsWith('664c6143')) return 'audio/x-flac';\n if (hex.startsWith('4d414320')) return 'audio/ape';\n if (hex.startsWith('7776706b')) return 'audio/wavpack';\n if (hex.startsWith('2321414d520a')) return 'audio/amr';\n if (hex.startsWith('255044462d312e')) return 'application/pdf';\n if (hex.startsWith('7f454c46')) return 'application/x-elf';\n if (hex.startsWith('4d5a')) return 'application/x-msdownload';\n if (hex.startsWith('435753')) return 'application/x-shockwave-flash';\n if (hex.startsWith('7b5c72746631')) return 'application/rtf';\n if (hex.startsWith('0061736d')) return 'application/wasm';\n if (hex.startsWith('774f4646')) return 'font/woff';\n if (hex.startsWith('774f4632')) return 'font/woff2';\n if (hex.startsWith('000100000008')) return 'application/vnd.ms-fontobject';\n if (hex.startsWith('0001000000')) return 'font/ttf';\n if (hex.startsWith('4f54544f00')) return 'font/otf';\n if (hex.startsWith('000001000100')) return 'image/x-icon';\n if (hex.startsWith('464c560105')) return 'video/x-flv';\n if (hex.startsWith('25215053')) return 'application/postscript';\n if (hex.startsWith('25215053')) return 'application/eps';\n if (hex.startsWith('fd377a585a00')) return 'application/x-xz';\n if (hex.startsWith('53514c69746520666f726d6174203300')) return 'application/x-sqlite3';\n if (hex.startsWith('4e45531a00000001')) return 'application/x-nintendo-nes-rom';\n if (hex.startsWith('504b0304')) return 'application/x-google-chrome-extension';\n if (hex.startsWith('4d534346')) return 'application/vnd.ms-cab-compressed';\n if (hex.startsWith('213c617263683e0a')) return 'application/x-deb';\n if (hex.startsWith('1f8b08')) return 'application/x-unix-archive';\n if (hex.startsWith('edabeedb')) return 'application/x-rpm';\n if (hex.startsWith('1f9d90')) return 'application/x-compress';\n if (hex.startsWith('4c5a4950')) return 'application/x-lzip';\n if (hex.startsWith('d0cf11e0a1b11ae1')) return 'application/x-cfb';\n if (hex.startsWith('4d49455f')) return 'application/x-mie';\n if (hex.startsWith('4141523146')) return 'application/x-apache-arrow';\n if (hex.startsWith('060e2b3402050101')) return 'application/mxf';\n if (hex.startsWith('47')) return 'video/mp2t';\n if (hex.startsWith('4250e4')) return 'application/x-blender';\n if (hex.startsWith('425047fb')) return 'image/bpg';\n if (hex.startsWith('ff4fff51')) return 'image/j2c';\n if (hex.startsWith('0000000c6a5020200d0a')) return 'image/jp2';\n if (hex.startsWith('6a5020200d0a870a')) return 'image/jpx';\n if (hex.startsWith('6a5020200d0a870a')) return 'image/jpm';\n if (hex.startsWith('0000000c6a5020200d0a')) return 'image/mj2';\n if (hex.startsWith('464f524d')) return 'audio/aiff';\n if (hex.startsWith('3c3f786d6c20')) return 'application/xml';\n if (hex.startsWith('424f4f4b4d4f4249')) return 'application/x-mobipocket-ebook';\n if (hex.startsWith('667479706174')) return 'image/heif';\n if (hex.startsWith('667479706174')) return 'image/heif-sequence';\n if (hex.startsWith('667479706174')) return 'image/heic';\n if (hex.startsWith('667479706174')) return 'image/heic-sequence';\n if (hex.startsWith('4b545820')) return 'image/ktx';\n if (hex.startsWith('4449434d')) return 'application/dicom';\n if (hex.startsWith('4d50434b')) return 'audio/x-musepack';\n if (hex.startsWith('56656e64')) return 'text/calendar';\n if (hex.startsWith('424547494e3a5643415244')) return 'text/vcard';\n if (hex.startsWith('676c5458')) return 'model/gltf-binary';\n if (hex.startsWith('d4c3b2a1')) return 'application/vnd.tcpdump.pcap';\n if (hex.startsWith('464f524d')) return 'audio/x-voc';\n if (hex.startsWith('64646f6c')) return 'audio/vnd.dolby.dd-raw';\n\n return null;\n};\n\nconst uint8ArrayToHexString = (uint8Array): string => {\n return Array.prototype.map.call(uint8Array, (byte) => ('00' + byte.toString(16)).slice(-2)).join('');\n};\n","import { AbstractControl, AsyncValidatorFn, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { Observable, of, zip } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { getMimeType, MimeType } from './mime-types';\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 =\n (maxFiles: number): ValidatorFn =>\n (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 =\n (maxSize: number): ValidatorFn =>\n (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 * @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 =\n (mimeTypes: string[]): ValidatorFn =>\n (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\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); // { invalidMimeFileType: ['image/jpeg'] }\n * ```\n *\n * @returns An Async validator function that returns an error map with the\n * `invalidMimeFileType` if the validation check fails, otherwise `null`.\n */\nexport const asyncMimeTypeExtensionValidator =\n (mimeTypes: MimeType[]): AsyncValidatorFn =>\n (control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n if (control.value) {\n const fileErrorObservables: Observable<ValidationErrors | null>[] = [];\n // iterate over files\n control.value.forEach((file: File) => {\n // push observable which will check the mime validation type\n fileErrorObservables.push(validateFileMimeType(file, mimeTypes));\n });\n return zip(...fileErrorObservables).pipe(\n map((fileErrors) => {\n const errors = fileErrors.filter((fileError) => fileError !== null);\n // Error should be { fileName: FileType }\n return { invalidMimeFileType: errors };\n }),\n );\n }\n return of(null);\n };\n\nconst validateFileMimeType = (file: File, mimeTypes: MimeType[]): Observable<{ [key: string]: MimeType }> => {\n return new Observable<{ [p: string]: MimeType }>((subscriber) => {\n const reader = new FileReader();\n reader.onloadend = (): void => {\n const buffer = reader.result as ArrayBuffer;\n const headerBytes = new Uint8Array(buffer).slice(0, 8);\n const mime = getMimeType(headerBytes);\n if (mimeTypes.indexOf(mime) === -1) {\n subscriber.next({ [file.name]: mime });\n }\n subscriber.complete();\n };\n reader.readAsArrayBuffer(file);\n });\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.EuiFileSizePipe","i1","i2","i3","i4.EuiFileUploadProgressComponent","i5.EuiFilePreviewComponent","i7.EuiFileSizePipe"],"mappings":"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"}