@fundamental-ngx/core 0.43.18 → 0.43.19

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.
Files changed (42) hide show
  1. package/esm2020/combobox/combobox.component.mjs +1 -1
  2. package/esm2020/file-uploader/file-uploader.component.mjs +3 -3
  3. package/esm2020/list/list-item/list-item.component.mjs +16 -6
  4. package/esm2020/multi-combobox/multi-combobox.component.mjs +1 -1
  5. package/esm2020/multi-input/multi-input.component.mjs +1 -1
  6. package/esm2020/shellbar/shellbar-action/shellbar-action.component.mjs +8 -4
  7. package/esm2020/shellbar/shellbar-actions/shellbar-actions.component.mjs +1 -1
  8. package/esm2020/token/tokenizer.component.mjs +1 -1
  9. package/fesm2015/fundamental-ngx-core-combobox.mjs +1 -1
  10. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  11. package/fesm2015/fundamental-ngx-core-file-uploader.mjs +2 -2
  12. package/fesm2015/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  13. package/fesm2015/fundamental-ngx-core-list.mjs +15 -5
  14. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  15. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +1 -1
  16. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  17. package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  18. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  19. package/fesm2015/fundamental-ngx-core-shellbar.mjs +8 -4
  20. package/fesm2015/fundamental-ngx-core-shellbar.mjs.map +1 -1
  21. package/fesm2015/fundamental-ngx-core-token.mjs +1 -1
  22. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  23. package/fesm2020/fundamental-ngx-core-combobox.mjs +1 -1
  24. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  25. package/fesm2020/fundamental-ngx-core-file-uploader.mjs +2 -2
  26. package/fesm2020/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  27. package/fesm2020/fundamental-ngx-core-list.mjs +15 -5
  28. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  29. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +1 -1
  30. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  31. package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  32. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  33. package/fesm2020/fundamental-ngx-core-shellbar.mjs +8 -4
  34. package/fesm2020/fundamental-ngx-core-shellbar.mjs.map +1 -1
  35. package/fesm2020/fundamental-ngx-core-token.mjs +1 -1
  36. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  37. package/fundamental-ngx-core-v0.43.19.tgz +0 -0
  38. package/list/list-item/list-item.component.d.ts +8 -3
  39. package/package.json +3 -3
  40. package/schematics/add-dependencies/index.js +4 -4
  41. package/shellbar/shellbar-action/shellbar-action.component.d.ts +6 -1
  42. package/fundamental-ngx-core-v0.43.18.tgz +0 -0
@@ -537,7 +537,7 @@ ComboboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
537
537
  provide: FD_COMBOBOX_COMPONENT,
538
538
  useExisting: ComboboxComponent
539
539
  }
540
- ], queries: [{ propertyName: "listMessages", predicate: FD_LIST_MESSAGE_DIRECTIVE }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "inputGroup", first: true, predicate: InputGroupComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template let-term=\"term\" #itemSource>\n <span\n fd-list-title\n *ngIf=\"!itemTemplate; else customRendererTemplate\"\n [innerHTML]=\"term | displayFnPipe : displayFn | highlight : inputText : highlighting && filterHighlight\"\n >\n </span>\n <ng-template #customRendererTemplate>\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: term }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n *ngIf=\"isSearch && showClearButton && inputText && inputText.length > 0\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupFn; else flatList\">\n <ng-container *ngFor=\"let group of displayedValues | listGroupPipe : groupFn\">\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of group.value\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n <ng-template #flatList>\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of displayedValues\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-container [ngTemplateOutlet]=\"itemSource\" [ngTemplateOutletContext]=\"{ term: term }\"></ng-container>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [".fd-combobox-custom-class,.fd-combobox-custom-class .fd-combobox-shellbar-custom{display:inline-block}.fd-list__item.fd-combobox-list-item{cursor:pointer}.fd-combobox-full-width{width:100%}.fd-combobox-count-list-results{position:absolute;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i8.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i9.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i9.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i9.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i9.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i10.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i2.AutoCompleteDirective, selector: "[fdkAutoComplete], [fdAutoComplete], [fd-auto-complete]", inputs: ["options", "inputText", "enable", "matcher", "displayFn"], outputs: ["onComplete"] }, { kind: "pipe", type: i2.DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: i2.SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: i11.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i12.ListGroupPipe, name: "listGroupPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
540
+ ], queries: [{ propertyName: "listMessages", predicate: FD_LIST_MESSAGE_DIRECTIVE }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "inputGroup", first: true, predicate: InputGroupComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template let-term=\"term\" #itemSource>\n <span\n fd-list-title\n *ngIf=\"!itemTemplate; else customRendererTemplate\"\n [innerHTML]=\"term | displayFnPipe : displayFn | highlight : inputText : highlighting && filterHighlight\"\n >\n </span>\n <ng-template #customRendererTemplate>\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: term }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n *ngIf=\"isSearch && showClearButton && inputText && inputText.length > 0\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupFn; else flatList\">\n <ng-container *ngFor=\"let group of displayedValues | listGroupPipe : groupFn\">\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of group.value\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n <ng-template #flatList>\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n *ngFor=\"let term of displayedValues\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-container [ngTemplateOutlet]=\"itemSource\" [ngTemplateOutletContext]=\"{ term: term }\"></ng-container>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [".fd-combobox-custom-class,.fd-combobox-custom-class .fd-combobox-shellbar-custom{display:inline-block}.fd-list__item.fd-combobox-list-item{cursor:pointer}.fd-combobox-full-width{width:100%}.fd-combobox-count-list-results{position:absolute;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i8.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i9.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i9.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: i9.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i9.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i10.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i2.AutoCompleteDirective, selector: "[fdkAutoComplete], [fdAutoComplete], [fd-auto-complete]", inputs: ["options", "inputText", "enable", "matcher", "displayFn"], outputs: ["onComplete"] }, { kind: "pipe", type: i2.DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: i2.SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: i11.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i12.ListGroupPipe, name: "listGroupPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
541
541
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComboboxComponent, decorators: [{
542
542
  type: Component,
543
543
  args: [{ selector: 'fd-combobox', providers: [
@@ -178,7 +178,7 @@ FileUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
178
178
  },
179
179
  registerFormItemControl(FileUploaderComponent),
180
180
  contentDensityObserverProviders()
181
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputRefText", first: true, predicate: ["textInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [attr.aria-label]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n", styles: [".fd-input{-webkit-box-sizing:border-box;-webkit-box-shadow:none;-webkit-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:none;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.25rem;line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-height:2.25rem;min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;padding:var(--fdInput_Field_Padding, 0 .625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{box-sizing:inherit;font-size:inherit}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){box-sizing:border-box;height:1.625rem;margin:var(--fdInput_Field_Compact_Margin, .1875rem 0);min-height:1.625rem;min-width:var(--fdInput_Field_Compact_Min_Width, 2rem);padding:var(--fdInput_Field_Compact_Padding, 0 .5rem)}.fd-input--no-number-spinner{-moz-appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fd-input.right-align{text-align:right}.fd-input.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{box-shadow:none}.fd-input.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{box-shadow:none}.fd-input.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{box-shadow:none}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{box-shadow:none}.fd-input.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{box-shadow:none}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius)}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly.is-hover,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-hover,.fd-input[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);z-index:5}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-file-uploader{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader:after,.fd-file-uploader:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__container{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.25rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__container:after,.fd-file-uploader__container:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader .fd-file-uploader__input{-webkit-box-flex:1;-ms-flex:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background-color:var(--sapField_Background);color:transparent;cursor:pointer;flex:1;text-shadow:0 0 0 var(--sapTextColor);user-select:none}.fd-file-uploader .fd-file-uploader__input::placeholder{color:var(--sapTextColor)}.fd-file-uploader__hidden{display:none}.fd-file-uploader__uploaded-files{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__uploaded-files:after,.fd-file-uploader__uploaded-files:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__label{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:1.1875rem;margin:1.5rem 0 0;padding:0}.fd-file-uploader__label:after,.fd-file-uploader__label:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;padding:0}.fd-file-uploader__list:after,.fd-file-uploader__list:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list-item{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:calc(1rem + var(--fdFileUploaderButtonsSpacing));justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:.5rem 0 0;padding:0}.fd-file-uploader__list-item:after,.fd-file-uploader__list-item:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__actions{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdFileUploaderButtonsSpacing);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__actions:after,.fd-file-uploader__actions:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader{display:flex}\n"], dependencies: [{ kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i4.FileUploaderSelectDirective, selector: "[fdFileSelect]", inputs: ["multiple"], outputs: ["fileSelected"] }, { kind: "directive", type: i5.FileUploaderDragndropDirective, selector: "[fdFileDragnDrop], [fd-file-drag-n-drop]", inputs: ["multiple", "accept", "maxFileSize", "minFileSize", "disabled", "dragndrop"], outputs: ["fileChanged", "dragEntered", "dragLeave"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
181
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputRefText", first: true, predicate: ["textInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [ariaLabel]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n", styles: [".fd-input{-webkit-box-sizing:border-box;-webkit-box-shadow:none;-webkit-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:none;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.25rem;line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-height:2.25rem;min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;padding:var(--fdInput_Field_Padding, 0 .625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{box-sizing:inherit;font-size:inherit}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){box-sizing:border-box;height:1.625rem;margin:var(--fdInput_Field_Compact_Margin, .1875rem 0);min-height:1.625rem;min-width:var(--fdInput_Field_Compact_Min_Width, 2rem);padding:var(--fdInput_Field_Compact_Padding, 0 .5rem)}.fd-input--no-number-spinner{-moz-appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fd-input.right-align{text-align:right}.fd-input.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{box-shadow:none}.fd-input.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{box-shadow:none}.fd-input.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{box-shadow:none}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{box-shadow:none}.fd-input.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{box-shadow:none}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius)}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly.is-hover,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-hover,.fd-input[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);z-index:5}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-file-uploader{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader:after,.fd-file-uploader:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__container{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.25rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__container:after,.fd-file-uploader__container:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader .fd-file-uploader__input{-webkit-box-flex:1;-ms-flex:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background-color:var(--sapField_Background);color:transparent;cursor:pointer;flex:1;text-shadow:0 0 0 var(--sapTextColor);user-select:none}.fd-file-uploader .fd-file-uploader__input::placeholder{color:var(--sapTextColor)}.fd-file-uploader__hidden{display:none}.fd-file-uploader__uploaded-files{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__uploaded-files:after,.fd-file-uploader__uploaded-files:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__label{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:1.1875rem;margin:1.5rem 0 0;padding:0}.fd-file-uploader__label:after,.fd-file-uploader__label:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;padding:0}.fd-file-uploader__list:after,.fd-file-uploader__list:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list-item{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:calc(1rem + var(--fdFileUploaderButtonsSpacing));justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:.5rem 0 0;padding:0}.fd-file-uploader__list-item:after,.fd-file-uploader__list-item:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__actions{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdFileUploaderButtonsSpacing);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__actions:after,.fd-file-uploader__actions:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader{display:flex}\n"], dependencies: [{ kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i4.FileUploaderSelectDirective, selector: "[fdFileSelect]", inputs: ["multiple"], outputs: ["fileSelected"] }, { kind: "directive", type: i5.FileUploaderDragndropDirective, selector: "[fdFileDragnDrop], [fd-file-drag-n-drop]", inputs: ["multiple", "accept", "maxFileSize", "minFileSize", "disabled", "dragndrop"], outputs: ["fileChanged", "dragEntered", "dragLeave"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
182
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FileUploaderComponent, decorators: [{
183
183
  type: Component,
184
184
  args: [{ selector: 'fd-file-uploader', host: {
@@ -192,7 +192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
192
192
  },
193
193
  registerFormItemControl(FileUploaderComponent),
194
194
  contentDensityObserverProviders()
195
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [attr.aria-label]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n", styles: [".fd-input{-webkit-box-sizing:border-box;-webkit-box-shadow:none;-webkit-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:none;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.25rem;line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-height:2.25rem;min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;padding:var(--fdInput_Field_Padding, 0 .625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{box-sizing:inherit;font-size:inherit}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){box-sizing:border-box;height:1.625rem;margin:var(--fdInput_Field_Compact_Margin, .1875rem 0);min-height:1.625rem;min-width:var(--fdInput_Field_Compact_Min_Width, 2rem);padding:var(--fdInput_Field_Compact_Padding, 0 .5rem)}.fd-input--no-number-spinner{-moz-appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fd-input.right-align{text-align:right}.fd-input.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{box-shadow:none}.fd-input.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{box-shadow:none}.fd-input.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{box-shadow:none}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{box-shadow:none}.fd-input.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{box-shadow:none}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius)}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly.is-hover,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-hover,.fd-input[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);z-index:5}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-file-uploader{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader:after,.fd-file-uploader:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__container{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.25rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__container:after,.fd-file-uploader__container:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader .fd-file-uploader__input{-webkit-box-flex:1;-ms-flex:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background-color:var(--sapField_Background);color:transparent;cursor:pointer;flex:1;text-shadow:0 0 0 var(--sapTextColor);user-select:none}.fd-file-uploader .fd-file-uploader__input::placeholder{color:var(--sapTextColor)}.fd-file-uploader__hidden{display:none}.fd-file-uploader__uploaded-files{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__uploaded-files:after,.fd-file-uploader__uploaded-files:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__label{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:1.1875rem;margin:1.5rem 0 0;padding:0}.fd-file-uploader__label:after,.fd-file-uploader__label:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;padding:0}.fd-file-uploader__list:after,.fd-file-uploader__list:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list-item{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:calc(1rem + var(--fdFileUploaderButtonsSpacing));justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:.5rem 0 0;padding:0}.fd-file-uploader__list-item:after,.fd-file-uploader__list-item:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__actions{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdFileUploaderButtonsSpacing);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__actions:after,.fd-file-uploader__actions:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader{display:flex}\n"] }]
195
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [ariaLabel]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n", styles: [".fd-input{-webkit-box-sizing:border-box;-webkit-box-shadow:none;-webkit-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:none;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.25rem;line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-height:2.25rem;min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;padding:var(--fdInput_Field_Padding, 0 .625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{box-sizing:inherit;font-size:inherit}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){box-sizing:border-box;height:1.625rem;margin:var(--fdInput_Field_Compact_Margin, .1875rem 0);min-height:1.625rem;min-width:var(--fdInput_Field_Compact_Min_Width, 2rem);padding:var(--fdInput_Field_Compact_Padding, 0 .5rem)}.fd-input--no-number-spinner{-moz-appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fd-input.right-align{text-align:right}.fd-input.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{box-shadow:none}.fd-input.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{box-shadow:none}.fd-input.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{box-shadow:none}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{box-shadow:none}.fd-input.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{box-shadow:none}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius)}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-input.is-readonly.is-hover,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-hover,.fd-input[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);z-index:5}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-file-uploader{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader:after,.fd-file-uploader:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__container{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.25rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__container:after,.fd-file-uploader__container:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader .fd-file-uploader__input{-webkit-box-flex:1;-ms-flex:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background-color:var(--sapField_Background);color:transparent;cursor:pointer;flex:1;text-shadow:0 0 0 var(--sapTextColor);user-select:none}.fd-file-uploader .fd-file-uploader__input::placeholder{color:var(--sapTextColor)}.fd-file-uploader__hidden{display:none}.fd-file-uploader__uploaded-files{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__uploaded-files:after,.fd-file-uploader__uploaded-files:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__label{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:1.1875rem;margin:1.5rem 0 0;padding:0}.fd-file-uploader__label:after,.fd-file-uploader__label:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;padding:0}.fd-file-uploader__list:after,.fd-file-uploader__list:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__list-item{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:calc(1rem + var(--fdFileUploaderButtonsSpacing));justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:.5rem 0 0;padding:0}.fd-file-uploader__list-item:after,.fd-file-uploader__list-item:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader__actions{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdFileUploaderButtonsSpacing);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-file-uploader__actions:after,.fd-file-uploader__actions:before{box-sizing:inherit;font-size:inherit}.fd-file-uploader{display:flex}\n"] }]
196
196
  }], ctorParameters: function () { return [{ type: i1.FileUploaderService }, { type: i0.ChangeDetectorRef }, { type: i2.ContentDensityObserver }]; }, propDecorators: { inputRef: [{
197
197
  type: ViewChild,
198
198
  args: ['fileInput']
@@ -242,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
242
242
  }], onDragLeave: [{
243
243
  type: Output
244
244
  }] } });
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFFaEgsSUFBSSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFbEM7Ozs7R0FJRztBQXFCSCxNQUFNLE9BQU8scUJBQXFCO0lBMkc5QixjQUFjO0lBQ2QsWUFDWSxrQkFBdUMsRUFDdkMsYUFBZ0MsRUFDL0IsdUJBQStDO1FBRmhELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFD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S04sV0FBVztzQkFEVixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQVdHLG9CQUFvQjtzQkFENUIsTUFBTTtnQkFLRSxvQkFBb0I7c0JBRDVCLE1BQU07Z0JBTUUsV0FBVztzQkFGbkIsTUFBTTtnQkFPRSxXQUFXO3NCQUZuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN0YXRlVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkZXJTZXJ2aWNlLCBGaWxlVXBsb2FkT3V0cHV0IH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSwgVEFCIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciwgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuXG5sZXQgZmlsZVVwbG9hZGVySW5wdXRVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogVG9vbCB0byBmYWNpbGl0YXRlIHRoZSBpbnB1dCBvZiBmaWxlcyBmcm9tIHRoZSB1c2VyLlxuICogSXQgc3VwcG9ydHMgZHJhZyBhbmQgZHJvcCwgbXVsdGlwbGUgaW5wdXQsIG1heCBmaWxlIHNpemUgYW5kIG1vcmUuXG4gKiBUaGUgZHJhZyBldmVudHMgbWFrZSBpdCB2ZXJ5IGVhc3kgdG8gY3JlYXRlIGFuZCBzdHlsZSBlbGVtZW50cyBsaWtlIGEgZHJvcHpvbmUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZmlsZS11cGxvYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxuICAgICAgICBjbGFzczogJ2ZkLWZpbGUtdXBsb2FkZXInXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlVXBsb2FkZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woRmlsZVVwbG9hZGVyQ29tcG9uZW50KSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIEZvcm1JdGVtQ29udHJvbCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKVxuICAgIGlucHV0UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnKVxuICAgIGlucHV0UmVmVGV4dDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmaWxlIGlucHV0IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBzaG91bGQgYWNjZXB0IG11bHRpcGxlIGZpbGVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlwbGUgPSB0cnVlO1xuXG4gICAgLyoqIEFjY2VwdGVkIGZpbGUgZXh0ZW5zaW9ucy4gRm9ybWF0OiBgJy5wbmcsLmpwZydgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWNjZXB0OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBhY2NlcHRzIGRyYWcgYW5kIGRyb3BwZWQgZmlsZXMuICovXG4gICAgQElucHV0KClcbiAgICBkcmFnbmRyb3AgPSB0cnVlO1xuXG4gICAgLyoqIE1heCBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtYXhGaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIE1pbiBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtaW5GaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIElkIGZvciB0aGUgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgPSAnZmQtZmlsZS11cGxvYWRlci1pbnB1dCcgKyBmaWxlVXBsb2FkZXJJbnB1dFVuaXF1ZUlkKys7XG5cbiAgICAvKiogYXJpYS1sYWJlbCB2YWx1ZSBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBhcmlhLWxhYmVsLWJ5IHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBwbGFjZWhvbGRlciBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogYnV0dG9uIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25MYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uQXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRoZSBmaWVsZCB0byBzZXQgc3RhdGUgb2YgcmFkaW8gYnV0dG9uIHVzaW5nOlxuICAgICAqICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnZGVmYXVsdCcgfCAnaW5mb3JtYXRpb24nXG4gICAgICogYnkgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogc3RhdGVUeXBlID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqIHNwZWNpZmllcyBudW1iZXIgb2YgZmlsZXMgdG8gYWxsb3cgdG8gc2VsZWN0ICovXG4gICAgQElucHV0KClcbiAgICBmaWxlTGltaXQ6IG51bWJlcjtcblxuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0byBoaWRlIHRoZSBpbnB1dCwgbGVhdmluZyBvbmx5IHRoZSB1cGxvYWQvYnJvd3NlIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIGZpbGUgdXBsb2FkZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHdpZHRoOiBzdHJpbmc7XG5cbiAgICAvKiogKiBJdCBzdG9yZXMgdGhlIHZhbGlkIGZpbGVzICAqL1xuICAgIHZhbGlkRmlsZXM6IEZpbGVbXSA9IFtdO1xuXG4gICAgLyoqICogSXQgc3RvcmVzIHRoZSBpbnZhbGlkIGZpbGVzICAqL1xuICAgIGludmFsaWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQuIFBhc3NlZCBvYmplY3QgaXMgdGhlIGFycmF5IG9mIGZpbGVzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRmlsZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBzb21lIGludmFsaWQgZmlsZXMgYXJlIHNlbGVjdGVkLiBQYXNzZWQgb2JqZWN0IGlzIHRoZSBhcnJheSBvZiBpbnZhbGlkIGZpbGVzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkSW52YWxpZEZpbGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGVudGVycyB0aGUgY29tcG9uZW50IGJvdW5kYXJpZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcmVhZG9ubHkgb25EcmFnRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGV4aXRzIHRoZSBjb21wb25lbnQgYm91bmRhcmllcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkRyYWdMZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWVzOiBGaWxlW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRW1wdHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlRHJvcChmaWxlczogRmlsZVVwbG9hZE91dHB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkRmlsZXMgPSBmaWxlcy52YWxpZEZpbGVzID8/IFtdO1xuICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IGZpbGVzLmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdEhhbmRsZXIoZXZlbnQ6IEZpbGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmlsZXMoZXZlbnQpO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdmFsaWRhdGVGaWxlcyhldmVudDogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVMaW1pdCAmJiBldmVudC5sZW5ndGggPiB0aGlzLmZpbGVMaW1pdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlTGltaXRFcnJvciAtIFNlbGVjdGVkIGZpbGVzIGNvdW50IGlzIG1vcmUgdGhhbiBzcGVjaWZpZWQgbGltaXQgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlT3V0cHV0OiBGaWxlVXBsb2FkT3V0cHV0ID0gdGhpcy5fZmlsZVVwbG9hZFNlcnZpY2UudmFsaWRhdGVGaWxlcyhcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGhpcy5taW5GaWxlU2l6ZSxcbiAgICAgICAgICAgIHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgICAgICB0aGlzLmFjY2VwdFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IGZpbGVPdXRwdXQudmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5pbnZhbGlkRmlsZXMgPSBmaWxlT3V0cHV0LmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldElucHV0VmFsdWUoc2VsZWN0ZWRGaWxlczogRmlsZVtdLCBmcm9tQ2xlYXIgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBsZXQgZmlsZU5hbWUgPSAnJztcbiAgICAgICAgc2VsZWN0ZWRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiAoZmlsZU5hbWUgPSBmaWxlTmFtZS5jb25jYXQoJyAnICsgZmlsZS5uYW1lKSkpO1xuICAgICAgICBpZiAoIXRoaXMuaW5wdXRSZWZUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC52YWx1ZSA9IGZpbGVOYW1lO1xuICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gZmlsZU5hbWU7XG4gICAgICAgIGlmIChmaWxlTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IGZpbGVOYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZyb21DbGVhcikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBrZXlEb3duSGFuZGxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1RBQl0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgZmlsZSBzZWxlY3Rvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBmaWxlcyBmcm9tIHRoZSBpbnB1dC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRGaWxlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnZhbGlkRmlsZXMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJvcGFnYXRlRmlsZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLnZhbGlkRmlsZXMpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRGaWxlcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlc0NoYW5nZWQuZW1pdCh0aGlzLnZhbGlkRmlsZXMpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW52YWxpZEZpbGVzLmVtaXQodGhpcy5pbnZhbGlkRmlsZXMpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLWZpbGUtdXBsb2FkZXJfX2NvbnRhaW5lclwiXG4gICAgZmRGaWxlRHJhZ25Ecm9wXG4gICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gICAgW21pbkZpbGVTaXplXT1cIm1pbkZpbGVTaXplXCJcbiAgICBbZHJhZ25kcm9wXT1cImRyYWduZHJvcFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIChmaWxlQ2hhbmdlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChkcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlci5lbWl0KClcIlxuICAgIChkcmFnTGVhdmUpPVwib25EcmFnTGVhdmUuZW1pdCgpXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgI3RleHRJbnB1dFxuICAgICAgICBjbGFzcz1cImZkLWlucHV0IGZkLWZpbGUtdXBsb2FkZXJfX2lucHV0XCJcbiAgICAgICAgW2NsYXNzXT1cInN0YXRlID8gJyBpcy0nICsgc3RhdGUgOiAnJ1wiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RpdGxlXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFt2YWx1ZV09XCJcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbaGlkZGVuXT1cImlucHV0SGlkZGVuXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgICAgIChrZXlkb3duKT1cImtleURvd25IYW5kbGUoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmlsZS11cGxvYWRlcl9fYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25BcmlhTGFiZWxcIlxuICAgICAgICBbbGFiZWxdPVwiYnV0dG9uTGFiZWxcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib3BlbigpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkLWZvcm0tY29udHJvbF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIGZkRmlsZVNlbGVjdFxuICAgIGNsYXNzPVwiZmQtZmlsZS11cGxvYWRlcl9faGlkZGVuXCJcbiAgICB0eXBlPVwiZmlsZVwiXG4gICAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChmaWxlU2VsZWN0ZWQpPVwic2VsZWN0SGFuZGxlcigkZXZlbnQpXCJcbi8+XG4iXX0=
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFFaEgsSUFBSSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFFbEM7Ozs7R0FJRztBQXFCSCxNQUFNLE9BQU8scUJBQXFCO0lBMkc5QixjQUFjO0lBQ2QsWUFDWSxrQkFBdUMsRUFDdkMsYUFBZ0MsRUFDL0IsdUJBQStDO1FBRmhELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFD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S04sV0FBVztzQkFEVixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQVdHLG9CQUFvQjtzQkFENUIsTUFBTTtnQkFLRSxvQkFBb0I7c0JBRDVCLE1BQU07Z0JBTUUsV0FBVztzQkFGbkIsTUFBTTtnQkFPRSxXQUFXO3NCQUZuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN0YXRlVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkZXJTZXJ2aWNlLCBGaWxlVXBsb2FkT3V0cHV0IH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSwgVEFCIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciwgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuXG5sZXQgZmlsZVVwbG9hZGVySW5wdXRVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogVG9vbCB0byBmYWNpbGl0YXRlIHRoZSBpbnB1dCBvZiBmaWxlcyBmcm9tIHRoZSB1c2VyLlxuICogSXQgc3VwcG9ydHMgZHJhZyBhbmQgZHJvcCwgbXVsdGlwbGUgaW5wdXQsIG1heCBmaWxlIHNpemUgYW5kIG1vcmUuXG4gKiBUaGUgZHJhZyBldmVudHMgbWFrZSBpdCB2ZXJ5IGVhc3kgdG8gY3JlYXRlIGFuZCBzdHlsZSBlbGVtZW50cyBsaWtlIGEgZHJvcHpvbmUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZmlsZS11cGxvYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxuICAgICAgICBjbGFzczogJ2ZkLWZpbGUtdXBsb2FkZXInXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlVXBsb2FkZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woRmlsZVVwbG9hZGVyQ29tcG9uZW50KSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIEZvcm1JdGVtQ29udHJvbCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKVxuICAgIGlucHV0UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnKVxuICAgIGlucHV0UmVmVGV4dDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmaWxlIGlucHV0IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBzaG91bGQgYWNjZXB0IG11bHRpcGxlIGZpbGVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlwbGUgPSB0cnVlO1xuXG4gICAgLyoqIEFjY2VwdGVkIGZpbGUgZXh0ZW5zaW9ucy4gRm9ybWF0OiBgJy5wbmcsLmpwZydgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWNjZXB0OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsZSBpbnB1dCBhY2NlcHRzIGRyYWcgYW5kIGRyb3BwZWQgZmlsZXMuICovXG4gICAgQElucHV0KClcbiAgICBkcmFnbmRyb3AgPSB0cnVlO1xuXG4gICAgLyoqIE1heCBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtYXhGaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIE1pbiBmaWxlIHNpemUgaW4gYnl0ZXMgdGhhdCB0aGUgaW5wdXQgd2lsbCBhY2NlcHQuICovXG4gICAgQElucHV0KClcbiAgICBtaW5GaWxlU2l6ZSA9ICcnO1xuXG4gICAgLyoqIElkIGZvciB0aGUgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgPSAnZmQtZmlsZS11cGxvYWRlci1pbnB1dCcgKyBmaWxlVXBsb2FkZXJJbnB1dFVuaXF1ZUlkKys7XG5cbiAgICAvKiogYXJpYS1sYWJlbCB2YWx1ZSBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBhcmlhLWxhYmVsLWJ5IHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBwbGFjZWhvbGRlciBmb3IgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogYnV0dG9uIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25MYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIHZhbHVlIGZvciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYnV0dG9uQXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRoZSBmaWVsZCB0byBzZXQgc3RhdGUgb2YgcmFkaW8gYnV0dG9uIHVzaW5nOlxuICAgICAqICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnZGVmYXVsdCcgfCAnaW5mb3JtYXRpb24nXG4gICAgICogYnkgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogc3RhdGVUeXBlID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqIHNwZWNpZmllcyBudW1iZXIgb2YgZmlsZXMgdG8gYWxsb3cgdG8gc2VsZWN0ICovXG4gICAgQElucHV0KClcbiAgICBmaWxlTGltaXQ6IG51bWJlcjtcblxuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0byBoaWRlIHRoZSBpbnB1dCwgbGVhdmluZyBvbmx5IHRoZSB1cGxvYWQvYnJvd3NlIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIGZpbGUgdXBsb2FkZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHdpZHRoOiBzdHJpbmc7XG5cbiAgICAvKiogKiBJdCBzdG9yZXMgdGhlIHZhbGlkIGZpbGVzICAqL1xuICAgIHZhbGlkRmlsZXM6IEZpbGVbXSA9IFtdO1xuXG4gICAgLyoqICogSXQgc3RvcmVzIHRoZSBpbnZhbGlkIGZpbGVzICAqL1xuICAgIGludmFsaWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQuIFBhc3NlZCBvYmplY3QgaXMgdGhlIGFycmF5IG9mIGZpbGVzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRmlsZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBzb21lIGludmFsaWQgZmlsZXMgYXJlIHNlbGVjdGVkLiBQYXNzZWQgb2JqZWN0IGlzIHRoZSBhcnJheSBvZiBpbnZhbGlkIGZpbGVzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkSW52YWxpZEZpbGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGVudGVycyB0aGUgY29tcG9uZW50IGJvdW5kYXJpZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcmVhZG9ubHkgb25EcmFnRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiB0aGUgZHJhZ2dlZCBmaWxlIGV4aXRzIHRoZSBjb21wb25lbnQgYm91bmRhcmllcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkRyYWdMZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWVzOiBGaWxlW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRW1wdHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFuZGxlRHJvcChmaWxlczogRmlsZVVwbG9hZE91dHB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkRmlsZXMgPSBmaWxlcy52YWxpZEZpbGVzID8/IFtdO1xuICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IGZpbGVzLmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlRmlsZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdEhhbmRsZXIoZXZlbnQ6IEZpbGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmlsZXMoZXZlbnQpO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdmFsaWRhdGVGaWxlcyhldmVudDogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVMaW1pdCAmJiBldmVudC5sZW5ndGggPiB0aGlzLmZpbGVMaW1pdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlTGltaXRFcnJvciAtIFNlbGVjdGVkIGZpbGVzIGNvdW50IGlzIG1vcmUgdGhhbiBzcGVjaWZpZWQgbGltaXQgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlT3V0cHV0OiBGaWxlVXBsb2FkT3V0cHV0ID0gdGhpcy5fZmlsZVVwbG9hZFNlcnZpY2UudmFsaWRhdGVGaWxlcyhcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGhpcy5taW5GaWxlU2l6ZSxcbiAgICAgICAgICAgIHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgICAgICB0aGlzLmFjY2VwdFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IGZpbGVPdXRwdXQudmFsaWRGaWxlcyA/PyBbXTtcbiAgICAgICAgdGhpcy5pbnZhbGlkRmlsZXMgPSBmaWxlT3V0cHV0LmludmFsaWRGaWxlcyA/PyBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldElucHV0VmFsdWUoc2VsZWN0ZWRGaWxlczogRmlsZVtdLCBmcm9tQ2xlYXIgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBsZXQgZmlsZU5hbWUgPSAnJztcbiAgICAgICAgc2VsZWN0ZWRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiAoZmlsZU5hbWUgPSBmaWxlTmFtZS5jb25jYXQoJyAnICsgZmlsZS5uYW1lKSkpO1xuICAgICAgICBpZiAoIXRoaXMuaW5wdXRSZWZUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC52YWx1ZSA9IGZpbGVOYW1lO1xuICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gZmlsZU5hbWU7XG4gICAgICAgIGlmIChmaWxlTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IGZpbGVOYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmVGV4dC5uYXRpdmVFbGVtZW50LnRpdGxlID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZyb21DbGVhcikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZlRleHQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBrZXlEb3duSGFuZGxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1RBQl0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgZmlsZSBzZWxlY3Rvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBmaWxlcyBmcm9tIHRoZSBpbnB1dC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmludmFsaWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVGaWxlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRGaWxlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnZhbGlkRmlsZXMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJvcGFnYXRlRmlsZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLnZhbGlkRmlsZXMpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRGaWxlcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlc0NoYW5nZWQuZW1pdCh0aGlzLnZhbGlkRmlsZXMpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW52YWxpZEZpbGVzLmVtaXQodGhpcy5pbnZhbGlkRmlsZXMpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLWZpbGUtdXBsb2FkZXJfX2NvbnRhaW5lclwiXG4gICAgZmRGaWxlRHJhZ25Ecm9wXG4gICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gICAgW21pbkZpbGVTaXplXT1cIm1pbkZpbGVTaXplXCJcbiAgICBbZHJhZ25kcm9wXT1cImRyYWduZHJvcFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIChmaWxlQ2hhbmdlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChkcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlci5lbWl0KClcIlxuICAgIChkcmFnTGVhdmUpPVwib25EcmFnTGVhdmUuZW1pdCgpXCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgI3RleHRJbnB1dFxuICAgICAgICBjbGFzcz1cImZkLWlucHV0IGZkLWZpbGUtdXBsb2FkZXJfX2lucHV0XCJcbiAgICAgICAgW2NsYXNzXT1cInN0YXRlID8gJyBpcy0nICsgc3RhdGUgOiAnJ1wiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RpdGxlXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFt2YWx1ZV09XCJcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbaGlkZGVuXT1cImlucHV0SGlkZGVuXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgICAgIChrZXlkb3duKT1cImtleURvd25IYW5kbGUoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmlsZS11cGxvYWRlcl9fYnV0dG9uXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJidXR0b25BcmlhTGFiZWxcIlxuICAgICAgICBbbGFiZWxdPVwiYnV0dG9uTGFiZWxcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib3BlbigpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkLWZvcm0tY29udHJvbF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIGZkRmlsZVNlbGVjdFxuICAgIGNsYXNzPVwiZmQtZmlsZS11cGxvYWRlcl9faGlkZGVuXCJcbiAgICB0eXBlPVwiZmlsZVwiXG4gICAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChmaWxlU2VsZWN0ZWQpPVwic2VsZWN0SGFuZGxlcigkZXZlbnQpXCJcbi8+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/member-ordering */
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, inject, Inject, Input, Optional, Output, QueryList, ViewEncapsulation } from '@angular/core';
2
+ import { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, inject, Inject, Input, Optional, Output, QueryList, ViewEncapsulation } from '@angular/core';
3
3
  import { ENTER, SPACE } from '@angular/cdk/keycodes';
4
4
  import { KeyUtil, LIST_ITEM_COMPONENT } from '@fundamental-ngx/cdk/utils';
5
5
  import { FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';
@@ -45,10 +45,15 @@ export class ListItemComponent extends ListFocusItem {
45
45
  return this._checkbox;
46
46
  }
47
47
  /** @hidden */
48
- constructor(elementRef, _changeDetectorRef, _unreadIndicator) {
48
+ get roleAttr() {
49
+ return this.ariaRole || this._role;
50
+ }
51
+ /** @hidden */
52
+ constructor(elementRef, _changeDetectorRef, _defaultRole, _unreadIndicator) {
49
53
  super(elementRef);
50
54
  this.elementRef = elementRef;
51
55
  this._changeDetectorRef = _changeDetectorRef;
56
+ this._defaultRole = _defaultRole;
52
57
  this._unreadIndicator = _unreadIndicator;
53
58
  /** Whether list item is selected */
54
59
  this.selected = false;
@@ -171,8 +176,8 @@ export class ListItemComponent extends ListFocusItem {
171
176
  event.preventDefault();
172
177
  }
173
178
  }
174
- ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FD_LIST_UNREAD_INDICATOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
175
- ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", byline: "byline", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this._role" }, classAttribute: "fd-list__item" }, providers: [
179
+ ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: 'role', attribute: true }, { token: FD_LIST_UNREAD_INDICATOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
180
+ ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", byline: "byline", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText", ariaRole: "ariaRole" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this.roleAttr" }, classAttribute: "fd-list__item" }, providers: [
176
181
  {
177
182
  provide: LIST_ITEM_COMPONENT,
178
183
  useExisting: forwardRef(() => ListItemComponent)
@@ -197,6 +202,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
197
202
  }
198
203
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"checkbox || radio\">\n <div fd-form-item class=\"fd-list__form-item\">\n <ng-content select=\"fd-checkbox\"></ng-content>\n <ng-content select=\"fd-radio-button\"></ng-content>\n </div>\n</ng-container>\n\n<span *ngIf=\"unread && (!_list || _list.byline)\" class=\"sap-icon--circle-task-2 fd-list__notification\"></span>\n\n<ng-content></ng-content>\n\n<span *ngIf=\"counter || counter === 0\" class=\"fd-list__item-counter\">\n {{ counter | number : '1.0-2' }}\n</span>\n" }]
199
204
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
205
+ type: Attribute,
206
+ args: ['role']
207
+ }] }, { type: undefined, decorators: [{
200
208
  type: Optional
201
209
  }, {
202
210
  type: Inject,
@@ -254,6 +262,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
254
262
  }], link: [{
255
263
  type: HostBinding,
256
264
  args: ['class.fd-list__item--link']
265
+ }], ariaRole: [{
266
+ type: Input
257
267
  }], radio: [{
258
268
  type: ContentChild,
259
269
  args: [FD_RADIO_BUTTON_COMPONENT]
@@ -266,7 +276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
266
276
  }], buttons: [{
267
277
  type: ContentChildren,
268
278
  args: [FD_BUTTON_COMPONENT, { descendants: true }]
269
- }], _role: [{
279
+ }], roleAttr: [{
270
280
  type: HostBinding,
271
281
  args: ['attr.role']
272
282
  }], keydownHandler: [{
@@ -282,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
282
292
  type: HostListener,
283
293
  args: ['focus']
284
294
  }] } });
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBK0IsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RyxPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsc0JBQXNC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Z0JBS04saUNBQWlDO3NCQURoQyxLQUFLO2dCQUtOLG1DQUFtQztzQkFEbEMsS0FBSztnQkFLTixPQUFPO3NCQUROLE1BQU07Z0JBS1AsSUFBSTtzQkFESCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFLcEMsS0FBSztzQkFEUixZQUFZO3VCQUFDLHlCQUF5QjtnQkFnQm5DLFFBQVE7c0JBRFgsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBZ0JuQyxjQUFjO3NCQURiLGVBQWU7dUJBQUMsc0JBQXNCO2dCQUt2QyxPQUFPO3NCQUROLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQW9CbkQsS0FBSztzQkFEWixXQUFXO3VCQUFDLFdBQVc7Z0JBa0N4QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQnpCLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAqL1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBLZXlVdGlsLCBMSVNUX0lURU1fQ09NUE9ORU5ULCBMaXN0SXRlbUludGVyZmFjZSwgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQsIEZEX0JVVFRPTl9DT01QT05FTlQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50LCBGRF9DSEVDS0JPWF9DT01QT05FTlQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY2hlY2tib3gnO1xuaW1wb3J0IHsgRkRfUkFESU9fQlVUVE9OX0NPTVBPTkVOVCwgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMaXN0TGlua0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbGlzdC1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMaXN0Rm9jdXNJdGVtIH0gZnJvbSAnLi4vbGlzdC1mb2N1cy1pdGVtLm1vZGVsJztcbmltcG9ydCB7IExpc3RVbnJlYWRJbmRpY2F0b3IgfSBmcm9tICcuLi9saXN0LXVucmVhZC1pbmRpY2F0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZEX0xJU1RfTElOS19ESVJFQ1RJVkUsIEZEX0xJU1RfVU5SRUFEX0lORElDQVRPUiB9IGZyb20gJy4uL3Rva2Vucyc7XG5cbmxldCBsaXN0SXRlbVVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIGxpc3QgaXRlbS5cbiAqIFRoZSBsaXN0IGl0ZW0gY2FuIGNvbnRhaW4gcGxhaW4gdGV4dCwgbGlua3Mgb3IgYWN0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZExpc3RJdGVtXSAsW2ZkLWxpc3QtaXRlbV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1saXN0X19pdGVtJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExJU1RfSVRFTV9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaXN0SXRlbUNvbXBvbmVudClcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTGlzdEZvY3VzSXRlbSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RJdGVtQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIExpc3RJdGVtQ29tcG9uZW50PFQgPSBhbnk+XG4gICAgZXh0ZW5kcyBMaXN0Rm9jdXNJdGVtPFQ+XG4gICAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIExpc3RJdGVtSW50ZXJmYWNlXG57XG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGlzIHNlbGVjdGVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFNldHMgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIGxpc3QgaXRlbS5cbiAgICAgKiBOb3RlLCB0aGF0IGl0IGlzIGJlaW5nIGNvbWJpbmVkIHdpdGggaW50ZXJuYWwgdmFsdWVzIGZvciB0aGlzIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgbm8gZGF0YSBpbnNpZGUgbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLW5vLWRhdGEnKVxuICAgIG5vRGF0YSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1hY3Rpb24nKVxuICAgIGFjdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1pbnRlcnJhY3RpdmUnKVxuICAgIGludGVyYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gY29udGFpbnMgYnVzeSBpbmRpY2F0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tZ3Jvd2luZycpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqIENvdW50ZXIgb24gbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyOiBudW1iZXI7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gc2hvdWxkIGNvbnRhaW4gYWRkaXRpb25hbCB1blJlYWQgc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLXVucmVhZCcpXG4gICAgdW5yZWFkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW0gaXMgYnlsaW5lXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWJ5bGluZScpXG4gICAgYnlsaW5lID0gZmFsc2U7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIHNlbGVjdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBUZXh0IHRvIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlciBmb3IgbmF2aWdhdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIG5hdmlnYXRhYmxlIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGFibGVMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfCBUT0RPIFJldmlzaXQgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSovXG4gICAgQE91dHB1dCgpXG4gICAga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGxpbmsgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWxpbmsnKVxuICAgIGxpbmsgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9SQURJT19CVVRUT05fQ09NUE9ORU5UKVxuICAgIHNldCByYWRpbyh2YWx1ZTogUmFkaW9CdXR0b25Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5fcmFkaW8gPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX3JhZGlvICYmIHRoaXMuX3JhZGlvLnRhYkluZGV4ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3JhZGlvLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHJhZGlvKCk6IFJhZGlvQnV0dG9uQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JhZGlvO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9DSEVDS0JPWF9DT01QT05FTlQpXG4gICAgc2V0IGNoZWNrYm94KHZhbHVlOiBDaGVja2JveENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLl9jaGVja2JveCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fY2hlY2tib3ggJiYgdGhpcy5fY2hlY2tib3gudGFiSW5kZXhWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja2JveC50YWJJbmRleFZhbHVlID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ29wdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94KCk6IENoZWNrYm94Q29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrYm94O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGRF9MSVNUX0xJTktfRElSRUNUSVZFKVxuICAgIGxpbmtEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8TGlzdExpbmtEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0JVVFRPTl9DT01QT05FTlQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBidXR0b25zOiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZykgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uTGlua0xpc3RDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JhZGlvOiBSYWRpb0J1dHRvbkNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tib3g6IENoZWNrYm94Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gZ3JvdXAgaGVhZGVyIGlkLCB0aGF0IGlzIGJlaW5nIHNldCBieSBwYXJlbnQgbGlzdCBjb21wb25lbnQgKi9cbiAgICBfcmVsYXRlZEdyb3VwSGVhZGVySWQ6IHN0cmluZyB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwcml2YXRlIF9yb2xlID0gJ2xpc3RpdGVtJzsgLy8gZGVmYXVsdCBmb3IgbGkgZWxlbWVudHNcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3VuaXF1ZUlkID0gJ2ZkLWxpc3QtaXRlbS0nICsgKytsaXN0SXRlbVVuaXF1ZUlkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfbGlzdCA9IGluamVjdChGRF9MSVNUX1VOUkVBRF9JTkRJQ0FUT1IsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkRfTElTVF9VTlJFQURfSU5ESUNBVE9SKSBwcml2YXRlIHJlYWRvbmx5IF91bnJlYWRJbmRpY2F0b3I/OiBMaXN0VW5yZWFkSW5kaWNhdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3gubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpbykge1xuICAgICAgICAgICAgICAgIHRoaXMucmFkaW8ubGFiZWxDbGlja2VkKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5rRGlyZWN0aXZlcy5maXJzdC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtleURvd24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5dXBIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pICYmIHRoaXMubGluaykge1xuICAgICAgICAgICAgY29uc3QgX2FuY2hvckVsZW1lbnQgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmZpcnN0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIF9hbmNob3JFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgX2FuY2hvckVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSGFuZGxlciBmb3IgbW91c2UgZXZlbnRzICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xpY2tlZCQubmV4dChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94ICYmICF0aGlzLmxpbmspIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2JveC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb24gdGhlIGNoZWNrYm94IGlzIG5vdCBzdXBwcmVzc2VkXG4gICAgICAgICAgICAgICAgLy8gc28gd2Ugc2hvdWxkIG9ubHkgcHJvY2VzcyBjbGlja3MgaWYgY2xpY2tlZCBvbiB0aGUgbGlzdC1pdGVtLCBub3QgY2hlY2tib3ggaXRzZWxmXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5uZXh0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yYWRpbyAmJiAhdGhpcy5saW5rKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvLmxhYmVsQ2xpY2tlZChldmVudCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHJpdmF0ZSBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgaW5uZXIgZm9jdXNhYmxlIGxpbmtcbiAgICAgICAgY29uc3QgdGFiYmFibGVMaW5rID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZkLWxpc3RfX2xpbmsuZmQtbGlzdF9fbGluay0tZm9jdXNhYmxlJyk7XG4gICAgICAgIHRhYmJhYmxlTGluaz8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uTGlua1F1ZXJ5Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtEaXJlY3RpdmVzLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5saW5rRGlyZWN0aXZlcyksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29uTGlua0xpc3RDaGFuZ2VkJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmxpbmsgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25CdXR0b25RdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idXR0b25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgoMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5mb3JFYWNoKHRoaXMuX2FkZENsYXNzVG9CdXR0b25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDbGFzc1RvQnV0dG9ucyhidXR0b246IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBidXR0b24uY2xhc3MgKz0gJyBmZC1saXN0X19idXR0b24nO1xuICAgICAgICBidXR0b24uYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICBidXR0b24uZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbXV0ZUV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tib3ggfHwgcmFkaW9cIj5cbiAgICA8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cImZkLWxpc3RfX2Zvcm0taXRlbVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1jaGVja2JveFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtcmFkaW8tYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxzcGFuICpuZ0lmPVwidW5yZWFkICYmICghX2xpc3QgfHwgX2xpc3QuYnlsaW5lKVwiIGNsYXNzPVwic2FwLWljb24tLWNpcmNsZS10YXNrLTIgZmQtbGlzdF9fbm90aWZpY2F0aW9uXCI+PC9zcGFuPlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjxzcGFuICpuZ0lmPVwiY291bnRlciB8fCBjb3VudGVyID09PSAwXCIgY2xhc3M9XCJmZC1saXN0X19pdGVtLWNvdW50ZXJcIj5cbiAgICB7eyBjb3VudGVyIHwgbnVtYmVyIDogJzEuMC0yJyB9fVxuPC9zcGFuPlxuIl19
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFFSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQStCLE1BQU0sNEJBQTRCLENBQUM7QUFDdkcsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRTdFLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOzs7R0FHRztBQXFCSCxNQUFNLE9BQU8saUJBQ1QsU0FBUSxhQUFnQjtJQTRFeEIsY0FBYztJQUNkLElBQ0ksS0FBSyxDQUFDLEtBQTJCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUNELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztJQUNkLElBQ0ksUUFBUSxDQUFDLEtBQXdCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUU7WUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBeUJELGNBQWM7SUFDZCxJQUNZLFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQWFELGNBQWM7SUFDZCxZQUNvQixVQUFzQixFQUNyQixrQkFBcUMsRUFDbEIsWUFBMkIsRUFDQSxnQkFBc0M7UUFFckcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBTEYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ2xCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQ0EscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQXBKekcsb0NBQW9DO1FBSXBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFTakIsZ0RBQWdEO1FBR2hELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixpREFBaUQ7UUFHakQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLGlEQUFpRDtRQUdqRCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixnREFBZ0Q7UUFHaEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU1oQixnRUFBZ0U7UUFHaEUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmOztXQUVHO1FBR0gsV0FBTSxHQUFHLEtBQUssQ0FBQztRQWNmLHdHQUF3RztRQUV4RyxZQUFPLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRXpFLHNDQUFzQztRQUV0QyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBNENiLCtHQUErRztRQUM5RixnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxFLGNBQWM7UUFDRyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBaUIzRCxjQUFjO1FBQ04sVUFBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLDBCQUEwQjtRQUV0RCxjQUFjO1FBQ0wsY0FBUyxHQUFHLGVBQWUsR0FBRyxFQUFFLGdCQUFnQixDQUFDO1FBRTFELGNBQWM7UUFDTCxVQUFLLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFO1lBQzlDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQVVILENBQUM7SUFFRCxjQUFjO0lBQ2Qsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjO0lBRWQsY0FBYyxDQUFDLEtBQW9CO1FBQy9CLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUMxQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtpQkFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixPQUFPO2FBQ1Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDMUI7U0FDSjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO0lBRWQsWUFBWSxDQUFDLEtBQW9CO1FBQzdCLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3ZELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDMUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsK0JBQStCO0lBRS9CLE9BQU8sQ0FBQyxLQUFpQjtRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFjLENBQUMsRUFBRTtnQkFDeEUsNkNBQTZDO2dCQUM3QyxvRkFBb0Y7Z0JBQ3BGLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDN0I7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFFTixRQUFRO1FBQ1osbUNBQW1DO1FBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzVHLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNOLHdCQUF3QjtRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6RyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDTiwwQkFBMEI7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoRixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ04sa0JBQWtCLENBQUMsTUFBdUI7UUFDOUMsTUFBTSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsQ0FBQztRQUNuQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7SUFDTixVQUFVLENBQUMsS0FBWTtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzhHQTdQUSxpQkFBaUIsNkVBdUpYLE1BQU0sOEJBQ0csd0JBQXdCO2tHQXhKdkMsaUJBQWlCLG9wQ0FiZjtRQUNQO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQ25EO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsYUFBYTtZQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQ25EO0tBQ0osNkRBa0ZhLHlCQUF5QiwyRUFlekIscUJBQXFCLG9FQWVsQixzQkFBc0IsMENBSXRCLG1CQUFtQix1RUM5S3hDLHVnQkFjQTsyRkRnRGEsaUJBQWlCO2tCQXBCN0IsU0FBUzsrQkFFSSw4QkFBOEIsUUFFbEM7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7cUJBQ3pCLGFBQ1U7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7eUJBQ25EO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzt5QkFDbkQ7cUJBQ0osbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQXlKaEMsU0FBUzsyQkFBQyxNQUFNOzswQkFDaEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx3QkFBd0I7NENBaEpoRCxRQUFRO3NCQUhQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsbUJBQW1COztzQkFDL0IsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBUWpDLGVBQWU7c0JBRGQsS0FBSztnQkFNTixNQUFNO3NCQUZMLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsOEJBQThCO2dCQU0zQyxNQUFNO3NCQUZMLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsNkJBQTZCO2dCQU0xQyxXQUFXO3NCQUZWLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsbUNBQW1DO2dCQU1oRCxPQUFPO3NCQUZOLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsOEJBQThCO2dCQUszQyxPQUFPO3NCQUROLEtBQUs7Z0JBTU4sTUFBTTtzQkFGTCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDZCQUE2QjtnQkFRMUMsTUFBTTtzQkFGTCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDZCQUE2QjtnQkFLMUMsZ0NBQWdDO3NCQUQvQixLQUFLO2dCQUtOLGlDQUFpQztzQkFEaEMsS0FBSztnQkFLTixtQ0FBbUM7c0JBRGxDLEtBQUs7Z0JBS04sT0FBTztzQkFETixNQUFNO2dCQUtQLElBQUk7c0JBREgsV0FBVzt1QkFBQywyQkFBMkI7Z0JBS3hDLFFBQVE7c0JBRFAsS0FBSztnQkFLRixLQUFLO3NCQURSLFlBQVk7dUJBQUMseUJBQXlCO2dCQWdCbkMsUUFBUTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFnQm5DLGNBQWM7c0JBRGIsZUFBZTt1QkFBQyxzQkFBc0I7Z0JBS3ZDLE9BQU87c0JBRE4sZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBb0IvQyxRQUFRO3NCQURuQixXQUFXO3VCQUFDLFdBQVc7Z0JBd0N4QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQnpCLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAqL1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgS2V5VXRpbCwgTElTVF9JVEVNX0NPTVBPTkVOVCwgTGlzdEl0ZW1JbnRlcmZhY2UsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBGRF9CVVRUT05fQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCwgRkRfQ0hFQ0tCT1hfQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IEZEX1JBRElPX0JVVFRPTl9DT01QT05FTlQsIFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3JhZGlvJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTGlzdExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2xpc3QtbGluay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGlzdEZvY3VzSXRlbSB9IGZyb20gJy4uL2xpc3QtZm9jdXMtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0VW5yZWFkSW5kaWNhdG9yIH0gZnJvbSAnLi4vbGlzdC11bnJlYWQtaW5kaWNhdG9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGRF9MSVNUX0xJTktfRElSRUNUSVZFLCBGRF9MSVNUX1VOUkVBRF9JTkRJQ0FUT1IgfSBmcm9tICcuLi90b2tlbnMnO1xuXG5sZXQgbGlzdEl0ZW1VbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogVGhlIGNvbXBvbmVudCB0aGF0IHJlcHJlc2VudHMgYSBsaXN0IGl0ZW0uXG4gKiBUaGUgbGlzdCBpdGVtIGNhbiBjb250YWluIHBsYWluIHRleHQsIGxpbmtzIG9yIGFjdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRMaXN0SXRlbV0gLFtmZC1saXN0LWl0ZW1dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbGlzdF9faXRlbSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMSVNUX0lURU1fQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExpc3RGb2N1c0l0ZW0sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaXN0SXRlbUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUNvbXBvbmVudDxUID0gYW55PlxuICAgIGV4dGVuZHMgTGlzdEZvY3VzSXRlbTxUPlxuICAgIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBMaXN0SXRlbUludGVyZmFjZVxue1xuICAgIC8qKiBXaGV0aGVyIGxpc3QgaXRlbSBpcyBzZWxlY3RlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxuICAgIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBTZXRzIGFyaWEtZGVzY3JpYmVkYnkgYXR0cmlidXRlIGZvciBsaXN0IGl0ZW0uXG4gICAgICogTm90ZSwgdGhhdCBpdCBpcyBiZWluZyBjb21iaW5lZCB3aXRoIGludGVybmFsIHZhbHVlcyBmb3IgdGhpcyBjb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFEZXNjcmliZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZXJlIGlzIG5vIGRhdGEgaW5zaWRlIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1uby1kYXRhJylcbiAgICBub0RhdGEgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZXJlIGlzIGl0ZW0gcGVyZm9ybXMgc29tZSBhY3Rpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tYWN0aW9uJylcbiAgICBhY3Rpb24gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZXJlIGlzIGl0ZW0gcGVyZm9ybXMgc29tZSBhY3Rpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0taW50ZXJyYWN0aXZlJylcbiAgICBpbnRlcmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGJ1c3kgaW5kaWNhdG9yICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWdyb3dpbmcnKVxuICAgIGdyb3dpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBDb3VudGVyIG9uIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgY291bnRlcjogbnVtYmVyO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIHNob3VsZCBjb250YWluIGFkZGl0aW9uYWwgdW5SZWFkIHN0eWxlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS11bnJlYWQnKVxuICAgIHVucmVhZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgbGlzdCBpdGVtIGlzIGJ5bGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1ieWxpbmUnKVxuICAgIGJ5bGluZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRleHQgdG8gYmUgcmVhZCBieSBzY3JlZW4gcmVhZGVyIGZvciBzZWxlY3RlZCBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIG5hdmlnYXRlZCBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRlZExpc3RJdGVtU2NyZWVuUmVhZGVyVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRleHQgdG8gYmUgcmVhZCBieSBzY3JlZW4gcmVhZGVyIGZvciBuYXZpZ2F0YWJsZSBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRhYmxlTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiBJbXBsZW1lbnRhdGlvbiBvZiBLZXlib2FyZFN1cHBvcnRJdGVtSW50ZXJmYWNlIHwgVE9ETyBSZXZpc2l0IEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UqL1xuICAgIEBPdXRwdXQoKVxuICAgIGtleURvd246IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBXaGV0aGVyIGxpc3QgaXRlbSBjb250YWlucyBsaW5rICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1saW5rJylcbiAgICBsaW5rID0gZmFsc2U7XG5cbiAgICAvKiogQXJpYS1yb2xlIGF0dHJpYnV0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFSb2xlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEZEX1JBRElPX0JVVFRPTl9DT01QT05FTlQpXG4gICAgc2V0IHJhZGlvKHZhbHVlOiBSYWRpb0J1dHRvbkNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLl9yYWRpbyA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fcmFkaW8gJiYgdGhpcy5fcmFkaW8udGFiSW5kZXggPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fcmFkaW8udGFiSW5kZXggPSAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3JvbGUgPSAnb3B0aW9uJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgcmFkaW8oKTogUmFkaW9CdXR0b25Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmFkaW87XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEZEX0NIRUNLQk9YX0NPTVBPTkVOVClcbiAgICBzZXQgY2hlY2tib3godmFsdWU6IENoZWNrYm94Q29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuX2NoZWNrYm94ID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9jaGVja2JveCAmJiB0aGlzLl9jaGVja2JveC50YWJJbmRleFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrYm94LnRhYkluZGV4VmFsdWUgPSAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3JvbGUgPSAnb3B0aW9uJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgY2hlY2tib3goKTogQ2hlY2tib3hDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tib3g7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0xJU1RfTElOS19ESVJFQ1RJVkUpXG4gICAgbGlua0RpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxMaXN0TGlua0RpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRfQlVUVE9OX0NPTVBPTkVOVCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIGJ1dHRvbnM6IFF1ZXJ5TGlzdDxCdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25MaW5rTGlzdENoYW5nZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmFkaW86IFJhZGlvQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja2JveDogQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiBncm91cCBoZWFkZXIgaWQsIHRoYXQgaXMgYmVpbmcgc2V0IGJ5IHBhcmVudCBsaXN0IGNvbXBvbmVudCAqL1xuICAgIF9yZWxhdGVkR3JvdXBIZWFkZXJJZDogc3RyaW5nIHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHByaXZhdGUgZ2V0IHJvbGVBdHRyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFyaWFSb2xlIHx8IHRoaXMuX3JvbGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yb2xlID0gJ2xpc3RpdGVtJzsgLy8gZGVmYXVsdCBmb3IgbGkgZWxlbWVudHNcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3VuaXF1ZUlkID0gJ2ZkLWxpc3QtaXRlbS0nICsgKytsaXN0SXRlbVVuaXF1ZUlkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfbGlzdCA9IGluamVjdChGRF9MSVNUX1VOUkVBRF9JTkRJQ0FUT1IsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3JvbGUnKSBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0Um9sZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChGRF9MSVNUX1VOUkVBRF9JTkRJQ0FUT1IpIHByaXZhdGUgcmVhZG9ubHkgX3VucmVhZEluZGljYXRvcj86IExpc3RVbnJlYWRJbmRpY2F0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uTGlua1F1ZXJ5Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uQnV0dG9uUXVlcnlDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAga2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrYm94KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5uZXh0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJhZGlvKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpby5sYWJlbENsaWNrZWQoZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmxpbmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtEaXJlY3RpdmVzLmZpcnN0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdpcy1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMua2V5RG93bi5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBrZXl1cEhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkgJiYgdGhpcy5saW5rKSB7XG4gICAgICAgICAgICBjb25zdCBfYW5jaG9yRWxlbWVudCA9IHRoaXMubGlua0RpcmVjdGl2ZXMuZmlyc3QuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgX2FuY2hvckVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICBfYW5jaG9yRWxlbWVudC5jbGljaygpO1xuICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBIYW5kbGVyIGZvciBtb3VzZSBldmVudHMgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGlja2VkJC5uZXh0KGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tib3ggJiYgIXRoaXMubGluaykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrYm94LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvbiB0aGUgY2hlY2tib3ggaXMgbm90IHN1cHByZXNzZWRcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBzaG91bGQgb25seSBwcm9jZXNzIGNsaWNrcyBpZiBjbGlja2VkIG9uIHRoZSBsaXN0LWl0ZW0sIG5vdCBjaGVja2JveCBpdHNlbGZcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94Lm5leHRWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJhZGlvICYmICF0aGlzLmxpbmspIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW8ubGFiZWxDbGlja2VkKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBwcml2YXRlIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICAvLyBUcnkgdG8gZmluZCBpbm5lciBmb2N1c2FibGUgbGlua1xuICAgICAgICBjb25zdCB0YWJiYWJsZUxpbmsgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZmQtbGlzdF9fbGluay5mZC1saXN0X19saW5rLS1mb2N1c2FibGUnKTtcbiAgICAgICAgdGFiYmFibGVMaW5rPy5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25MaW5rUXVlcnlDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlua0RpcmVjdGl2ZXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmxpbmtEaXJlY3RpdmVzKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb25MaW5rTGlzdENoYW5nZWQkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMubGluayA9IHRoaXMubGlua0RpcmVjdGl2ZXMubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1dHRvbnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCgwKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2godGhpcy5fYWRkQ2xhc3NUb0J1dHRvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZENsYXNzVG9CdXR0b25zKGJ1dHRvbjogQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGJ1dHRvbi5jbGFzcyArPSAnIGZkLWxpc3RfX2J1dHRvbic7XG4gICAgICAgIGJ1dHRvbi5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIGJ1dHRvbi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tdXRlRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja2JveCB8fCByYWRpb1wiPlxuICAgIDxkaXYgZmQtZm9ybS1pdGVtIGNsYXNzPVwiZmQtbGlzdF9fZm9ybS1pdGVtXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWNoZWNrYm94XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1yYWRpby1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPHNwYW4gKm5nSWY9XCJ1bnJlYWQgJiYgKCFfbGlzdCB8fCBfbGlzdC5ieWxpbmUpXCIgY2xhc3M9XCJzYXAtaWNvbi0tY2lyY2xlLXRhc2stMiBmZC1saXN0X19ub3RpZmljYXRpb25cIj48L3NwYW4+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPHNwYW4gKm5nSWY9XCJjb3VudGVyIHx8IGNvdW50ZXIgPT09IDBcIiBjbGFzcz1cImZkLWxpc3RfX2l0ZW0tY291bnRlclwiPlxuICAgIHt7IGNvdW50ZXIgfCBudW1iZXIgOiAnMS4wLTInIH19XG48L3NwYW4+XG4iXX0=