@huntsman-cancer-institute/notification 17.9.0 → 17.9.2
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.
|
@@ -64,108 +64,108 @@ export class NotificationDropdown extends NavComponent {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationDropdown, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i1.NavigationService }, { token: i0.ChangeDetectorRef }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: NotificationDropdown, selector: "hci-notification-dropdown", host: { classAttribute: "hci-notification-dropdown" }, usesInheritance: true, ngImport: i0, template: `
|
|
68
|
-
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
69
|
-
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
70
|
-
<i class="{{iClass}}"></i>
|
|
71
|
-
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
72
|
-
</a>
|
|
73
|
-
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
74
|
-
<div class="d-flex">
|
|
75
|
-
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
76
|
-
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
77
|
-
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
78
|
-
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
79
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
80
|
-
</button>
|
|
81
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
82
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
83
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
84
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
85
|
-
</div>
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
89
|
-
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
90
|
-
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
91
|
-
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
92
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
93
|
-
</button>
|
|
94
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
95
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
96
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
97
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
</div>
|
|
101
|
-
</div>
|
|
102
|
-
<div class="notification-item-container">
|
|
103
|
-
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
104
|
-
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
105
|
-
</ng-container>
|
|
106
|
-
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
107
|
-
<div class="empty">
|
|
108
|
-
(No matching notifications)
|
|
109
|
-
</div>
|
|
110
|
-
</ng-container>
|
|
111
|
-
</div>
|
|
112
|
-
</ul>
|
|
113
|
-
</li>
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: NotificationDropdown, selector: "hci-notification-dropdown", host: { classAttribute: "hci-notification-dropdown" }, usesInheritance: true, ngImport: i0, template: `
|
|
68
|
+
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
69
|
+
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
70
|
+
<i class="{{iClass}}"></i>
|
|
71
|
+
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
72
|
+
</a>
|
|
73
|
+
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
74
|
+
<div class="d-flex">
|
|
75
|
+
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
76
|
+
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
77
|
+
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
78
|
+
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
79
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
80
|
+
</button>
|
|
81
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
82
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
83
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
84
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
89
|
+
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
90
|
+
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
91
|
+
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
92
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
93
|
+
</button>
|
|
94
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
95
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
96
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
97
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="notification-item-container">
|
|
103
|
+
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
104
|
+
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
105
|
+
</ng-container>
|
|
106
|
+
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
107
|
+
<div class="empty">
|
|
108
|
+
(No matching notifications)
|
|
109
|
+
</div>
|
|
110
|
+
</ng-container>
|
|
111
|
+
</div>
|
|
112
|
+
</ul>
|
|
113
|
+
</li>
|
|
114
114
|
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.BadgeComponent, selector: "hci-badge", inputs: ["countSubject", "countLoading"] }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "component", type: i5.NotificationItemComponent, selector: "hci-notification-item", inputs: ["popup", "notification"] }, { kind: "pipe", type: i6.NotificationFilterPipe, name: "notificationFilter" }] }); }
|
|
115
115
|
}
|
|
116
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationDropdown, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
118
|
args: [{
|
|
119
119
|
selector: "hci-notification-dropdown",
|
|
120
|
-
template: `
|
|
121
|
-
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
122
|
-
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
123
|
-
<i class="{{iClass}}"></i>
|
|
124
|
-
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
125
|
-
</a>
|
|
126
|
-
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
127
|
-
<div class="d-flex">
|
|
128
|
-
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
129
|
-
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
130
|
-
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
131
|
-
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
132
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
133
|
-
</button>
|
|
134
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
135
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
136
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
137
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
142
|
-
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
143
|
-
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
144
|
-
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
145
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
146
|
-
</button>
|
|
147
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
148
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
149
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
150
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
<div class="notification-item-container">
|
|
156
|
-
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
157
|
-
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
158
|
-
</ng-container>
|
|
159
|
-
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
160
|
-
<div class="empty">
|
|
161
|
-
(No matching notifications)
|
|
162
|
-
</div>
|
|
163
|
-
</ng-container>
|
|
164
|
-
</div>
|
|
165
|
-
</ul>
|
|
166
|
-
</li>
|
|
120
|
+
template: `
|
|
121
|
+
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
122
|
+
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
123
|
+
<i class="{{iClass}}"></i>
|
|
124
|
+
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
125
|
+
</a>
|
|
126
|
+
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
127
|
+
<div class="d-flex">
|
|
128
|
+
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
129
|
+
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
130
|
+
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
131
|
+
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
132
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
133
|
+
</button>
|
|
134
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
135
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
136
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
137
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
142
|
+
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
143
|
+
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
144
|
+
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
145
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
146
|
+
</button>
|
|
147
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
148
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
149
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
150
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="notification-item-container">
|
|
156
|
+
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
157
|
+
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
158
|
+
</ng-container>
|
|
159
|
+
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
160
|
+
<div class="empty">
|
|
161
|
+
(No matching notifications)
|
|
162
|
+
</div>
|
|
163
|
+
</ng-container>
|
|
164
|
+
</div>
|
|
165
|
+
</ul>
|
|
166
|
+
</li>
|
|
167
167
|
`,
|
|
168
168
|
host: { class: "hci-notification-dropdown" }
|
|
169
169
|
}]
|
|
170
170
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i1.NavigationService }, { type: i0.ChangeDetectorRef }, { type: i2.NotificationService }] });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25vdGlmaWNhdGlvbi9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb24tZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFFOUUsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFN0MsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXRGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQXVENUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFlBQVk7SUFjcEQsWUFBWSxVQUFzQixFQUN0QixRQUFtQixFQUNuQixRQUFrQyxFQUNsQyxpQkFBb0MsRUFDcEMsaUJBQW9DLEVBQzVCLG1CQUF3QztRQUMxRCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUQxRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBakJyRCxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLFdBQU0sR0FBVyxVQUFVLENBQUM7UUFDNUIsV0FBTSxHQUFXLElBQUksQ0FBQztRQUN0QixZQUFPLEdBQVcsZUFBZSxDQUFDO1FBRXpDLGFBQVEsR0FBVyxRQUFRLENBQUM7UUFDNUIsY0FBUyxHQUFXLE1BQU0sQ0FBQztRQUMzQixlQUFVLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7UUFDcEQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBV25DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQTZCLEVBQUUsRUFBRTtZQUM5SCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBZSxFQUFFLEVBQUU7Z0JBQzVELE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFFNUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDakIsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7OEdBbkVVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtJQWxEckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUOzsyRkFHVSxvQkFBb0I7a0JBcERoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7b0JBQ0QsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLDJCQUEyQixFQUFDO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLFxuICBPbkluaXQsIE9uRGVzdHJveVxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge05hdkNvbXBvbmVudCwgTmF2aWdhdGlvblNlcnZpY2V9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9uYXZpZ2F0aW9uXCI7XG5cbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSBcIi4uL25vdGlmaWNhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge05vdGlmaWNhdGlvbn0gZnJvbSBcIi4uL21vZGVsL25vdGlmaWNhdGlvbi5lbnRpdHlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImhjaS1ub3RpZmljYXRpb24tZHJvcGRvd25cIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bGkgW2lkXT1cImlkICsgJy1saSdcIiBjbGFzcz1cImhjaS1saS1kZC1saSB7e2xpQ2xhc3N9fVwiIG5nYkRyb3Bkb3duPlxuICAgICAgPGEgaWQ9XCJub3RpZmljYXRpb24tZHJvcGRvd25cIiBjbGFzcz1cImhjaS1saS1kZC1hIHt7YUNsYXNzfX1cIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgPGkgY2xhc3M9XCJ7e2lDbGFzc319XCI+PC9pPlxuICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiPjwvaGNpLWJhZGdlPlxuICAgICAgPC9hPlxuICAgICAgPHVsIG5nYkRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJub3RpZmljYXRpb24tZHJvcGRvd25cIiBjbGFzcz1cImhjaS1saS1kZC11bCBub3RpZmljYXRpb24tZHJvcGRvd24tbWVudSB7e3VsQ2xhc3N9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJWaWV3IE9wdGlvbnNcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCI+VmlldyB7e3ZpZXdNb2RlfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBuZ2JEcm9wZG93biAjdmlld0Ryb3Bkb3duPVwibmdiRHJvcGRvd25cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPVwidmlld1VuUmVhZFwiIGlkPVwidmlld1wiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGRyb3Bkb3duLXRvZ2dsZVwiIGFyaWEtbGFiZWw9XCJTZWxlY3QgVmlldyBNb2RlXCIgbmdiRHJvcGRvd25Ub2dnbGU+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYXJyb3ctY2lyY2xlLWRvd25cIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0XCIgYXJpYS1sYWJlbGxlZGJ5PVwidmlld1wiIG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwidmlld0Ryb3Bkb3duLmNsb3NlKCk7IHZpZXdNb2RlID0gJ0FsbCdcIj5BbGw8L2E+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInZpZXdEcm9wZG93bi5jbG9zZSgpOyB2aWV3TW9kZSA9ICdSZWFkJ1wiPlJlYWQ8L2E+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInZpZXdEcm9wZG93bi5jbG9zZSgpOyB2aWV3TW9kZSA9ICdVbnJlYWQnXCI+VW5yZWFkPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgcmlnaHRcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiQ2xlYXIgT3B0aW9uc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2xlYXIoKVwiPkNsZWFyIHt7Y2xlYXJNb2RlfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBuZ2JEcm9wZG93biAjY2xlYXJEcm9wZG93bj1cIm5nYkRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD1cImNsZWFyUmVhZFwiIGlkPVwiY2xlYXJcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBkcm9wZG93bi10b2dnbGVcIiBhcmlhLWxhYmVsPVwiU2VsZWN0IENsZWFyIE1vZGVcIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hcnJvdy1jaXJjbGUtZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIiBhcmlhLWxhYmVsbGVkYnk9XCJjbGVhclwiIG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiY2xlYXJEcm9wZG93bi5jbG9zZSgpOyBjbGVhck1vZGUgPSAnQWxsJzsgY2xlYXIoKTtcIj5BbGw8L2E+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cImNsZWFyRHJvcGRvd24uY2xvc2UoKTsgY2xlYXJNb2RlID0gJ1JlYWQnOyBjbGVhcigpO1wiPlJlYWQ8L2E+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cImNsZWFyRHJvcGRvd24uY2xvc2UoKTsgY2xlYXJNb2RlID0gJ1VucmVhZCc7IGNsZWFyKCk7XCI+VW5yZWFkPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pdGVtLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG5vdGlmaWNhdGlvbiBvZiBub3RpZmljYXRpb25zIHwgbm90aWZpY2F0aW9uRmlsdGVyOnZpZXdNb2RlXCI+XG4gICAgICAgICAgICA8aGNpLW5vdGlmaWNhdGlvbi1pdGVtIFtub3RpZmljYXRpb25dPVwibm90aWZpY2F0aW9uXCI+PC9oY2ktbm90aWZpY2F0aW9uLWl0ZW0+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihub3RpZmljYXRpb25zIHwgbm90aWZpY2F0aW9uRmlsdGVyOnZpZXdNb2RlKS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAgICAoTm8gbWF0Y2hpbmcgbm90aWZpY2F0aW9ucylcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgYCxcbiAgaG9zdDoge2NsYXNzOiBcImhjaS1ub3RpZmljYXRpb24tZHJvcGRvd25cIn1cbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uRHJvcGRvd24gZXh0ZW5kcyBOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGxpQ2xhc3M6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBhQ2xhc3M6IHN0cmluZyA9IFwibmF2LWxpbmtcIjtcbiAgcHVibGljIGlDbGFzczogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIHVsQ2xhc3M6IHN0cmluZyA9IFwiZHJvcGRvd24tbWVudVwiO1xuXG4gIHZpZXdNb2RlOiBzdHJpbmcgPSBcIlVucmVhZFwiO1xuICBjbGVhck1vZGU6IHN0cmluZyA9IFwiUmVhZFwiO1xuICBiYWRnZUNvdW50OiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbltdID0gW107XG5cbiAgbm90aWZpY2F0aW9uc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCByZW5kZXJlciwgcmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uc1N1YmplY3QoKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbltdKSA9PiB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBub3RpZmljYXRpb25zO1xuICAgICAgdGhpcy5iYWRnZUNvdW50Lm5leHQobm90aWZpY2F0aW9ucy5maWx0ZXIoKG86IE5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gby5zdGF0dXMgPT09IFwiVW5yZWFkXCI7XG4gICAgICB9KS5sZW5ndGgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBpZiAodGhpcy5jbGVhck1vZGUgPT09IFwiQWxsXCIpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5jbGVhckFsbCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jbGVhck1vZGUgPT09IFwiUmVhZFwiKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuY2xlYXJSZWFkKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNsZWFyTW9kZSA9PT0gXCJVbnJlYWRcIikge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmNsZWFyVW5yZWFkKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q29uZmlnKGNvbmZpZykge1xuICAgIHRoaXMucm9vdENsYXNzID0gXCJuYXYtaXRlbVwiO1xuXG4gICAgc3VwZXIuc2V0Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XG5cbiAgICBpZiAoY29uZmlnLmxpQ2xhc3MpIHtcbiAgICAgIHRoaXMubGlDbGFzcyA9IGNvbmZpZy5saUNsYXNzO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmFDbGFzcykge1xuICAgICAgdGhpcy5hQ2xhc3MgPSBjb25maWcuYUNsYXNzO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmlDbGFzcykge1xuICAgICAgdGhpcy5pQ2xhc3MgPSBjb25maWcuaUNsYXNzO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnVsQ2xhc3MpIHtcbiAgICAgIHRoaXMudWxDbGFzcyA9IGNvbmZpZy51bENsYXNzO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25vdGlmaWNhdGlvbi9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb24tZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFFOUUsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFN0MsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXRGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQXVENUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFlBQVk7SUFjcEQsWUFBWSxVQUFzQixFQUN0QixRQUFtQixFQUNuQixRQUFrQyxFQUNsQyxpQkFBb0MsRUFDcEMsaUJBQW9DLEVBQzVCLG1CQUF3QztRQUMxRCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUQxRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBakJyRCxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLFdBQU0sR0FBVyxVQUFVLENBQUM7UUFDNUIsV0FBTSxHQUFXLElBQUksQ0FBQztRQUN0QixZQUFPLEdBQVcsZUFBZSxDQUFDO1FBRXpDLGFBQVEsR0FBVyxRQUFRLENBQUM7UUFDNUIsY0FBUyxHQUFXLE1BQU0sQ0FBQztRQUMzQixlQUFVLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7UUFDcEQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBV25DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQTZCLEVBQUUsRUFBRTtZQUM5SCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBZSxFQUFFLEVBQUU7Z0JBQzVELE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFFNUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDakIsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7OEdBbkVVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtJQWxEckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUOzsyRkFHVSxvQkFBb0I7a0JBcERoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7b0JBQ0QsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLDJCQUEyQixFQUFDO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsXHJcbiAgT25Jbml0LCBPbkRlc3Ryb3lcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7TmF2Q29tcG9uZW50LCBOYXZpZ2F0aW9uU2VydmljZX0gZnJvbSBcIkBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL25hdmlnYXRpb25cIjtcclxuXHJcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSBcIi4uL25vdGlmaWNhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Tm90aWZpY2F0aW9ufSBmcm9tIFwiLi4vbW9kZWwvbm90aWZpY2F0aW9uLmVudGl0eVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLW5vdGlmaWNhdGlvbi1kcm9wZG93blwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bGkgW2lkXT1cImlkICsgJy1saSdcIiBjbGFzcz1cImhjaS1saS1kZC1saSB7e2xpQ2xhc3N9fVwiIG5nYkRyb3Bkb3duPlxyXG4gICAgICA8YSBpZD1cIm5vdGlmaWNhdGlvbi1kcm9wZG93blwiIGNsYXNzPVwiaGNpLWxpLWRkLWEge3thQ2xhc3N9fVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgIDxpIGNsYXNzPVwie3tpQ2xhc3N9fVwiPjwvaT5cclxuICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiPjwvaGNpLWJhZGdlPlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDx1bCBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwibm90aWZpY2F0aW9uLWRyb3Bkb3duXCIgY2xhc3M9XCJoY2ktbGktZGQtdWwgbm90aWZpY2F0aW9uLWRyb3Bkb3duLW1lbnUge3t1bENsYXNzfX1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIlZpZXcgT3B0aW9uc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPlZpZXcge3t2aWV3TW9kZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBuZ2JEcm9wZG93biAjdmlld0Ryb3Bkb3duPVwibmdiRHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9XCJ2aWV3VW5SZWFkXCIgaWQ9XCJ2aWV3XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgZHJvcGRvd24tdG9nZ2xlXCIgYXJpYS1sYWJlbD1cIlNlbGVjdCBWaWV3IE1vZGVcIiBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWFycm93LWNpcmNsZS1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIiBhcmlhLWxhYmVsbGVkYnk9XCJ2aWV3XCIgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInZpZXdEcm9wZG93bi5jbG9zZSgpOyB2aWV3TW9kZSA9ICdBbGwnXCI+QWxsPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInZpZXdEcm9wZG93bi5jbG9zZSgpOyB2aWV3TW9kZSA9ICdSZWFkJ1wiPlJlYWQ8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwidmlld0Ryb3Bkb3duLmNsb3NlKCk7IHZpZXdNb2RlID0gJ1VucmVhZCdcIj5VbnJlYWQ8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwIHJpZ2h0XCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkNsZWFyIE9wdGlvbnNcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2xlYXIoKVwiPkNsZWFyIHt7Y2xlYXJNb2RlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiIG5nYkRyb3Bkb3duICNjbGVhckRyb3Bkb3duPVwibmdiRHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9XCJjbGVhclJlYWRcIiBpZD1cImNsZWFyXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgZHJvcGRvd24tdG9nZ2xlXCIgYXJpYS1sYWJlbD1cIlNlbGVjdCBDbGVhciBNb2RlXCIgbmdiRHJvcGRvd25Ub2dnbGU+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hcnJvdy1jaXJjbGUtZG93blwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0XCIgYXJpYS1sYWJlbGxlZGJ5PVwiY2xlYXJcIiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiY2xlYXJEcm9wZG93bi5jbG9zZSgpOyBjbGVhck1vZGUgPSAnQWxsJzsgY2xlYXIoKTtcIj5BbGw8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiY2xlYXJEcm9wZG93bi5jbG9zZSgpOyBjbGVhck1vZGUgPSAnUmVhZCc7IGNsZWFyKCk7XCI+UmVhZDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJjbGVhckRyb3Bkb3duLmNsb3NlKCk7IGNsZWFyTW9kZSA9ICdVbnJlYWQnOyBjbGVhcigpO1wiPlVucmVhZDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW0tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9ucyB8IG5vdGlmaWNhdGlvbkZpbHRlcjp2aWV3TW9kZVwiPlxyXG4gICAgICAgICAgICA8aGNpLW5vdGlmaWNhdGlvbi1pdGVtIFtub3RpZmljYXRpb25dPVwibm90aWZpY2F0aW9uXCI+PC9oY2ktbm90aWZpY2F0aW9uLWl0ZW0+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIobm90aWZpY2F0aW9ucyB8IG5vdGlmaWNhdGlvbkZpbHRlcjp2aWV3TW9kZSkubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxyXG4gICAgICAgICAgICAgIChObyBtYXRjaGluZyBub3RpZmljYXRpb25zKVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9saT5cclxuICBgLFxyXG4gIGhvc3Q6IHtjbGFzczogXCJoY2ktbm90aWZpY2F0aW9uLWRyb3Bkb3duXCJ9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Ecm9wZG93biBleHRlbmRzIE5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGxpQ2xhc3M6IHN0cmluZyA9IG51bGw7XHJcbiAgcHVibGljIGFDbGFzczogc3RyaW5nID0gXCJuYXYtbGlua1wiO1xyXG4gIHB1YmxpYyBpQ2xhc3M6IHN0cmluZyA9IG51bGw7XHJcbiAgcHVibGljIHVsQ2xhc3M6IHN0cmluZyA9IFwiZHJvcGRvd24tbWVudVwiO1xyXG5cclxuICB2aWV3TW9kZTogc3RyaW5nID0gXCJVbnJlYWRcIjtcclxuICBjbGVhck1vZGU6IHN0cmluZyA9IFwiUmVhZFwiO1xyXG4gIGJhZGdlQ291bnQ6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25bXSA9IFtdO1xyXG5cclxuICBub3RpZmljYXRpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICAgICAgICByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCByZW5kZXJlciwgcmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXROb3RpZmljYXRpb25zU3ViamVjdCgpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uW10pID0+IHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gbm90aWZpY2F0aW9ucztcclxuICAgICAgdGhpcy5iYWRnZUNvdW50Lm5leHQobm90aWZpY2F0aW9ucy5maWx0ZXIoKG86IE5vdGlmaWNhdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiBvLnN0YXR1cyA9PT0gXCJVbnJlYWRcIjtcclxuICAgICAgfSkubGVuZ3RoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgaWYgKHRoaXMuY2xlYXJNb2RlID09PSBcIkFsbFwiKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5jbGVhckFsbCgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNsZWFyTW9kZSA9PT0gXCJSZWFkXCIpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmNsZWFyUmVhZCgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNsZWFyTW9kZSA9PT0gXCJVbnJlYWRcIikge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuY2xlYXJVbnJlYWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENvbmZpZyhjb25maWcpIHtcclxuICAgIHRoaXMucm9vdENsYXNzID0gXCJuYXYtaXRlbVwiO1xyXG5cclxuICAgIHN1cGVyLnNldENvbmZpZyhjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlnKGNvbmZpZykge1xyXG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XHJcblxyXG4gICAgaWYgKGNvbmZpZy5saUNsYXNzKSB7XHJcbiAgICAgIHRoaXMubGlDbGFzcyA9IGNvbmZpZy5saUNsYXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5hQ2xhc3MpIHtcclxuICAgICAgdGhpcy5hQ2xhc3MgPSBjb25maWcuYUNsYXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5pQ2xhc3MpIHtcclxuICAgICAgdGhpcy5pQ2xhc3MgPSBjb25maWcuaUNsYXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy51bENsYXNzKSB7XHJcbiAgICAgIHRoaXMudWxDbGFzcyA9IGNvbmZpZy51bENsYXNzO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -385,106 +385,106 @@ class NotificationDropdown extends NavComponent {
|
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
387
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationDropdown, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i1.NavigationService }, { token: i0.ChangeDetectorRef }, { token: NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
388
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: NotificationDropdown, selector: "hci-notification-dropdown", host: { classAttribute: "hci-notification-dropdown" }, usesInheritance: true, ngImport: i0, template: `
|
|
389
|
-
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
390
|
-
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
391
|
-
<i class="{{iClass}}"></i>
|
|
392
|
-
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
393
|
-
</a>
|
|
394
|
-
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
395
|
-
<div class="d-flex">
|
|
396
|
-
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
397
|
-
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
398
|
-
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
399
|
-
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
400
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
401
|
-
</button>
|
|
402
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
403
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
404
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
405
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
406
|
-
</div>
|
|
407
|
-
</div>
|
|
408
|
-
</div>
|
|
409
|
-
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
410
|
-
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
411
|
-
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
412
|
-
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
413
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
414
|
-
</button>
|
|
415
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
416
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
417
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
418
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
419
|
-
</div>
|
|
420
|
-
</div>
|
|
421
|
-
</div>
|
|
422
|
-
</div>
|
|
423
|
-
<div class="notification-item-container">
|
|
424
|
-
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
425
|
-
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
426
|
-
</ng-container>
|
|
427
|
-
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
428
|
-
<div class="empty">
|
|
429
|
-
(No matching notifications)
|
|
430
|
-
</div>
|
|
431
|
-
</ng-container>
|
|
432
|
-
</div>
|
|
433
|
-
</ul>
|
|
434
|
-
</li>
|
|
388
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: NotificationDropdown, selector: "hci-notification-dropdown", host: { classAttribute: "hci-notification-dropdown" }, usesInheritance: true, ngImport: i0, template: `
|
|
389
|
+
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
390
|
+
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
391
|
+
<i class="{{iClass}}"></i>
|
|
392
|
+
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
393
|
+
</a>
|
|
394
|
+
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
395
|
+
<div class="d-flex">
|
|
396
|
+
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
397
|
+
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
398
|
+
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
399
|
+
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
400
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
401
|
+
</button>
|
|
402
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
403
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
404
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
405
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
406
|
+
</div>
|
|
407
|
+
</div>
|
|
408
|
+
</div>
|
|
409
|
+
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
410
|
+
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
411
|
+
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
412
|
+
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
413
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
414
|
+
</button>
|
|
415
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
416
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
417
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
418
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
419
|
+
</div>
|
|
420
|
+
</div>
|
|
421
|
+
</div>
|
|
422
|
+
</div>
|
|
423
|
+
<div class="notification-item-container">
|
|
424
|
+
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
425
|
+
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
426
|
+
</ng-container>
|
|
427
|
+
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
428
|
+
<div class="empty">
|
|
429
|
+
(No matching notifications)
|
|
430
|
+
</div>
|
|
431
|
+
</ng-container>
|
|
432
|
+
</div>
|
|
433
|
+
</ul>
|
|
434
|
+
</li>
|
|
435
435
|
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.BadgeComponent, selector: "hci-badge", inputs: ["countSubject", "countLoading"] }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "component", type: NotificationItemComponent, selector: "hci-notification-item", inputs: ["popup", "notification"] }, { kind: "pipe", type: NotificationFilterPipe, name: "notificationFilter" }] }); }
|
|
436
436
|
}
|
|
437
437
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationDropdown, decorators: [{
|
|
438
438
|
type: Component,
|
|
439
439
|
args: [{
|
|
440
440
|
selector: "hci-notification-dropdown",
|
|
441
|
-
template: `
|
|
442
|
-
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
443
|
-
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
444
|
-
<i class="{{iClass}}"></i>
|
|
445
|
-
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
446
|
-
</a>
|
|
447
|
-
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
448
|
-
<div class="d-flex">
|
|
449
|
-
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
450
|
-
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
451
|
-
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
452
|
-
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
453
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
454
|
-
</button>
|
|
455
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
456
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
457
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
458
|
-
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
459
|
-
</div>
|
|
460
|
-
</div>
|
|
461
|
-
</div>
|
|
462
|
-
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
463
|
-
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
464
|
-
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
465
|
-
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
466
|
-
<i class="fas fa-arrow-circle-down"></i>
|
|
467
|
-
</button>
|
|
468
|
-
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
469
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
470
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
471
|
-
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
472
|
-
</div>
|
|
473
|
-
</div>
|
|
474
|
-
</div>
|
|
475
|
-
</div>
|
|
476
|
-
<div class="notification-item-container">
|
|
477
|
-
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
478
|
-
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
479
|
-
</ng-container>
|
|
480
|
-
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
481
|
-
<div class="empty">
|
|
482
|
-
(No matching notifications)
|
|
483
|
-
</div>
|
|
484
|
-
</ng-container>
|
|
485
|
-
</div>
|
|
486
|
-
</ul>
|
|
487
|
-
</li>
|
|
441
|
+
template: `
|
|
442
|
+
<li [id]="id + '-li'" class="hci-li-dd-li {{liClass}}" ngbDropdown>
|
|
443
|
+
<a id="notification-dropdown" class="hci-li-dd-a {{aClass}}" ngbDropdownToggle>
|
|
444
|
+
<i class="{{iClass}}"></i>
|
|
445
|
+
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount"></hci-badge>
|
|
446
|
+
</a>
|
|
447
|
+
<ul ngbDropdownMenu aria-labelledby="notification-dropdown" class="hci-li-dd-ul notification-dropdown-menu {{ulClass}}">
|
|
448
|
+
<div class="d-flex">
|
|
449
|
+
<div class="btn-group" role="group" aria-label="View Options" (click)="$event.stopPropagation()">
|
|
450
|
+
<button type="button" class="btn btn-secondary">View {{viewMode}}</button>
|
|
451
|
+
<div class="btn-group" role="group" ngbDropdown #viewDropdown="ngbDropdown">
|
|
452
|
+
<button aria-label="viewUnRead" id="view" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select View Mode" ngbDropdownToggle>
|
|
453
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
454
|
+
</button>
|
|
455
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="view" ngbDropdownMenu>
|
|
456
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'All'">All</a>
|
|
457
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Read'">Read</a>
|
|
458
|
+
<a class="dropdown-item" (click)="viewDropdown.close(); viewMode = 'Unread'">Unread</a>
|
|
459
|
+
</div>
|
|
460
|
+
</div>
|
|
461
|
+
</div>
|
|
462
|
+
<div class="btn-group right" role="group" aria-label="Clear Options" (click)="$event.stopPropagation()">
|
|
463
|
+
<button type="button" class="btn btn-secondary" (click)="clear()">Clear {{clearMode}}</button>
|
|
464
|
+
<div class="btn-group" role="group" ngbDropdown #clearDropdown="ngbDropdown">
|
|
465
|
+
<button aria-label="clearRead" id="clear" type="button" class="btn btn-secondary dropdown-toggle" aria-label="Select Clear Mode" ngbDropdownToggle>
|
|
466
|
+
<i class="fas fa-arrow-circle-down"></i>
|
|
467
|
+
</button>
|
|
468
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="clear" ngbDropdownMenu>
|
|
469
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'All'; clear();">All</a>
|
|
470
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Read'; clear();">Read</a>
|
|
471
|
+
<a class="dropdown-item" (click)="clearDropdown.close(); clearMode = 'Unread'; clear();">Unread</a>
|
|
472
|
+
</div>
|
|
473
|
+
</div>
|
|
474
|
+
</div>
|
|
475
|
+
</div>
|
|
476
|
+
<div class="notification-item-container">
|
|
477
|
+
<ng-container *ngFor="let notification of notifications | notificationFilter:viewMode">
|
|
478
|
+
<hci-notification-item [notification]="notification"></hci-notification-item>
|
|
479
|
+
</ng-container>
|
|
480
|
+
<ng-container *ngIf="(notifications | notificationFilter:viewMode).length === 0">
|
|
481
|
+
<div class="empty">
|
|
482
|
+
(No matching notifications)
|
|
483
|
+
</div>
|
|
484
|
+
</ng-container>
|
|
485
|
+
</div>
|
|
486
|
+
</ul>
|
|
487
|
+
</li>
|
|
488
488
|
`,
|
|
489
489
|
host: { class: "hci-notification-dropdown" }
|
|
490
490
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huntsman-cancer-institute-notification.mjs","sources":["../../../projects/notification/src/notification.service.ts","../../../projects/notification/src/model/notification.entity.ts","../../../projects/notification/src/components/notification-item.component.ts","../../../projects/notification/src/util/notification-filter.pipe.ts","../../../projects/notification/src/components/notification-popup.component.ts","../../../projects/notification/src/components/notification-dropdown.component.ts","../../../projects/notification/src/notification.module.ts","../../../projects/notification/src/huntsman-cancer-institute-notification.ts"],"sourcesContent":["import {Inject, Injectable, InjectionToken, isDevMode} from \"@angular/core\";\r\n\r\nimport {Subject} from \"rxjs\";\r\n\r\nimport {Notification} from \"./model/notification.entity\";\r\n\r\nexport let NOTIFICATION_CONFIG = new InjectionToken<any>(\"notificationConfig\");\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n\r\n id: number = 0;\r\n\r\n public popupRemoveDelay: number = 5000;\r\n\r\n private notifications: Notification[] = [];\r\n private notificationsSubject: Subject<Notification[]> = new Subject<Notification[]>();\r\n\r\n constructor(@Inject(NOTIFICATION_CONFIG) private notificationConfig: any) {\r\n this.setConfig(this.notificationConfig);\r\n }\r\n\r\n getNotificationsSubject(): Subject<Notification[]> {\r\n return this.notificationsSubject;\r\n }\r\n\r\n addNotification(notification: Notification) {\r\n if (isDevMode()) {\r\n console.debug(\"addNotification\");\r\n }\r\n if (!notification.idNotification) {\r\n notification.idNotification = this.id++;\r\n }\r\n if (!notification.type) {\r\n notification.type = \"INFO\";\r\n }\r\n\r\n this.notifications.push(notification);\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n hide(notification: Notification) {\r\n let i: number;\r\n for (i = 0; i < this.notifications.length; i++) {\r\n if (this.notifications[i].idNotification === notification.idNotification) {\r\n break;\r\n }\r\n }\r\n if (this.notifications[i].status !== \"NEW\") {\r\n return;\r\n }\r\n if (notification.type === \"INFO\") {\r\n notification.status = \"Read\";\r\n } else {\r\n notification.status = \"Unread\";\r\n }\r\n this.notifications[i] = notification;\r\n console.debug(notification);\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n acknowledge(notification: Notification) {\r\n notification.status = \"Read\";\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n discard(notification: Notification) {\r\n notification.status = \"Closed\";\r\n let i: number;\r\n for (i = 0; i < this.notifications.length; i++) {\r\n if (this.notifications[i].idNotification === notification.idNotification) {\r\n break;\r\n }\r\n }\r\n this.notifications.splice(i, 1);\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n clearAll() {\r\n this.notifications = [];\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n clearRead() {\r\n this.notifications = this.notifications.filter((o: Notification) => {\r\n return o.status !== \"Read\";\r\n });\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n clearUnread() {\r\n this.notifications = this.notifications.filter((o: Notification) => {\r\n return o.status !== \"Unread\";\r\n });\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n setConfig(config: any) {\r\n if (config.popupRemoveDelay) {\r\n this.popupRemoveDelay = config.popupRemoveDelay;\r\n }\r\n }\r\n\r\n}\r\n","export class Notification {\r\n idNotification: number;\r\n notification: string;\r\n type: string;\r\n status: string;\r\n html: boolean = false;\r\n}\r\n","import {Component, Input} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\nimport {interval} from \"rxjs\";\r\nimport {take} from \"rxjs/operators\";\r\n\r\nimport {Notification} from \"../model/notification.entity\";\r\nimport {NotificationService} from \"../notification.service\";\r\n\r\n@Component({\r\n selector: \"hci-notification-item\",\r\n template: `\r\n <div class=\"notification-item d-flex flex-nowrap\"\r\n (click)=\"$event.stopPropagation()\"\r\n [@close]=\"'in'\"\r\n [class.info]=\"notification.type !== 'ERROR' && notification.type !== 'WARN'\"\r\n [class.warn]=\"notification.type === 'WARN'\"\r\n [class.error]=\"notification.type === 'ERROR'\">\r\n <div class=\"text\">\r\n <div class=\"icon\">\r\n <ng-container *ngIf=\"notification.type === 'INFO'\">\r\n <i class=\"fas fa-info-circle fa-lg\"></i>\r\n </ng-container>\r\n <ng-container *ngIf=\"notification.type === 'WARN'\">\r\n <i class=\"fas fa-exclamation-circle fa-lg\"></i>\r\n </ng-container>\r\n <ng-container *ngIf=\"notification.type === 'ERROR'\">\r\n <i class=\"fas fa-exclamation-circle fa-lg\"></i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <span *ngIf=\"notification.html === true\" [innerHTML]=\"notification['notification']\"></span>\r\n <span *ngIf=\"notification.html === false\">{{notification[\"notification\"]}}</span>\r\n </div>\r\n </div>\r\n <div class=\"options\">\r\n <button class=\"btn btn-primary\"\r\n (click)=\"$event.stopPropagation(); acknowledge();\"\r\n ngbTooltip=\"Keep\"\r\n placement=\"left\"\r\n style=\"margin-bottom: 5px;\">\r\n <i class=\"fas fa-check\"></i>\r\n </button>\r\n <button class=\"btn btn-primary\"\r\n (click)=\"$event.stopPropagation(); discard();\"\r\n ngbTooltip=\"Discard\"\r\n placement=\"left\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n `,\r\n animations: [\r\n trigger(\"close\",\r\n [\r\n state(\"in\", style({opacity: 1})),\r\n transition(\"* => void\", [\r\n animate(1000, style({opacity: 0}))\r\n ]),\r\n ]\r\n )\r\n ]\r\n})\r\nexport class NotificationItemComponent {\r\n\r\n @Input() popup: boolean = false;\r\n @Input() notification: Notification;\r\n\r\n constructor(private notificationService: NotificationService) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.popup) {\r\n interval(this.notificationService.popupRemoveDelay)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.notificationService.hide(this.notification);\r\n });\r\n }\r\n }\r\n\r\n acknowledge() {\r\n this.notificationService.acknowledge(this.notification);\r\n }\r\n\r\n discard() {\r\n this.notificationService.discard(this.notification);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\nimport {Notification} from \"../model/notification.entity\";\r\n\r\n@Pipe({\r\n name: \"notificationFilter\",\r\n pure: false\r\n})\r\nexport class NotificationFilterPipe implements PipeTransform {\r\n\r\n transform(list: Notification[], status: string, hasStatus?: boolean): Notification[] {\r\n return list.filter((o: Notification) => {\r\n if (status === \"All\") {\r\n return list;\r\n }\r\n if (hasStatus !== undefined) {\r\n if (hasStatus) {\r\n return o.status === status;\r\n } else {\r\n return o.status !== status;\r\n }\r\n } else {\r\n return o.status === status;\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport {animate, query, stagger, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport {NotificationService} from \"../notification.service\";\r\nimport {Notification} from \"../model/notification.entity\";\r\n\r\n@Component({\r\n selector: \"hci-notification-popup\",\r\n template: `\r\n <div class=\"notification-popup\" (click)=\"$event.stopPropagation()\">\r\n <ng-container *ngFor=\"let notification of notifications | notificationFilter:'NEW'\">\r\n <hci-notification-item [notification]=\"notification\" [popup]=\"true\"></hci-notification-item>\r\n </ng-container>\r\n </div>\r\n `,\r\n animations: [\r\n trigger(\"notificationInOut\", [\r\n transition(\"* => *\", [\r\n query(\".notification-popup-item:enter\", [\r\n animate(1000, style({ opacity: 1 }))\r\n ], {optional: true}),\r\n query(\".notification-popup-item:leave\", [\r\n animate(1000, style({ opacity: 0 }))\r\n ], {optional: true})\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class NotificationPopupComponent implements OnInit, OnDestroy {\r\n\r\n notifications: Notification[] = [];\r\n\r\n notificationsSubscription: Subscription;\r\n\r\n constructor(private notificationService: NotificationService) {}\r\n\r\n ngOnInit(): void {\r\n this.notificationsSubscription = this.notificationService.getNotificationsSubject().subscribe((notifications: Notification[]) => {\r\n this.notifications = notifications;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.notificationsSubscription.unsubscribe();\r\n }\r\n}\r\n","import {\n ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, Renderer2,\n OnInit, OnDestroy\n} from \"@angular/core\";\n\nimport { Subject, Subscription } from \"rxjs\";\n\nimport {NavComponent, NavigationService} from \"@huntsman-cancer-institute/navigation\";\n\nimport {NotificationService} from \"../notification.service\";\nimport {Notification} from \"../model/notification.entity\";\n\n@Component({\n selector: \"hci-notification-dropdown\",\n template: `\n <li [id]=\"id + '-li'\" class=\"hci-li-dd-li {{liClass}}\" ngbDropdown>\n <a id=\"notification-dropdown\" class=\"hci-li-dd-a {{aClass}}\" ngbDropdownToggle>\n <i class=\"{{iClass}}\"></i>\n <hci-badge *ngIf=\"badgeCount\" [countSubject]=\"badgeCount\"></hci-badge>\n </a>\n <ul ngbDropdownMenu aria-labelledby=\"notification-dropdown\" class=\"hci-li-dd-ul notification-dropdown-menu {{ulClass}}\">\n <div class=\"d-flex\">\n <div class=\"btn-group\" role=\"group\" aria-label=\"View Options\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"btn btn-secondary\">View {{viewMode}}</button>\n <div class=\"btn-group\" role=\"group\" ngbDropdown #viewDropdown=\"ngbDropdown\">\n <button aria-label=\"viewUnRead\" id=\"view\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" aria-label=\"Select View Mode\" ngbDropdownToggle>\n <i class=\"fas fa-arrow-circle-down\"></i>\n </button>\n <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"view\" ngbDropdownMenu>\n <a class=\"dropdown-item\" (click)=\"viewDropdown.close(); viewMode = 'All'\">All</a>\n <a class=\"dropdown-item\" (click)=\"viewDropdown.close(); viewMode = 'Read'\">Read</a>\n <a class=\"dropdown-item\" (click)=\"viewDropdown.close(); viewMode = 'Unread'\">Unread</a>\n </div>\n </div>\n </div>\n <div class=\"btn-group right\" role=\"group\" aria-label=\"Clear Options\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"clear()\">Clear {{clearMode}}</button>\n <div class=\"btn-group\" role=\"group\" ngbDropdown #clearDropdown=\"ngbDropdown\">\n <button aria-label=\"clearRead\" id=\"clear\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" aria-label=\"Select Clear Mode\" ngbDropdownToggle>\n <i class=\"fas fa-arrow-circle-down\"></i>\n </button>\n <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"clear\" ngbDropdownMenu>\n <a class=\"dropdown-item\" (click)=\"clearDropdown.close(); clearMode = 'All'; clear();\">All</a>\n <a class=\"dropdown-item\" (click)=\"clearDropdown.close(); clearMode = 'Read'; clear();\">Read</a>\n <a class=\"dropdown-item\" (click)=\"clearDropdown.close(); clearMode = 'Unread'; clear();\">Unread</a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"notification-item-container\">\n <ng-container *ngFor=\"let notification of notifications | notificationFilter:viewMode\">\n <hci-notification-item [notification]=\"notification\"></hci-notification-item>\n </ng-container>\n <ng-container *ngIf=\"(notifications | notificationFilter:viewMode).length === 0\">\n <div class=\"empty\">\n (No matching notifications)\n </div>\n </ng-container>\n </div>\n </ul>\n </li>\n `,\n host: {class: \"hci-notification-dropdown\"}\n})\nexport class NotificationDropdown extends NavComponent implements OnInit, OnDestroy {\n\n public liClass: string = null;\n public aClass: string = \"nav-link\";\n public iClass: string = null;\n public ulClass: string = \"dropdown-menu\";\n\n viewMode: string = \"Unread\";\n clearMode: string = \"Read\";\n badgeCount: Subject<number> = new Subject<number>();\n notifications: Notification[] = [];\n\n notificationsSubscription: Subscription;\n\n constructor(elementRef: ElementRef,\n renderer: Renderer2,\n resolver: ComponentFactoryResolver,\n navigationService: NavigationService,\n changeDetectorRef: ChangeDetectorRef,\n private notificationService: NotificationService) {\n super(elementRef, renderer, resolver, navigationService, changeDetectorRef);\n }\n\n ngOnInit(): void {\n this.notificationsSubscription = this.notificationService.getNotificationsSubject().subscribe((notifications: Notification[]) => {\n this.notifications = notifications;\n this.badgeCount.next(notifications.filter((o: Notification) => {\n return o.status === \"Unread\";\n }).length);\n });\n }\n\n ngOnDestroy(): void {\n this.notificationsSubscription.unsubscribe();\n }\n\n clear() {\n if (this.clearMode === \"All\") {\n this.notificationService.clearAll();\n } else if (this.clearMode === \"Read\") {\n this.notificationService.clearRead();\n } else if (this.clearMode === \"Unread\") {\n this.notificationService.clearUnread();\n }\n }\n\n setConfig(config) {\n this.rootClass = \"nav-item\";\n\n super.setConfig(config);\n }\n\n updateConfig(config) {\n super.updateConfig(config);\n\n if (config.liClass) {\n this.liClass = config.liClass;\n }\n if (config.aClass) {\n this.aClass = config.aClass;\n }\n if (config.iClass) {\n this.iClass = config.iClass;\n }\n if (config.ulClass) {\n this.ulClass = config.ulClass;\n }\n }\n}\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport {ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nimport {NavigationModule} from \"@huntsman-cancer-institute/navigation\";\r\n\r\nimport {NotificationService, NOTIFICATION_CONFIG} from \"./notification.service\";\r\nimport {NotificationPopupComponent} from \"./components/notification-popup.component\";\r\nimport {NotificationItemComponent} from \"./components/notification-item.component\";\r\nimport {NotificationFilterPipe} from \"./util/notification-filter.pipe\";\r\nimport {NotificationDropdown} from \"./components/notification-dropdown.component\";\r\n\r\n/**\r\n *\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NavigationModule,\r\n NgbModule\r\n ],\r\n declarations: [\r\n NotificationPopupComponent,\r\n NotificationItemComponent,\r\n NotificationDropdown,\r\n NotificationFilterPipe\r\n ],\r\n exports: [\r\n NotificationPopupComponent,\r\n NotificationItemComponent\r\n ]\r\n})\r\nexport class NotificationModule {\r\n static forRoot(notificationConfig: any): ModuleWithProviders<NotificationModule> {\r\n return {\r\n providers: [\r\n NotificationService,\r\n {provide: NOTIFICATION_CONFIG, useValue: notificationConfig}\r\n ],\r\n ngModule: NotificationModule\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NotificationService","i3","i3.NotificationItemComponent","i4.NotificationFilterPipe","i2.NotificationService","i5.NotificationItemComponent","i6.NotificationFilterPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"huntsman-cancer-institute-notification.mjs","sources":["../../../projects/notification/src/notification.service.ts","../../../projects/notification/src/model/notification.entity.ts","../../../projects/notification/src/components/notification-item.component.ts","../../../projects/notification/src/util/notification-filter.pipe.ts","../../../projects/notification/src/components/notification-popup.component.ts","../../../projects/notification/src/components/notification-dropdown.component.ts","../../../projects/notification/src/notification.module.ts","../../../projects/notification/src/huntsman-cancer-institute-notification.ts"],"sourcesContent":["import {Inject, Injectable, InjectionToken, isDevMode} from \"@angular/core\";\r\n\r\nimport {Subject} from \"rxjs\";\r\n\r\nimport {Notification} from \"./model/notification.entity\";\r\n\r\nexport let NOTIFICATION_CONFIG = new InjectionToken<any>(\"notificationConfig\");\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n\r\n id: number = 0;\r\n\r\n public popupRemoveDelay: number = 5000;\r\n\r\n private notifications: Notification[] = [];\r\n private notificationsSubject: Subject<Notification[]> = new Subject<Notification[]>();\r\n\r\n constructor(@Inject(NOTIFICATION_CONFIG) private notificationConfig: any) {\r\n this.setConfig(this.notificationConfig);\r\n }\r\n\r\n getNotificationsSubject(): Subject<Notification[]> {\r\n return this.notificationsSubject;\r\n }\r\n\r\n addNotification(notification: Notification) {\r\n if (isDevMode()) {\r\n console.debug(\"addNotification\");\r\n }\r\n if (!notification.idNotification) {\r\n notification.idNotification = this.id++;\r\n }\r\n if (!notification.type) {\r\n notification.type = \"INFO\";\r\n }\r\n\r\n this.notifications.push(notification);\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n hide(notification: Notification) {\r\n let i: number;\r\n for (i = 0; i < this.notifications.length; i++) {\r\n if (this.notifications[i].idNotification === notification.idNotification) {\r\n break;\r\n }\r\n }\r\n if (this.notifications[i].status !== \"NEW\") {\r\n return;\r\n }\r\n if (notification.type === \"INFO\") {\r\n notification.status = \"Read\";\r\n } else {\r\n notification.status = \"Unread\";\r\n }\r\n this.notifications[i] = notification;\r\n console.debug(notification);\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n acknowledge(notification: Notification) {\r\n notification.status = \"Read\";\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n discard(notification: Notification) {\r\n notification.status = \"Closed\";\r\n let i: number;\r\n for (i = 0; i < this.notifications.length; i++) {\r\n if (this.notifications[i].idNotification === notification.idNotification) {\r\n break;\r\n }\r\n }\r\n this.notifications.splice(i, 1);\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n clearAll() {\r\n this.notifications = [];\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n clearRead() {\r\n this.notifications = this.notifications.filter((o: Notification) => {\r\n return o.status !== \"Read\";\r\n });\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n clearUnread() {\r\n this.notifications = this.notifications.filter((o: Notification) => {\r\n return o.status !== \"Unread\";\r\n });\r\n this.notificationsSubject.next(this.notifications);\r\n }\r\n\r\n setConfig(config: any) {\r\n if (config.popupRemoveDelay) {\r\n this.popupRemoveDelay = config.popupRemoveDelay;\r\n }\r\n }\r\n\r\n}\r\n","export class Notification {\r\n idNotification: number;\r\n notification: string;\r\n type: string;\r\n status: string;\r\n html: boolean = false;\r\n}\r\n","import {Component, Input} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\nimport {interval} from \"rxjs\";\r\nimport {take} from \"rxjs/operators\";\r\n\r\nimport {Notification} from \"../model/notification.entity\";\r\nimport {NotificationService} from \"../notification.service\";\r\n\r\n@Component({\r\n selector: \"hci-notification-item\",\r\n template: `\r\n <div class=\"notification-item d-flex flex-nowrap\"\r\n (click)=\"$event.stopPropagation()\"\r\n [@close]=\"'in'\"\r\n [class.info]=\"notification.type !== 'ERROR' && notification.type !== 'WARN'\"\r\n [class.warn]=\"notification.type === 'WARN'\"\r\n [class.error]=\"notification.type === 'ERROR'\">\r\n <div class=\"text\">\r\n <div class=\"icon\">\r\n <ng-container *ngIf=\"notification.type === 'INFO'\">\r\n <i class=\"fas fa-info-circle fa-lg\"></i>\r\n </ng-container>\r\n <ng-container *ngIf=\"notification.type === 'WARN'\">\r\n <i class=\"fas fa-exclamation-circle fa-lg\"></i>\r\n </ng-container>\r\n <ng-container *ngIf=\"notification.type === 'ERROR'\">\r\n <i class=\"fas fa-exclamation-circle fa-lg\"></i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <span *ngIf=\"notification.html === true\" [innerHTML]=\"notification['notification']\"></span>\r\n <span *ngIf=\"notification.html === false\">{{notification[\"notification\"]}}</span>\r\n </div>\r\n </div>\r\n <div class=\"options\">\r\n <button class=\"btn btn-primary\"\r\n (click)=\"$event.stopPropagation(); acknowledge();\"\r\n ngbTooltip=\"Keep\"\r\n placement=\"left\"\r\n style=\"margin-bottom: 5px;\">\r\n <i class=\"fas fa-check\"></i>\r\n </button>\r\n <button class=\"btn btn-primary\"\r\n (click)=\"$event.stopPropagation(); discard();\"\r\n ngbTooltip=\"Discard\"\r\n placement=\"left\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n `,\r\n animations: [\r\n trigger(\"close\",\r\n [\r\n state(\"in\", style({opacity: 1})),\r\n transition(\"* => void\", [\r\n animate(1000, style({opacity: 0}))\r\n ]),\r\n ]\r\n )\r\n ]\r\n})\r\nexport class NotificationItemComponent {\r\n\r\n @Input() popup: boolean = false;\r\n @Input() notification: Notification;\r\n\r\n constructor(private notificationService: NotificationService) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.popup) {\r\n interval(this.notificationService.popupRemoveDelay)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.notificationService.hide(this.notification);\r\n });\r\n }\r\n }\r\n\r\n acknowledge() {\r\n this.notificationService.acknowledge(this.notification);\r\n }\r\n\r\n discard() {\r\n this.notificationService.discard(this.notification);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\nimport {Notification} from \"../model/notification.entity\";\r\n\r\n@Pipe({\r\n name: \"notificationFilter\",\r\n pure: false\r\n})\r\nexport class NotificationFilterPipe implements PipeTransform {\r\n\r\n transform(list: Notification[], status: string, hasStatus?: boolean): Notification[] {\r\n return list.filter((o: Notification) => {\r\n if (status === \"All\") {\r\n return list;\r\n }\r\n if (hasStatus !== undefined) {\r\n if (hasStatus) {\r\n return o.status === status;\r\n } else {\r\n return o.status !== status;\r\n }\r\n } else {\r\n return o.status === status;\r\n }\r\n });\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport {animate, query, stagger, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport {NotificationService} from \"../notification.service\";\r\nimport {Notification} from \"../model/notification.entity\";\r\n\r\n@Component({\r\n selector: \"hci-notification-popup\",\r\n template: `\r\n <div class=\"notification-popup\" (click)=\"$event.stopPropagation()\">\r\n <ng-container *ngFor=\"let notification of notifications | notificationFilter:'NEW'\">\r\n <hci-notification-item [notification]=\"notification\" [popup]=\"true\"></hci-notification-item>\r\n </ng-container>\r\n </div>\r\n `,\r\n animations: [\r\n trigger(\"notificationInOut\", [\r\n transition(\"* => *\", [\r\n query(\".notification-popup-item:enter\", [\r\n animate(1000, style({ opacity: 1 }))\r\n ], {optional: true}),\r\n query(\".notification-popup-item:leave\", [\r\n animate(1000, style({ opacity: 0 }))\r\n ], {optional: true})\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class NotificationPopupComponent implements OnInit, OnDestroy {\r\n\r\n notifications: Notification[] = [];\r\n\r\n notificationsSubscription: Subscription;\r\n\r\n constructor(private notificationService: NotificationService) {}\r\n\r\n ngOnInit(): void {\r\n this.notificationsSubscription = this.notificationService.getNotificationsSubject().subscribe((notifications: Notification[]) => {\r\n this.notifications = notifications;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.notificationsSubscription.unsubscribe();\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, Renderer2,\r\n OnInit, OnDestroy\r\n} from \"@angular/core\";\r\n\r\nimport { Subject, Subscription } from \"rxjs\";\r\n\r\nimport {NavComponent, NavigationService} from \"@huntsman-cancer-institute/navigation\";\r\n\r\nimport {NotificationService} from \"../notification.service\";\r\nimport {Notification} from \"../model/notification.entity\";\r\n\r\n@Component({\r\n selector: \"hci-notification-dropdown\",\r\n template: `\r\n <li [id]=\"id + '-li'\" class=\"hci-li-dd-li {{liClass}}\" ngbDropdown>\r\n <a id=\"notification-dropdown\" class=\"hci-li-dd-a {{aClass}}\" ngbDropdownToggle>\r\n <i class=\"{{iClass}}\"></i>\r\n <hci-badge *ngIf=\"badgeCount\" [countSubject]=\"badgeCount\"></hci-badge>\r\n </a>\r\n <ul ngbDropdownMenu aria-labelledby=\"notification-dropdown\" class=\"hci-li-dd-ul notification-dropdown-menu {{ulClass}}\">\r\n <div class=\"d-flex\">\r\n <div class=\"btn-group\" role=\"group\" aria-label=\"View Options\" (click)=\"$event.stopPropagation()\">\r\n <button type=\"button\" class=\"btn btn-secondary\">View {{viewMode}}</button>\r\n <div class=\"btn-group\" role=\"group\" ngbDropdown #viewDropdown=\"ngbDropdown\">\r\n <button aria-label=\"viewUnRead\" id=\"view\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" aria-label=\"Select View Mode\" ngbDropdownToggle>\r\n <i class=\"fas fa-arrow-circle-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"view\" ngbDropdownMenu>\r\n <a class=\"dropdown-item\" (click)=\"viewDropdown.close(); viewMode = 'All'\">All</a>\r\n <a class=\"dropdown-item\" (click)=\"viewDropdown.close(); viewMode = 'Read'\">Read</a>\r\n <a class=\"dropdown-item\" (click)=\"viewDropdown.close(); viewMode = 'Unread'\">Unread</a>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"btn-group right\" role=\"group\" aria-label=\"Clear Options\" (click)=\"$event.stopPropagation()\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"clear()\">Clear {{clearMode}}</button>\r\n <div class=\"btn-group\" role=\"group\" ngbDropdown #clearDropdown=\"ngbDropdown\">\r\n <button aria-label=\"clearRead\" id=\"clear\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" aria-label=\"Select Clear Mode\" ngbDropdownToggle>\r\n <i class=\"fas fa-arrow-circle-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"clear\" ngbDropdownMenu>\r\n <a class=\"dropdown-item\" (click)=\"clearDropdown.close(); clearMode = 'All'; clear();\">All</a>\r\n <a class=\"dropdown-item\" (click)=\"clearDropdown.close(); clearMode = 'Read'; clear();\">Read</a>\r\n <a class=\"dropdown-item\" (click)=\"clearDropdown.close(); clearMode = 'Unread'; clear();\">Unread</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"notification-item-container\">\r\n <ng-container *ngFor=\"let notification of notifications | notificationFilter:viewMode\">\r\n <hci-notification-item [notification]=\"notification\"></hci-notification-item>\r\n </ng-container>\r\n <ng-container *ngIf=\"(notifications | notificationFilter:viewMode).length === 0\">\r\n <div class=\"empty\">\r\n (No matching notifications)\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ul>\r\n </li>\r\n `,\r\n host: {class: \"hci-notification-dropdown\"}\r\n})\r\nexport class NotificationDropdown extends NavComponent implements OnInit, OnDestroy {\r\n\r\n public liClass: string = null;\r\n public aClass: string = \"nav-link\";\r\n public iClass: string = null;\r\n public ulClass: string = \"dropdown-menu\";\r\n\r\n viewMode: string = \"Unread\";\r\n clearMode: string = \"Read\";\r\n badgeCount: Subject<number> = new Subject<number>();\r\n notifications: Notification[] = [];\r\n\r\n notificationsSubscription: Subscription;\r\n\r\n constructor(elementRef: ElementRef,\r\n renderer: Renderer2,\r\n resolver: ComponentFactoryResolver,\r\n navigationService: NavigationService,\r\n changeDetectorRef: ChangeDetectorRef,\r\n private notificationService: NotificationService) {\r\n super(elementRef, renderer, resolver, navigationService, changeDetectorRef);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.notificationsSubscription = this.notificationService.getNotificationsSubject().subscribe((notifications: Notification[]) => {\r\n this.notifications = notifications;\r\n this.badgeCount.next(notifications.filter((o: Notification) => {\r\n return o.status === \"Unread\";\r\n }).length);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.notificationsSubscription.unsubscribe();\r\n }\r\n\r\n clear() {\r\n if (this.clearMode === \"All\") {\r\n this.notificationService.clearAll();\r\n } else if (this.clearMode === \"Read\") {\r\n this.notificationService.clearRead();\r\n } else if (this.clearMode === \"Unread\") {\r\n this.notificationService.clearUnread();\r\n }\r\n }\r\n\r\n setConfig(config) {\r\n this.rootClass = \"nav-item\";\r\n\r\n super.setConfig(config);\r\n }\r\n\r\n updateConfig(config) {\r\n super.updateConfig(config);\r\n\r\n if (config.liClass) {\r\n this.liClass = config.liClass;\r\n }\r\n if (config.aClass) {\r\n this.aClass = config.aClass;\r\n }\r\n if (config.iClass) {\r\n this.iClass = config.iClass;\r\n }\r\n if (config.ulClass) {\r\n this.ulClass = config.ulClass;\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport {ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nimport {NavigationModule} from \"@huntsman-cancer-institute/navigation\";\r\n\r\nimport {NotificationService, NOTIFICATION_CONFIG} from \"./notification.service\";\r\nimport {NotificationPopupComponent} from \"./components/notification-popup.component\";\r\nimport {NotificationItemComponent} from \"./components/notification-item.component\";\r\nimport {NotificationFilterPipe} from \"./util/notification-filter.pipe\";\r\nimport {NotificationDropdown} from \"./components/notification-dropdown.component\";\r\n\r\n/**\r\n *\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NavigationModule,\r\n NgbModule\r\n ],\r\n declarations: [\r\n NotificationPopupComponent,\r\n NotificationItemComponent,\r\n NotificationDropdown,\r\n NotificationFilterPipe\r\n ],\r\n exports: [\r\n NotificationPopupComponent,\r\n NotificationItemComponent\r\n ]\r\n})\r\nexport class NotificationModule {\r\n static forRoot(notificationConfig: any): ModuleWithProviders<NotificationModule> {\r\n return {\r\n providers: [\r\n NotificationService,\r\n {provide: NOTIFICATION_CONFIG, useValue: notificationConfig}\r\n ],\r\n ngModule: NotificationModule\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NotificationService","i3","i3.NotificationItemComponent","i4.NotificationFilterPipe","i2.NotificationService","i5.NotificationItemComponent","i6.NotificationFilterPipe"],"mappings":"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"}
|