@eui/components 16.2.19-snapshot-1719475485298 → 16.2.19-snapshot-1721355158108

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.
@@ -182,11 +182,11 @@ export class EuiNotificationsComponent {
182
182
  return unreadNotifications.length;
183
183
  }
184
184
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiNotificationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
185
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiNotificationsComponent, selector: "eui-notifications", inputs: { count: "count", items: "items", unreadLabel: "unreadLabel", totalLabel: "totalLabel", markAsReadLabel: "markAsReadLabel", markAsUnReadLabel: "markAsUnReadLabel", markAllAsReadLabel: "markAllAsReadLabel", settingsLabel: "settingsLabel", refreshLabel: "refreshLabel", viewAllNotificationsLabel: "viewAllNotificationsLabel", headerTitleLabel: "headerTitleLabel", noNotificationFoundLabel: "noNotificationFoundLabel", nbUnreadCount: "nbUnreadCount", dateFormat: "dateFormat", noNotificationFoundLink: "noNotificationFoundLink", isShowMarkAsRead: "isShowMarkAsRead", isShowViewAllAction: "isShowViewAllAction", isHidePanelOnViewAllAction: "isHidePanelOnViewAllAction", customUnreadCount: "customUnreadCount", isShowMarkAllAsReadButton: "isShowMarkAllAsReadButton", isShowSettingsButton: "isShowSettingsButton", isShowRefreshButton: "isShowRefreshButton" }, outputs: { refreshClick: "refreshClick", notificationsClick: "notificationsClick", viewAllClick: "viewAllClick", settingsClick: "settingsClick", markAllAsReadClick: "markAllAsReadClick", noNotificationFoundClick: "noNotificationFoundClick", itemClick: "itemClick", itemMarkAsReadClick: "itemMarkAsReadClick" }, host: { listeners: { "body:click": "onHide()" }, properties: { "class": "this.string" } }, usesOnChanges: true, ngImport: i0, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge euiSizeL *ngIf=\"count\">{{ count }}</eui-badge>\n <eui-badge euiSizeL *ngIf=\"!count\">{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer>\n <ng-template [ngIf]=\"items?.length > 0\">\n <strong\n ><a (click)=\"onViewAllClick($event)\">{{\n viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n }}</a></strong\n >\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong\n ><a (click)=\"onNoNotificationFoundClick()\">{{\n noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n }}</a></strong\n >\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiOverlayHeaderComponent, selector: "eui-overlay-header" }, { kind: "component", type: i2.EuiOverlayBodyComponent, selector: "eui-overlay-body" }, { kind: "component", type: i2.EuiOverlayFooterComponent, selector: "eui-overlay-footer" }, { kind: "component", type: i2.EuiOverlayComponent, selector: "eui-overlay", inputs: ["isActive", "hasClosedOnClickOutside", "position", "width", "fixedWidth"], outputs: ["activeState"] }, { kind: "component", type: i3.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i4.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["aria-label"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiNotificationItemComponent, selector: "eui-notification-item", inputs: ["markAsReadLabel", "item", "dateFormat", "isShowMarkAsRead"], outputs: ["itemClick", "itemMarkAsRead"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
185
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiNotificationsComponent, selector: "eui-notifications", inputs: { count: "count", items: "items", unreadLabel: "unreadLabel", totalLabel: "totalLabel", markAsReadLabel: "markAsReadLabel", markAsUnReadLabel: "markAsUnReadLabel", markAllAsReadLabel: "markAllAsReadLabel", settingsLabel: "settingsLabel", refreshLabel: "refreshLabel", viewAllNotificationsLabel: "viewAllNotificationsLabel", headerTitleLabel: "headerTitleLabel", noNotificationFoundLabel: "noNotificationFoundLabel", nbUnreadCount: "nbUnreadCount", dateFormat: "dateFormat", noNotificationFoundLink: "noNotificationFoundLink", isShowMarkAsRead: "isShowMarkAsRead", isShowViewAllAction: "isShowViewAllAction", isHidePanelOnViewAllAction: "isHidePanelOnViewAllAction", customUnreadCount: "customUnreadCount", isShowMarkAllAsReadButton: "isShowMarkAllAsReadButton", isShowSettingsButton: "isShowSettingsButton", isShowRefreshButton: "isShowRefreshButton" }, outputs: { refreshClick: "refreshClick", notificationsClick: "notificationsClick", viewAllClick: "viewAllClick", settingsClick: "settingsClick", markAllAsReadClick: "markAllAsReadClick", noNotificationFoundClick: "noNotificationFoundClick", itemClick: "itemClick", itemMarkAsReadClick: "itemMarkAsReadClick" }, host: { listeners: { "body:click": "onHide()" }, properties: { "class": "this.string" } }, usesOnChanges: true, ngImport: i0, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge>{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer *ngIf=\"(items?.length > 0 && isShowViewAllAction) || items?.length === 0\">\n <ng-template [ngIf]=\"items?.length > 0 && isShowViewAllAction\">\n <strong>\n <a (click)=\"onViewAllClick($event)\">{{ viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)}}</a>\n </strong>\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong>\n <a (click)=\"onNoNotificationFoundClick()\">{{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}</a>\n </strong>\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiOverlayHeaderComponent, selector: "eui-overlay-header" }, { kind: "component", type: i2.EuiOverlayBodyComponent, selector: "eui-overlay-body" }, { kind: "component", type: i2.EuiOverlayFooterComponent, selector: "eui-overlay-footer" }, { kind: "component", type: i2.EuiOverlayComponent, selector: "eui-overlay", inputs: ["isActive", "hasClosedOnClickOutside", "position", "width", "fixedWidth"], outputs: ["activeState"] }, { kind: "component", type: i3.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i4.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["aria-label"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i6.EuiNotificationItemComponent, selector: "eui-notification-item", inputs: ["markAsReadLabel", "item", "dateFormat", "isShowMarkAsRead"], outputs: ["itemClick", "itemMarkAsRead"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
186
186
  }
187
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiNotificationsComponent, decorators: [{
188
188
  type: Component,
189
- args: [{ selector: 'eui-notifications', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge euiSizeL *ngIf=\"count\">{{ count }}</eui-badge>\n <eui-badge euiSizeL *ngIf=\"!count\">{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer>\n <ng-template [ngIf]=\"items?.length > 0\">\n <strong\n ><a (click)=\"onViewAllClick($event)\">{{\n viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n }}</a></strong\n >\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong\n ><a (click)=\"onNoNotificationFoundClick()\">{{\n noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n }}</a></strong\n >\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"] }]
189
+ args: [{ selector: 'eui-notifications', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge>{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer *ngIf=\"(items?.length > 0 && isShowViewAllAction) || items?.length === 0\">\n <ng-template [ngIf]=\"items?.length > 0 && isShowViewAllAction\">\n <strong>\n <a (click)=\"onViewAllClick($event)\">{{ viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)}}</a>\n </strong>\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong>\n <a (click)=\"onNoNotificationFoundClick()\">{{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}</a>\n </strong>\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"] }]
190
190
  }], propDecorators: { refreshClick: [{
191
191
  type: Output
192
192
  }], notificationsClick: [{
@@ -254,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
254
254
  type: HostListener,
255
255
  args: ['body:click']
256
256
  }] } });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW5vdGlmaWNhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGF5b3V0L2V1aS1ub3RpZmljYXRpb25zL2V1aS1ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xheW91dC9ldWktbm90aWZpY2F0aW9ucy9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBUzVFLE1BQU0sT0FBTyx5QkFBeUI7SUFQdEM7UUFRSSxtSEFBbUg7UUFDbkgsOERBQThEO1FBQ3BELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEUsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNwRCx1QkFBa0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxRSxtSEFBbUg7UUFDbkgsOERBQThEO1FBQ3BELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEUsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNwRCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JFLG1IQUFtSDtRQUNuSCw4REFBOEQ7UUFDcEQsdUJBQWtCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUUsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNwRCw2QkFBd0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRixtSEFBbUg7UUFDbkgsOERBQThEO1FB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Q0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBU0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFTRiwwQkFBMEI7c0JBRDdCLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLHlCQUF5QjtzQkFENUIsS0FBSztnQkFTRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBU0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQVVOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbnN1bWVFdmVudCB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLW5vdGlmaWNhdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aU5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIHJlZnJlc2hDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uc0NsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBPdXRwdXQoKSB2aWV3QWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIHNldHRpbmdzQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIG1hcmtBbGxBc1JlYWRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgbm9Ob3RpZmljYXRpb25Gb3VuZENsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIGl0ZW1NYXJrQXNSZWFkQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBpc092ZXJsYXlBY3RpdmUgPSBmYWxzZTtcbiAgICBjdXJyZW50RGF5Tm90aWZpY2F0aW9ucyA9IFtdO1xuICAgIG9sZGVzdE5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB1bnJlYWROb3RpZmljYXRpb25zID0gW107XG4gICAgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHN0cmluZyA9ICdldWktbm90aWZpY2F0aW9ucyc7XG5cbiAgICBASW5wdXQoKSBjb3VudDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSBpdGVtcyA9IFtdO1xuICAgIEBJbnB1dCgpIHVucmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRvdGFsTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbWFya0FzUmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIG1hcmtBc1VuUmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIG1hcmtBbGxBc1JlYWRMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBzZXR0aW5nc0xhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHJlZnJlc2hMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSB2aWV3QWxsTm90aWZpY2F0aW9uc0xhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIGhlYWRlclRpdGxlTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIG5iVW5yZWFkQ291bnQ6IG51bWJlciA9IG51bGw7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdkZC9NTS9ZWVlZJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBub05vdGlmaWNhdGlvbkZvdW5kTGluaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vTm90aWZpY2F0aW9uRm91bmRMaW5rO1xuICAgIH1cbiAgICBzZXQgbm9Ob3RpZmljYXRpb25Gb3VuZExpbmsodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ub05vdGlmaWNhdGlvbkZvdW5kTGluayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX25vTm90aWZpY2F0aW9uRm91bmRMaW5rID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FzUmVhZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBc1JlYWQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQXNSZWFkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FzUmVhZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBc1JlYWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1ZpZXdBbGxBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dWaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93Vmlld0FsbEFjdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1ZpZXdBbGxBY3Rpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dWaWV3QWxsQWN0aW9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNIaWRlUGFuZWxPblZpZXdBbGxBY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBjdXN0b21VbnJlYWRDb3VudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbVVucmVhZENvdW50O1xuICAgIH1cbiAgICBzZXQgY3VzdG9tVW5yZWFkQ291bnQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9jdXN0b21VbnJlYWRDb3VudCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1c3RvbVVucmVhZENvdW50ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQWxsQXNSZWFkQnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1NldHRpbmdzQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93U2V0dGluZ3NCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dTZXR0aW5nc0J1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1NldHRpbmdzQnV0dG9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93U2V0dGluZ3NCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1JlZnJlc2hCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dSZWZyZXNoQnV0dG9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93UmVmcmVzaEJ1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1JlZnJlc2hCdXR0b24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dSZWZyZXNoQnV0dG9uID0gdHJ1ZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JvZHk6Y2xpY2snKVxuICAgIG9uSGlkZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc092ZXJsYXlBY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNDbGljay5lbWl0KCk7XG4gICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaXNPdmVybGF5QWN0aXZlID0gIXRoaXMuaXNPdmVybGF5QWN0aXZlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuY3VzdG9tVW5yZWFkQ291bnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVVucmVhZENvdW50ID0gY2hhbmdlcy5jdXN0b21VbnJlYWRDb3VudC5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAoIWN1c3RvbVVucmVhZENvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlVucmVhZENvdW50ID0gdGhpcy5fZ2V0VW5yZWFkQ291bnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tVW5yZWFkQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMubmJVbnJlYWRDb3VudCA9IHRoaXMuX2dldFVucmVhZENvdW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlZnJlc2goZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVmcmVzaENsaWNrLmVtaXQoKTtcbiAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkl0ZW1DbGljayhsaW5rOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdChsaW5rKTtcbiAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblZpZXdBbGxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3QWxsQ2xpY2suZW1pdCgpO1xuICAgICAgICBpZiAoIXRoaXMuaXNIaWRlUGFuZWxPblZpZXdBbGxBY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5vTm90aWZpY2F0aW9uRm91bmRDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub05vdGlmaWNhdGlvbkZvdW5kQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uSXRlbU1hcmtBc1JlYWQobGluazogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbU1hcmtBc1JlYWRDbGljay5lbWl0KGxpbmspO1xuICAgIH1cblxuICAgIG9uTWFya0FsbEFzUmVhZChlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFya0FsbEFzUmVhZENsaWNrLmVtaXQoZSk7XG4gICAgICAgIGNvbnN1bWVFdmVudChlKTtcbiAgICB9XG5cbiAgICBvblNldHRpbmdzKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0NsaWNrLmVtaXQoZSk7XG4gICAgICAgIGNvbnN1bWVFdmVudChlKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFVucmVhZENvdW50KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHVucmVhZE5vdGlmaWNhdGlvbnMgPSB0aGlzLml0ZW1zLmZpbHRlcigobGluaykgPT4ge1xuICAgICAgICAgICAgaWYgKGxpbmsubWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGluay5tZXRhZGF0YS5yZWFkID09PSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1bnJlYWROb3RpZmljYXRpb25zLmxlbmd0aDtcbiAgICB9XG59XG4iLCI8ZXVpLWljb24tc3ZnXG4gICAgY2xhc3M9XCJldWktbm90aWZpY2F0aW9uc19fdHJpZ2dlclwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgc2l6ZT1cIm1cIlxuICAgIGljb249XCJldWktbm90aWZpY2F0aW9uc1wiXG4gICAgZmlsbENvbG9yPVwiZ3JleS01XCJcbiAgICAoY2xpY2spPVwib25DbGlja2VkKCRldmVudClcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5lc2MpPVwib25IaWRlKClcIlxuICAgIHRhYmluZGV4PVwiMFwiPlxuICAgIDxldWktYmFkZ2UgKm5nSWY9XCJjb3VudFwiIGV1aVNpemVTIGV1aURhbmdlcj57eyBjb3VudCB9fTwvZXVpLWJhZGdlPlxuPC9ldWktaWNvbi1zdmc+XG5cbjxldWktb3ZlcmxheSBbaXNBY3RpdmVdPVwiaXNPdmVybGF5QWN0aXZlXCIgY2xhc3M9XCJldWktb3ZlcmxheS1vZmZzZXQtLXdpZHRoLTMwXCI+XG4gICAgPGV1aS1vdmVybGF5LWhlYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zX19oZWFkZXItdGl0bGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktbm90aWZpY2F0aW9uc19faGVhZGVyLXRpdGxlLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAge3sgaGVhZGVyVGl0bGVMYWJlbCA/IGhlYWRlclRpdGxlTGFiZWwgOiAoJ2V1aS5NWU5PVElGSUNBVElPTlMnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11LWN1cnNvci1oZWxwIGV1aS11LW1sLXNcIlxuICAgICAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyB1bnJlYWRMYWJlbCA/IHVucmVhZExhYmVsIDogKCdldWkuTk9USUZJQ0FUSU9OU1VOUkVBRCcgfCB0cmFuc2xhdGUpIH19XCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyB1bnJlYWRMYWJlbCA/IHVucmVhZExhYmVsIDogKCdldWkuTk9USUZJQ0FUSU9OU1VOUkVBRCcgfCB0cmFuc2xhdGUpIH19XCI+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxldWktYmFkZ2UgZXVpU2l6ZUwgKm5nSWY9XCJjb3VudFwiPnt7IGNvdW50IH19PC9ldWktYmFkZ2U+XG4gICAgICAgICAgICAgICAgPGV1aS1iYWRnZSBldWlTaXplTCAqbmdJZj1cIiFjb3VudFwiPnt7IGl0ZW1zLmxlbmd0aCB9fTwvZXVpLWJhZGdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtc1wiIGNsYXNzPVwiZXVpLW5vdGlmaWNhdGlvbnNfX2hlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtYXJrQWxsQXNSZWFkTGFiZWwgPyBtYXJrQWxsQXNSZWFkTGFiZWwgOiAoJ2V1aS5OT1RJRklDQVRJT05NQVJLQUxMQVNSRUFEJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgbWFya0FsbEFzUmVhZExhYmVsID8gbWFya0FsbEFzUmVhZExhYmVsIDogKCdldWkuTk9USUZJQ0FUSU9OTUFSS0FMTEFTUkVBRCcgfCB0cmFuc2xhdGUpIH19XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NYXJrQWxsQXNSZWFkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hlY2ttYXJrLWRvbmVcIiBmaWxsQ29sb3I9XCJwcmltYXJ5LTEwMFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTaG93U2V0dGluZ3NCdXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2V0dGluZ3NMYWJlbCA/IHNldHRpbmdzTGFiZWwgOiAoJ2V1aS5TRVRUSU5HUycgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IHNldHRpbmdzTGFiZWwgPyBzZXR0aW5nc0xhYmVsIDogKCdldWkuU0VUVElOR1MnIHwgdHJhbnNsYXRlKSB9fVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2V0dGluZ3MoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1zZXR0aW5nc1wiIGZpbGxDb2xvcj1cInByaW1hcnktMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgIGV1aVNpemVTXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dSZWZyZXNoQnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlZnJlc2hMYWJlbCA/IHJlZnJlc2hMYWJlbCA6ICgnZXVpLlJFRlJFU0gnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyByZWZyZXNoTGFiZWwgPyByZWZyZXNoTGFiZWwgOiAoJ2V1aS5SRUZSRVNIJyB8IHRyYW5zbGF0ZSkgfX1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlZnJlc2goJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1yZWZyZXNoXCIgZmlsbENvbG9yPVwicHJpbWFyeS0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2V1aS1vdmVybGF5LWhlYWRlcj5cblxuICAgIDxldWktb3ZlcmxheS1ib2R5PlxuICAgICAgICA8dWwgY2xhc3M9XCJldWktbm90aWZpY2F0aW9ucy1pdGVtc1wiICpuZ0lmPVwiaXRlbXNcIj5cbiAgICAgICAgICAgIDxldWktbm90aWZpY2F0aW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJkYXRlRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbbWFya0FzUmVhZExhYmVsXT1cIm1hcmtBc1JlYWRMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2lzU2hvd01hcmtBc1JlYWRdPVwiaXNTaG93TWFya0FzUmVhZFwiXG4gICAgICAgICAgICAgICAgKGl0ZW1DbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoaXRlbU1hcmtBc1JlYWQpPVwib25JdGVtTWFya0FzUmVhZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L2V1aS1ub3RpZmljYXRpb24taXRlbT5cbiAgICAgICAgPC91bD5cbiAgICA8L2V1aS1vdmVybGF5LWJvZHk+XG5cbiAgICA8ZXVpLW92ZXJsYXktZm9vdGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXRlbXM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgICA+PGEgKGNsaWNrKT1cIm9uVmlld0FsbENsaWNrKCRldmVudClcIj57e1xuICAgICAgICAgICAgICAgICAgICB2aWV3QWxsTm90aWZpY2F0aW9uc0xhYmVsID8gdmlld0FsbE5vdGlmaWNhdGlvbnNMYWJlbCA6ICgnZXVpLlZJRVdBTExOT1RJRklDQVRJT05TJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICB9fTwvYT48L3N0cm9uZ1xuICAgICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXRlbXM/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LW5vdGlmaWNhdGlvbl9faXRlbS1jb250ZW50XCIgKm5nSWY9XCIhbm9Ob3RpZmljYXRpb25Gb3VuZExpbmtcIj5cbiAgICAgICAgICAgICAgICB7eyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgPyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgOiAoJ2V1aS5OT05PVElGSUNBVElPTkZPVU5EJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LW5vdGlmaWNhdGlvbl9faXRlbS1jb250ZW50XCIgKm5nSWY9XCJub05vdGlmaWNhdGlvbkZvdW5kTGlua1wiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgICAgICAgPjxhIChjbGljayk9XCJvbk5vTm90aWZpY2F0aW9uRm91bmRDbGljaygpXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vTm90aWZpY2F0aW9uRm91bmRMYWJlbCA/IG5vTm90aWZpY2F0aW9uRm91bmRMYWJlbCA6ICgnZXVpLk5PTk9USUZJQ0FUSU9ORk9VTkQnIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgICAgICB9fTwvYT48L3N0cm9uZ1xuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZXVpLW92ZXJsYXktZm9vdGVyPlxuPC9ldWktb3ZlcmxheT5cbiJdfQ==
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW5vdGlmaWNhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGF5b3V0L2V1aS1ub3RpZmljYXRpb25zL2V1aS1ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xheW91dC9ldWktbm90aWZpY2F0aW9ucy9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBUzVFLE1BQU0sT0FBTyx5QkFBeUI7SUFQdEM7UUFRSSxtSEFBbUg7UUFDbkgsOERBQThEO1FBQ3BELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEUsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNwRCx1QkFBa0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxRSxtSEFBbUg7UUFDbkgsOERBQThEO1FBQ3BELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEUsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNwRCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JFLG1IQUFtSDtRQUNuSCw4REFBOEQ7UUFDcEQsdUJBQWtCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUUsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNwRCw2QkFBd0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRixtSEFBbUg7UUFDbkgsOERBQThEO1FB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Q0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBU0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFTRiwwQkFBMEI7c0JBRDdCLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLHlCQUF5QjtzQkFENUIsS0FBSztnQkFTRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBU0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQVVOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbnN1bWVFdmVudCB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLW5vdGlmaWNhdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aU5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIHJlZnJlc2hDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uc0NsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBPdXRwdXQoKSB2aWV3QWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIHNldHRpbmdzQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIG1hcmtBbGxBc1JlYWRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgbm9Ob3RpZmljYXRpb25Gb3VuZENsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIGl0ZW1NYXJrQXNSZWFkQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBpc092ZXJsYXlBY3RpdmUgPSBmYWxzZTtcbiAgICBjdXJyZW50RGF5Tm90aWZpY2F0aW9ucyA9IFtdO1xuICAgIG9sZGVzdE5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB1bnJlYWROb3RpZmljYXRpb25zID0gW107XG4gICAgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHN0cmluZyA9ICdldWktbm90aWZpY2F0aW9ucyc7XG5cbiAgICBASW5wdXQoKSBjb3VudDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSBpdGVtcyA9IFtdO1xuICAgIEBJbnB1dCgpIHVucmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRvdGFsTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbWFya0FzUmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIG1hcmtBc1VuUmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIG1hcmtBbGxBc1JlYWRMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBzZXR0aW5nc0xhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHJlZnJlc2hMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSB2aWV3QWxsTm90aWZpY2F0aW9uc0xhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIGhlYWRlclRpdGxlTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIG5iVW5yZWFkQ291bnQ6IG51bWJlciA9IG51bGw7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdkZC9NTS9ZWVlZJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBub05vdGlmaWNhdGlvbkZvdW5kTGluaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vTm90aWZpY2F0aW9uRm91bmRMaW5rO1xuICAgIH1cbiAgICBzZXQgbm9Ob3RpZmljYXRpb25Gb3VuZExpbmsodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ub05vdGlmaWNhdGlvbkZvdW5kTGluayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX25vTm90aWZpY2F0aW9uRm91bmRMaW5rID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FzUmVhZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBc1JlYWQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQXNSZWFkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FzUmVhZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBc1JlYWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1ZpZXdBbGxBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dWaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93Vmlld0FsbEFjdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1ZpZXdBbGxBY3Rpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dWaWV3QWxsQWN0aW9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNIaWRlUGFuZWxPblZpZXdBbGxBY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBjdXN0b21VbnJlYWRDb3VudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbVVucmVhZENvdW50O1xuICAgIH1cbiAgICBzZXQgY3VzdG9tVW5yZWFkQ291bnQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9jdXN0b21VbnJlYWRDb3VudCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1c3RvbVVucmVhZENvdW50ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQWxsQXNSZWFkQnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1NldHRpbmdzQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93U2V0dGluZ3NCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dTZXR0aW5nc0J1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1NldHRpbmdzQnV0dG9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93U2V0dGluZ3NCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1JlZnJlc2hCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dSZWZyZXNoQnV0dG9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93UmVmcmVzaEJ1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1JlZnJlc2hCdXR0b24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dSZWZyZXNoQnV0dG9uID0gdHJ1ZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JvZHk6Y2xpY2snKVxuICAgIG9uSGlkZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc092ZXJsYXlBY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNDbGljay5lbWl0KCk7XG4gICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaXNPdmVybGF5QWN0aXZlID0gIXRoaXMuaXNPdmVybGF5QWN0aXZlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuY3VzdG9tVW5yZWFkQ291bnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVVucmVhZENvdW50ID0gY2hhbmdlcy5jdXN0b21VbnJlYWRDb3VudC5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAoIWN1c3RvbVVucmVhZENvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlVucmVhZENvdW50ID0gdGhpcy5fZ2V0VW5yZWFkQ291bnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tVW5yZWFkQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMubmJVbnJlYWRDb3VudCA9IHRoaXMuX2dldFVucmVhZENvdW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlZnJlc2goZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVmcmVzaENsaWNrLmVtaXQoKTtcbiAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkl0ZW1DbGljayhsaW5rOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdChsaW5rKTtcbiAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblZpZXdBbGxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3QWxsQ2xpY2suZW1pdCgpO1xuICAgICAgICBpZiAoIXRoaXMuaXNIaWRlUGFuZWxPblZpZXdBbGxBY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5vTm90aWZpY2F0aW9uRm91bmRDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub05vdGlmaWNhdGlvbkZvdW5kQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uSXRlbU1hcmtBc1JlYWQobGluazogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbU1hcmtBc1JlYWRDbGljay5lbWl0KGxpbmspO1xuICAgIH1cblxuICAgIG9uTWFya0FsbEFzUmVhZChlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFya0FsbEFzUmVhZENsaWNrLmVtaXQoZSk7XG4gICAgICAgIGNvbnN1bWVFdmVudChlKTtcbiAgICB9XG5cbiAgICBvblNldHRpbmdzKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0NsaWNrLmVtaXQoZSk7XG4gICAgICAgIGNvbnN1bWVFdmVudChlKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFVucmVhZENvdW50KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHVucmVhZE5vdGlmaWNhdGlvbnMgPSB0aGlzLml0ZW1zLmZpbHRlcigobGluaykgPT4ge1xuICAgICAgICAgICAgaWYgKGxpbmsubWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGluay5tZXRhZGF0YS5yZWFkID09PSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1bnJlYWROb3RpZmljYXRpb25zLmxlbmd0aDtcbiAgICB9XG59XG4iLCI8ZXVpLWljb24tc3ZnXG4gICAgY2xhc3M9XCJldWktbm90aWZpY2F0aW9uc19fdHJpZ2dlclwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgc2l6ZT1cIm1cIlxuICAgIGljb249XCJldWktbm90aWZpY2F0aW9uc1wiXG4gICAgZmlsbENvbG9yPVwiZ3JleS01XCJcbiAgICAoY2xpY2spPVwib25DbGlja2VkKCRldmVudClcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5lc2MpPVwib25IaWRlKClcIlxuICAgIHRhYmluZGV4PVwiMFwiPlxuICAgIDxldWktYmFkZ2UgKm5nSWY9XCJjb3VudFwiIGV1aVNpemVTIGV1aURhbmdlcj57eyBjb3VudCB9fTwvZXVpLWJhZGdlPlxuPC9ldWktaWNvbi1zdmc+XG5cbjxldWktb3ZlcmxheSBbaXNBY3RpdmVdPVwiaXNPdmVybGF5QWN0aXZlXCIgY2xhc3M9XCJldWktb3ZlcmxheS1vZmZzZXQtLXdpZHRoLTMwXCI+XG4gICAgPGV1aS1vdmVybGF5LWhlYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zX19oZWFkZXItdGl0bGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktbm90aWZpY2F0aW9uc19faGVhZGVyLXRpdGxlLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAge3sgaGVhZGVyVGl0bGVMYWJlbCA/IGhlYWRlclRpdGxlTGFiZWwgOiAoJ2V1aS5NWU5PVElGSUNBVElPTlMnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11LWN1cnNvci1oZWxwIGV1aS11LW1sLXNcIlxuICAgICAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyB1bnJlYWRMYWJlbCA/IHVucmVhZExhYmVsIDogKCdldWkuTk9USUZJQ0FUSU9OU1VOUkVBRCcgfCB0cmFuc2xhdGUpIH19XCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyB1bnJlYWRMYWJlbCA/IHVucmVhZExhYmVsIDogKCdldWkuTk9USUZJQ0FUSU9OU1VOUkVBRCcgfCB0cmFuc2xhdGUpIH19XCI+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxldWktYmFkZ2U+e3sgaXRlbXMubGVuZ3RoIH19PC9ldWktYmFkZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW1zXCIgY2xhc3M9XCJldWktbm90aWZpY2F0aW9uc19faGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgIGV1aVNpemVTXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dNYXJrQWxsQXNSZWFkQnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1hcmtBbGxBc1JlYWRMYWJlbCA/IG1hcmtBbGxBc1JlYWRMYWJlbCA6ICgnZXVpLk5PVElGSUNBVElPTk1BUktBTExBU1JFQUQnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBtYXJrQWxsQXNSZWFkTGFiZWwgPyBtYXJrQWxsQXNSZWFkTGFiZWwgOiAoJ2V1aS5OT1RJRklDQVRJT05NQVJLQUxMQVNSRUFEJyB8IHRyYW5zbGF0ZSkgfX1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1hcmtBbGxBc1JlYWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jaGVja21hcmstZG9uZVwiIGZpbGxDb2xvcj1cInByaW1hcnktMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgIGV1aVNpemVTXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dTZXR0aW5nc0J1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZXR0aW5nc0xhYmVsID8gc2V0dGluZ3NMYWJlbCA6ICgnZXVpLlNFVFRJTkdTJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgc2V0dGluZ3NMYWJlbCA/IHNldHRpbmdzTGFiZWwgOiAoJ2V1aS5TRVRUSU5HUycgfCB0cmFuc2xhdGUpIH19XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZXR0aW5ncygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLXNldHRpbmdzXCIgZmlsbENvbG9yPVwicHJpbWFyeS0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd1JlZnJlc2hCdXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVmcmVzaExhYmVsID8gcmVmcmVzaExhYmVsIDogKCdldWkuUkVGUkVTSCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IHJlZnJlc2hMYWJlbCA/IHJlZnJlc2hMYWJlbCA6ICgnZXVpLlJFRlJFU0gnIHwgdHJhbnNsYXRlKSB9fVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLXJlZnJlc2hcIiBmaWxsQ29sb3I9XCJwcmltYXJ5LTEwMFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZXVpLW92ZXJsYXktaGVhZGVyPlxuXG4gICAgPGV1aS1vdmVybGF5LWJvZHk+XG4gICAgICAgIDx1bCBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLWl0ZW1zXCIgKm5nSWY9XCJpdGVtc1wiPlxuICAgICAgICAgICAgPGV1aS1ub3RpZmljYXRpb24taXRlbVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cImRhdGVGb3JtYXRcIlxuICAgICAgICAgICAgICAgIFttYXJrQXNSZWFkTGFiZWxdPVwibWFya0FzUmVhZExhYmVsXCJcbiAgICAgICAgICAgICAgICBbaXNTaG93TWFya0FzUmVhZF09XCJpc1Nob3dNYXJrQXNSZWFkXCJcbiAgICAgICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChpdGVtTWFya0FzUmVhZCk9XCJvbkl0ZW1NYXJrQXNSZWFkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvZXVpLW5vdGlmaWNhdGlvbi1pdGVtPlxuICAgICAgICA8L3VsPlxuICAgIDwvZXVpLW92ZXJsYXktYm9keT5cblxuICAgIDxldWktb3ZlcmxheS1mb290ZXIgKm5nSWY9XCIoaXRlbXM/Lmxlbmd0aCA+IDAgJiYgaXNTaG93Vmlld0FsbEFjdGlvbikgfHwgaXRlbXM/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXRlbXM/Lmxlbmd0aCA+IDAgJiYgaXNTaG93Vmlld0FsbEFjdGlvblwiPlxuICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwib25WaWV3QWxsQ2xpY2soJGV2ZW50KVwiPnt7IHZpZXdBbGxOb3RpZmljYXRpb25zTGFiZWwgPyB2aWV3QWxsTm90aWZpY2F0aW9uc0xhYmVsIDogKCdldWkuVklFV0FMTE5PVElGSUNBVElPTlMnIHwgdHJhbnNsYXRlKX19PC9hPlxuICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpdGVtcz8ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXgtbm90aWZpY2F0aW9uX19pdGVtLWNvbnRlbnRcIiAqbmdJZj1cIiFub05vdGlmaWNhdGlvbkZvdW5kTGlua1wiPlxuICAgICAgICAgICAgICAgIHt7IG5vTm90aWZpY2F0aW9uRm91bmRMYWJlbCA/IG5vTm90aWZpY2F0aW9uRm91bmRMYWJlbCA6ICgnZXVpLk5PTk9USUZJQ0FUSU9ORk9VTkQnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXgtbm90aWZpY2F0aW9uX19pdGVtLWNvbnRlbnRcIiAqbmdJZj1cIm5vTm90aWZpY2F0aW9uRm91bmRMaW5rXCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cIm9uTm9Ob3RpZmljYXRpb25Gb3VuZENsaWNrKClcIj57eyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgPyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgOiAoJ2V1aS5OT05PVElGSUNBVElPTkZPVU5EJyB8IHRyYW5zbGF0ZSkgfX08L2E+XG4gICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2V1aS1vdmVybGF5LWZvb3Rlcj5cbjwvZXVpLW92ZXJsYXk+XG4iXX0=
@@ -1133,11 +1133,11 @@ class EuiNotificationsComponent {
1133
1133
  return unreadNotifications.length;
1134
1134
  }
1135
1135
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiNotificationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1136
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiNotificationsComponent, selector: "eui-notifications", inputs: { count: "count", items: "items", unreadLabel: "unreadLabel", totalLabel: "totalLabel", markAsReadLabel: "markAsReadLabel", markAsUnReadLabel: "markAsUnReadLabel", markAllAsReadLabel: "markAllAsReadLabel", settingsLabel: "settingsLabel", refreshLabel: "refreshLabel", viewAllNotificationsLabel: "viewAllNotificationsLabel", headerTitleLabel: "headerTitleLabel", noNotificationFoundLabel: "noNotificationFoundLabel", nbUnreadCount: "nbUnreadCount", dateFormat: "dateFormat", noNotificationFoundLink: "noNotificationFoundLink", isShowMarkAsRead: "isShowMarkAsRead", isShowViewAllAction: "isShowViewAllAction", isHidePanelOnViewAllAction: "isHidePanelOnViewAllAction", customUnreadCount: "customUnreadCount", isShowMarkAllAsReadButton: "isShowMarkAllAsReadButton", isShowSettingsButton: "isShowSettingsButton", isShowRefreshButton: "isShowRefreshButton" }, outputs: { refreshClick: "refreshClick", notificationsClick: "notificationsClick", viewAllClick: "viewAllClick", settingsClick: "settingsClick", markAllAsReadClick: "markAllAsReadClick", noNotificationFoundClick: "noNotificationFoundClick", itemClick: "itemClick", itemMarkAsReadClick: "itemMarkAsReadClick" }, host: { listeners: { "body:click": "onHide()" }, properties: { "class": "this.string" } }, usesOnChanges: true, ngImport: i0, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge euiSizeL *ngIf=\"count\">{{ count }}</eui-badge>\n <eui-badge euiSizeL *ngIf=\"!count\">{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer>\n <ng-template [ngIf]=\"items?.length > 0\">\n <strong\n ><a (click)=\"onViewAllClick($event)\">{{\n viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n }}</a></strong\n >\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong\n ><a (click)=\"onNoNotificationFoundClick()\">{{\n noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n }}</a></strong\n >\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.EuiOverlayHeaderComponent, selector: "eui-overlay-header" }, { kind: "component", type: i2$2.EuiOverlayBodyComponent, selector: "eui-overlay-body" }, { kind: "component", type: i2$2.EuiOverlayFooterComponent, selector: "eui-overlay-footer" }, { kind: "component", type: i2$2.EuiOverlayComponent, selector: "eui-overlay", inputs: ["isActive", "hasClosedOnClickOutside", "position", "width", "fixedWidth"], outputs: ["activeState"] }, { kind: "component", type: i3.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i4$2.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["aria-label"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: EuiNotificationItemComponent, selector: "eui-notification-item", inputs: ["markAsReadLabel", "item", "dateFormat", "isShowMarkAsRead"], outputs: ["itemClick", "itemMarkAsRead"] }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
1136
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuiNotificationsComponent, selector: "eui-notifications", inputs: { count: "count", items: "items", unreadLabel: "unreadLabel", totalLabel: "totalLabel", markAsReadLabel: "markAsReadLabel", markAsUnReadLabel: "markAsUnReadLabel", markAllAsReadLabel: "markAllAsReadLabel", settingsLabel: "settingsLabel", refreshLabel: "refreshLabel", viewAllNotificationsLabel: "viewAllNotificationsLabel", headerTitleLabel: "headerTitleLabel", noNotificationFoundLabel: "noNotificationFoundLabel", nbUnreadCount: "nbUnreadCount", dateFormat: "dateFormat", noNotificationFoundLink: "noNotificationFoundLink", isShowMarkAsRead: "isShowMarkAsRead", isShowViewAllAction: "isShowViewAllAction", isHidePanelOnViewAllAction: "isHidePanelOnViewAllAction", customUnreadCount: "customUnreadCount", isShowMarkAllAsReadButton: "isShowMarkAllAsReadButton", isShowSettingsButton: "isShowSettingsButton", isShowRefreshButton: "isShowRefreshButton" }, outputs: { refreshClick: "refreshClick", notificationsClick: "notificationsClick", viewAllClick: "viewAllClick", settingsClick: "settingsClick", markAllAsReadClick: "markAllAsReadClick", noNotificationFoundClick: "noNotificationFoundClick", itemClick: "itemClick", itemMarkAsReadClick: "itemMarkAsReadClick" }, host: { listeners: { "body:click": "onHide()" }, properties: { "class": "this.string" } }, usesOnChanges: true, ngImport: i0, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge>{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer *ngIf=\"(items?.length > 0 && isShowViewAllAction) || items?.length === 0\">\n <ng-template [ngIf]=\"items?.length > 0 && isShowViewAllAction\">\n <strong>\n <a (click)=\"onViewAllClick($event)\">{{ viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)}}</a>\n </strong>\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong>\n <a (click)=\"onNoNotificationFoundClick()\">{{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}</a>\n </strong>\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.EuiOverlayHeaderComponent, selector: "eui-overlay-header" }, { kind: "component", type: i2$2.EuiOverlayBodyComponent, selector: "eui-overlay-body" }, { kind: "component", type: i2$2.EuiOverlayFooterComponent, selector: "eui-overlay-footer" }, { kind: "component", type: i2$2.EuiOverlayComponent, selector: "eui-overlay", inputs: ["isActive", "hasClosedOnClickOutside", "position", "width", "fixedWidth"], outputs: ["activeState"] }, { kind: "component", type: i3.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i4$2.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["aria-label"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: EuiNotificationItemComponent, selector: "eui-notification-item", inputs: ["markAsReadLabel", "item", "dateFormat", "isShowMarkAsRead"], outputs: ["itemClick", "itemMarkAsRead"] }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
1137
1137
  }
1138
1138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuiNotificationsComponent, decorators: [{
1139
1139
  type: Component,
1140
- args: [{ selector: 'eui-notifications', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge euiSizeL *ngIf=\"count\">{{ count }}</eui-badge>\n <eui-badge euiSizeL *ngIf=\"!count\">{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer>\n <ng-template [ngIf]=\"items?.length > 0\">\n <strong\n ><a (click)=\"onViewAllClick($event)\">{{\n viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n }}</a></strong\n >\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong\n ><a (click)=\"onNoNotificationFoundClick()\">{{\n noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n }}</a></strong\n >\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"] }]
1140
+ args: [{ selector: 'eui-notifications', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<eui-icon-svg\n class=\"eui-notifications__trigger\"\n role=\"button\"\n size=\"m\"\n icon=\"eui-notifications\"\n fillColor=\"grey-5\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n tabindex=\"0\">\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications__header-title\">\n <div class=\"eui-notifications__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n <span\n *ngIf=\"items\"\n class=\"eui-u-cursor-help eui-u-ml-s\"\n attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n </span>\n <eui-badge>{{ items.length }}</eui-badge>\n </div>\n </div>\n\n <div *ngIf=\"items\" class=\"eui-notifications__header-actions\">\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowMarkAllAsReadButton\"\n [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n (click)=\"onMarkAllAsRead($event)\">\n <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowSettingsButton\"\n [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n (click)=\"onSettings($event)\">\n <eui-icon-svg icon=\"eui-settings\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n <button\n euiButton\n euiPrimary\n euiRounded\n euiIconButton\n euiBasicButton\n euiSizeS\n type=\"button\"\n *ngIf=\"isShowRefreshButton\"\n [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n (click)=\"onRefresh($event)\">\n <eui-icon-svg icon=\"eui-refresh\" fillColor=\"primary-100\"></eui-icon-svg>\n </button>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer *ngIf=\"(items?.length > 0 && isShowViewAllAction) || items?.length === 0\">\n <ng-template [ngIf]=\"items?.length > 0 && isShowViewAllAction\">\n <strong>\n <a (click)=\"onViewAllClick($event)\">{{ viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)}}</a>\n </strong>\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong>\n <a (click)=\"onNoNotificationFoundClick()\">{{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}</a>\n </strong>\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{background-color:var(--eui-base-color-grey-10);border-bottom:1px solid var(--eui-base-color-grey-20)}.eui-notifications-items{margin:0;padding:0}.eui-notifications__trigger{cursor:pointer;margin-top:var(--eui-base-spacing-xs)}.eui-notifications__trigger:focus{outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:5px;-moz-outline-radius:var(--eui-base-border-radius)!important;transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-notifications__header{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications__header-title{display:flex}.eui-notifications__header-title-label{font-size:var(--eui-base-font-size-l);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-notifications__header-title-subLabel{font-size:var(--eui-base-font-size-s);margin-top:var(--eui-base-spacing-xs);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-notifications__header-actions{align-items:center;display:flex;margin-left:auto}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-primary-5);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"] }]
1141
1141
  }], propDecorators: { refreshClick: [{
1142
1142
  type: Output
1143
1143
  }], notificationsClick: [{