@acpaas-ui/ngx-forms 5.0.1 → 5.2.0

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.
@@ -26,6 +26,7 @@ export class AutoCompleteComponent {
26
26
  this.mask = null;
27
27
  this.clearInvalid = false;
28
28
  this.showAllByDefault = false;
29
+ this.autoComplete = 'off';
29
30
  // Eventemitter for searchvalue (parent object should update the results with this param)
30
31
  this.search = new EventEmitter();
31
32
  this.select = new EventEmitter();
@@ -299,7 +300,7 @@ export class AutoCompleteComponent {
299
300
  AutoCompleteComponent.decorators = [
300
301
  { type: Component, args: [{
301
302
  selector: 'aui-auto-complete',
302
- template: "<div (closed)=\"onFlyoutClosed()\" [toggleClick]=\"false\" aria-haspopup=\"listbox\"\n auiFlyout class=\"m-flyout--scrollable m-flyout--full o-auto-complete\">\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"!mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n autocomplete=\"off\"\n type=\"text\"\n />\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"mask\"\n [auiMask]=\"mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n autocomplete=\"off\"\n type=\"text\"\n />\n\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n\t\t<span *ngIf=\"focused && loadingText && searching\" class=\"o-auto-complete__info u-text-light u-margin-xs\">\n\t\t\t<span class=\"a-spinner a-spinner--inline a-spinner--sm u-margin-right-xs\"></span>\n {{ loadingText }}\n\t\t</span>\n <span *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ searchIncentiveText }}</span>\n <span *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ noResultsText }}</span>\n\n <aui-selectable-list (selected)=\"onSelect($event)\" *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\" [index]=\"index\" [itemTemplate]=\"template\"\n [items]=\"results\" [label]=\"label\"\n [search]=\"query\"></aui-selectable-list>\n </div>\n</div>\n",
303
+ template: "<div (closed)=\"onFlyoutClosed()\" [toggleClick]=\"false\" aria-haspopup=\"listbox\"\n auiFlyout class=\"m-flyout--scrollable m-flyout--full o-auto-complete\">\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"!mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n />\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"mask\"\n [auiMask]=\"mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n />\n\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n\t\t<span *ngIf=\"focused && loadingText && searching\" class=\"o-auto-complete__info u-text-light u-margin-xs\">\n\t\t\t<span class=\"a-spinner a-spinner--inline a-spinner--sm u-margin-right-xs\"></span>\n {{ loadingText }}\n\t\t</span>\n <span *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ searchIncentiveText }}</span>\n <span *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ noResultsText }}</span>\n\n <aui-selectable-list (selected)=\"onSelect($event)\" *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\" [index]=\"index\" [itemTemplate]=\"template\"\n [items]=\"results\" [label]=\"label\"\n [search]=\"query\"></aui-selectable-list>\n </div>\n</div>\n",
303
304
  providers: [
304
305
  {
305
306
  provide: NG_VALUE_ACCESSOR,
@@ -332,6 +333,7 @@ AutoCompleteComponent.propDecorators = {
332
333
  loadingText: [{ type: Input }],
333
334
  noResultsText: [{ type: Input }],
334
335
  showAllByDefault: [{ type: Input }],
336
+ autoComplete: [{ type: Input }],
335
337
  label: [{ type: Input }],
336
338
  value: [{ type: Input }],
337
339
  search: [{ type: Output }],
@@ -366,6 +368,8 @@ if (false) {
366
368
  /** @type {?} */
367
369
  AutoCompleteComponent.prototype.showAllByDefault;
368
370
  /** @type {?} */
371
+ AutoCompleteComponent.prototype.autoComplete;
372
+ /** @type {?} */
369
373
  AutoCompleteComponent.prototype.label;
370
374
  /** @type {?} */
371
375
  AutoCompleteComponent.prototype.value;
@@ -409,4 +413,4 @@ if (false) {
409
413
  */
410
414
  AutoCompleteComponent.prototype.searchService;
411
415
  }
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9hdXRvLWNvbXBsZXRlL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQWdCeEUsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7SUFvQ2hDLFlBQ1UsR0FBZSxFQUNmLGFBQTRCO1FBRDVCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQW5DN0IsWUFBTyxHQUFVLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQzs7UUFDMUQsU0FBSSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHlEQUF5RDs7UUFDM0UsV0FBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLG1DQUFtQzs7UUFDbkQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7O1FBT3hCLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFPbEQsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLCtGQUErRjs7UUFDM0csaUJBQVksR0FBUSxJQUFJLENBQUMsQ0FBQyxvQ0FBb0M7O1FBQzlELGNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyw0QkFBNEI7O1FBQy9DLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVsQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVFyQixnQkFBVzs7OztRQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDaEMsQ0FBQyxFQUFBO0lBSEQsQ0FBQzs7Ozs7O0lBTU0sVUFBVSxDQUFDLEtBQUssR0FBRyxFQUFFO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTs7a0JBQ1IsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTs7OztZQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBQztZQUUxRSxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQztZQUVELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtTQUNGO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQzs7Ozs7O0lBR00sZ0JBQWdCLENBQUMsRUFBRTtRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7OztJQUdNLGlCQUFpQjtJQUN4QixDQUFDOzs7OztJQUVNLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7Ozs7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDOUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7Ozs7O0lBR00sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7O2NBRUssT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUM3RCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtTQUNGO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7Ozs7SUFFTSxlQUFlLENBQUMsSUFBUztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTztTQUNSOztjQUVLLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDOzs7OztJQUtNLFFBQVE7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7U0FDekQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLHlDQUF5QztJQUM5RCxDQUFDOzs7Ozs7SUFLTSxRQUFRLENBQUMsSUFBUztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLDRCQUE0QjtJQUNsRCxDQUFDOzs7O0lBRU0sY0FBYztRQUNuQixvQ0FBb0M7UUFDcEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QztRQUVELCtEQUErRDtRQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7UUFFRCwrREFBK0Q7UUFDL0QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUM3RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDdEc7SUFDSCxDQUFDOzs7O0lBRU0sY0FBYztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7OztJQUVNLFlBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDOzs7OztJQUVNLFVBQVUsQ0FBQyxLQUFZO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLDZDQUE2Qzs7O2NBRS9ELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLO1FBRXJFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Ozs7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7O0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7O0lBRU0sVUFBVTtRQUNmLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzs7O0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQzs7OztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2xELFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN4QyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQzs7OztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ25DLE9BQU87U0FDUjs7Y0FFSyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM1QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDeEM7WUFFRCxPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLENBQUMsRUFBQztRQUVGLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDM0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ2pCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFFTSxVQUFVLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQztRQUVyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPO1NBQ1I7O2NBRUssT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQzs7Y0FDNUQsUUFBUSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDOztjQUMzRSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWTs7Y0FDakQsTUFBTSxHQUFHLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFFMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQztJQUNwRixDQUFDOzs7WUF6UUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBSTdCLHN5RUFBNkM7Z0JBQzdDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFDOzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7O2FBQ0Y7Ozs7WUE3QkMsVUFBVTtZQWNILGFBQWE7OztpQkFpQm5CLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO21CQUNMLEtBQUs7cUJBQ0wsS0FBSzs0QkFDTCxLQUFLO21CQUNMLEtBQUs7MkJBQ0wsS0FBSztrQ0FDTCxLQUFLOzBCQUNMLEtBQUs7NEJBQ0wsS0FBSzsrQkFDTCxLQUFLO29CQUdMLEtBQUs7b0JBQ0wsS0FBSztxQkFHTCxNQUFNO3FCQUNOLE1BQU07cUJBRU4sU0FBUyxTQUFDLGVBQWUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7eUJBQ3pDLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7dUJBRTdDLFlBQVksU0FBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOzs7O0lBeEJ6QyxtQ0FBb0I7O0lBQ3BCLDRDQUE2Qjs7SUFDN0Isd0NBQTZCOztJQUM3QixxQ0FBMEI7O0lBQzFCLHVDQUF3Qjs7SUFDeEIsOENBQTJCOztJQUMzQixxQ0FBNkI7O0lBQzdCLDZDQUE4Qjs7SUFDOUIsb0RBQXFDOztJQUNyQyw0Q0FBNkI7O0lBQzdCLDhDQUErQjs7SUFDL0IsaURBQWtDOztJQUdsQyxzQ0FBdUI7O0lBQ3ZCLHNDQUF1Qjs7SUFHdkIsdUNBQTREOztJQUM1RCx1Q0FBeUQ7O0lBRXpELHVDQUFvRTs7SUFDcEUsMkNBQWdGOztJQUVoRix5Q0FBNkU7O0lBRTdFLHNDQUFrQjs7SUFDbEIsc0NBQWtCOztJQUNsQiw2Q0FBZ0M7O0lBQ2hDLDBDQUF5Qjs7SUFDekIsd0NBQXVCOztJQUN2QiwyQ0FBMEI7Ozs7O0lBRTFCLDRDQUE0Qjs7SUFRNUIsNENBQ0M7Ozs7O0lBTkMsb0NBQXVCOzs7OztJQUN2Qiw4Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBGbHlvdXREaXJlY3RpdmUsIEZseW91dFpvbmVEaXJlY3RpdmUgfSBmcm9tICdAYWNwYWFzLXVpL25neC1mbHlvdXQnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zZWFyY2guc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1hdXRvLWNvbXBsZXRlJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vYXV0by1jb21wbGV0ZS5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvQ29tcGxldGVDb21wb25lbnQpLCAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSByZXN1bHRzOiBhbnlbXSA9IFtdOyAvLyBUaGUgdmFsdWVzIGZvciB0aGUgc2VsZWN0YWJsZSBsaXN0XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107IC8vIFRoZSB2YWx1ZXMgdG8gc2VhcmNoIGluIHdoZW4gcmVtb3RlIHNlYXJjaCBpcyBkaXNhYmxlZFxuICBASW5wdXQoKSByZW1vdGUgPSBmYWxzZTsgLy8gRGlzYWJsZSBvciBlbmFtYmxlIHJlbW90ZSBzZWFyY2hcbiAgQElucHV0KCkgbWluQ2hhcmFjdGVycyA9IDA7XG4gIEBJbnB1dCgpIG1hc2s6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIGNsZWFySW52YWxpZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWFyY2hJbmNlbnRpdmVUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRpbmdUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5vUmVzdWx0c1RleHQ6IHN0cmluZztcbiAgQElucHV0KCkgc2hvd0FsbEJ5RGVmYXVsdCA9IGZhbHNlO1xuXG4gIC8vIHNwZWNpZnkgd2hpY2ggbGFiZWwvdmFsdWUgcHJvcHMgdG8gdXNlXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XG5cbiAgLy8gRXZlbnRlbWl0dGVyIGZvciBzZWFyY2h2YWx1ZSAocGFyZW50IG9iamVjdCBzaG91bGQgdXBkYXRlIHRoZSByZXN1bHRzIHdpdGggdGhpcyBwYXJhbSlcbiAgQE91dHB1dCgpIHNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoRmx5b3V0RGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSkgZmx5b3V0OiBGbHlvdXREaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGQoRmx5b3V0Wm9uZURpcmVjdGl2ZSwge3N0YXRpYzogdHJ1ZX0pIGZseW91dFpvbmU6IEZseW91dFpvbmVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgcXVlcnkgPSAnJztcbiAgcHVibGljIGluZGV4ID0gLTE7IC8vIGluZGV4IGZvciBhY3RpdmUgZWxlbWVudCBpbiBzZWxlY3RhYmxlIGxpc3QsIGJ5IGRlZmF1bHQgLTEgKHNvIGl0IHN0YXJ0cyBpbiB0aGUgaW5wdXQgZmllbGQpXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW06IGFueSA9IG51bGw7IC8vIGtlZXAgYSBiYWNrdXAgb2YgdGhlIHNlbGVjdGVkSXRlbVxuICBwdWJsaWMgc2VhcmNoaW5nID0gZmFsc2U7IC8vIHRyYWNrIHJlbW90ZSBzZWFyY2ggc3RhdGVcbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlbW90ZVZhbHVlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZU1vZGVsID0gKF86IGFueSkgPT4ge1xuICB9XG5cbiAgLy8gQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2VcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWUgPSAnJykge1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGF0YS5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy52YWx1ZV0gPT09IHZhbHVlKTtcblxuICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5ID0gc2VsZWN0ZWRbdGhpcy5sYWJlbF07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlbW90ZSAmJiAhIXZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVtb3RlVmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucXVlcnkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIENPTlRST0xfVkFMVUVfQUNDRVNTT1IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XG4gICAgdGhpcy51cGRhdGVNb2RlbCA9IGZuO1xuICB9XG5cbiAgLy8gQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCkge1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKChBcnJheS5pc0FycmF5KHRoaXMuZGF0YSkgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApICYmICF0aGlzLnF1ZXJ5ICYmIHRoaXMuc2hvd0FsbEJ5RGVmYXVsdCkge1xuICAgICAgdGhpcy5yZXN1bHRzID0gWy4uLnRoaXMuZGF0YV07XG4gICAgfVxuICB9XG5cbiAgLy8gT25DaGFuZ2VzIGludGVyZmFjZVxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghY2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RhdGEgPSBnZXQoY2hhbmdlcywgJ2RhdGEuY3VycmVudFZhbHVlJywgW10pO1xuICAgIGlmICghaXNFcXVhbChuZXdEYXRhLCBnZXQoY2hhbmdlcywgJ2RhdGEucHJldmlvdXNWYWx1ZScsIFtdKSkpIHtcbiAgICAgIGlmICh0aGlzLnJlbW90ZSkge1xuICAgICAgICB0aGlzLnJlbW90ZVNlYXJjaCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2NhbFNlYXJjaCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnJlc3VsdHMgJiYgY2hhbmdlcy5yZXN1bHRzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKGl0ZW06IGFueSkge1xuICAgIHRoaXMucXVlcnkgPSBpdGVtICE9PSBudWxsID8gKHRoaXMubGFiZWwgPyBpdGVtW3RoaXMubGFiZWxdIDogaXRlbSkgOiAnJztcbiAgICB0aGlzLnNlbGVjdC5lbWl0KGl0ZW0pO1xuXG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLmxhYmVsID8gdGhpcy5sYWJlbCA6IG51bGw7XG4gICAgdGhpcy51cGRhdGVNb2RlbChrZXkgPyBpdGVtW2tleV0gfHwgJycgOiBpdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XG4gIH1cblxuICAvKipcbiAgICogdHJpZ2dlcnMgb24gaW5wdXQgdmFsdWUgY2hhbmdlXG4gICAqL1xuICBwdWJsaWMgZG9TZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5pbmRleCA9IC0xOyAvLyByZXNldCBpbmRleFxuICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnJlbW90ZSkge1xuICAgICAgdGhpcy5zZWFyY2guZW1pdCh0aGlzLnF1ZXJ5KTsgLy8gYXNrIGZvciBuZXcgcmVtb3RlIGRhdGFcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2NhbFNlYXJjaCgpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbkZseW91dCgpOyAvLyBvcGVuIHRoZSBmbHlvdXQgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZVxuICB9XG5cbiAgLyoqXG4gICAqIHRyaWdnZXJzIG9uIHNlbGVjdGFibGUtbGlzdDpzZWxlY3QgLT4gb25DbGljayBldmVudCBpbiBzZWxlY3RhYmxlLWxpc3RcbiAgICovXG4gIHB1YmxpYyBvblNlbGVjdChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShpdGVtKTtcbiAgICB0aGlzLmNsb3NlRmx5b3V0KCk7IC8vIENsb3NlIHRoZSBmbHlvdXQgbWFudWFsbHlcbiAgfVxuXG4gIHB1YmxpYyBvbkZseW91dENsb3NlZCgpOiB2b2lkIHtcbiAgICAvLyB0aGVyZSBpcyBvbmx5IDEgcmVzdWx0LCBzZWxlY3QgaXRcbiAgICBpZiAodGhpcy5pbmRleCA+PSAwICYmIHRoaXMucmVzdWx0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLm9uU2VsZWN0KHRoaXMucmVzdWx0c1swXSk7XG4gICAgfVxuXG4gICAgLy8gdGhlcmUgaXMgbm8gcXVlcnkgbm9yIHNlbGVjdGVkIGl0ZW0sIGNsZWFyIHRoZSBzZWxlY3RlZCBpdGVtXG4gICAgaWYgKCF0aGlzLnF1ZXJ5ICYmIHRoaXMuaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5vblNlbGVjdChudWxsKTtcbiAgICB9XG5cbiAgICAvLyByZXNldCB0aGUgcXVlcnkgZm9yIGFuIGludmFsaWQgcXVlcnkgaWYgY2xlYXJJbnZhbGlkIGlzIHRydWVcbiAgICBpZiAodGhpcy5jbGVhckludmFsaWQgJiYgdGhpcy5xdWVyeSAmJiAhdGhpcy5yZXN1bHRzLmxlbmd0aCAmJiB0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuc2VsZWN0ZWRJdGVtID8gdGhpcy5sYWJlbCA/IHRoaXMuc2VsZWN0ZWRJdGVtW3RoaXMubGFiZWxdIDogdGhpcy5zZWxlY3RlZEl0ZW0gOiAnJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25LZXlBcnJvd0Rvd24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5kZXggPCB0aGlzLnJlc3VsdHMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zY3JvbGxMaXN0KDEpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbkZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5QXJyb3dVcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLnNjcm9sbExpc3QoLTEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleUVudGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIERvIG5vdCBzdWJtaXQgZm9ybSB3aGVuIHNlbGVjdGluZyBhbiBpdGVtLlxuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmluZGV4ID49IDAgPyB0aGlzLnJlc3VsdHNbdGhpcy5pbmRleF0gOiB0aGlzLnF1ZXJ5O1xuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UocXVlcnkpO1xuICAgIHRoaXMuY2xvc2VGbHlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleUVzY2FwZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMub3BlbkZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9wZW5GbHlvdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmx5b3V0KSB7XG4gICAgICB0aGlzLmZseW91dC5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlRmx5b3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZseW91dCkge1xuICAgICAgdGhpcy5mbHlvdXQuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBsb2NhbFNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3VsdHMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRoaXMuZGF0YSwge1xuICAgICAgbWluTGVuZ3RoOiB0aGlzLm1pbkNoYXJhY3RlcnMsXG4gICAgICBrZXk6IHRoaXMubGFiZWwsXG4gICAgICBxdWVyeTogdGhpcy5xdWVyeSxcbiAgICAgIHNob3dBbGxCeURlZmF1bHQ6IHRoaXMuc2hvd0FsbEJ5RGVmYXVsdCxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnJlc3VsdHMubGVuZ3RoID09PSAxICYmIHRoaXMucXVlcnkgPT09IHRoaXMucmVzdWx0c1swXVt0aGlzLmxhYmVsXSkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdGVTZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlbW90ZVZhbHVlIHx8ICF0aGlzLmRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGF0YS5maW5kKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpdGVtW3RoaXMudmFsdWVdID09PSB0aGlzLnF1ZXJ5O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbSA9PT0gdGhpcy5xdWVyeTtcbiAgICB9KTtcblxuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMubGFiZWwgPyBzZWxlY3RlZFt0aGlzLmxhYmVsXSA6IHNlbGVjdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdGVWYWx1ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbExpc3QoZmFjdG9yOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4ICs9IGZhY3RvcjtcblxuICAgIGlmICghdGhpcy5mbHlvdXRab25lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlJdGVtcyA9IHRoaXMuZmx5b3V0Wm9uZS5lbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaScpO1xuICAgIGNvbnN0IGxpSGVpZ2h0ID0gKGxpSXRlbXNbMV0gPyBsaUl0ZW1zWzFdLm9mZnNldEhlaWdodCA6IGxpSXRlbXNbMF0ub2Zmc2V0SGVpZ2h0KTtcbiAgICBjb25zdCB6b25lSGVpZ2h0ID0gdGhpcy5mbHlvdXRab25lLmVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IG9mZnNldCA9ICh6b25lSGVpZ2h0IC8gbGlIZWlnaHQpIC8gMjtcblxuICAgIHRoaXMuZmx5b3V0Wm9uZS5lbGVtZW50LnNjcm9sbFRvcCA9ICh0aGlzLmluZGV4ICogbGlIZWlnaHQpIC0gKG9mZnNldCAqIGxpSGVpZ2h0KTtcbiAgfVxufVxuIl19
416
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9hdXRvLWNvbXBsZXRlL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQWdCeEUsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7SUFxQ2hDLFlBQ1UsR0FBZSxFQUNmLGFBQTRCO1FBRDVCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXBDN0IsWUFBTyxHQUFVLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQzs7UUFDMUQsU0FBSSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHlEQUF5RDs7UUFDM0UsV0FBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLG1DQUFtQzs7UUFDbkQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBRyxLQUFLLENBQUM7O1FBT3BCLFdBQU0sR0FBeUIsSUFB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QVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Ozs7SUF6QnpDLG1DQUFvQjs7SUFDcEIsNENBQTZCOztJQUM3Qix3Q0FBNkI7O0lBQzdCLHFDQUEwQjs7SUFDMUIsdUNBQXdCOztJQUN4Qiw4Q0FBMkI7O0lBQzNCLHFDQUE2Qjs7SUFDN0IsNkNBQThCOztJQUM5QixvREFBcUM7O0lBQ3JDLDRDQUE2Qjs7SUFDN0IsOENBQStCOztJQUMvQixpREFBa0M7O0lBQ2xDLDZDQUE4Qjs7SUFHOUIsc0NBQXVCOztJQUN2QixzQ0FBdUI7O0lBR3ZCLHVDQUE0RDs7SUFDNUQsdUNBQXlEOztJQUV6RCx1Q0FBb0U7O0lBQ3BFLDJDQUFnRjs7SUFFaEYseUNBQTZFOztJQUU3RSxzQ0FBa0I7O0lBQ2xCLHNDQUFrQjs7SUFDbEIsNkNBQWdDOztJQUNoQywwQ0FBeUI7O0lBQ3pCLHdDQUF1Qjs7SUFDdkIsMkNBQTBCOzs7OztJQUUxQiw0Q0FBNEI7O0lBUTVCLDRDQUNDOzs7OztJQU5DLG9DQUF1Qjs7Ozs7SUFDdkIsOENBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlLCBGbHlvdXRab25lRGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvc2VhcmNoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktYXV0by1jb21wbGV0ZScsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0by1jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b0NvbXBsZXRlQ29tcG9uZW50KSwgLy8gdHNsaW50OmRpc2FibGUtbGluZVxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgcmVzdWx0czogYW55W10gPSBbXTsgLy8gVGhlIHZhbHVlcyBmb3IgdGhlIHNlbGVjdGFibGUgbGlzdFxuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdOyAvLyBUaGUgdmFsdWVzIHRvIHNlYXJjaCBpbiB3aGVuIHJlbW90ZSBzZWFyY2ggaXMgZGlzYWJsZWRcbiAgQElucHV0KCkgcmVtb3RlID0gZmFsc2U7IC8vIERpc2FibGUgb3IgZW5hbWJsZSByZW1vdGUgc2VhcmNoXG4gIEBJbnB1dCgpIG1pbkNoYXJhY3RlcnMgPSAwO1xuICBASW5wdXQoKSBtYXNrOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBjbGVhckludmFsaWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoSW5jZW50aXZlVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBsb2FkaW5nVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBub1Jlc3VsdHNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dBbGxCeURlZmF1bHQgPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlID0gJ29mZic7XG5cbiAgLy8gc3BlY2lmeSB3aGljaCBsYWJlbC92YWx1ZSBwcm9wcyB0byB1c2VcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZztcblxuICAvLyBFdmVudGVtaXR0ZXIgZm9yIHNlYXJjaHZhbHVlIChwYXJlbnQgb2JqZWN0IHNob3VsZCB1cGRhdGUgdGhlIHJlc3VsdHMgd2l0aCB0aGlzIHBhcmFtKVxuICBAT3V0cHV0KCkgc2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZChGbHlvdXREaXJlY3RpdmUsIHtzdGF0aWM6IHRydWV9KSBmbHlvdXQ6IEZseW91dERpcmVjdGl2ZTtcbiAgQFZpZXdDaGlsZChGbHlvdXRab25lRGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSkgZmx5b3V0Wm9uZTogRmx5b3V0Wm9uZURpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7c3RhdGljOiB0cnVlfSkgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyBxdWVyeSA9ICcnO1xuICBwdWJsaWMgaW5kZXggPSAtMTsgLy8gaW5kZXggZm9yIGFjdGl2ZSBlbGVtZW50IGluIHNlbGVjdGFibGUgbGlzdCwgYnkgZGVmYXVsdCAtMSAoc28gaXQgc3RhcnRzIGluIHRoZSBpbnB1dCBmaWVsZClcbiAgcHVibGljIHNlbGVjdGVkSXRlbTogYW55ID0gbnVsbDsgLy8ga2VlcCBhIGJhY2t1cCBvZiB0aGUgc2VsZWN0ZWRJdGVtXG4gIHB1YmxpYyBzZWFyY2hpbmcgPSBmYWxzZTsgLy8gdHJhY2sgcmVtb3RlIHNlYXJjaCBzdGF0ZVxuICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVtb3RlVmFsdWUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTW9kZWwgPSAoXzogYW55KSA9PiB7XG4gIH1cblxuICAvLyBDT05UUk9MX1ZBTFVFX0FDQ0VTU09SIGludGVyZmFjZVxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZSA9ICcnKSB7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5kYXRhLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLnZhbHVlXSA9PT0gdmFsdWUpO1xuXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkgPSBzZWxlY3RlZFt0aGlzLmxhYmVsXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucmVtb3RlICYmICEhdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yZW1vdGVWYWx1ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5xdWVyeSA9IHZhbHVlO1xuICB9XG5cbiAgLy8gQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsID0gZm47XG4gIH1cblxuICAvLyBDT05UUk9MX1ZBTFVFX0FDQ0VTU09SIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKSB7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhKSAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMCkgJiYgIXRoaXMucXVlcnkgJiYgdGhpcy5zaG93QWxsQnlEZWZhdWx0KSB7XG4gICAgICB0aGlzLnJlc3VsdHMgPSBbLi4udGhpcy5kYXRhXTtcbiAgICB9XG4gIH1cblxuICAvLyBPbkNoYW5nZXMgaW50ZXJmYWNlXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV3RGF0YSA9IGdldChjaGFuZ2VzLCAnZGF0YS5jdXJyZW50VmFsdWUnLCBbXSk7XG4gICAgaWYgKCFpc0VxdWFsKG5ld0RhdGEsIGdldChjaGFuZ2VzLCAnZGF0YS5wcmV2aW91c1ZhbHVlJywgW10pKSkge1xuICAgICAgaWYgKHRoaXMucmVtb3RlKSB7XG4gICAgICAgIHRoaXMucmVtb3RlU2VhcmNoKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvY2FsU2VhcmNoKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMucmVzdWx0cyAmJiBjaGFuZ2VzLnJlc3VsdHMuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2UoaXRlbTogYW55KSB7XG4gICAgdGhpcy5xdWVyeSA9IGl0ZW0gIT09IG51bGwgPyAodGhpcy5sYWJlbCA/IGl0ZW1bdGhpcy5sYWJlbF0gOiBpdGVtKSA6ICcnO1xuICAgIHRoaXMuc2VsZWN0LmVtaXQoaXRlbSk7XG5cbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IHRoaXMubGFiZWwgPyB0aGlzLmxhYmVsIDogbnVsbDtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsKGtleSA/IGl0ZW1ba2V5XSB8fCAnJyA6IGl0ZW0pO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmlnZ2VycyBvbiBpbnB1dCB2YWx1ZSBjaGFuZ2VcbiAgICovXG4gIHB1YmxpYyBkb1NlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4ID0gLTE7IC8vIHJlc2V0IGluZGV4XG4gICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMucmVtb3RlKSB7XG4gICAgICB0aGlzLnNlYXJjaC5lbWl0KHRoaXMucXVlcnkpOyAvLyBhc2sgZm9yIG5ldyByZW1vdGUgZGF0YVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvY2FsU2VhcmNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuRmx5b3V0KCk7IC8vIG9wZW4gdGhlIGZseW91dCB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlXG4gIH1cblxuICAvKipcbiAgICogdHJpZ2dlcnMgb24gc2VsZWN0YWJsZS1saXN0OnNlbGVjdCAtPiBvbkNsaWNrIGV2ZW50IGluIHNlbGVjdGFibGUtbGlzdFxuICAgKi9cbiAgcHVibGljIG9uU2VsZWN0KGl0ZW06IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGl0ZW0pO1xuICAgIHRoaXMuY2xvc2VGbHlvdXQoKTsgLy8gQ2xvc2UgdGhlIGZseW91dCBtYW51YWxseVxuICB9XG5cbiAgcHVibGljIG9uRmx5b3V0Q2xvc2VkKCk6IHZvaWQge1xuICAgIC8vIHRoZXJlIGlzIG9ubHkgMSByZXN1bHQsIHNlbGVjdCBpdFxuICAgIGlmICh0aGlzLmluZGV4ID49IDAgJiYgdGhpcy5yZXN1bHRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMub25TZWxlY3QodGhpcy5yZXN1bHRzWzBdKTtcbiAgICB9XG5cbiAgICAvLyB0aGVyZSBpcyBubyBxdWVyeSBub3Igc2VsZWN0ZWQgaXRlbSwgY2xlYXIgdGhlIHNlbGVjdGVkIGl0ZW1cbiAgICBpZiAoIXRoaXMucXVlcnkgJiYgdGhpcy5pbmRleCA8IDApIHtcbiAgICAgIHJldHVybiB0aGlzLm9uU2VsZWN0KG51bGwpO1xuICAgIH1cblxuICAgIC8vIHJlc2V0IHRoZSBxdWVyeSBmb3IgYW4gaW52YWxpZCBxdWVyeSBpZiBjbGVhckludmFsaWQgaXMgdHJ1ZVxuICAgIGlmICh0aGlzLmNsZWFySW52YWxpZCAmJiB0aGlzLnF1ZXJ5ICYmICF0aGlzLnJlc3VsdHMubGVuZ3RoICYmIHRoaXMuaW5kZXggPCAwKSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5zZWxlY3RlZEl0ZW0gPyB0aGlzLmxhYmVsID8gdGhpcy5zZWxlY3RlZEl0ZW1bdGhpcy5sYWJlbF0gOiB0aGlzLnNlbGVjdGVkSXRlbSA6ICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleUFycm93RG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbmRleCA8IHRoaXMucmVzdWx0cy5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLnNjcm9sbExpc3QoMSk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlBcnJvd1VwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluZGV4ID49IDApIHtcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdCgtMSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uS2V5RW50ZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gRG8gbm90IHN1Ym1pdCBmb3JtIHdoZW4gc2VsZWN0aW5nIGFuIGl0ZW0uXG5cbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuaW5kZXggPj0gMCA/IHRoaXMucmVzdWx0c1t0aGlzLmluZGV4XSA6IHRoaXMucXVlcnk7XG5cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShxdWVyeSk7XG4gICAgdGhpcy5jbG9zZUZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RXNjYXBlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VGbHlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5vcGVuRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkZseW91dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mbHlvdXQpIHtcbiAgICAgIHRoaXMuZmx5b3V0Lm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VGbHlvdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmx5b3V0KSB7XG4gICAgICB0aGlzLmZseW91dC5jbG9zZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGxvY2FsU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0cyA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2godGhpcy5kYXRhLCB7XG4gICAgICBtaW5MZW5ndGg6IHRoaXMubWluQ2hhcmFjdGVycyxcbiAgICAgIGtleTogdGhpcy5sYWJlbCxcbiAgICAgIHF1ZXJ5OiB0aGlzLnF1ZXJ5LFxuICAgICAgc2hvd0FsbEJ5RGVmYXVsdDogdGhpcy5zaG93QWxsQnlEZWZhdWx0LFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucmVzdWx0cy5sZW5ndGggPT09IDEgJiYgdGhpcy5xdWVyeSA9PT0gdGhpcy5yZXN1bHRzWzBdW3RoaXMubGFiZWxdKSB7XG4gICAgICB0aGlzLmluZGV4ID0gMDtcbiAgICB9XG5cbiAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHJlbW90ZVNlYXJjaCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVtb3RlVmFsdWUgfHwgIXRoaXMuZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5kYXRhLmZpbmQoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1bdGhpcy52YWx1ZV0gPT09IHRoaXMucXVlcnk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtID09PSB0aGlzLnF1ZXJ5O1xuICAgIH0pO1xuXG4gICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5sYWJlbCA/IHNlbGVjdGVkW3RoaXMubGFiZWxdIDogc2VsZWN0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLnJlbW90ZVZhbHVlID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsTGlzdChmYWN0b3I6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaW5kZXggKz0gZmFjdG9yO1xuXG4gICAgaWYgKCF0aGlzLmZseW91dFpvbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaUl0ZW1zID0gdGhpcy5mbHlvdXRab25lLmVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7XG4gICAgY29uc3QgbGlIZWlnaHQgPSAobGlJdGVtc1sxXSA/IGxpSXRlbXNbMV0ub2Zmc2V0SGVpZ2h0IDogbGlJdGVtc1swXS5vZmZzZXRIZWlnaHQpO1xuICAgIGNvbnN0IHpvbmVIZWlnaHQgPSB0aGlzLmZseW91dFpvbmUuZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3Qgb2Zmc2V0ID0gKHpvbmVIZWlnaHQgLyBsaUhlaWdodCkgLyAyO1xuXG4gICAgdGhpcy5mbHlvdXRab25lLmVsZW1lbnQuc2Nyb2xsVG9wID0gKHRoaXMuaW5kZXggKiBsaUhlaWdodCkgLSAob2Zmc2V0ICogbGlIZWlnaHQpO1xuICB9XG59XG4iXX0=
@@ -9,8 +9,10 @@ import { Uploader } from '../../classes/uploader.class';
9
9
  export class UploadComponent {
10
10
  constructor() {
11
11
  this.id = '';
12
+ this.accept = [];
12
13
  this.ariaLabelRemove = 'Verwijder';
13
14
  this.disabled = false;
15
+ this.multiple = true;
14
16
  this.options = UPLOAD_OPTIONS_DEFAULT;
15
17
  this.selectUploadedFiles = new EventEmitter();
16
18
  this.uploadedFiles = [];
@@ -52,14 +54,16 @@ export class UploadComponent {
52
54
  UploadComponent.decorators = [
53
55
  { type: Component, args: [{
54
56
  selector: 'aui-upload',
55
- template: "<div class=\"m-upload aui-upload\">\n <aui-upload-zone (invalidFiles)=\"onInvalidFiles($event)\" (queuedFiles)=\"onQueuedFiles($event)\" (uploadedFiles)=\"onUploadedFiles($event)\" [ariaId]=\"ariaId\"\n [disabled]=\"disabled\" [id]=\"id\"\n [uploader]=\"uploader\">\n <div class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </div>\n <div class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </div>\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n </aui-upload-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue (uploadedFiles)=\"onUploadedFiles($event)\" *ngIf=\"!options?.autoUpload\" [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\" [uploader]=\"uploader\"></aui-upload-queue>\n</div>\n",
57
+ template: "<div class=\"m-upload aui-upload\">\n <aui-upload-zone\n [id]=\"id\"\n [accept]=\"accept\"\n [ariaId]=\"ariaId\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [uploader]=\"uploader\"\n (invalidFiles)=\"onInvalidFiles($event)\"\n (queuedFiles)=\"onQueuedFiles($event)\"\n (uploadedFiles)=\"onUploadedFiles($event)\">\n <div class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </div>\n <div class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </div>\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n </aui-upload-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue (uploadedFiles)=\"onUploadedFiles($event)\" *ngIf=\"!options?.autoUpload\" [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\" [uploader]=\"uploader\"></aui-upload-queue>\n</div>\n",
56
58
  styles: [".m-upload__button>.m-upload__input{display:none}"]
57
59
  }] }
58
60
  ];
59
61
  UploadComponent.propDecorators = {
60
62
  id: [{ type: Input }],
63
+ accept: [{ type: Input }],
61
64
  ariaLabelRemove: [{ type: Input }],
62
65
  disabled: [{ type: Input }],
66
+ multiple: [{ type: Input }],
63
67
  options: [{ type: Input }],
64
68
  selectUploadedFiles: [{ type: Output }]
65
69
  };
@@ -67,10 +71,14 @@ if (false) {
67
71
  /** @type {?} */
68
72
  UploadComponent.prototype.id;
69
73
  /** @type {?} */
74
+ UploadComponent.prototype.accept;
75
+ /** @type {?} */
70
76
  UploadComponent.prototype.ariaLabelRemove;
71
77
  /** @type {?} */
72
78
  UploadComponent.prototype.disabled;
73
79
  /** @type {?} */
80
+ UploadComponent.prototype.multiple;
81
+ /** @type {?} */
74
82
  UploadComponent.prototype.options;
75
83
  /** @type {?} */
76
84
  UploadComponent.prototype.selectUploadedFiles;
@@ -85,4 +93,4 @@ if (false) {
85
93
  /** @type {?} */
86
94
  UploadComponent.prototype.queuedFiles;
87
95
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY3BhYXMtdWkvbmd4LWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3VwbG9hZC9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFTeEQsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRa0IsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLG9CQUFlLEdBQUcsV0FBVyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFrQixzQkFBc0IsQ0FBQztRQUMvQyx3QkFBbUIsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUlyRixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7SUFxQmxDLENBQUM7Ozs7SUFuQlEsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkU7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7OztJQUVNLGVBQWUsQ0FBQyxLQUFlO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7SUFFTSxjQUFjLENBQUMsS0FBb0I7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7OztZQXRDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBSXRCLDQ5QkFBc0M7O2FBQ3ZDOzs7aUJBRUUsS0FBSzs4QkFDTCxLQUFLO3VCQUNMLEtBQUs7c0JBQ0wsS0FBSztrQ0FDTCxNQUFNOzs7O0lBSlAsNkJBQXdCOztJQUN4QiwwQ0FBOEM7O0lBQzlDLG1DQUFpQzs7SUFDakMsa0NBQWdFOztJQUNoRSw4Q0FBNEY7O0lBRTVGLG1DQUFnQjs7SUFDaEIsaUNBQWM7O0lBQ2Qsd0NBQW9DOztJQUNwQyx1Q0FBd0M7O0lBQ3hDLHNDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSW52YWxpZEZpbGUsIFVwbG9hZE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcy91cGxvYWQudHlwZXMnO1xuaW1wb3J0IHsgVVBMT0FEX09QVElPTlNfREVGQVVMVCB9IGZyb20gJy4uLy4uL3VwbG9hZC5jb25mJztcbmltcG9ydCB7IFVwbG9hZGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy91cGxvYWRlci5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS11cGxvYWQnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi91cGxvYWQuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGlkID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhcmlhTGFiZWxSZW1vdmUgPSAnVmVyd2lqZGVyJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBVcGxvYWRPcHRpb25zID0gVVBMT0FEX09QVElPTlNfREVGQVVMVDtcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RVcGxvYWRlZEZpbGVzOiBFdmVudEVtaXR0ZXI8b2JqZWN0W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3RbXT4oKTtcblxuICBwdWJsaWMgdXBsb2FkZXI7XG4gIHB1YmxpYyBhcmlhSWQ7XG4gIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBvYmplY3RbXSA9IFtdO1xuICBwdWJsaWMgaW52YWxpZEZpbGVzOiBJbnZhbGlkRmlsZVtdID0gW107XG4gIHB1YmxpYyBxdWV1ZWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgdGhpcy5hcmlhSWQgPSAnYXVpLXVwbG9hZC0nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuICAgIH1cbiAgICB0aGlzLnVwbG9hZGVyID0gbmV3IFVwbG9hZGVyKHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgb25VcGxvYWRlZEZpbGVzKGZpbGVzOiBvYmplY3RbXSkge1xuICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcy5jb25jYXQoZmlsZXMpO1xuICAgIHRoaXMuc2VsZWN0VXBsb2FkZWRGaWxlcy5lbWl0KHRoaXMudXBsb2FkZWRGaWxlcyk7XG4gIH1cblxuICBwdWJsaWMgb25JbnZhbGlkRmlsZXMoZmlsZXM6IEludmFsaWRGaWxlW10pIHtcbiAgICB0aGlzLmludmFsaWRGaWxlcyA9IGZpbGVzO1xuICB9XG5cbiAgcHVibGljIG9uUXVldWVkRmlsZXMoZmlsZXM6IEZpbGVbXSkge1xuICAgIHRoaXMucXVldWVkRmlsZXMgPSB0aGlzLnF1ZXVlZEZpbGVzLmNvbmNhdChmaWxlcyk7XG4gIH1cbn1cbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY3BhYXMtdWkvbmd4LWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3VwbG9hZC9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFTeEQsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRa0IsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixvQkFBZSxHQUFHLFdBQVcsQ0FBQztRQUM5QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsWUFBTyxHQUFrQixzQkFBc0IsQ0FBQztRQUMvQyx3QkFBbUIsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUlyRixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7SUFxQmxDLENBQUM7Ozs7SUFuQlEsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkU7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7OztJQUVNLGVBQWUsQ0FBQyxLQUFlO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7SUFFTSxjQUFjLENBQUMsS0FBb0I7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7OztZQXhDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBSXRCLDJpQ0FBc0M7O2FBQ3ZDOzs7aUJBRUUsS0FBSztxQkFDTCxLQUFLOzhCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3NCQUNMLEtBQUs7a0NBQ0wsTUFBTTs7OztJQU5QLDZCQUF3Qjs7SUFDeEIsaUNBQTRCOztJQUM1QiwwQ0FBOEM7O0lBQzlDLG1DQUFpQzs7SUFDakMsbUNBQWdDOztJQUNoQyxrQ0FBZ0U7O0lBQ2hFLDhDQUE0Rjs7SUFFNUYsbUNBQWdCOztJQUNoQixpQ0FBYzs7SUFDZCx3Q0FBb0M7O0lBQ3BDLHVDQUF3Qzs7SUFDeEMsc0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJbnZhbGlkRmlsZSwgVXBsb2FkT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL3VwbG9hZC50eXBlcyc7XG5pbXBvcnQgeyBVUExPQURfT1BUSU9OU19ERUZBVUxUIH0gZnJvbSAnLi4vLi4vdXBsb2FkLmNvbmYnO1xuaW1wb3J0IHsgVXBsb2FkZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3VwbG9hZGVyLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXVwbG9hZCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL3VwbG9hZC5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgaWQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGFjY2VwdCA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsUmVtb3ZlID0gJ1ZlcndpamRlcic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGUgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogVXBsb2FkT3B0aW9ucyA9IFVQTE9BRF9PUFRJT05TX0RFRkFVTFQ7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0VXBsb2FkZWRGaWxlczogRXZlbnRFbWl0dGVyPG9iamVjdFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0W10+KCk7XG5cbiAgcHVibGljIHVwbG9hZGVyO1xuICBwdWJsaWMgYXJpYUlkO1xuICBwdWJsaWMgdXBsb2FkZWRGaWxlczogb2JqZWN0W10gPSBbXTtcbiAgcHVibGljIGludmFsaWRGaWxlczogSW52YWxpZEZpbGVbXSA9IFtdO1xuICBwdWJsaWMgcXVldWVkRmlsZXM6IEZpbGVbXSA9IFtdO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgIHRoaXMuYXJpYUlkID0gJ2F1aS11cGxvYWQtJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbiAgICB9XG4gICAgdGhpcy51cGxvYWRlciA9IG5ldyBVcGxvYWRlcih0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIG9uVXBsb2FkZWRGaWxlcyhmaWxlczogb2JqZWN0W10pIHtcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuY29uY2F0KGZpbGVzKTtcbiAgICB0aGlzLnNlbGVjdFVwbG9hZGVkRmlsZXMuZW1pdCh0aGlzLnVwbG9hZGVkRmlsZXMpO1xuICB9XG5cbiAgcHVibGljIG9uSW52YWxpZEZpbGVzKGZpbGVzOiBJbnZhbGlkRmlsZVtdKSB7XG4gICAgdGhpcy5pbnZhbGlkRmlsZXMgPSBmaWxlcztcbiAgfVxuXG4gIHB1YmxpYyBvblF1ZXVlZEZpbGVzKGZpbGVzOiBGaWxlW10pIHtcbiAgICB0aGlzLnF1ZXVlZEZpbGVzID0gdGhpcy5xdWV1ZWRGaWxlcy5jb25jYXQoZmlsZXMpO1xuICB9XG59XG4iXX0=
@@ -3,14 +3,19 @@
3
3
  * Generated from: lib/upload/components/upload-zone/upload-zone.component.ts
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
- import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
6
+ import { Component, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2, ViewChild } from '@angular/core';
7
7
  import { Uploader } from '../../classes/uploader.class';
8
8
  export class UploadZoneComponent {
9
- constructor() {
10
- this.disabled = false;
11
- this.multiple = true;
9
+ /**
10
+ * @param {?} renderer
11
+ */
12
+ constructor(renderer) {
13
+ this.renderer = renderer;
12
14
  this.id = '';
15
+ this.accept = [];
13
16
  this.ariaId = '';
17
+ this.disabled = false;
18
+ this.multiple = true;
14
19
  this.uploadedFiles = new EventEmitter();
15
20
  this.queuedFiles = new EventEmitter();
16
21
  this.invalidFiles = new EventEmitter();
@@ -58,6 +63,29 @@ export class UploadZoneComponent {
58
63
  const files = this.fileListToArray(this.fileInput.nativeElement.files);
59
64
  this.handleFiles(files);
60
65
  }
66
+ /**
67
+ * @param {?} event
68
+ * @return {?}
69
+ */
70
+ onFileClick(event) {
71
+ // When removing a file make sure you can add it again later
72
+ // See: https://stackoverflow.com/questions/59870335/ng2-file-upload-not-allowing-me-to-add-same-doc-after-ive-removed-it-from-que
73
+ event.target.value = '';
74
+ }
75
+ /**
76
+ * @return {?}
77
+ */
78
+ ngAfterViewInit() {
79
+ if (this.multiple !== false) {
80
+ this.renderer.setProperty(this.fileInput.nativeElement, 'multiple', 'multiple');
81
+ }
82
+ if (this.accept) {
83
+ this.renderer.setProperty(this.fileInput.nativeElement, 'accept', this.accept.join());
84
+ }
85
+ if (this.disabled) {
86
+ this.renderer.setProperty(this.fileInput.nativeElement, 'disabled', 'disabled');
87
+ }
88
+ }
61
89
  /**
62
90
  * @protected
63
91
  * @param {?} files
@@ -124,16 +152,21 @@ export class UploadZoneComponent {
124
152
  UploadZoneComponent.decorators = [
125
153
  { type: Component, args: [{
126
154
  selector: 'aui-upload-zone',
127
- template: "<div *ngIf=\"uploader.options.type === 'drop'\" [class.is-disabled]=\"disabled\" class=\"m-upload\">\n <div class=\"m-upload__inner\">\n <div class=\"m-upload__dropzone\">\n <input #fileInput (change)=\"updateFiles()\" *ngIf=\"multiple\" [attr.aria-labelledby]=\"ariaId\" [disabled]=\"disabled\" [id]=\"id\"\n class=\"m-upload__input\" multiple type=\"file\">\n <input #fileInput (change)=\"updateFiles()\" *ngIf=\"!multiple\" [attr.aria-labelledby]=\"ariaId\" [disabled]=\"disabled\"\n [id]=\"id\" class=\"m-upload__input\" type=\"file\">\n\n <div *ngIf=\"!uploadProgress || uploadProgress === 0\" class=\"m-upload__content\">\n <p [id]=\"ariaId\" class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </p>\n </div>\n\n <ng-container *ngIf=\"uploadProgress > 0\">\n <p class=\"m-upload__uploads u-text-bold u-margin-bottom-xs\">\n <ng-container *ngFor=\"let file of uploadingFiles; let last = last\">\n {{ file.name }}\n <ng-container *ngIf=\"!last\">,</ng-container>\n </ng-container>\n </p>\n <aui-progress-bar [value]=\"uploadProgress\" max=\"100\"></aui-progress-bar>\n </ng-container>\n </div>\n </div>\n\n <small class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </small>\n</div>\n\n<button (click)=\"triggerFile()\" *ngIf=\"uploader.options.type === 'button'\" [disabled]=\"disabled\" class=\"a-button m-upload__button\"\n type=\"button\">\n <span [id]=\"ariaId\"><ng-content select=\".m-upload__button\"></ng-content></span>\n <input #fileInput (change)=\"updateFiles()\" [attr.aria-labelledby]=\"ariaId\" [disabled]=\"disabled\" [id]=\"id\"\n class=\"m-upload__input\" multiple=\"multiple\" type=\"file\">\n</button>\n"
155
+ template: "<div *ngIf=\"uploader.options.type === 'drop'\" [class.is-disabled]=\"disabled\" class=\"m-upload\">\n <div class=\"m-upload__inner\">\n <div class=\"m-upload__dropzone\">\n <input\n #fileInput\n type=\"file\"\n class=\"m-upload__input\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaId\"\n (click)=\"onFileClick($event)\"\n (change)=\"updateFiles()\">\n\n <div *ngIf=\"!uploadProgress || uploadProgress === 0\" class=\"m-upload__content\">\n <p [id]=\"ariaId\" class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </p>\n </div>\n\n <ng-container *ngIf=\"uploadProgress > 0\">\n <p class=\"m-upload__uploads u-text-bold u-margin-bottom-xs\">\n <ng-container *ngFor=\"let file of uploadingFiles; let last = last\">\n {{ file.name }}\n <ng-container *ngIf=\"!last\">,</ng-container>\n </ng-container>\n </p>\n <aui-progress-bar [value]=\"uploadProgress\" max=\"100\"></aui-progress-bar>\n </ng-container>\n </div>\n </div>\n\n <small class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </small>\n</div>\n\n<button (click)=\"triggerFile()\" *ngIf=\"uploader.options.type === 'button'\" [disabled]=\"disabled\" class=\"a-button m-upload__button\"\n type=\"button\">\n <span [id]=\"ariaId\"><ng-content select=\".m-upload__button\"></ng-content></span>\n <input\n #fileInput\n type=\"file\"\n class=\"m-upload__input\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaId\"\n (click)=\"onFileClick($event)\"\n (change)=\"updateFiles()\">\n</button>\n"
128
156
  }] }
129
157
  ];
158
+ /** @nocollapse */
159
+ UploadZoneComponent.ctorParameters = () => [
160
+ { type: Renderer2 }
161
+ ];
130
162
  UploadZoneComponent.propDecorators = {
131
163
  fileInput: [{ type: ViewChild, args: ['fileInput', { static: false },] }],
132
164
  uploader: [{ type: Input }],
133
- disabled: [{ type: Input }],
134
- multiple: [{ type: Input }],
135
165
  id: [{ type: Input }],
166
+ accept: [{ type: Input }],
136
167
  ariaId: [{ type: Input }],
168
+ disabled: [{ type: Input }],
169
+ multiple: [{ type: Input }],
137
170
  uploadedFiles: [{ type: Output }],
138
171
  queuedFiles: [{ type: Output }],
139
172
  invalidFiles: [{ type: Output }],
@@ -147,14 +180,16 @@ if (false) {
147
180
  /** @type {?} */
148
181
  UploadZoneComponent.prototype.uploader;
149
182
  /** @type {?} */
150
- UploadZoneComponent.prototype.disabled;
151
- /** @type {?} */
152
- UploadZoneComponent.prototype.multiple;
153
- /** @type {?} */
154
183
  UploadZoneComponent.prototype.id;
155
184
  /** @type {?} */
185
+ UploadZoneComponent.prototype.accept;
186
+ /** @type {?} */
156
187
  UploadZoneComponent.prototype.ariaId;
157
188
  /** @type {?} */
189
+ UploadZoneComponent.prototype.disabled;
190
+ /** @type {?} */
191
+ UploadZoneComponent.prototype.multiple;
192
+ /** @type {?} */
158
193
  UploadZoneComponent.prototype.uploadedFiles;
159
194
  /** @type {?} */
160
195
  UploadZoneComponent.prototype.queuedFiles;
@@ -168,5 +203,10 @@ if (false) {
168
203
  UploadZoneComponent.prototype.uploadProgress;
169
204
  /** @type {?} */
170
205
  UploadZoneComponent.prototype.uploadingFiles;
206
+ /**
207
+ * @type {?}
208
+ * @private
209
+ */
210
+ UploadZoneComponent.prototype.renderer;
171
211
  }
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjcGFhcy11aS9uZ3gtZm9ybXMvIiwic291cmNlcyI6WyJsaWIvdXBsb2FkL2NvbXBvbmVudHMvdXBsb2FkLXpvbmUvdXBsb2FkLXpvbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFNeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUpoQztRQVFrQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWCxrQkFBYSxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBQ3JFLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDL0QsaUJBQVksR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFeEYsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7SUF3RTVCLENBQUM7Ozs7O0lBcEVRLFVBQVUsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQzs7Ozs7SUFHTSxXQUFXLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7Ozs7O0lBR00sTUFBTSxDQUFDLEtBQVU7UUFDdEIs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RSxDQUFDLFFBQVEsQ0FBQzs7OztJQTVCaEMsd0NBQStEOztJQUUvRCx1Q0FBbUM7O0lBQ25DLHVDQUFpQzs7SUFDakMsdUNBQWdDOztJQUNoQyxpQ0FBd0I7O0lBQ3hCLHFDQUE0Qjs7SUFDNUIsNENBQXNGOztJQUN0RiwwQ0FBZ0Y7O0lBQ2hGLDJDQUErRjs7SUFFL0YsMENBQTJCOztJQUMzQix5Q0FBMEI7O0lBQzFCLDZDQUEwQjs7SUFDMUIsNkNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEludmFsaWRGaWxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXBsb2FkLnR5cGVzJztcbmltcG9ydCB7IFVwbG9hZGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy91cGxvYWRlci5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS11cGxvYWQtem9uZScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtem9uZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZFpvbmVDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7c3RhdGljOiBmYWxzZX0pIGZpbGVJbnB1dDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkZXI6IFVwbG9hZGVyO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG11bHRpcGxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGlkID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhcmlhSWQgPSAnJztcbiAgQE91dHB1dCgpIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBFdmVudEVtaXR0ZXI8b2JqZWN0W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3RbXT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBxdWV1ZWRGaWxlczogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBpbnZhbGlkRmlsZXM6IEV2ZW50RW1pdHRlcjxJbnZhbGlkRmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8SW52YWxpZEZpbGVbXT4oKTtcblxuICBwdWJsaWMgaGFzRHJhZ092ZXIgPSBmYWxzZTtcbiAgcHVibGljIGNsYXNzTmFtZXM6IHN0cmluZztcbiAgcHVibGljIHVwbG9hZFByb2dyZXNzID0gMDtcbiAgcHVibGljIHVwbG9hZGluZ0ZpbGVzOiBGaWxlW107XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgdGhpcy5oYXNEcmFnT3ZlciA9IHRydWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnTGVhdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudEFuZFN0b3AoZXZlbnQpO1xuICAgIHRoaXMuaGFzRHJhZ092ZXIgPSBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Ecm9wKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICB0aGlzLmhhc0RyYWdPdmVyID0gZmFsc2U7XG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLmZpbGVMaXN0VG9BcnJheShldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgIHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJGaWxlKCkge1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWxlcygpIHtcbiAgICBjb25zdCBmaWxlczogYW55W10gPSB0aGlzLmZpbGVMaXN0VG9BcnJheSh0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmZpbGVzKTtcbiAgICB0aGlzLmhhbmRsZUZpbGVzKGZpbGVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVGaWxlcyhmaWxlcykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy51cGxvYWRlci52YWxpZGF0ZUZpbGVzKGZpbGVzKTtcbiAgICB0aGlzLmludmFsaWRGaWxlcy5lbWl0KHJlc3BvbnNlLmludmFsaWRGaWxlcyk7XG5cbiAgICBpZiAodGhpcy51cGxvYWRlci5vcHRpb25zLmF1dG9VcGxvYWQgJiYgcmVzcG9uc2UudmFsaWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGVzKHJlc3BvbnNlLnZhbGlkRmlsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXVlZEZpbGVzLmVtaXQocmVzcG9uc2UudmFsaWRGaWxlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwbG9hZEZpbGVzKGZpbGVzKSB7XG4gICAgLy8gUmVzZXQgcHJvZ3Jlc3NcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gMDtcbiAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzID0gZmlsZXM7XG5cbiAgICAvLyB1cGxvYWRcbiAgICB0aGlzLnVwbG9hZGVyLnVwbG9hZEZpbGVzKGZpbGVzKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnByb2dyZXNzKSB7XG4gICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IE1hdGguZmxvb3IocmVzcG9uc2UucHJvZ3Jlc3MgKiAxMDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLmVtaXQocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmaWxlTGlzdFRvQXJyYXkobGlzdDogRmlsZUxpc3QpOiBvYmplY3RbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obGlzdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmVudEFuZFN0b3AoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjcGFhcy11aS9uZ3gtZm9ybXMvIiwic291cmNlcyI6WyJsaWIvdXBsb2FkL2NvbXBvbmVudHMvdXBsb2FkLXpvbmUvdXBsb2FkLXpvbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RJLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU14RCxNQUFNLE9BQU8sbUJBQW1COzs7O0lBc0M5QixZQUNVLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFuQ2IsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2Ysa0JBQWEsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUNyRSxnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQy9ELGlCQUFZLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRXhGLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO0lBeUJ2QixDQUFDOzs7OztJQXJCRyxVQUFVLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBR00sV0FBVyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztR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bXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJbnZhbGlkRmlsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3VwbG9hZC50eXBlcyc7XG5pbXBvcnQgeyBVcGxvYWRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdXBsb2FkZXIuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdXBsb2FkLXpvbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLXpvbmUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRab25lQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcsIHtzdGF0aWM6IGZhbHNlfSkgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyB1cGxvYWRlcjogVXBsb2FkZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBhcmlhSWQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZSA9IHRydWU7XG4gIEBPdXRwdXQoKSBwdWJsaWMgdXBsb2FkZWRGaWxlczogRXZlbnRFbWl0dGVyPG9iamVjdFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0W10+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcXVldWVkRmlsZXM6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaW52YWxpZEZpbGVzOiBFdmVudEVtaXR0ZXI8SW52YWxpZEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEludmFsaWRGaWxlW10+KCk7XG5cbiAgcHVibGljIGhhc0RyYWdPdmVyID0gZmFsc2U7XG4gIHB1YmxpYyBjbGFzc05hbWVzOiBzdHJpbmc7XG4gIHB1YmxpYyB1cGxvYWRQcm9ncmVzcyA9IDA7XG4gIHB1YmxpYyB1cGxvYWRpbmdGaWxlczogRmlsZVtdO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ092ZXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudEFuZFN0b3AoZXZlbnQpO1xuICAgIHRoaXMuaGFzRHJhZ092ZXIgPSB0cnVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnRBbmRTdG9wKGV2ZW50KTtcbiAgICB0aGlzLmhhc0RyYWdPdmVyID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJvcChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcmV2ZW50QW5kU3RvcChldmVudCk7XG4gICAgdGhpcy5oYXNEcmFnT3ZlciA9IGZhbHNlO1xuICAgIGNvbnN0IGZpbGVzID0gdGhpcy5maWxlTGlzdFRvQXJyYXkoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB0aGlzLmhhbmRsZUZpbGVzKGZpbGVzKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7fVxuXG4gIHB1YmxpYyB0cmlnZ2VyRmlsZSgpIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmlsZXMoKSB7XG4gICAgY29uc3QgZmlsZXM6IGFueVtdID0gdGhpcy5maWxlTGlzdFRvQXJyYXkodGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5maWxlcyk7XG4gICAgdGhpcy5oYW5kbGVGaWxlcyhmaWxlcyk7XG4gIH1cblxuICBwdWJsaWMgb25GaWxlQ2xpY2soZXZlbnQpIHtcbiAgICAvLyBXaGVuIHJlbW92aW5nIGEgZmlsZSBtYWtlIHN1cmUgeW91IGNhbiBhZGQgaXQgYWdhaW4gbGF0ZXJcbiAgICAvLyBTZWU6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU5ODcwMzM1L25nMi1maWxlLXVwbG9hZC1ub3QtYWxsb3dpbmctbWUtdG8tYWRkLXNhbWUtZG9jLWFmdGVyLWl2ZS1yZW1vdmVkLWl0LWZyb20tcXVlXG4gICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgIT09IGZhbHNlKSB7IHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCwgJ211bHRpcGxlJywgJ211bHRpcGxlJyk7IH1cbiAgICBpZiAodGhpcy5hY2NlcHQpIHsgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LCAnYWNjZXB0JywgdGhpcy5hY2NlcHQuam9pbigpKTsgfVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7IH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVGaWxlcyhmaWxlcykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy51cGxvYWRlci52YWxpZGF0ZUZpbGVzKGZpbGVzKTtcbiAgICB0aGlzLmludmFsaWRGaWxlcy5lbWl0KHJlc3BvbnNlLmludmFsaWRGaWxlcyk7XG5cbiAgICBpZiAodGhpcy51cGxvYWRlci5vcHRpb25zLmF1dG9VcGxvYWQgJiYgcmVzcG9uc2UudmFsaWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnVwbG9hZEZpbGVzKHJlc3BvbnNlLnZhbGlkRmlsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXVlZEZpbGVzLmVtaXQocmVzcG9uc2UudmFsaWRGaWxlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwbG9hZEZpbGVzKGZpbGVzKSB7XG4gICAgLy8gUmVzZXQgcHJvZ3Jlc3NcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gMDtcbiAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzID0gZmlsZXM7XG5cbiAgICAvLyB1cGxvYWRcbiAgICB0aGlzLnVwbG9hZGVyLnVwbG9hZEZpbGVzKGZpbGVzKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnByb2dyZXNzKSB7XG4gICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IE1hdGguZmxvb3IocmVzcG9uc2UucHJvZ3Jlc3MgKiAxMDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLmVtaXQocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmaWxlTGlzdFRvQXJyYXkobGlzdDogRmlsZUxpc3QpOiBvYmplY3RbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obGlzdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmVudEFuZFN0b3AoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuIl19
@@ -23,6 +23,7 @@ var AutoCompleteComponent = /** @class */ (function () {
23
23
  this.mask = null;
24
24
  this.clearInvalid = false;
25
25
  this.showAllByDefault = false;
26
+ this.autoComplete = 'off';
26
27
  // Eventemitter for searchvalue (parent object should update the results with this param)
27
28
  this.search = new EventEmitter();
28
29
  this.select = new EventEmitter();
@@ -386,7 +387,7 @@ var AutoCompleteComponent = /** @class */ (function () {
386
387
  AutoCompleteComponent.decorators = [
387
388
  { type: Component, args: [{
388
389
  selector: 'aui-auto-complete',
389
- template: "<div (closed)=\"onFlyoutClosed()\" [toggleClick]=\"false\" aria-haspopup=\"listbox\"\n auiFlyout class=\"m-flyout--scrollable m-flyout--full o-auto-complete\">\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"!mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n autocomplete=\"off\"\n type=\"text\"\n />\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"mask\"\n [auiMask]=\"mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n autocomplete=\"off\"\n type=\"text\"\n />\n\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n\t\t<span *ngIf=\"focused && loadingText && searching\" class=\"o-auto-complete__info u-text-light u-margin-xs\">\n\t\t\t<span class=\"a-spinner a-spinner--inline a-spinner--sm u-margin-right-xs\"></span>\n {{ loadingText }}\n\t\t</span>\n <span *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ searchIncentiveText }}</span>\n <span *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ noResultsText }}</span>\n\n <aui-selectable-list (selected)=\"onSelect($event)\" *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\" [index]=\"index\" [itemTemplate]=\"template\"\n [items]=\"results\" [label]=\"label\"\n [search]=\"query\"></aui-selectable-list>\n </div>\n</div>\n",
390
+ template: "<div (closed)=\"onFlyoutClosed()\" [toggleClick]=\"false\" aria-haspopup=\"listbox\"\n auiFlyout class=\"m-flyout--scrollable m-flyout--full o-auto-complete\">\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"!mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n />\n <input (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"mask\"\n [auiMask]=\"mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n />\n\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n\t\t<span *ngIf=\"focused && loadingText && searching\" class=\"o-auto-complete__info u-text-light u-margin-xs\">\n\t\t\t<span class=\"a-spinner a-spinner--inline a-spinner--sm u-margin-right-xs\"></span>\n {{ loadingText }}\n\t\t</span>\n <span *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ searchIncentiveText }}</span>\n <span *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\">{{ noResultsText }}</span>\n\n <aui-selectable-list (selected)=\"onSelect($event)\" *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\" [index]=\"index\" [itemTemplate]=\"template\"\n [items]=\"results\" [label]=\"label\"\n [search]=\"query\"></aui-selectable-list>\n </div>\n</div>\n",
390
391
  providers: [
391
392
  {
392
393
  provide: NG_VALUE_ACCESSOR,
@@ -419,6 +420,7 @@ var AutoCompleteComponent = /** @class */ (function () {
419
420
  loadingText: [{ type: Input }],
420
421
  noResultsText: [{ type: Input }],
421
422
  showAllByDefault: [{ type: Input }],
423
+ autoComplete: [{ type: Input }],
422
424
  label: [{ type: Input }],
423
425
  value: [{ type: Input }],
424
426
  search: [{ type: Output }],
@@ -456,6 +458,8 @@ if (false) {
456
458
  /** @type {?} */
457
459
  AutoCompleteComponent.prototype.showAllByDefault;
458
460
  /** @type {?} */
461
+ AutoCompleteComponent.prototype.autoComplete;
462
+ /** @type {?} */
459
463
  AutoCompleteComponent.prototype.label;
460
464
  /** @type {?} */
461
465
  AutoCompleteComponent.prototype.value;
@@ -499,4 +503,4 @@ if (false) {
499
503
  */
500
504
  AutoCompleteComponent.prototype.searchService;
501
505
  }
502
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9hdXRvLWNvbXBsZXRlL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFeEU7SUFrREUsK0JBQ1UsR0FBZSxFQUNmLGFBQTRCO1FBRDVCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQW5DN0IsWUFBTyxHQUFVLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQzs7UUFDMUQsU0FBSSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHlEQUF5RDs7UUFDM0UsV0FBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLG1DQUFtQzs7UUFDbkQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7O1FBT3hCLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFF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TCxLQUFLOytCQUNMLEtBQUs7c0NBQ0wsS0FBSzs4QkFDTCxLQUFLO2dDQUNMLEtBQUs7bUNBQ0wsS0FBSzt3QkFHTCxLQUFLO3dCQUNMLEtBQUs7eUJBR0wsTUFBTTt5QkFDTixNQUFNO3lCQUVOLFNBQVMsU0FBQyxlQUFlLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOzZCQUN6QyxTQUFTLFNBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOzJCQUU3QyxZQUFZLFNBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzs7SUFtTzNDLDRCQUFDO0NBQUEsQUExUUQsSUEwUUM7U0E1UFkscUJBQXFCOzs7SUFDaEMsbUNBQW9COztJQUNwQiw0Q0FBNkI7O0lBQzdCLHdDQUE2Qjs7SUFDN0IscUNBQTBCOztJQUMxQix1Q0FBd0I7O0lBQ3hCLDhDQUEyQjs7SUFDM0IscUNBQTZCOztJQUM3Qiw2Q0FBOEI7O0lBQzlCLG9EQUFxQzs7SUFDckMsNENBQTZCOztJQUM3Qiw4Q0FBK0I7O0lBQy9CLGlEQUFrQzs7SUFHbEMsc0NBQXVCOztJQUN2QixzQ0FBdUI7O0lBR3ZCLHVDQUE0RDs7SUFDNUQsdUNBQXlEOztJQUV6RCx1Q0FBb0U7O0lBQ3BFLDJDQUFnRjs7SUFFaEYseUNBQTZFOztJQUU3RSxzQ0FBa0I7O0lBQ2xCLHNDQUFrQjs7SUFDbEIsNkNBQWdDOztJQUNoQywwQ0FBeUI7O0lBQ3pCLHdDQUF1Qjs7SUFDdkIsMkNBQTBCOzs7OztJQUUxQiw0Q0FBNEI7O0lBUTVCLDRDQUNDOzs7OztJQU5DLG9DQUF1Qjs7Ozs7SUFDdkIsOENBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlLCBGbHlvdXRab25lRGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvc2VhcmNoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktYXV0by1jb21wbGV0ZScsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0by1jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b0NvbXBsZXRlQ29tcG9uZW50KSwgLy8gdHNsaW50OmRpc2FibGUtbGluZVxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgcmVzdWx0czogYW55W10gPSBbXTsgLy8gVGhlIHZhbHVlcyBmb3IgdGhlIHNlbGVjdGFibGUgbGlzdFxuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdOyAvLyBUaGUgdmFsdWVzIHRvIHNlYXJjaCBpbiB3aGVuIHJlbW90ZSBzZWFyY2ggaXMgZGlzYWJsZWRcbiAgQElucHV0KCkgcmVtb3RlID0gZmFsc2U7IC8vIERpc2FibGUgb3IgZW5hbWJsZSByZW1vdGUgc2VhcmNoXG4gIEBJbnB1dCgpIG1pbkNoYXJhY3RlcnMgPSAwO1xuICBASW5wdXQoKSBtYXNrOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBjbGVhckludmFsaWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoSW5jZW50aXZlVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBsb2FkaW5nVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBub1Jlc3VsdHNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dBbGxCeURlZmF1bHQgPSBmYWxzZTtcblxuICAvLyBzcGVjaWZ5IHdoaWNoIGxhYmVsL3ZhbHVlIHByb3BzIHRvIHVzZVxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nO1xuXG4gIC8vIEV2ZW50ZW1pdHRlciBmb3Igc2VhcmNodmFsdWUgKHBhcmVudCBvYmplY3Qgc2hvdWxkIHVwZGF0ZSB0aGUgcmVzdWx0cyB3aXRoIHRoaXMgcGFyYW0pXG4gIEBPdXRwdXQoKSBzZWFyY2g6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKEZseW91dERpcmVjdGl2ZSwge3N0YXRpYzogdHJ1ZX0pIGZseW91dDogRmx5b3V0RGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKEZseW91dFpvbmVEaXJlY3RpdmUsIHtzdGF0aWM6IHRydWV9KSBmbHlvdXRab25lOiBGbHlvdXRab25lRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHtzdGF0aWM6IHRydWV9KSBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIHF1ZXJ5ID0gJyc7XG4gIHB1YmxpYyBpbmRleCA9IC0xOyAvLyBpbmRleCBmb3IgYWN0aXZlIGVsZW1lbnQgaW4gc2VsZWN0YWJsZSBsaXN0LCBieSBkZWZhdWx0IC0xIChzbyBpdCBzdGFydHMgaW4gdGhlIGlucHV0IGZpZWxkKVxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtOiBhbnkgPSBudWxsOyAvLyBrZWVwIGEgYmFja3VwIG9mIHRoZSBzZWxlY3RlZEl0ZW1cbiAgcHVibGljIHNlYXJjaGluZyA9IGZhbHNlOyAvLyB0cmFjayByZW1vdGUgc2VhcmNoIHN0YXRlXG4gIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZW1vdGVWYWx1ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVNb2RlbCA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIC8vIENPTlRST0xfVkFMVUVfQUNDRVNTT1IgaW50ZXJmYWNlXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlID0gJycpIHtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmRhdGEuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMudmFsdWVdID09PSB2YWx1ZSk7XG5cbiAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeSA9IHNlbGVjdGVkW3RoaXMubGFiZWxdO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZW1vdGUgJiYgISF2YWx1ZSkge1xuICAgICAgICB0aGlzLnJlbW90ZVZhbHVlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnF1ZXJ5ID0gdmFsdWU7XG4gIH1cblxuICAvLyBDT05UUk9MX1ZBTFVFX0FDQ0VTU09SIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbikge1xuICAgIHRoaXMudXBkYXRlTW9kZWwgPSBmbjtcbiAgfVxuXG4gIC8vIENPTlRST0xfVkFMVUVfQUNDRVNTT1IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICgoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEpICYmIHRoaXMuZGF0YS5sZW5ndGggPiAwKSAmJiAhdGhpcy5xdWVyeSAmJiB0aGlzLnNob3dBbGxCeURlZmF1bHQpIHtcbiAgICAgIHRoaXMucmVzdWx0cyA9IFsuLi50aGlzLmRhdGFdO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9uQ2hhbmdlcyBpbnRlcmZhY2VcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdEYXRhID0gZ2V0KGNoYW5nZXMsICdkYXRhLmN1cnJlbnRWYWx1ZScsIFtdKTtcbiAgICBpZiAoIWlzRXF1YWwobmV3RGF0YSwgZ2V0KGNoYW5nZXMsICdkYXRhLnByZXZpb3VzVmFsdWUnLCBbXSkpKSB7XG4gICAgICBpZiAodGhpcy5yZW1vdGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdGVTZWFyY2goKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9jYWxTZWFyY2goKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5yZXN1bHRzICYmIGNoYW5nZXMucmVzdWx0cy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnF1ZXJ5ID0gaXRlbSAhPT0gbnVsbCA/ICh0aGlzLmxhYmVsID8gaXRlbVt0aGlzLmxhYmVsXSA6IGl0ZW0pIDogJyc7XG4gICAgdGhpcy5zZWxlY3QuZW1pdChpdGVtKTtcblxuICAgIGlmICghaXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy5sYWJlbCA/IHRoaXMubGFiZWwgOiBudWxsO1xuICAgIHRoaXMudXBkYXRlTW9kZWwoa2V5ID8gaXRlbVtrZXldIHx8ICcnIDogaXRlbSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIHRyaWdnZXJzIG9uIGlucHV0IHZhbHVlIGNoYW5nZVxuICAgKi9cbiAgcHVibGljIGRvU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuaW5kZXggPSAtMTsgLy8gcmVzZXQgaW5kZXhcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5yZW1vdGUpIHtcbiAgICAgIHRoaXMuc2VhcmNoLmVtaXQodGhpcy5xdWVyeSk7IC8vIGFzayBmb3IgbmV3IHJlbW90ZSBkYXRhXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9jYWxTZWFyY2goKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5GbHlvdXQoKTsgLy8gb3BlbiB0aGUgZmx5b3V0IHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmlnZ2VycyBvbiBzZWxlY3RhYmxlLWxpc3Q6c2VsZWN0IC0+IG9uQ2xpY2sgZXZlbnQgaW4gc2VsZWN0YWJsZS1saXN0XG4gICAqL1xuICBwdWJsaWMgb25TZWxlY3QoaXRlbTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoaXRlbSk7XG4gICAgdGhpcy5jbG9zZUZseW91dCgpOyAvLyBDbG9zZSB0aGUgZmx5b3V0IG1hbnVhbGx5XG4gIH1cblxuICBwdWJsaWMgb25GbHlvdXRDbG9zZWQoKTogdm9pZCB7XG4gICAgLy8gdGhlcmUgaXMgb25seSAxIHJlc3VsdCwgc2VsZWN0IGl0XG4gICAgaWYgKHRoaXMuaW5kZXggPj0gMCAmJiB0aGlzLnJlc3VsdHMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5vblNlbGVjdCh0aGlzLnJlc3VsdHNbMF0pO1xuICAgIH1cblxuICAgIC8vIHRoZXJlIGlzIG5vIHF1ZXJ5IG5vciBzZWxlY3RlZCBpdGVtLCBjbGVhciB0aGUgc2VsZWN0ZWQgaXRlbVxuICAgIGlmICghdGhpcy5xdWVyeSAmJiB0aGlzLmluZGV4IDwgMCkge1xuICAgICAgcmV0dXJuIHRoaXMub25TZWxlY3QobnVsbCk7XG4gICAgfVxuXG4gICAgLy8gcmVzZXQgdGhlIHF1ZXJ5IGZvciBhbiBpbnZhbGlkIHF1ZXJ5IGlmIGNsZWFySW52YWxpZCBpcyB0cnVlXG4gICAgaWYgKHRoaXMuY2xlYXJJbnZhbGlkICYmIHRoaXMucXVlcnkgJiYgIXRoaXMucmVzdWx0cy5sZW5ndGggJiYgdGhpcy5pbmRleCA8IDApIHtcbiAgICAgIHRoaXMucXVlcnkgPSB0aGlzLnNlbGVjdGVkSXRlbSA/IHRoaXMubGFiZWwgPyB0aGlzLnNlbGVjdGVkSXRlbVt0aGlzLmxhYmVsXSA6IHRoaXMuc2VsZWN0ZWRJdGVtIDogJyc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uS2V5QXJyb3dEb3duKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluZGV4IDwgdGhpcy5yZXN1bHRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdCgxKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5GbHlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleUFycm93VXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zY3JvbGxMaXN0KC0xKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25LZXlFbnRlcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBEbyBub3Qgc3VibWl0IGZvcm0gd2hlbiBzZWxlY3RpbmcgYW4gaXRlbS5cblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5pbmRleCA+PSAwID8gdGhpcy5yZXN1bHRzW3RoaXMuaW5kZXhdIDogdGhpcy5xdWVyeTtcblxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHF1ZXJ5KTtcbiAgICB0aGlzLmNsb3NlRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlFc2NhcGUoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLm9wZW5GbHlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRmx5b3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZseW91dCkge1xuICAgICAgdGhpcy5mbHlvdXQub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUZseW91dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mbHlvdXQpIHtcbiAgICAgIHRoaXMuZmx5b3V0LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgbG9jYWxTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaCh0aGlzLmRhdGEsIHtcbiAgICAgIG1pbkxlbmd0aDogdGhpcy5taW5DaGFyYWN0ZXJzLFxuICAgICAga2V5OiB0aGlzLmxhYmVsLFxuICAgICAgcXVlcnk6IHRoaXMucXVlcnksXG4gICAgICBzaG93QWxsQnlEZWZhdWx0OiB0aGlzLnNob3dBbGxCeURlZmF1bHQsXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5yZXN1bHRzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnF1ZXJ5ID09PSB0aGlzLnJlc3VsdHNbMF1bdGhpcy5sYWJlbF0pIHtcbiAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIH1cblxuICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgcmVtb3RlU2VhcmNoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZW1vdGVWYWx1ZSB8fCAhdGhpcy5kYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmRhdGEuZmluZCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXRlbVt0aGlzLnZhbHVlXSA9PT0gdGhpcy5xdWVyeTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGl0ZW0gPT09IHRoaXMucXVlcnk7XG4gICAgfSk7XG5cbiAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMucXVlcnkgPSB0aGlzLmxhYmVsID8gc2VsZWN0ZWRbdGhpcy5sYWJlbF0gOiBzZWxlY3RlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeSA9ICcnO1xuICAgIH1cblxuICAgIHRoaXMucmVtb3RlVmFsdWUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxMaXN0KGZhY3RvcjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5pbmRleCArPSBmYWN0b3I7XG5cbiAgICBpZiAoIXRoaXMuZmx5b3V0Wm9uZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpSXRlbXMgPSB0aGlzLmZseW91dFpvbmUuZWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbGknKTtcbiAgICBjb25zdCBsaUhlaWdodCA9IChsaUl0ZW1zWzFdID8gbGlJdGVtc1sxXS5vZmZzZXRIZWlnaHQgOiBsaUl0ZW1zWzBdLm9mZnNldEhlaWdodCk7XG4gICAgY29uc3Qgem9uZUhlaWdodCA9IHRoaXMuZmx5b3V0Wm9uZS5lbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBvZmZzZXQgPSAoem9uZUhlaWdodCAvIGxpSGVpZ2h0KSAvIDI7XG5cbiAgICB0aGlzLmZseW91dFpvbmUuZWxlbWVudC5zY3JvbGxUb3AgPSAodGhpcy5pbmRleCAqIGxpSGVpZ2h0KSAtIChvZmZzZXQgKiBsaUhlaWdodCk7XG4gIH1cbn1cbiJdfQ==
506
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9hdXRvLWNvbXBsZXRlL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFeEU7SUFtREUsK0JBQ1UsR0FBZSxFQUNmLGFBQTRCO1FBRDVCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXBDN0IsWUFBTyxHQUFVLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQzs7UUFDMUQsU0FBSSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHlEQUF5RDs7UUFDM0UsV0FBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLG1DQUFtQzs7UUFDbkQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBRyxLQUFLLENBQUM7O1FBT3BCLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNs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O3lCQUNMLEtBQUs7Z0NBQ0wsS0FBSzt1QkFDTCxLQUFLOytCQUNMLEtBQUs7c0NBQ0wsS0FBSzs4QkFDTCxLQUFLO2dDQUNMLEtBQUs7bUNBQ0wsS0FBSzsrQkFDTCxLQUFLO3dCQUdMLEtBQUs7d0JBQ0wsS0FBSzt5QkFHTCxNQUFNO3lCQUNOLE1BQU07eUJBRU4sU0FBUyxTQUFDLGVBQWUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7NkJBQ3pDLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7MkJBRTdDLFlBQVksU0FBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOztJQW1PM0MsNEJBQUM7Q0FBQSxBQTNRRCxJQTJRQztTQTdQWSxxQkFBcUI7OztJQUNoQyxtQ0FBb0I7O0lBQ3BCLDRDQUE2Qjs7SUFDN0Isd0NBQTZCOztJQUM3QixxQ0FBMEI7O0lBQzFCLHVDQUF3Qjs7SUFDeEIsOENBQTJCOztJQUMzQixxQ0FBNkI7O0lBQzdCLDZDQUE4Qjs7SUFDOUIsb0RBQXFDOztJQUNyQyw0Q0FBNkI7O0lBQzdCLDhDQUErQjs7SUFDL0IsaURBQWtDOztJQUNsQyw2Q0FBOEI7O0lBRzlCLHNDQUF1Qjs7SUFDdkIsc0NBQXVCOztJQUd2Qix1Q0FBNEQ7O0lBQzVELHVDQUF5RDs7SUFFekQsdUNBQW9FOztJQUNwRSwyQ0FBZ0Y7O0lBRWhGLHlDQUE2RTs7SUFFN0Usc0NBQWtCOztJQUNsQixzQ0FBa0I7O0lBQ2xCLDZDQUFnQzs7SUFDaEMsMENBQXlCOztJQUN6Qix3Q0FBdUI7O0lBQ3ZCLDJDQUEwQjs7Ozs7SUFFMUIsNENBQTRCOztJQVE1Qiw0Q0FDQzs7Ozs7SUFOQyxvQ0FBdUI7Ozs7O0lBQ3ZCLDhDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0LCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEZseW91dERpcmVjdGl2ZSwgRmx5b3V0Wm9uZURpcmVjdGl2ZSB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LWZseW91dCc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3NlYXJjaC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWF1dG8tY29tcGxldGUnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF1dG9Db21wbGV0ZUNvbXBvbmVudCksIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlc3VsdHM6IGFueVtdID0gW107IC8vIFRoZSB2YWx1ZXMgZm9yIHRoZSBzZWxlY3RhYmxlIGxpc3RcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTsgLy8gVGhlIHZhbHVlcyB0byBzZWFyY2ggaW4gd2hlbiByZW1vdGUgc2VhcmNoIGlzIGRpc2FibGVkXG4gIEBJbnB1dCgpIHJlbW90ZSA9IGZhbHNlOyAvLyBEaXNhYmxlIG9yIGVuYW1ibGUgcmVtb3RlIHNlYXJjaFxuICBASW5wdXQoKSBtaW5DaGFyYWN0ZXJzID0gMDtcbiAgQElucHV0KCkgbWFzazogc3RyaW5nID0gbnVsbDtcbiAgQElucHV0KCkgY2xlYXJJbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlYXJjaEluY2VudGl2ZVRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgbG9hZGluZ1RleHQ6IHN0cmluZztcbiAgQElucHV0KCkgbm9SZXN1bHRzVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93QWxsQnlEZWZhdWx0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9Db21wbGV0ZSA9ICdvZmYnO1xuXG4gIC8vIHNwZWNpZnkgd2hpY2ggbGFiZWwvdmFsdWUgcHJvcHMgdG8gdXNlXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XG5cbiAgLy8gRXZlbnRlbWl0dGVyIGZvciBzZWFyY2h2YWx1ZSAocGFyZW50IG9iamVjdCBzaG91bGQgdXBkYXRlIHRoZSByZXN1bHRzIHdpdGggdGhpcyBwYXJhbSlcbiAgQE91dHB1dCgpIHNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoRmx5b3V0RGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSkgZmx5b3V0OiBGbHlvdXREaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGQoRmx5b3V0Wm9uZURpcmVjdGl2ZSwge3N0YXRpYzogdHJ1ZX0pIGZseW91dFpvbmU6IEZseW91dFpvbmVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgcXVlcnkgPSAnJztcbiAgcHVibGljIGluZGV4ID0gLTE7IC8vIGluZGV4IGZvciBhY3RpdmUgZWxlbWVudCBpbiBzZWxlY3RhYmxlIGxpc3QsIGJ5IGRlZmF1bHQgLTEgKHNvIGl0IHN0YXJ0cyBpbiB0aGUgaW5wdXQgZmllbGQpXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW06IGFueSA9IG51bGw7IC8vIGtlZXAgYSBiYWNrdXAgb2YgdGhlIHNlbGVjdGVkSXRlbVxuICBwdWJsaWMgc2VhcmNoaW5nID0gZmFsc2U7IC8vIHRyYWNrIHJlbW90ZSBzZWFyY2ggc3RhdGVcbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlbW90ZVZhbHVlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZU1vZGVsID0gKF86IGFueSkgPT4ge1xuICB9XG5cbiAgLy8gQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2VcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWUgPSAnJykge1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGF0YS5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy52YWx1ZV0gPT09IHZhbHVlKTtcblxuICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5ID0gc2VsZWN0ZWRbdGhpcy5sYWJlbF07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlbW90ZSAmJiAhIXZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVtb3RlVmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucXVlcnkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIENPTlRST0xfVkFMVUVfQUNDRVNTT1IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XG4gICAgdGhpcy51cGRhdGVNb2RlbCA9IGZuO1xuICB9XG5cbiAgLy8gQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCkge1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKChBcnJheS5pc0FycmF5KHRoaXMuZGF0YSkgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApICYmICF0aGlzLnF1ZXJ5ICYmIHRoaXMuc2hvd0FsbEJ5RGVmYXVsdCkge1xuICAgICAgdGhpcy5yZXN1bHRzID0gWy4uLnRoaXMuZGF0YV07XG4gICAgfVxuICB9XG5cbiAgLy8gT25DaGFuZ2VzIGludGVyZmFjZVxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghY2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RhdGEgPSBnZXQoY2hhbmdlcywgJ2RhdGEuY3VycmVudFZhbHVlJywgW10pO1xuICAgIGlmICghaXNFcXVhbChuZXdEYXRhLCBnZXQoY2hhbmdlcywgJ2RhdGEucHJldmlvdXNWYWx1ZScsIFtdKSkpIHtcbiAgICAgIGlmICh0aGlzLnJlbW90ZSkge1xuICAgICAgICB0aGlzLnJlbW90ZVNlYXJjaCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2NhbFNlYXJjaCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnJlc3VsdHMgJiYgY2hhbmdlcy5yZXN1bHRzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKGl0ZW06IGFueSkge1xuICAgIHRoaXMucXVlcnkgPSBpdGVtICE9PSBudWxsID8gKHRoaXMubGFiZWwgPyBpdGVtW3RoaXMubGFiZWxdIDogaXRlbSkgOiAnJztcbiAgICB0aGlzLnNlbGVjdC5lbWl0KGl0ZW0pO1xuXG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLmxhYmVsID8gdGhpcy5sYWJlbCA6IG51bGw7XG4gICAgdGhpcy51cGRhdGVNb2RlbChrZXkgPyBpdGVtW2tleV0gfHwgJycgOiBpdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XG4gIH1cblxuICAvKipcbiAgICogdHJpZ2dlcnMgb24gaW5wdXQgdmFsdWUgY2hhbmdlXG4gICAqL1xuICBwdWJsaWMgZG9TZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5pbmRleCA9IC0xOyAvLyByZXNldCBpbmRleFxuICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnJlbW90ZSkge1xuICAgICAgdGhpcy5zZWFyY2guZW1pdCh0aGlzLnF1ZXJ5KTsgLy8gYXNrIGZvciBuZXcgcmVtb3RlIGRhdGFcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2NhbFNlYXJjaCgpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbkZseW91dCgpOyAvLyBvcGVuIHRoZSBmbHlvdXQgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZVxuICB9XG5cbiAgLyoqXG4gICAqIHRyaWdnZXJzIG9uIHNlbGVjdGFibGUtbGlzdDpzZWxlY3QgLT4gb25DbGljayBldmVudCBpbiBzZWxlY3RhYmxlLWxpc3RcbiAgICovXG4gIHB1YmxpYyBvblNlbGVjdChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShpdGVtKTtcbiAgICB0aGlzLmNsb3NlRmx5b3V0KCk7IC8vIENsb3NlIHRoZSBmbHlvdXQgbWFudWFsbHlcbiAgfVxuXG4gIHB1YmxpYyBvbkZseW91dENsb3NlZCgpOiB2b2lkIHtcbiAgICAvLyB0aGVyZSBpcyBvbmx5IDEgcmVzdWx0LCBzZWxlY3QgaXRcbiAgICBpZiAodGhpcy5pbmRleCA+PSAwICYmIHRoaXMucmVzdWx0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLm9uU2VsZWN0KHRoaXMucmVzdWx0c1swXSk7XG4gICAgfVxuXG4gICAgLy8gdGhlcmUgaXMgbm8gcXVlcnkgbm9yIHNlbGVjdGVkIGl0ZW0sIGNsZWFyIHRoZSBzZWxlY3RlZCBpdGVtXG4gICAgaWYgKCF0aGlzLnF1ZXJ5ICYmIHRoaXMuaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5vblNlbGVjdChudWxsKTtcbiAgICB9XG5cbiAgICAvLyByZXNldCB0aGUgcXVlcnkgZm9yIGFuIGludmFsaWQgcXVlcnkgaWYgY2xlYXJJbnZhbGlkIGlzIHRydWVcbiAgICBpZiAodGhpcy5jbGVhckludmFsaWQgJiYgdGhpcy5xdWVyeSAmJiAhdGhpcy5yZXN1bHRzLmxlbmd0aCAmJiB0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuc2VsZWN0ZWRJdGVtID8gdGhpcy5sYWJlbCA/IHRoaXMuc2VsZWN0ZWRJdGVtW3RoaXMubGFiZWxdIDogdGhpcy5zZWxlY3RlZEl0ZW0gOiAnJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25LZXlBcnJvd0Rvd24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5kZXggPCB0aGlzLnJlc3VsdHMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zY3JvbGxMaXN0KDEpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbkZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5QXJyb3dVcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLnNjcm9sbExpc3QoLTEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleUVudGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIERvIG5vdCBzdWJtaXQgZm9ybSB3aGVuIHNlbGVjdGluZyBhbiBpdGVtLlxuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmluZGV4ID49IDAgPyB0aGlzLnJlc3VsdHNbdGhpcy5pbmRleF0gOiB0aGlzLnF1ZXJ5O1xuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UocXVlcnkpO1xuICAgIHRoaXMuY2xvc2VGbHlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleUVzY2FwZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMub3BlbkZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9wZW5GbHlvdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmx5b3V0KSB7XG4gICAgICB0aGlzLmZseW91dC5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlRmx5b3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZseW91dCkge1xuICAgICAgdGhpcy5mbHlvdXQuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBsb2NhbFNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3VsdHMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRoaXMuZGF0YSwge1xuICAgICAgbWluTGVuZ3RoOiB0aGlzLm1pbkNoYXJhY3RlcnMsXG4gICAgICBrZXk6IHRoaXMubGFiZWwsXG4gICAgICBxdWVyeTogdGhpcy5xdWVyeSxcbiAgICAgIHNob3dBbGxCeURlZmF1bHQ6IHRoaXMuc2hvd0FsbEJ5RGVmYXVsdCxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnJlc3VsdHMubGVuZ3RoID09PSAxICYmIHRoaXMucXVlcnkgPT09IHRoaXMucmVzdWx0c1swXVt0aGlzLmxhYmVsXSkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdGVTZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlbW90ZVZhbHVlIHx8ICF0aGlzLmRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGF0YS5maW5kKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpdGVtW3RoaXMudmFsdWVdID09PSB0aGlzLnF1ZXJ5O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbSA9PT0gdGhpcy5xdWVyeTtcbiAgICB9KTtcblxuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMubGFiZWwgPyBzZWxlY3RlZFt0aGlzLmxhYmVsXSA6IHNlbGVjdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdGVWYWx1ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbExpc3QoZmFjdG9yOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4ICs9IGZhY3RvcjtcblxuICAgIGlmICghdGhpcy5mbHlvdXRab25lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlJdGVtcyA9IHRoaXMuZmx5b3V0Wm9uZS5lbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaScpO1xuICAgIGNvbnN0IGxpSGVpZ2h0ID0gKGxpSXRlbXNbMV0gPyBsaUl0ZW1zWzFdLm9mZnNldEhlaWdodCA6IGxpSXRlbXNbMF0ub2Zmc2V0SGVpZ2h0KTtcbiAgICBjb25zdCB6b25lSGVpZ2h0ID0gdGhpcy5mbHlvdXRab25lLmVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IG9mZnNldCA9ICh6b25lSGVpZ2h0IC8gbGlIZWlnaHQpIC8gMjtcblxuICAgIHRoaXMuZmx5b3V0Wm9uZS5lbGVtZW50LnNjcm9sbFRvcCA9ICh0aGlzLmluZGV4ICogbGlIZWlnaHQpIC0gKG9mZnNldCAqIGxpSGVpZ2h0KTtcbiAgfVxufVxuIl19
@@ -9,8 +9,10 @@ import { Uploader } from '../../classes/uploader.class';
9
9
  var UploadComponent = /** @class */ (function () {
10
10
  function UploadComponent() {
11
11
  this.id = '';
12
+ this.accept = [];
12
13
  this.ariaLabelRemove = 'Verwijder';
13
14
  this.disabled = false;
15
+ this.multiple = true;
14
16
  this.options = UPLOAD_OPTIONS_DEFAULT;
15
17
  this.selectUploadedFiles = new EventEmitter();
16
18
  this.uploadedFiles = [];
@@ -66,14 +68,16 @@ var UploadComponent = /** @class */ (function () {
66
68
  UploadComponent.decorators = [
67
69
  { type: Component, args: [{
68
70
  selector: 'aui-upload',
69
- template: "<div class=\"m-upload aui-upload\">\n <aui-upload-zone (invalidFiles)=\"onInvalidFiles($event)\" (queuedFiles)=\"onQueuedFiles($event)\" (uploadedFiles)=\"onUploadedFiles($event)\" [ariaId]=\"ariaId\"\n [disabled]=\"disabled\" [id]=\"id\"\n [uploader]=\"uploader\">\n <div class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </div>\n <div class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </div>\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n </aui-upload-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue (uploadedFiles)=\"onUploadedFiles($event)\" *ngIf=\"!options?.autoUpload\" [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\" [uploader]=\"uploader\"></aui-upload-queue>\n</div>\n",
71
+ template: "<div class=\"m-upload aui-upload\">\n <aui-upload-zone\n [id]=\"id\"\n [accept]=\"accept\"\n [ariaId]=\"ariaId\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [uploader]=\"uploader\"\n (invalidFiles)=\"onInvalidFiles($event)\"\n (queuedFiles)=\"onQueuedFiles($event)\"\n (uploadedFiles)=\"onUploadedFiles($event)\">\n <div class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </div>\n <div class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </div>\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n </aui-upload-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue (uploadedFiles)=\"onUploadedFiles($event)\" *ngIf=\"!options?.autoUpload\" [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\" [uploader]=\"uploader\"></aui-upload-queue>\n</div>\n",
70
72
  styles: [".m-upload__button>.m-upload__input{display:none}"]
71
73
  }] }
72
74
  ];
73
75
  UploadComponent.propDecorators = {
74
76
  id: [{ type: Input }],
77
+ accept: [{ type: Input }],
75
78
  ariaLabelRemove: [{ type: Input }],
76
79
  disabled: [{ type: Input }],
80
+ multiple: [{ type: Input }],
77
81
  options: [{ type: Input }],
78
82
  selectUploadedFiles: [{ type: Output }]
79
83
  };
@@ -84,10 +88,14 @@ if (false) {
84
88
  /** @type {?} */
85
89
  UploadComponent.prototype.id;
86
90
  /** @type {?} */
91
+ UploadComponent.prototype.accept;
92
+ /** @type {?} */
87
93
  UploadComponent.prototype.ariaLabelRemove;
88
94
  /** @type {?} */
89
95
  UploadComponent.prototype.disabled;
90
96
  /** @type {?} */
97
+ UploadComponent.prototype.multiple;
98
+ /** @type {?} */
91
99
  UploadComponent.prototype.options;
92
100
  /** @type {?} */
93
101
  UploadComponent.prototype.selectUploadedFiles;
@@ -102,4 +110,4 @@ if (false) {
102
110
  /** @type {?} */
103
111
  UploadComponent.prototype.queuedFiles;
104
112
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY3BhYXMtdWkvbmd4LWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3VwbG9hZC9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFeEQ7SUFBQTtRQVFrQixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1Isb0JBQWUsR0FBRyxXQUFXLENBQUM7UUFDOUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQWtCLHNCQUFzQixDQUFDO1FBQy9DLHdCQUFtQixHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBSXJGLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztJQXFCbEMsQ0FBQzs7OztJQW5CUSxrQ0FBUTs7O0lBQWY7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7Ozs7SUFFTSx5Q0FBZTs7OztJQUF0QixVQUF1QixLQUFlO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7SUFFTSx3Q0FBYzs7OztJQUFyQixVQUFzQixLQUFvQjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzs7OztJQUVNLHVDQUFhOzs7O0lBQXBCLFVBQXFCLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDOztnQkF0Q0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUl0Qiw0OUJBQXNDOztpQkFDdkM7OztxQkFFRSxLQUFLO2tDQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLO3NDQUNMLE1BQU07O0lBMkJULHNCQUFDO0NBQUEsQUF2Q0QsSUF1Q0M7U0FoQ1ksZUFBZTs7O0lBQzFCLDZCQUF3Qjs7SUFDeEIsMENBQThDOztJQUM5QyxtQ0FBaUM7O0lBQ2pDLGtDQUFnRTs7SUFDaEUsOENBQTRGOztJQUU1RixtQ0FBZ0I7O0lBQ2hCLGlDQUFjOztJQUNkLHdDQUFvQzs7SUFDcEMsdUNBQXdDOztJQUN4QyxzQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEludmFsaWRGaWxlLCBVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXBsb2FkLnR5cGVzJztcbmltcG9ydCB7IFVQTE9BRF9PUFRJT05TX0RFRkFVTFQgfSBmcm9tICcuLi8uLi91cGxvYWQuY29uZic7XG5pbXBvcnQgeyBVcGxvYWRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdXBsb2FkZXIuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdXBsb2FkJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vdXBsb2FkLmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsUmVtb3ZlID0gJ1ZlcndpamRlcic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogVXBsb2FkT3B0aW9ucyA9IFVQTE9BRF9PUFRJT05TX0RFRkFVTFQ7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0VXBsb2FkZWRGaWxlczogRXZlbnRFbWl0dGVyPG9iamVjdFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0W10+KCk7XG5cbiAgcHVibGljIHVwbG9hZGVyO1xuICBwdWJsaWMgYXJpYUlkO1xuICBwdWJsaWMgdXBsb2FkZWRGaWxlczogb2JqZWN0W10gPSBbXTtcbiAgcHVibGljIGludmFsaWRGaWxlczogSW52YWxpZEZpbGVbXSA9IFtdO1xuICBwdWJsaWMgcXVldWVkRmlsZXM6IEZpbGVbXSA9IFtdO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgIHRoaXMuYXJpYUlkID0gJ2F1aS11cGxvYWQtJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbiAgICB9XG4gICAgdGhpcy51cGxvYWRlciA9IG5ldyBVcGxvYWRlcih0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIG9uVXBsb2FkZWRGaWxlcyhmaWxlczogb2JqZWN0W10pIHtcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuY29uY2F0KGZpbGVzKTtcbiAgICB0aGlzLnNlbGVjdFVwbG9hZGVkRmlsZXMuZW1pdCh0aGlzLnVwbG9hZGVkRmlsZXMpO1xuICB9XG5cbiAgcHVibGljIG9uSW52YWxpZEZpbGVzKGZpbGVzOiBJbnZhbGlkRmlsZVtdKSB7XG4gICAgdGhpcy5pbnZhbGlkRmlsZXMgPSBmaWxlcztcbiAgfVxuXG4gIHB1YmxpYyBvblF1ZXVlZEZpbGVzKGZpbGVzOiBGaWxlW10pIHtcbiAgICB0aGlzLnF1ZXVlZEZpbGVzID0gdGhpcy5xdWV1ZWRGaWxlcy5jb25jYXQoZmlsZXMpO1xuICB9XG59XG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY3BhYXMtdWkvbmd4LWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3VwbG9hZC9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFeEQ7SUFBQTtRQVFrQixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLG9CQUFlLEdBQUcsV0FBVyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixZQUFPLEdBQWtCLHNCQUFzQixDQUFDO1FBQy9DLHdCQUFtQixHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBSXJGLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztJQXFCbEMsQ0FBQzs7OztJQW5CUSxrQ0FBUTs7O0lBQWY7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7Ozs7SUFFTSx5Q0FBZTs7OztJQUF0QixVQUF1QixLQUFlO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7SUFFTSx3Q0FBYzs7OztJQUFyQixVQUFzQixLQUFvQjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzs7OztJQUVNLHVDQUFhOzs7O0lBQXBCLFVBQXFCLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDOztnQkF4Q0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUl0QiwyaUNBQXNDOztpQkFDdkM7OztxQkFFRSxLQUFLO3lCQUNMLEtBQUs7a0NBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSztzQ0FDTCxNQUFNOztJQTJCVCxzQkFBQztDQUFBLEFBekNELElBeUNDO1NBbENZLGVBQWU7OztJQUMxQiw2QkFBd0I7O0lBQ3hCLGlDQUE0Qjs7SUFDNUIsMENBQThDOztJQUM5QyxtQ0FBaUM7O0lBQ2pDLG1DQUFnQzs7SUFDaEMsa0NBQWdFOztJQUNoRSw4Q0FBNEY7O0lBRTVGLG1DQUFnQjs7SUFDaEIsaUNBQWM7O0lBQ2Qsd0NBQW9DOztJQUNwQyx1Q0FBd0M7O0lBQ3hDLHNDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSW52YWxpZEZpbGUsIFVwbG9hZE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcy91cGxvYWQudHlwZXMnO1xuaW1wb3J0IHsgVVBMT0FEX09QVElPTlNfREVGQVVMVCB9IGZyb20gJy4uLy4uL3VwbG9hZC5jb25mJztcbmltcG9ydCB7IFVwbG9hZGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy91cGxvYWRlci5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS11cGxvYWQnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi91cGxvYWQuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGlkID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhY2NlcHQgPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbFJlbW92ZSA9ICdWZXJ3aWpkZXInO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG11bHRpcGxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IFVwbG9hZE9wdGlvbnMgPSBVUExPQURfT1BUSU9OU19ERUZBVUxUO1xuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdFVwbG9hZGVkRmlsZXM6IEV2ZW50RW1pdHRlcjxvYmplY3RbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdFtdPigpO1xuXG4gIHB1YmxpYyB1cGxvYWRlcjtcbiAgcHVibGljIGFyaWFJZDtcbiAgcHVibGljIHVwbG9hZGVkRmlsZXM6IG9iamVjdFtdID0gW107XG4gIHB1YmxpYyBpbnZhbGlkRmlsZXM6IEludmFsaWRGaWxlW10gPSBbXTtcbiAgcHVibGljIHF1ZXVlZEZpbGVzOiBGaWxlW10gPSBbXTtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICB0aGlzLmFyaWFJZCA9ICdhdWktdXBsb2FkLScgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG4gICAgfVxuICAgIHRoaXMudXBsb2FkZXIgPSBuZXcgVXBsb2FkZXIodGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBvblVwbG9hZGVkRmlsZXMoZmlsZXM6IG9iamVjdFtdKSB7XG4gICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzLmNvbmNhdChmaWxlcyk7XG4gICAgdGhpcy5zZWxlY3RVcGxvYWRlZEZpbGVzLmVtaXQodGhpcy51cGxvYWRlZEZpbGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkludmFsaWRGaWxlcyhmaWxlczogSW52YWxpZEZpbGVbXSkge1xuICAgIHRoaXMuaW52YWxpZEZpbGVzID0gZmlsZXM7XG4gIH1cblxuICBwdWJsaWMgb25RdWV1ZWRGaWxlcyhmaWxlczogRmlsZVtdKSB7XG4gICAgdGhpcy5xdWV1ZWRGaWxlcyA9IHRoaXMucXVldWVkRmlsZXMuY29uY2F0KGZpbGVzKTtcbiAgfVxufVxuIl19