@ieeesa-npm/dashboard 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +75 -3
  2. package/esm2022/ieeesa-npm-dashboard.mjs +5 -0
  3. package/esm2022/lib/assets/constants.json +141 -0
  4. package/esm2022/lib/assets/dashboard-mock.mjs +217 -0
  5. package/esm2022/lib/assets/dashboard-route-paths.mock.mjs +12 -0
  6. package/esm2022/lib/assets/dashboard-user-permissions.mock.mjs +23 -0
  7. package/esm2022/lib/assets/date-formats.mjs +28 -0
  8. package/esm2022/lib/components/event-group-card/event-group-card.component.mjs +277 -0
  9. package/esm2022/lib/components/meeting-attendance-row/meeting-attendance-row.component.mjs +181 -0
  10. package/esm2022/lib/components/member-level-badge/member-level-badge.component.mjs +79 -0
  11. package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs +163 -0
  12. package/esm2022/lib/components/welcome-header/dashboard-welcome-header.component.mjs +151 -0
  13. package/esm2022/lib/components/your-groups/your-groups.component.mjs +206 -0
  14. package/esm2022/lib/dashboard.component.mjs +377 -0
  15. package/esm2022/lib/dashboard.module.mjs +16 -0
  16. package/esm2022/lib/dashboard.routes.mjs +7 -0
  17. package/esm2022/lib/models/attendance-action-permissions.model.mjs +2 -0
  18. package/esm2022/lib/models/attendance-state.model.mjs +7 -0
  19. package/esm2022/lib/models/dashboard-list-response.model.mjs +2 -0
  20. package/esm2022/lib/models/dashboard-route-config.model.mjs +2 -0
  21. package/esm2022/lib/models/dashboard-section-state.model.mjs +9 -0
  22. package/esm2022/lib/models/dashboard-user-info.model.mjs +2 -0
  23. package/esm2022/lib/models/group-row.model.mjs +2 -0
  24. package/esm2022/lib/models/meeting-row.model.mjs +2 -0
  25. package/esm2022/lib/models/page-change.model.mjs +2 -0
  26. package/esm2022/lib/models/upcoming-event.model.mjs +2 -0
  27. package/esm2022/lib/services/attendance-reducers.mjs +54 -0
  28. package/esm2022/lib/services/dashboard.service.mjs +208 -0
  29. package/esm2022/lib/services/user-permissions.service.mjs +50 -0
  30. package/esm2022/lib/utils/attendance-action.util.mjs +53 -0
  31. package/esm2022/public-api.mjs +34 -0
  32. package/fesm2022/ieeesa-npm-dashboard.mjs +2234 -0
  33. package/fesm2022/ieeesa-npm-dashboard.mjs.map +1 -0
  34. package/index.d.ts +5 -0
  35. package/lib/assets/dashboard-mock.d.ts +31 -0
  36. package/lib/assets/dashboard-route-paths.mock.d.ts +2 -0
  37. package/lib/assets/dashboard-user-permissions.mock.d.ts +2 -0
  38. package/lib/assets/date-formats.d.ts +27 -0
  39. package/lib/components/event-group-card/event-group-card.component.d.ts +300 -0
  40. package/lib/components/meeting-attendance-row/meeting-attendance-row.component.d.ts +239 -0
  41. package/lib/components/member-level-badge/member-level-badge.component.d.ts +161 -0
  42. package/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.d.ts +238 -0
  43. package/lib/components/welcome-header/dashboard-welcome-header.component.d.ts +98 -0
  44. package/lib/components/your-groups/your-groups.component.d.ts +110 -0
  45. package/lib/dashboard.component.d.ts +376 -0
  46. package/lib/dashboard.module.d.ts +7 -0
  47. package/lib/dashboard.routes.d.ts +2 -0
  48. package/lib/models/attendance-action-permissions.model.d.ts +4 -0
  49. package/lib/models/attendance-state.model.d.ts +4 -0
  50. package/lib/models/dashboard-list-response.model.d.ts +5 -0
  51. package/lib/models/dashboard-route-config.model.d.ts +7 -0
  52. package/lib/models/dashboard-section-state.model.d.ts +6 -0
  53. package/lib/models/dashboard-user-info.model.d.ts +5 -0
  54. package/lib/models/group-row.model.d.ts +8 -0
  55. package/lib/models/meeting-row.model.d.ts +12 -0
  56. package/lib/models/page-change.model.d.ts +4 -0
  57. package/lib/models/upcoming-event.model.d.ts +13 -0
  58. package/lib/services/attendance-reducers.d.ts +43 -0
  59. package/lib/services/dashboard.service.d.ts +119 -0
  60. package/lib/services/user-permissions.service.d.ts +31 -0
  61. package/lib/utils/attendance-action.util.d.ts +38 -0
  62. package/package.json +30 -3
  63. package/public-api.d.ts +24 -0
@@ -0,0 +1,377 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
3
+ import { Subject, takeUntil } from 'rxjs';
4
+ import { AlertType } from '@ieeesa-npm/models';
5
+ import { AlertsService } from '@ieeesa-npm/utility';
6
+ import { DashboardSectionState } from './models/dashboard-section-state.model';
7
+ import { UpcomingMeetingsEventsComponent } from './components/upcoming-meetings-events/upcoming-meetings-events.component';
8
+ import * as constants from './assets/constants.json';
9
+ import { DashboardJumpTarget, DashboardWelcomeHeaderComponent, } from './components/welcome-header/dashboard-welcome-header.component';
10
+ import { YourGroupsComponent } from './components/your-groups/your-groups.component';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "./services/dashboard.service";
13
+ import * as i2 from "./services/user-permissions.service";
14
+ import * as i3 from "@ieeesa-npm/presentation";
15
+ import * as i4 from "@ieeesa-npm/utility";
16
+ import * as i5 from "@angular/common";
17
+ /**
18
+ * Dashboard (`ieeesa-dashboard`) is the root container and single host entry
19
+ * point for the "NESC Revision Cycle" dashboard landing page. It owns the
20
+ * host-supplied configuration (`routePaths`, `apiBaseURL`, `userInfo`,
21
+ * `userPermissions`), composes the four regions — welcome header, upcoming
22
+ * meetings & events, your groups, and footer — and orchestrates data loading
23
+ * and attendance actions through the {@link DashboardService}.
24
+ *
25
+ * The component is composition-first and host-agnostic: it subscribes to the
26
+ * service observables (`upcomingEvents$`, `groups$`, the per-section states, the
27
+ * attendance-state map, and the in-flight set) with `takeUntil(destroy$)` and
28
+ * tracks `isMobileView` from the Presentation_Library
29
+ * {@link BreakpointObserverService} (Req 13.1, 13.2, 13.5, 15.1, 15.2). Child
30
+ * navigation `@Output()`s are composed into a single {@link dashboardNavigate}
31
+ * stream of `{ path, id }` intents resolved from `routePaths` (falling back to
32
+ * the default route configuration in `constants.json` when `routePaths` is
33
+ * omitted) (Req 5.2, 6.4, 7.4, 8.2, 8.7, 11.1, 11.5). Attendance `@Output()`s
34
+ * are delegated to the service, and on failure the attendance-action error
35
+ * message from `constants.json` is surfaced via the shared {@link AlertsService}
36
+ * (Req 7.7, 7.8, 13.7). Per-row {@link AttendanceActionPermissions} are computed
37
+ * from `userPermissions` and passed down to the rows (Req 12.3).
38
+ * @export
39
+ * @class DashboardComponent
40
+ */
41
+ export class DashboardComponent {
42
+ /**
43
+ * Total number of meetings across the loaded upcoming events, shown in the
44
+ * welcome header's "Upcoming Meetings & Events" shortcut badge.
45
+ * @readonly
46
+ * @memberof DashboardComponent
47
+ */
48
+ get meetingsCount() {
49
+ return this.upcomingEvents.reduce((total, event) => total + (event?.meetingCount ?? 0), 0);
50
+ }
51
+ /**
52
+ * Number of loaded groups, shown in the welcome header's "Your Groups"
53
+ * shortcut badge.
54
+ * @readonly
55
+ * @memberof DashboardComponent
56
+ */
57
+ get groupsCount() {
58
+ return this.groups.length;
59
+ }
60
+ constructor(
61
+ // eslint-disable-next-line no-unused-vars
62
+ dashboardService,
63
+ // eslint-disable-next-line no-unused-vars
64
+ userPermissionsService,
65
+ // eslint-disable-next-line no-unused-vars
66
+ breakpointObserverService,
67
+ // eslint-disable-next-line no-unused-vars
68
+ alertService // eslint-disable-next-line no-empty-function
69
+ ) {
70
+ this.dashboardService = dashboardService;
71
+ this.userPermissionsService = userPermissionsService;
72
+ this.breakpointObserverService = breakpointObserverService;
73
+ this.alertService = alertService;
74
+ /** User-facing strings and the default route config sourced from `constants.json`. */
75
+ this.constants = constants;
76
+ /** Emits a resolved navigation intent for the host to act on (Req 5.2, 6.4, 7.4, 8.2, 8.7, 11.1). */
77
+ this.dashboardNavigate = new EventEmitter();
78
+ /** The user's upcoming events, bound to the upcoming section (Req 13.1, 13.2). */
79
+ this.upcomingEvents = [];
80
+ /** The user's groups, bound to the groups section (Req 13.1, 13.2). */
81
+ this.groups = [];
82
+ /** The upcoming-events section's load/empty/error state (Req 13.1, 13.2, 13.5). */
83
+ this.upcomingState = DashboardSectionState.LOADING;
84
+ /** The groups section's load/empty/error state (Req 13.1, 13.2, 13.5). */
85
+ this.groupsState = DashboardSectionState.LOADING;
86
+ /** The per-meeting attendance-state map passed down to the rows. */
87
+ this.attendanceStates = {};
88
+ /** The set of meeting ids with an attendance action awaiting resolution. */
89
+ this.inFlightMeetingIds = new Set();
90
+ /** The per-row attendance-action permissions derived from `userPermissions` (Req 12.3). */
91
+ this.attendancePermissions = {
92
+ canLogAttendance: false,
93
+ canLeaveMeeting: false,
94
+ };
95
+ /** Whether the viewport is at/below the mobile breakpoint (Req 15.1, 15.2). */
96
+ this.isMobileView = false;
97
+ /** The current zero-based page index of the groups table. */
98
+ this.groupsPageIndex = 0;
99
+ /** The current page size of the groups table. */
100
+ this.groupsPageSize = 10;
101
+ /** Completes on destroy to tear down all subscriptions (Req 2.4, 2.5). */
102
+ this.destroy$ = new Subject();
103
+ }
104
+ /**
105
+ * Initializes the dashboard: forwards the host config to the service, derives
106
+ * the per-row attendance permissions, kicks off the upcoming-events and groups
107
+ * loads, and wires up subscriptions to the service state observables and the
108
+ * breakpoint observer — all cleaned up via `takeUntil(destroy$)` (Req 11.2,
109
+ * 11.4, 12.3, 13.1, 13.2, 13.5, 15.1, 15.2).
110
+ * @return {void}
111
+ * @memberof DashboardComponent
112
+ */
113
+ ngOnInit() {
114
+ this.dashboardService.setAppConfig(this.apiBaseURL, this.userPermissions);
115
+ this.attendancePermissions =
116
+ this.userPermissionsService.mapToAttendanceActionPermissions(this.userPermissions);
117
+ this.subscribeToServiceState();
118
+ this.subscribeToBreakpoint();
119
+ this.loadUpcomingEvents();
120
+ this.loadGroups();
121
+ }
122
+ /**
123
+ * Tears down all subscriptions on destroy (Req 2.4, 2.5).
124
+ * @return {void}
125
+ * @memberof DashboardComponent
126
+ */
127
+ ngOnDestroy() {
128
+ this.destroy$.next(true);
129
+ this.destroy$.complete();
130
+ }
131
+ /**
132
+ * Handles the welcome-header "Jump to" date selection. The dashboard currently
133
+ * has no date-scoped data load, so the selection is accepted without side
134
+ * effects; the hook keeps the header's contract satisfied for future filtering.
135
+ * @return {void}
136
+ * @memberof DashboardComponent
137
+ */
138
+ onJumpToDateSelected() {
139
+ // No date-scoped reload yet; retained for future date filtering (Req 4.4).
140
+ }
141
+ /**
142
+ * Handles a welcome-header "Jump to" shortcut, emitting the navigation intent
143
+ * for the matching section so the host app routes to it: MEETINGS →
144
+ * `viewAllEvents` (/events-and-meetings/view-events-meetings-list), GROUPS →
145
+ * `viewAllGroups` (/groups).
146
+ * @param {DashboardJumpTarget} target - The selected shortcut target.
147
+ * @return {void}
148
+ * @memberof DashboardComponent
149
+ */
150
+ onJumpToShortcut(target) {
151
+ const path = target === DashboardJumpTarget.MEETINGS
152
+ ? this.activeRouteConfig.viewAllEvents
153
+ : this.activeRouteConfig.viewAllGroups;
154
+ this.emitNavigation(path);
155
+ }
156
+ /**
157
+ * Emits the "View All" upcoming-events navigation intent, targeting the
158
+ * `viewAllEvents` route with no id (Req 5.2, 11.1).
159
+ * @return {void}
160
+ * @memberof DashboardComponent
161
+ */
162
+ onViewAllEvents() {
163
+ this.emitNavigation(this.activeRouteConfig.viewAllEvents);
164
+ }
165
+ /**
166
+ * Emits the "View Event" navigation intent, targeting the `eventDetail` route
167
+ * with the event id (Req 6.4, 11.1).
168
+ * @param {string} eventId - The id of the event to view.
169
+ * @return {void}
170
+ * @memberof DashboardComponent
171
+ */
172
+ onViewEvent(eventId) {
173
+ this.emitNavigation(this.activeRouteConfig.eventDetail, eventId);
174
+ }
175
+ /**
176
+ * Emits the open-meeting navigation intent, targeting the `meetingDetail`
177
+ * route with the meeting id (Req 7.4, 11.1).
178
+ * @param {string} meetingId - The id of the meeting to open.
179
+ * @return {void}
180
+ * @memberof DashboardComponent
181
+ */
182
+ onOpenMeeting(meetingId) {
183
+ this.emitNavigation(this.activeRouteConfig.meetingDetail, meetingId);
184
+ }
185
+ /**
186
+ * Emits the "View All" groups navigation intent, targeting the
187
+ * `viewAllGroups` route with no id (Req 8.2, 11.1).
188
+ * @return {void}
189
+ * @memberof DashboardComponent
190
+ */
191
+ onViewAllGroups() {
192
+ this.emitNavigation(this.activeRouteConfig.viewAllGroups);
193
+ }
194
+ /**
195
+ * Emits the group-detail navigation intent, targeting the `groupDetail` route
196
+ * with the group id (Req 8.7, 11.1).
197
+ * @param {string} groupId - The id of the selected group.
198
+ * @return {void}
199
+ * @memberof DashboardComponent
200
+ */
201
+ onGroupSelected(groupId) {
202
+ this.emitNavigation(this.activeRouteConfig.groupDetail, groupId);
203
+ }
204
+ /**
205
+ * Updates the groups table paging state in response to a paginator change so
206
+ * the groups section reflects the requested page (Req 8.10).
207
+ * @param {PageChange} page - The requested page index and size.
208
+ * @return {void}
209
+ * @memberof DashboardComponent
210
+ */
211
+ onGroupsPageChange(page) {
212
+ this.groupsPageIndex = page.pageIndex;
213
+ this.groupsPageSize = page.pageSize;
214
+ }
215
+ /**
216
+ * Delegates a log-attendance request to the service, surfacing the
217
+ * attendance-action error message via the shared {@link AlertsService} on
218
+ * failure while the service retains the prior displayed state (Req 7.7, 13.7).
219
+ * @param {string} meetingId - The meeting to log attendance for.
220
+ * @return {void}
221
+ * @memberof DashboardComponent
222
+ */
223
+ onLogAttendance(meetingId) {
224
+ this.dashboardService
225
+ .logAttendance(meetingId)
226
+ .pipe(takeUntil(this.destroy$))
227
+ .subscribe({
228
+ error: () => this.showAttendanceError(),
229
+ });
230
+ }
231
+ /**
232
+ * Delegates a leave-meeting request to the service, surfacing the
233
+ * attendance-action error message via the shared {@link AlertsService} on
234
+ * failure while the service retains the prior displayed state (Req 7.8, 13.7).
235
+ * @param {string} meetingId - The meeting to leave.
236
+ * @return {void}
237
+ * @memberof DashboardComponent
238
+ */
239
+ onLeaveMeeting(meetingId) {
240
+ this.dashboardService
241
+ .leaveMeeting(meetingId)
242
+ .pipe(takeUntil(this.destroy$))
243
+ .subscribe({
244
+ error: () => this.showAttendanceError(),
245
+ });
246
+ }
247
+ /**
248
+ * The route configuration in effect: the host-supplied `routePaths` when
249
+ * provided, otherwise the default route config from `constants.json` so
250
+ * navigation intents always carry valid targets (Req 11.1, 11.5).
251
+ * @return {DashboardRouteConfig} The active route configuration.
252
+ * @memberof DashboardComponent
253
+ */
254
+ get activeRouteConfig() {
255
+ return this.routePaths ?? this.constants.defaultRouteConfig;
256
+ }
257
+ /**
258
+ * Subscribes to the service's state observables, mirroring each into a local
259
+ * field for the template to bind. All subscriptions are torn down via
260
+ * `takeUntil(destroy$)` (Req 13.1, 13.2, 13.5).
261
+ * @return {void}
262
+ * @memberof DashboardComponent
263
+ */
264
+ subscribeToServiceState() {
265
+ this.dashboardService.upcomingEvents$
266
+ .pipe(takeUntil(this.destroy$))
267
+ .subscribe((events) => (this.upcomingEvents = events));
268
+ this.dashboardService.groups$
269
+ .pipe(takeUntil(this.destroy$))
270
+ .subscribe((groups) => {
271
+ this.groups = groups;
272
+ });
273
+ this.dashboardService.upcomingState$
274
+ .pipe(takeUntil(this.destroy$))
275
+ .subscribe((state) => (this.upcomingState = state));
276
+ this.dashboardService.groupsState$
277
+ .pipe(takeUntil(this.destroy$))
278
+ .subscribe((state) => (this.groupsState = state));
279
+ this.dashboardService.attendanceStates$
280
+ .pipe(takeUntil(this.destroy$))
281
+ .subscribe((states) => (this.attendanceStates = states));
282
+ this.dashboardService.inFlightMeetingIds$
283
+ .pipe(takeUntil(this.destroy$))
284
+ .subscribe((ids) => (this.inFlightMeetingIds = ids));
285
+ }
286
+ /**
287
+ * Subscribes to the Presentation_Library breakpoint observer to keep
288
+ * `isMobileView` in sync with the viewport (Req 15.1, 15.2).
289
+ * @return {void}
290
+ * @memberof DashboardComponent
291
+ */
292
+ subscribeToBreakpoint() {
293
+ this.breakpointObserverService
294
+ .getBreakpoint()
295
+ .pipe(takeUntil(this.destroy$))
296
+ .subscribe((result) => {
297
+ this.isMobileView = result?.matches;
298
+ });
299
+ }
300
+ /**
301
+ * Triggers the upcoming-events load, setting the section to `ERROR` on failure
302
+ * so only the section error region renders (Req 13.1, 13.2, 13.5).
303
+ * @return {void}
304
+ * @memberof DashboardComponent
305
+ */
306
+ loadUpcomingEvents() {
307
+ this.dashboardService
308
+ .loadUpcomingEvents()
309
+ .pipe(takeUntil(this.destroy$))
310
+ .subscribe({
311
+ error: () => (this.upcomingState = DashboardSectionState.ERROR),
312
+ });
313
+ }
314
+ /**
315
+ * Triggers the groups load, setting the section to `ERROR` on failure so only
316
+ * the section error region renders. Isolated from the upcoming-events load so
317
+ * one failing does not affect the other (Req 13.1, 13.2, 13.5).
318
+ * @return {void}
319
+ * @memberof DashboardComponent
320
+ */
321
+ loadGroups() {
322
+ this.dashboardService
323
+ .loadGroups()
324
+ .pipe(takeUntil(this.destroy$))
325
+ .subscribe({
326
+ error: () => (this.groupsState = DashboardSectionState.ERROR),
327
+ });
328
+ }
329
+ /**
330
+ * Composes and emits a {@link DashboardNavigationIntent} for the host from the
331
+ * resolved target path and an optional triggering id (Req 11.1).
332
+ * @param {string} path - The resolved target route path.
333
+ * @param {string} [id] - The triggering identifier, when applicable.
334
+ * @return {void}
335
+ * @memberof DashboardComponent
336
+ */
337
+ emitNavigation(path, id) {
338
+ this.dashboardNavigate.emit(id ? { path, id } : { path });
339
+ }
340
+ /**
341
+ * Surfaces the attendance-action error message from `constants.json` via the
342
+ * shared {@link AlertsService} (Req 13.7).
343
+ * @return {void}
344
+ * @memberof DashboardComponent
345
+ */
346
+ showAttendanceError() {
347
+ this.alertService?.showMessage({
348
+ status: 'custom',
349
+ message: this.constants?.attendance?.errorMessage ??
350
+ 'Unable to update your attendance. Please try again.',
351
+ alertType: AlertType.ERROR,
352
+ isCloseNeeded: true,
353
+ });
354
+ }
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.DashboardService }, { token: i2.UserPermissionsService }, { token: i3.BreakpointObserverService }, { token: i4.AlertsService }], target: i0.ɵɵFactoryTarget.Component }); }
356
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardComponent, isStandalone: true, selector: "ieeesa-dashboard", inputs: { routePaths: "routePaths", apiBaseURL: "apiBaseURL", userInfo: "userInfo", userPermissions: "userPermissions" }, outputs: { dashboardNavigate: "dashboardNavigate" }, providers: [AlertsService], ngImport: i0, template: "<div\r\n class=\"ieeesa-dashboard\"\r\n [ngClass]=\"{ 'ieeesa-dashboard--mobile': isMobileView }\"\r\n>\r\n <ieeesa-dashboard-welcome-header\r\n [userName]=\"userInfo?.name ?? ''\"\r\n [meetingsCount]=\"meetingsCount\"\r\n [groupsCount]=\"groupsCount\"\r\n (shortcutSelected)=\"onJumpToShortcut($event)\"\r\n ></ieeesa-dashboard-welcome-header>\r\n\r\n <main class=\"ieeesa-dashboard__content\">\r\n <ieeesa-upcoming-meetings-events\r\n class=\"ieeesa-dashboard__upcoming\"\r\n [events]=\"upcomingEvents\"\r\n [sectionState]=\"upcomingState\"\r\n [permissions]=\"attendancePermissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewAll)=\"onViewAllEvents()\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n ></ieeesa-upcoming-meetings-events>\r\n\r\n <ieeesa-your-groups\r\n [groups]=\"groups | slice: (groupsPageIndex * groupsPageSize) : ((groupsPageIndex + 1) * groupsPageSize)\"\r\n [sectionState]=\"groupsState\"\r\n [totalGroups]=\"groups.length\"\r\n [pageIndex]=\"groupsPageIndex\"\r\n [pageSize]=\"groupsPageSize\"\r\n (groupSelected)=\"onGroupSelected($event)\"\r\n (viewAllGroups)=\"onViewAllGroups()\"\r\n (pageChange)=\"onGroupsPageChange($event)\"\r\n ></ieeesa-your-groups>\r\n </main>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-dashboard{display:flex;flex-direction:column;gap:24px;padding:16px}.ieeesa-dashboard__content{display:flex;flex-direction:column;gap:24px}.ieeesa-dashboard__welcome,.ieeesa-dashboard__upcoming,.ieeesa-dashboard__groups,.ieeesa-dashboard__footer{display:block}.ieeesa-dashboard--mobile{padding:8px;gap:16px}.ieeesa-dashboard--mobile .ieeesa-dashboard__content{gap:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i5.SlicePipe, name: "slice" }, { kind: "component", type: UpcomingMeetingsEventsComponent, selector: "ieeesa-upcoming-meetings-events", inputs: ["events", "sectionState", "permissions", "attendanceStates", "inFlightMeetingIds", "isMobileView"], outputs: ["viewAll", "viewEvent", "openMeeting", "logAttendance", "leaveMeeting", "meetingPageChange"] }, { kind: "component", type: YourGroupsComponent, selector: "ieeesa-your-groups", inputs: ["groups", "sectionState", "totalGroups", "pageIndex", "pageSize"], outputs: ["groupSelected", "viewAllGroups", "pageChange"] }, { kind: "component", type: DashboardWelcomeHeaderComponent, selector: "ieeesa-dashboard-welcome-header", inputs: ["userName", "meetingsCount", "groupsCount"], outputs: ["shortcutSelected"] }], encapsulation: i0.ViewEncapsulation.None }); }
357
+ }
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
359
+ type: Component,
360
+ args: [{ selector: 'ieeesa-dashboard', standalone: true, imports: [
361
+ CommonModule,
362
+ UpcomingMeetingsEventsComponent,
363
+ YourGroupsComponent,
364
+ DashboardWelcomeHeaderComponent
365
+ ], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<div\r\n class=\"ieeesa-dashboard\"\r\n [ngClass]=\"{ 'ieeesa-dashboard--mobile': isMobileView }\"\r\n>\r\n <ieeesa-dashboard-welcome-header\r\n [userName]=\"userInfo?.name ?? ''\"\r\n [meetingsCount]=\"meetingsCount\"\r\n [groupsCount]=\"groupsCount\"\r\n (shortcutSelected)=\"onJumpToShortcut($event)\"\r\n ></ieeesa-dashboard-welcome-header>\r\n\r\n <main class=\"ieeesa-dashboard__content\">\r\n <ieeesa-upcoming-meetings-events\r\n class=\"ieeesa-dashboard__upcoming\"\r\n [events]=\"upcomingEvents\"\r\n [sectionState]=\"upcomingState\"\r\n [permissions]=\"attendancePermissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewAll)=\"onViewAllEvents()\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n ></ieeesa-upcoming-meetings-events>\r\n\r\n <ieeesa-your-groups\r\n [groups]=\"groups | slice: (groupsPageIndex * groupsPageSize) : ((groupsPageIndex + 1) * groupsPageSize)\"\r\n [sectionState]=\"groupsState\"\r\n [totalGroups]=\"groups.length\"\r\n [pageIndex]=\"groupsPageIndex\"\r\n [pageSize]=\"groupsPageSize\"\r\n (groupSelected)=\"onGroupSelected($event)\"\r\n (viewAllGroups)=\"onViewAllGroups()\"\r\n (pageChange)=\"onGroupsPageChange($event)\"\r\n ></ieeesa-your-groups>\r\n </main>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-dashboard{display:flex;flex-direction:column;gap:24px;padding:16px}.ieeesa-dashboard__content{display:flex;flex-direction:column;gap:24px}.ieeesa-dashboard__welcome,.ieeesa-dashboard__upcoming,.ieeesa-dashboard__groups,.ieeesa-dashboard__footer{display:block}.ieeesa-dashboard--mobile{padding:8px;gap:16px}.ieeesa-dashboard--mobile .ieeesa-dashboard__content{gap:16px}\n"] }]
366
+ }], ctorParameters: function () { return [{ type: i1.DashboardService }, { type: i2.UserPermissionsService }, { type: i3.BreakpointObserverService }, { type: i4.AlertsService }]; }, propDecorators: { routePaths: [{
367
+ type: Input
368
+ }], apiBaseURL: [{
369
+ type: Input
370
+ }], userInfo: [{
371
+ type: Input
372
+ }], userPermissions: [{
373
+ type: Input
374
+ }], dashboardNavigate: [{
375
+ type: Output
376
+ }] } });
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxTQUFTLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXBELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTy9FLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQzNILE9BQU8sS0FBSyxTQUFTLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiwrQkFBK0IsR0FDaEMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQWVyRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFnQkgsTUFBTSxPQUFPLGtCQUFrQjtJQThDN0I7Ozs7O09BS0c7SUFDSCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUMvQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FB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O3dCQUNaLCtCQUErQjt3QkFDL0IsbUJBQW1CO3dCQUNuQiwrQkFBK0I7cUJBQ2hDLGlCQUdjLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxhQUFhLENBQUM7Z05BT2pCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0ksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSwgVXNlclBlcm1pc3Npb24gfSBmcm9tICdAaWVlZXNhLW5wbS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBbGVydHNTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9ucyB9IGZyb20gJy4vbW9kZWxzL2F0dGVuZGFuY2UtYWN0aW9uLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgQXR0ZW5kYW5jZVN0YXRlIH0gZnJvbSAnLi9tb2RlbHMvYXR0ZW5kYW5jZS1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IERhc2hib2FyZFJvdXRlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvZGFzaGJvYXJkLXJvdXRlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IERhc2hib2FyZFNlY3Rpb25TdGF0ZSB9IGZyb20gJy4vbW9kZWxzL2Rhc2hib2FyZC1zZWN0aW9uLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgRGFzaGJvYXJkVXNlckluZm8gfSBmcm9tICcuL21vZGVscy9kYXNoYm9hcmQtdXNlci1pbmZvLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBSb3cgfSBmcm9tICcuL21vZGVscy9ncm91cC1yb3cubW9kZWwnO1xyXG5pbXBvcnQgeyBQYWdlQ2hhbmdlIH0gZnJvbSAnLi9tb2RlbHMvcGFnZS1jaGFuZ2UubW9kZWwnO1xyXG5pbXBvcnQgeyBVcGNvbWluZ0V2ZW50IH0gZnJvbSAnLi9tb2RlbHMvdXBjb21pbmctZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kYXNoYm9hcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXItcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBjb21pbmctbWVldGluZ3MtZXZlbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQge1xyXG4gIERhc2hib2FyZEp1bXBUYXJnZXQsXHJcbiAgRGFzaGJvYXJkV2VsY29tZUhlYWRlckNvbXBvbmVudCxcclxufSBmcm9tICcuL2NvbXBvbmVudHMvd2VsY29tZS1oZWFkZXIvZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFlvdXJHcm91cHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMveW91ci1ncm91cHMveW91ci1ncm91cHMuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBBIG5hdmlnYXRpb24gaW50ZW50IGVtaXR0ZWQgYnkge0BsaW5rIERhc2hib2FyZENvbXBvbmVudH0gZm9yIHRoZSBob3N0XHJcbiAqIGFwcGxpY2F0aW9uIHRvIGFjdCBvbi4gVGhlIGxpYnJhcnkgbmV2ZXIgcGVyZm9ybXMgbmF2aWdhdGlvbiBpdHNlbGY7IGl0IGVtaXRzXHJcbiAqIHRoZSByZXNvbHZlZCB0YXJnZXQgYHBhdGhgIChmcm9tIHRoZSB7QGxpbmsgRGFzaGJvYXJkUm91dGVDb25maWd9KSB0b2dldGhlclxyXG4gKiB3aXRoIHRoZSB0cmlnZ2VyaW5nIGlkZW50aWZpZXIgc28gdGhlIGhvc3QgY2FuIHJvdXRlIGFjY29yZGluZ2x5IChSZXEgMTEuMSkuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZE5hdmlnYXRpb25JbnRlbnQge1xyXG4gIC8qKiBUaGUgcmVzb2x2ZWQgdGFyZ2V0IHJvdXRlIHBhdGggZnJvbSB0aGUgYWN0aXZlIHtAbGluayBEYXNoYm9hcmRSb3V0ZUNvbmZpZ30uICovXHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIC8qKiBUaGUgaWRlbnRpZmllciB0aGF0IHRyaWdnZXJlZCB0aGUgbmF2aWdhdGlvbiAoZXZlbnQvbWVldGluZy9ncm91cCBpZCksIHdoZW4gYXBwbGljYWJsZS4gKi9cclxuICBpZD86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIERhc2hib2FyZCAoYGllZWVzYS1kYXNoYm9hcmRgKSBpcyB0aGUgcm9vdCBjb250YWluZXIgYW5kIHNpbmdsZSBob3N0IGVudHJ5XHJcbiAqIHBvaW50IGZvciB0aGUgXCJORVNDIFJldmlzaW9uIEN5Y2xlXCIgZGFzaGJvYXJkIGxhbmRpbmcgcGFnZS4gSXQgb3ducyB0aGVcclxuICogaG9zdC1zdXBwbGllZCBjb25maWd1cmF0aW9uIChgcm91dGVQYXRoc2AsIGBhcGlCYXNlVVJMYCwgYHVzZXJJbmZvYCxcclxuICogYHVzZXJQZXJtaXNzaW9uc2ApLCBjb21wb3NlcyB0aGUgZm91ciByZWdpb25zIOKAlCB3ZWxjb21lIGhlYWRlciwgdXBjb21pbmdcclxuICogbWVldGluZ3MgJiBldmVudHMsIHlvdXIgZ3JvdXBzLCBhbmQgZm9vdGVyIOKAlCBhbmQgb3JjaGVzdHJhdGVzIGRhdGEgbG9hZGluZ1xyXG4gKiBhbmQgYXR0ZW5kYW5jZSBhY3Rpb25zIHRocm91Z2ggdGhlIHtAbGluayBEYXNoYm9hcmRTZXJ2aWNlfS5cclxuICpcclxuICogVGhlIGNvbXBvbmVudCBpcyBjb21wb3NpdGlvbi1maXJzdCBhbmQgaG9zdC1hZ25vc3RpYzogaXQgc3Vic2NyaWJlcyB0byB0aGVcclxuICogc2VydmljZSBvYnNlcnZhYmxlcyAoYHVwY29taW5nRXZlbnRzJGAsIGBncm91cHMkYCwgdGhlIHBlci1zZWN0aW9uIHN0YXRlcywgdGhlXHJcbiAqIGF0dGVuZGFuY2Utc3RhdGUgbWFwLCBhbmQgdGhlIGluLWZsaWdodCBzZXQpIHdpdGggYHRha2VVbnRpbChkZXN0cm95JClgIGFuZFxyXG4gKiB0cmFja3MgYGlzTW9iaWxlVmlld2AgZnJvbSB0aGUgUHJlc2VudGF0aW9uX0xpYnJhcnlcclxuICoge0BsaW5rIEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2V9IChSZXEgMTMuMSwgMTMuMiwgMTMuNSwgMTUuMSwgMTUuMikuIENoaWxkXHJcbiAqIG5hdmlnYXRpb24gYEBPdXRwdXQoKWBzIGFyZSBjb21wb3NlZCBpbnRvIGEgc2luZ2xlIHtAbGluayBkYXNoYm9hcmROYXZpZ2F0ZX1cclxuICogc3RyZWFtIG9mIGB7IHBhdGgsIGlkIH1gIGludGVudHMgcmVzb2x2ZWQgZnJvbSBgcm91dGVQYXRoc2AgKGZhbGxpbmcgYmFjayB0b1xyXG4gKiB0aGUgZGVmYXVsdCByb3V0ZSBjb25maWd1cmF0aW9uIGluIGBjb25zdGFudHMuanNvbmAgd2hlbiBgcm91dGVQYXRoc2AgaXNcclxuICogb21pdHRlZCkgKFJlcSA1LjIsIDYuNCwgNy40LCA4LjIsIDguNywgMTEuMSwgMTEuNSkuIEF0dGVuZGFuY2UgYEBPdXRwdXQoKWBzXHJcbiAqIGFyZSBkZWxlZ2F0ZWQgdG8gdGhlIHNlcnZpY2UsIGFuZCBvbiBmYWlsdXJlIHRoZSBhdHRlbmRhbmNlLWFjdGlvbiBlcnJvclxyXG4gKiBtZXNzYWdlIGZyb20gYGNvbnN0YW50cy5qc29uYCBpcyBzdXJmYWNlZCB2aWEgdGhlIHNoYXJlZCB7QGxpbmsgQWxlcnRzU2VydmljZX1cclxuICogKFJlcSA3LjcsIDcuOCwgMTMuNykuIFBlci1yb3cge0BsaW5rIEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9uc30gYXJlIGNvbXB1dGVkXHJcbiAqIGZyb20gYHVzZXJQZXJtaXNzaW9uc2AgYW5kIHBhc3NlZCBkb3duIHRvIHRoZSByb3dzIChSZXEgMTIuMykuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIERhc2hib2FyZENvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1kYXNoYm9hcmQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudCxcclxuICAgIFlvdXJHcm91cHNDb21wb25lbnQsXHJcbiAgICBEYXNoYm9hcmRXZWxjb21lSGVhZGVyQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW0FsZXJ0c1NlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8qKiBVc2VyLWZhY2luZyBzdHJpbmdzIGFuZCB0aGUgZGVmYXVsdCByb3V0ZSBjb25maWcgc291cmNlZCBmcm9tIGBjb25zdGFudHMuanNvbmAuICovXHJcbiAgY29uc3RhbnRzID0gY29uc3RhbnRzO1xyXG5cclxuICAvKiogSG9zdCBuYXZpZ2F0aW9uIHBhdGhzOyBmYWxscyBiYWNrIHRvIHRoZSBgY29uc3RhbnRzLmpzb25gIGRlZmF1bHQgd2hlbiBvbWl0dGVkIChSZXEgMTEuMSwgMTEuNSkuICovXHJcbiAgQElucHV0KCkgcm91dGVQYXRocz86IERhc2hib2FyZFJvdXRlQ29uZmlnO1xyXG5cclxuICAvKiogVGhlIGhvc3QgYXBwbGljYXRpb24ncyBBUEkgYmFzZSBVUkwsIGZvcndhcmRlZCB0byB0aGUgc2VydmljZSAoUmVxIDExLjIpLiAqL1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwhOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUaGUgc2lnbmVkLWluIHVzZXIncyBpbmZvIHVzZWQgYnkgdGhlIHdlbGNvbWUgaGVhZGVyIGdyZWV0aW5nIChSZXEgMTEuMywgNC4xKS4gKi9cclxuICBASW5wdXQoKSB1c2VySW5mbyE6IERhc2hib2FyZFVzZXJJbmZvO1xyXG5cclxuICAvKiogVGhlIHNpZ25lZC1pbiB1c2VyJ3MgcGVybWlzc2lvbnMgdXNlZCB0byBnYXRlIGF0dGVuZGFuY2UgYWN0aW9ucyAoUmVxIDExLjQsIDEyLjMpLiAqL1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcblxyXG4gIC8qKiBFbWl0cyBhIHJlc29sdmVkIG5hdmlnYXRpb24gaW50ZW50IGZvciB0aGUgaG9zdCB0byBhY3Qgb24gKFJlcSA1LjIsIDYuNCwgNy40LCA4LjIsIDguNywgMTEuMSkuICovXHJcbiAgQE91dHB1dCgpIGRhc2hib2FyZE5hdmlnYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmROYXZpZ2F0aW9uSW50ZW50PigpO1xyXG5cclxuICAvKiogVGhlIHVzZXIncyB1cGNvbWluZyBldmVudHMsIGJvdW5kIHRvIHRoZSB1cGNvbWluZyBzZWN0aW9uIChSZXEgMTMuMSwgMTMuMikuICovXHJcbiAgdXBjb21pbmdFdmVudHM6IFVwY29taW5nRXZlbnRbXSA9IFtdO1xyXG5cclxuICAvKiogVGhlIHVzZXIncyBncm91cHMsIGJvdW5kIHRvIHRoZSBncm91cHMgc2VjdGlvbiAoUmVxIDEzLjEsIDEzLjIpLiAqL1xyXG4gIGdyb3VwczogR3JvdXBSb3dbXSA9IFtdO1xyXG5cclxuICAvKiogVGhlIHVwY29taW5nLWV2ZW50cyBzZWN0aW9uJ3MgbG9hZC9lbXB0eS9lcnJvciBzdGF0ZSAoUmVxIDEzLjEsIDEzLjIsIDEzLjUpLiAqL1xyXG4gIHVwY29taW5nU3RhdGU6IERhc2hib2FyZFNlY3Rpb25TdGF0ZSA9IERhc2hib2FyZFNlY3Rpb25TdGF0ZS5MT0FESU5HO1xyXG5cclxuICAvKiogVGhlIGdyb3VwcyBzZWN0aW9uJ3MgbG9hZC9lbXB0eS9lcnJvciBzdGF0ZSAoUmVxIDEzLjEsIDEzLjIsIDEzLjUpLiAqL1xyXG4gIGdyb3Vwc1N0YXRlOiBEYXNoYm9hcmRTZWN0aW9uU3RhdGUgPSBEYXNoYm9hcmRTZWN0aW9uU3RhdGUuTE9BRElORztcclxuXHJcbiAgLyoqIFRoZSBwZXItbWVldGluZyBhdHRlbmRhbmNlLXN0YXRlIG1hcCBwYXNzZWQgZG93biB0byB0aGUgcm93cy4gKi9cclxuICBhdHRlbmRhbmNlU3RhdGVzOiBSZWNvcmQ8c3RyaW5nLCBBdHRlbmRhbmNlU3RhdGU+ID0ge307XHJcblxyXG4gIC8qKiBUaGUgc2V0IG9mIG1lZXRpbmcgaWRzIHdpdGggYW4gYXR0ZW5kYW5jZSBhY3Rpb24gYXdhaXRpbmcgcmVzb2x1dGlvbi4gKi9cclxuICBpbkZsaWdodE1lZXRpbmdJZHM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIFRoZSBwZXItcm93IGF0dGVuZGFuY2UtYWN0aW9uIHBlcm1pc3Npb25zIGRlcml2ZWQgZnJvbSBgdXNlclBlcm1pc3Npb25zYCAoUmVxIDEyLjMpLiAqL1xyXG4gIGF0dGVuZGFuY2VQZXJtaXNzaW9uczogQXR0ZW5kYW5jZUFjdGlvblBlcm1pc3Npb25zID0ge1xyXG4gICAgY2FuTG9nQXR0ZW5kYW5jZTogZmFsc2UsXHJcbiAgICBjYW5MZWF2ZU1lZXRpbmc6IGZhbHNlLFxyXG4gIH07XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSB2aWV3cG9ydCBpcyBhdC9iZWxvdyB0aGUgbW9iaWxlIGJyZWFrcG9pbnQgKFJlcSAxNS4xLCAxNS4yKS4gKi9cclxuICBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIGFjcm9zcyB0aGUgbG9hZGVkIHVwY29taW5nIGV2ZW50cywgc2hvd24gaW4gdGhlXHJcbiAgICogd2VsY29tZSBoZWFkZXIncyBcIlVwY29taW5nIE1lZXRpbmdzICYgRXZlbnRzXCIgc2hvcnRjdXQgYmFkZ2UuXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBtZWV0aW5nc0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy51cGNvbWluZ0V2ZW50cy5yZWR1Y2UoXHJcbiAgICAgICh0b3RhbCwgZXZlbnQpID0+IHRvdGFsICsgKGV2ZW50Py5tZWV0aW5nQ291bnQgPz8gMCksXHJcbiAgICAgIDBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgbG9hZGVkIGdyb3Vwcywgc2hvd24gaW4gdGhlIHdlbGNvbWUgaGVhZGVyJ3MgXCJZb3VyIEdyb3Vwc1wiXHJcbiAgICogc2hvcnRjdXQgYmFkZ2UuXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBncm91cHNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgY3VycmVudCB6ZXJvLWJhc2VkIHBhZ2UgaW5kZXggb2YgdGhlIGdyb3VwcyB0YWJsZS4gKi9cclxuICBncm91cHNQYWdlSW5kZXggPSAwO1xyXG5cclxuICAvKiogVGhlIGN1cnJlbnQgcGFnZSBzaXplIG9mIHRoZSBncm91cHMgdGFibGUuICovXHJcbiAgZ3JvdXBzUGFnZVNpemUgPSAxMDtcclxuXHJcbiAgLyoqIENvbXBsZXRlcyBvbiBkZXN0cm95IHRvIHRlYXIgZG93biBhbGwgc3Vic2NyaXB0aW9ucyAoUmVxIDIuNCwgMi41KS4gKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB1c2VyUGVybWlzc2lvbnNTZXJ2aWNlOiBVc2VyUGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhc2hib2FyZDogZm9yd2FyZHMgdGhlIGhvc3QgY29uZmlnIHRvIHRoZSBzZXJ2aWNlLCBkZXJpdmVzXHJcbiAgICogdGhlIHBlci1yb3cgYXR0ZW5kYW5jZSBwZXJtaXNzaW9ucywga2lja3Mgb2ZmIHRoZSB1cGNvbWluZy1ldmVudHMgYW5kIGdyb3Vwc1xyXG4gICAqIGxvYWRzLCBhbmQgd2lyZXMgdXAgc3Vic2NyaXB0aW9ucyB0byB0aGUgc2VydmljZSBzdGF0ZSBvYnNlcnZhYmxlcyBhbmQgdGhlXHJcbiAgICogYnJlYWtwb2ludCBvYnNlcnZlciDigJQgYWxsIGNsZWFuZWQgdXAgdmlhIGB0YWtlVW50aWwoZGVzdHJveSQpYCAoUmVxIDExLjIsXHJcbiAgICogMTEuNCwgMTIuMywgMTMuMSwgMTMuMiwgMTMuNSwgMTUuMSwgMTUuMikuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgRGFzaGJvYXJkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2Uuc2V0QXBwQ29uZmlnKHRoaXMuYXBpQmFzZVVSTCwgdGhpcy51c2VyUGVybWlzc2lvbnMpO1xyXG4gICAgdGhpcy5hdHRlbmRhbmNlUGVybWlzc2lvbnMgPVxyXG4gICAgICB0aGlzLnVzZXJQZXJtaXNzaW9uc1NlcnZpY2UubWFwVG9BdHRlbmRhbmNlQWN0aW9uUGVybWlzc2lvbnMoXHJcbiAgICAgICAgdGhpcy51c2VyUGVybWlzc2lvbnNcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmliZVRvU2VydmljZVN0YXRlKCk7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvQnJlYWtwb2ludCgpO1xyXG4gICAgdGhpcy5sb2FkVXBjb21pbmdFdmVudHMoKTtcclxuICAgIHRoaXMubG9hZEdyb3VwcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGVhcnMgZG93biBhbGwgc3Vic2NyaXB0aW9ucyBvbiBkZXN0cm95IChSZXEgMi40LCAyLjUpLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgd2VsY29tZS1oZWFkZXIgXCJKdW1wIHRvXCIgZGF0ZSBzZWxlY3Rpb24uIFRoZSBkYXNoYm9hcmQgY3VycmVudGx5XHJcbiAgICogaGFzIG5vIGRhdGUtc2NvcGVkIGRhdGEgbG9hZCwgc28gdGhlIHNlbGVjdGlvbiBpcyBhY2NlcHRlZCB3aXRob3V0IHNpZGVcclxuICAgKiBlZmZlY3RzOyB0aGUgaG9vayBrZWVwcyB0aGUgaGVhZGVyJ3MgY29udHJhY3Qgc2F0aXNmaWVkIGZvciBmdXR1cmUgZmlsdGVyaW5nLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uSnVtcFRvRGF0ZVNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgLy8gTm8gZGF0ZS1zY29wZWQgcmVsb2FkIHlldDsgcmV0YWluZWQgZm9yIGZ1dHVyZSBkYXRlIGZpbHRlcmluZyAoUmVxIDQuNCkuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGEgd2VsY29tZS1oZWFkZXIgXCJKdW1wIHRvXCIgc2hvcnRjdXQsIGVtaXR0aW5nIHRoZSBuYXZpZ2F0aW9uIGludGVudFxyXG4gICAqIGZvciB0aGUgbWF0Y2hpbmcgc2VjdGlvbiBzbyB0aGUgaG9zdCBhcHAgcm91dGVzIHRvIGl0OiBNRUVUSU5HUyDihpJcclxuICAgKiBgdmlld0FsbEV2ZW50c2AgKC9ldmVudHMtYW5kLW1lZXRpbmdzL3ZpZXctZXZlbnRzLW1lZXRpbmdzLWxpc3QpLCBHUk9VUFMg4oaSXHJcbiAgICogYHZpZXdBbGxHcm91cHNgICgvZ3JvdXBzKS5cclxuICAgKiBAcGFyYW0ge0Rhc2hib2FyZEp1bXBUYXJnZXR9IHRhcmdldCAtIFRoZSBzZWxlY3RlZCBzaG9ydGN1dCB0YXJnZXQuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgRGFzaGJvYXJkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25KdW1wVG9TaG9ydGN1dCh0YXJnZXQ6IERhc2hib2FyZEp1bXBUYXJnZXQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhdGggPVxyXG4gICAgICB0YXJnZXQgPT09IERhc2hib2FyZEp1bXBUYXJnZXQuTUVFVElOR1NcclxuICAgICAgICA/IHRoaXMuYWN0aXZlUm91dGVDb25maWcudmlld0FsbEV2ZW50c1xyXG4gICAgICAgIDogdGhpcy5hY3RpdmVSb3V0ZUNvbmZpZy52aWV3QWxsR3JvdXBzO1xyXG4gICAgdGhpcy5lbWl0TmF2aWdhdGlvbihwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBcIlZpZXcgQWxsXCIgdXBjb21pbmctZXZlbnRzIG5hdmlnYXRpb24gaW50ZW50LCB0YXJnZXRpbmcgdGhlXHJcbiAgICogYHZpZXdBbGxFdmVudHNgIHJvdXRlIHdpdGggbm8gaWQgKFJlcSA1LjIsIDExLjEpLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVmlld0FsbEV2ZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZW1pdE5hdmlnYXRpb24odGhpcy5hY3RpdmVSb3V0ZUNvbmZpZy52aWV3QWxsRXZlbnRzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBcIlZpZXcgRXZlbnRcIiBuYXZpZ2F0aW9uIGludGVudCwgdGFyZ2V0aW5nIHRoZSBgZXZlbnREZXRhaWxgIHJvdXRlXHJcbiAgICogd2l0aCB0aGUgZXZlbnQgaWQgKFJlcSA2LjQsIDExLjEpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudElkIC0gVGhlIGlkIG9mIHRoZSBldmVudCB0byB2aWV3LlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVmlld0V2ZW50KGV2ZW50SWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5lbWl0TmF2aWdhdGlvbih0aGlzLmFjdGl2ZVJvdXRlQ29uZmlnLmV2ZW50RGV0YWlsLCBldmVudElkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBvcGVuLW1lZXRpbmcgbmF2aWdhdGlvbiBpbnRlbnQsIHRhcmdldGluZyB0aGUgYG1lZXRpbmdEZXRhaWxgXHJcbiAgICogcm91dGUgd2l0aCB0aGUgbWVldGluZyBpZCAoUmVxIDcuNCwgMTEuMSkuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lZXRpbmdJZCAtIFRoZSBpZCBvZiB0aGUgbWVldGluZyB0byBvcGVuLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3Blbk1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZW1pdE5hdmlnYXRpb24odGhpcy5hY3RpdmVSb3V0ZUNvbmZpZy5tZWV0aW5nRGV0YWlsLCBtZWV0aW5nSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgdGhlIFwiVmlldyBBbGxcIiBncm91cHMgbmF2aWdhdGlvbiBpbnRlbnQsIHRhcmdldGluZyB0aGVcclxuICAgKiBgdmlld0FsbEdyb3Vwc2Agcm91dGUgd2l0aCBubyBpZCAoUmVxIDguMiwgMTEuMSkuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgRGFzaGJvYXJkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WaWV3QWxsR3JvdXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbWl0TmF2aWdhdGlvbih0aGlzLmFjdGl2ZVJvdXRlQ29uZmlnLnZpZXdBbGxHcm91cHMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgdGhlIGdyb3VwLWRldGFpbCBuYXZpZ2F0aW9uIGludGVudCwgdGFyZ2V0aW5nIHRoZSBgZ3JvdXBEZXRhaWxgIHJvdXRlXHJcbiAgICogd2l0aCB0aGUgZ3JvdXAgaWQgKFJlcSA4LjcsIDExLjEpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkIC0gVGhlIGlkIG9mIHRoZSBzZWxlY3RlZCBncm91cC5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEYXNoYm9hcmRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkdyb3VwU2VsZWN0ZWQoZ3JvdXBJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtaXROYXZpZ2F0aW9uKHRoaXMuYWN0aXZlUm91dGVDb25maWcuZ3JvdXBEZXRhaWwsIGdyb3VwSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgZ3JvdXBzIHRhYmxlIHBhZ2luZyBzdGF0ZSBpbiByZXNwb25zZSB0byBhIHBhZ2luYXRvciBjaGFuZ2Ugc29cclxuICAgKiB0aGUgZ3JvdXBzIHNlY3Rpb24gcmVmbGVjdHMgdGhlIHJlcXVlc3RlZCBwYWdlIChSZXEgOC4xMCkuXHJcbiAgICogQHBhcmFtIHtQYWdlQ2hhbmdlfSBwYWdlIC0gVGhlIHJlcXVlc3RlZCBwYWdlIGluZGV4IGFuZCBzaXplLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uR3JvdXBzUGFnZUNoYW5nZShwYWdlOiBQYWdlQ2hhbmdlKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3Vwc1BhZ2VJbmRleCA9IHBhZ2UucGFnZUluZGV4O1xyXG4gICAgdGhpcy5ncm91cHNQYWdlU2l6ZSA9IHBhZ2UucGFnZVNpemU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxlZ2F0ZXMgYSBsb2ctYXR0ZW5kYW5jZSByZXF1ZXN0IHRvIHRoZSBzZXJ2aWNlLCBzdXJmYWNpbmcgdGhlXHJcbiAgICogYXR0ZW5kYW5jZS1hY3Rpb24gZXJyb3IgbWVzc2FnZSB2aWEgdGhlIHNoYXJlZCB7QGxpbmsgQWxlcnRzU2VydmljZX0gb25cclxuICAgKiBmYWlsdXJlIHdoaWxlIHRoZSBzZXJ2aWNlIHJldGFpbnMgdGhlIHByaW9yIGRpc3BsYXllZCBzdGF0ZSAoUmVxIDcuNywgMTMuNykuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lZXRpbmdJZCAtIFRoZSBtZWV0aW5nIHRvIGxvZyBhdHRlbmRhbmNlIGZvci5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEYXNoYm9hcmRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvZ0F0dGVuZGFuY2UobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZVxyXG4gICAgICAubG9nQXR0ZW5kYW5jZShtZWV0aW5nSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuc2hvd0F0dGVuZGFuY2VFcnJvcigpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGVnYXRlcyBhIGxlYXZlLW1lZXRpbmcgcmVxdWVzdCB0byB0aGUgc2VydmljZSwgc3VyZmFjaW5nIHRoZVxyXG4gICAqIGF0dGVuZGFuY2UtYWN0aW9uIGVycm9yIG1lc3NhZ2UgdmlhIHRoZSBzaGFyZWQge0BsaW5rIEFsZXJ0c1NlcnZpY2V9IG9uXHJcbiAgICogZmFpbHVyZSB3aGlsZSB0aGUgc2VydmljZSByZXRhaW5zIHRoZSBwcmlvciBkaXNwbGF5ZWQgc3RhdGUgKFJlcSA3LjgsIDEzLjcpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZWV0aW5nSWQgLSBUaGUgbWVldGluZyB0byBsZWF2ZS5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEYXNoYm9hcmRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxlYXZlTWVldGluZyhtZWV0aW5nSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlXHJcbiAgICAgIC5sZWF2ZU1lZXRpbmcobWVldGluZ0lkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIGVycm9yOiAoKSA9PiB0aGlzLnNob3dBdHRlbmRhbmNlRXJyb3IoKSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgcm91dGUgY29uZmlndXJhdGlvbiBpbiBlZmZlY3Q6IHRoZSBob3N0LXN1cHBsaWVkIGByb3V0ZVBhdGhzYCB3aGVuXHJcbiAgICogcHJvdmlkZWQsIG90aGVyd2lzZSB0aGUgZGVmYXVsdCByb3V0ZSBjb25maWcgZnJvbSBgY29uc3RhbnRzLmpzb25gIHNvXHJcbiAgICogbmF2aWdhdGlvbiBpbnRlbnRzIGFsd2F5cyBjYXJyeSB2YWxpZCB0YXJnZXRzIChSZXEgMTEuMSwgMTEuNSkuXHJcbiAgICogQHJldHVybiB7RGFzaGJvYXJkUm91dGVDb25maWd9IFRoZSBhY3RpdmUgcm91dGUgY29uZmlndXJhdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgRGFzaGJvYXJkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXQgYWN0aXZlUm91dGVDb25maWcoKTogRGFzaGJvYXJkUm91dGVDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMucm91dGVQYXRocyA/PyB0aGlzLmNvbnN0YW50cy5kZWZhdWx0Um91dGVDb25maWc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmVzIHRvIHRoZSBzZXJ2aWNlJ3Mgc3RhdGUgb2JzZXJ2YWJsZXMsIG1pcnJvcmluZyBlYWNoIGludG8gYSBsb2NhbFxyXG4gICAqIGZpZWxkIGZvciB0aGUgdGVtcGxhdGUgdG8gYmluZC4gQWxsIHN1YnNjcmlwdGlvbnMgYXJlIHRvcm4gZG93biB2aWFcclxuICAgKiBgdGFrZVVudGlsKGRlc3Ryb3kkKWAgKFJlcSAxMy4xLCAxMy4yLCAxMy41KS5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEYXNoYm9hcmRDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIHN1YnNjcmliZVRvU2VydmljZVN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnVwY29taW5nRXZlbnRzJFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50cykgPT4gKHRoaXMudXBjb21pbmdFdmVudHMgPSBldmVudHMpKTtcclxuXHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ3JvdXBzJFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGdyb3VwcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZ3JvdXBzID0gZ3JvdXBzO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UudXBjb21pbmdTdGF0ZSRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZSkgPT4gKHRoaXMudXBjb21pbmdTdGF0ZSA9IHN0YXRlKSk7XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdyb3Vwc1N0YXRlJFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiAodGhpcy5ncm91cHNTdGF0ZSA9IHN0YXRlKSk7XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmF0dGVuZGFuY2VTdGF0ZXMkXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGVzKSA9PiAodGhpcy5hdHRlbmRhbmNlU3RhdGVzID0gc3RhdGVzKSk7XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmluRmxpZ2h0TWVldGluZ0lkcyRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChpZHMpID0+ICh0aGlzLmluRmxpZ2h0TWVldGluZ0lkcyA9IGlkcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgUHJlc2VudGF0aW9uX0xpYnJhcnkgYnJlYWtwb2ludCBvYnNlcnZlciB0byBrZWVwXHJcbiAgICogYGlzTW9iaWxlVmlld2AgaW4gc3luYyB3aXRoIHRoZSB2aWV3cG9ydCAoUmVxIDE1LjEsIDE1LjIpLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9CcmVha3BvaW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHsgbWF0Y2hlczogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQ/Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcnMgdGhlIHVwY29taW5nLWV2ZW50cyBsb2FkLCBzZXR0aW5nIHRoZSBzZWN0aW9uIHRvIGBFUlJPUmAgb24gZmFpbHVyZVxyXG4gICAqIHNvIG9ubHkgdGhlIHNlY3Rpb24gZXJyb3IgcmVnaW9uIHJlbmRlcnMgKFJlcSAxMy4xLCAxMy4yLCAxMy41KS5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEYXNoYm9hcmRDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGxvYWRVcGNvbWluZ0V2ZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZVxyXG4gICAgICAubG9hZFVwY29taW5nRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBlcnJvcjogKCkgPT4gKHRoaXMudXBjb21pbmdTdGF0ZSA9IERhc2hib2FyZFNlY3Rpb25TdGF0ZS5FUlJPUiksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcnMgdGhlIGdyb3VwcyBsb2FkLCBzZXR0aW5nIHRoZSBzZWN0aW9uIHRvIGBFUlJPUmAgb24gZmFpbHVyZSBzbyBvbmx5XHJcbiAgICogdGhlIHNlY3Rpb24gZXJyb3IgcmVnaW9uIHJlbmRlcnMuIElzb2xhdGVkIGZyb20gdGhlIHVwY29taW5nLWV2ZW50cyBsb2FkIHNvXHJcbiAgICogb25lIGZhaWxpbmcgZG9lcyBub3QgYWZmZWN0IHRoZSBvdGhlciAoUmVxIDEzLjEsIDEzLjIsIDEzLjUpLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgbG9hZEdyb3VwcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZVxyXG4gICAgICAubG9hZEdyb3VwcygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmdyb3Vwc1N0YXRlID0gRGFzaGJvYXJkU2VjdGlvblN0YXRlLkVSUk9SKSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wb3NlcyBhbmQgZW1pdHMgYSB7QGxpbmsgRGFzaGJvYXJkTmF2aWdhdGlvbkludGVudH0gZm9yIHRoZSBob3N0IGZyb20gdGhlXHJcbiAgICogcmVzb2x2ZWQgdGFyZ2V0IHBhdGggYW5kIGFuIG9wdGlvbmFsIHRyaWdnZXJpbmcgaWQgKFJlcSAxMS4xKS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSByZXNvbHZlZCB0YXJnZXQgcm91dGUgcGF0aC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2lkXSAtIFRoZSB0cmlnZ2VyaW5nIGlkZW50aWZpZXIsIHdoZW4gYXBwbGljYWJsZS5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEYXNoYm9hcmRDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGVtaXROYXZpZ2F0aW9uKHBhdGg6IHN0cmluZywgaWQ/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkTmF2aWdhdGUuZW1pdChpZCA/IHsgcGF0aCwgaWQgfSA6IHsgcGF0aCB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1cmZhY2VzIHRoZSBhdHRlbmRhbmNlLWFjdGlvbiBlcnJvciBtZXNzYWdlIGZyb20gYGNvbnN0YW50cy5qc29uYCB2aWEgdGhlXHJcbiAgICogc2hhcmVkIHtAbGluayBBbGVydHNTZXJ2aWNlfSAoUmVxIDEzLjcpLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2hvd0F0dGVuZGFuY2VFcnJvcigpOiB2b2lkIHtcclxuICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgIG1lc3NhZ2U6XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHM/LmF0dGVuZGFuY2U/LmVycm9yTWVzc2FnZSA/P1xyXG4gICAgICAgICdVbmFibGUgdG8gdXBkYXRlIHlvdXIgYXR0ZW5kYW5jZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxyXG4gICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5FUlJPUixcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2EtZGFzaGJvYXJkXCJcclxuICBbbmdDbGFzc109XCJ7ICdpZWVlc2EtZGFzaGJvYXJkLS1tb2JpbGUnOiBpc01vYmlsZVZpZXcgfVwiXHJcbj5cclxuICA8aWVlZXNhLWRhc2hib2FyZC13ZWxjb21lLWhlYWRlclxyXG4gICAgW3VzZXJOYW1lXT1cInVzZXJJbmZvPy5uYW1lID8/ICcnXCJcclxuICAgIFttZWV0aW5nc0NvdW50XT1cIm1lZXRpbmdzQ291bnRcIlxyXG4gICAgW2dyb3Vwc0NvdW50XT1cImdyb3Vwc0NvdW50XCJcclxuICAgIChzaG9ydGN1dFNlbGVjdGVkKT1cIm9uSnVtcFRvU2hvcnRjdXQoJGV2ZW50KVwiXHJcbiAgPjwvaWVlZXNhLWRhc2hib2FyZC13ZWxjb21lLWhlYWRlcj5cclxuXHJcbiAgPG1haW4gY2xhc3M9XCJpZWVlc2EtZGFzaGJvYXJkX19jb250ZW50XCI+XHJcbiAgICA8aWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c1xyXG4gICAgICBjbGFzcz1cImllZWVzYS1kYXNoYm9hcmRfX3VwY29taW5nXCJcclxuICAgICAgW2V2ZW50c109XCJ1cGNvbWluZ0V2ZW50c1wiXHJcbiAgICAgIFtzZWN0aW9uU3RhdGVdPVwidXBjb21pbmdTdGF0ZVwiXHJcbiAgICAgIFtwZXJtaXNzaW9uc109XCJhdHRlbmRhbmNlUGVybWlzc2lvbnNcIlxyXG4gICAgICBbYXR0ZW5kYW5jZVN0YXRlc109XCJhdHRlbmRhbmNlU3RhdGVzXCJcclxuICAgICAgW2luRmxpZ2h0TWVldGluZ0lkc109XCJpbkZsaWdodE1lZXRpbmdJZHNcIlxyXG4gICAgICBbaXNNb2JpbGVWaWV3XT1cImlzTW9iaWxlVmlld1wiXHJcbiAgICAgICh2aWV3QWxsKT1cIm9uVmlld0FsbEV2ZW50cygpXCJcclxuICAgICAgKHZpZXdFdmVudCk9XCJvblZpZXdFdmVudCgkZXZlbnQpXCJcclxuICAgICAgKG9wZW5NZWV0aW5nKT1cIm9uT3Blbk1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgIChsb2dBdHRlbmRhbmNlKT1cIm9uTG9nQXR0ZW5kYW5jZSgkZXZlbnQpXCJcclxuICAgICAgKGxlYXZlTWVldGluZyk9XCJvbkxlYXZlTWVldGluZygkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHM+XHJcblxyXG4gICAgPGllZWVzYS15b3VyLWdyb3Vwc1xyXG4gICAgICBbZ3JvdXBzXT1cImdyb3VwcyB8IHNsaWNlOiAoZ3JvdXBzUGFnZUluZGV4ICogZ3JvdXBzUGFnZVNpemUpIDogKChncm91cHNQYWdlSW5kZXggKyAxKSAqIGdyb3Vwc1BhZ2VTaXplKVwiXHJcbiAgICAgIFtzZWN0aW9uU3RhdGVdPVwiZ3JvdXBzU3RhdGVcIlxyXG4gICAgICBbdG90YWxHcm91cHNdPVwiZ3JvdXBzLmxlbmd0aFwiXHJcbiAgICAgIFtwYWdlSW5kZXhdPVwiZ3JvdXBzUGFnZUluZGV4XCJcclxuICAgICAgW3BhZ2VTaXplXT1cImdyb3Vwc1BhZ2VTaXplXCJcclxuICAgICAgKGdyb3VwU2VsZWN0ZWQpPVwib25Hcm91cFNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAodmlld0FsbEdyb3Vwcyk9XCJvblZpZXdBbGxHcm91cHMoKVwiXHJcbiAgICAgIChwYWdlQ2hhbmdlKT1cIm9uR3JvdXBzUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS15b3VyLWdyb3Vwcz5cclxuICA8L21haW4+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DashboardComponent } from './dashboard.component';
3
+ import * as i0 from "@angular/core";
4
+ export class DashboardModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DashboardModule, imports: [DashboardComponent], exports: [DashboardComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardModule, imports: [DashboardComponent] }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [DashboardComponent],
13
+ exports: [DashboardComponent],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLGVBQWU7K0dBQWYsZUFBZTtnSEFBZixlQUFlLFlBSGhCLGtCQUFrQixhQUNsQixrQkFBa0I7Z0hBRWpCLGVBQWUsWUFIaEIsa0JBQWtCOzs0RkFHakIsZUFBZTtrQkFKM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGFzaGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmQuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0Rhc2hib2FyZENvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW0Rhc2hib2FyZENvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRNb2R1bGUge31cclxuIl19
@@ -0,0 +1,7 @@
1
+ export const DASHBOARD_ROUTES = [
2
+ {
3
+ path: '',
4
+ loadComponent: () => import('./dashboard.component').then((m) => m.DashboardComponent),
5
+ },
6
+ ];
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQVc7SUFDdEM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FDbEIsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7S0FDcEU7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmV4cG9ydCBjb25zdCBEQVNIQk9BUkRfUk9VVEVTOiBSb3V0ZXMgPSBbXHJcbiAge1xyXG4gICAgcGF0aDogJycsXHJcbiAgICBsb2FkQ29tcG9uZW50OiAoKSA9PlxyXG4gICAgICBpbXBvcnQoJy4vZGFzaGJvYXJkLmNvbXBvbmVudCcpLnRoZW4oKG0pID0+IG0uRGFzaGJvYXJkQ29tcG9uZW50KSxcclxuICB9LFxyXG5dO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZW5kYW5jZS1hY3Rpb24tcGVybWlzc2lvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9tb2RlbHMvYXR0ZW5kYW5jZS1hY3Rpb24tcGVybWlzc2lvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQXR0ZW5kYW5jZUFjdGlvblBlcm1pc3Npb25zIHtcclxuICBjYW5Mb2dBdHRlbmRhbmNlOiBib29sZWFuO1xyXG4gIGNhbkxlYXZlTWVldGluZzogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ /* eslint-disable no-unused-vars */
2
+ export var AttendanceState;
3
+ (function (AttendanceState) {
4
+ AttendanceState["CURRENTLY_ATTENDING"] = "CURRENTLY_ATTENDING";
5
+ AttendanceState["NOT_ATTENDING"] = "NOT_ATTENDING";
6
+ })(AttendanceState || (AttendanceState = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZW5kYW5jZS1zdGF0ZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL21vZGVscy9hdHRlbmRhbmNlLXN0YXRlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3pCLDhEQUEyQyxDQUFBO0lBQzNDLGtEQUErQixDQUFBO0FBQ2pDLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXHJcbmV4cG9ydCBlbnVtIEF0dGVuZGFuY2VTdGF0ZSB7XHJcbiAgQ1VSUkVOVExZX0FUVEVORElORyA9ICdDVVJSRU5UTFlfQVRURU5ESU5HJyxcclxuICBOT1RfQVRURU5ESU5HID0gJ05PVF9BVFRFTkRJTkcnLFxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWxpc3QtcmVzcG9uc2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9tb2RlbHMvZGFzaGJvYXJkLWxpc3QtcmVzcG9uc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkTGlzdFJlc3BvbnNlPFQ+IHtcclxuICBzdGF0dXM6IGJvb2xlYW4gfCBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxuICBib2R5PzogVDtcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXJvdXRlLWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL21vZGVscy9kYXNoYm9hcmQtcm91dGUtY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZFJvdXRlQ29uZmlnIHtcclxuICBldmVudERldGFpbDogc3RyaW5nO1xyXG4gIG1lZXRpbmdEZXRhaWw6IHN0cmluZztcclxuICBncm91cERldGFpbDogc3RyaW5nO1xyXG4gIHZpZXdBbGxFdmVudHM6IHN0cmluZztcclxuICB2aWV3QWxsR3JvdXBzOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -0,0 +1,9 @@
1
+ /* eslint-disable no-unused-vars */
2
+ export var DashboardSectionState;
3
+ (function (DashboardSectionState) {
4
+ DashboardSectionState["LOADING"] = "LOADING";
5
+ DashboardSectionState["LOADED"] = "LOADED";
6
+ DashboardSectionState["EMPTY"] = "EMPTY";
7
+ DashboardSectionState["ERROR"] = "ERROR";
8
+ })(DashboardSectionState || (DashboardSectionState = {}));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXNlY3Rpb24tc3RhdGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9tb2RlbHMvZGFzaGJvYXJkLXNlY3Rpb24tc3RhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLE1BQU0sQ0FBTixJQUFZLHFCQUtYO0FBTEQsV0FBWSxxQkFBcUI7SUFDL0IsNENBQW1CLENBQUE7SUFDbkIsMENBQWlCLENBQUE7SUFDakIsd0NBQWUsQ0FBQTtJQUNmLHdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUxXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFLaEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRTZWN0aW9uU3RhdGUge1xyXG4gIExPQURJTkcgPSAnTE9BRElORycsXHJcbiAgTE9BREVEID0gJ0xPQURFRCcsXHJcbiAgRU1QVFkgPSAnRU1QVFknLFxyXG4gIEVSUk9SID0gJ0VSUk9SJyxcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXVzZXItaW5mby5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL21vZGVscy9kYXNoYm9hcmQtdXNlci1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZFVzZXJJbmZvIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHVzZXJJZD86IHN0cmluZztcclxuICBhcHBJZD86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcm93Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkL3NyYy9saWIvbW9kZWxzL2dyb3VwLXJvdy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHcm91cFJvdyB7XHJcbiAgZ3JvdXBJZDogc3RyaW5nO1xyXG4gIGdyb3VwOiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBvZmZpY2VyUm9sZT86IHN0cmluZztcclxuICBhZmZpbGlhdGlvbj86IHN0cmluZztcclxuICBtZW1iZXJMZXZlbDogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1yb3cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9tb2RlbHMvbWVldGluZy1yb3cubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dGVuZGFuY2VTdGF0ZSB9IGZyb20gJy4vYXR0ZW5kYW5jZS1zdGF0ZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lZXRpbmdSb3cge1xyXG4gIG1lZXRpbmdJZDogc3RyaW5nO1xyXG4gIG1lZXRpbmdOYW1lOiBzdHJpbmc7XHJcbiAgZ3JvdXBPckNvbW1pdHRlZT86IHN0cmluZztcclxuICByb29tT3JMb2NhdGlvbj86IHN0cmluZztcclxuICBtZWV0aW5nRGF0ZTogc3RyaW5nO1xyXG4gIG1lZXRpbmdUaW1lOiBzdHJpbmc7XHJcbiAgdGltZXpvbmU6IHN0cmluZztcclxuICBpc09wZW5Gb3JBdHRlbmRhbmNlPzogYm9vbGVhbjtcclxuICBhdHRlbmRhbmNlU3RhdGU/OiBBdHRlbmRhbmNlU3RhdGU7XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jaGFuZ2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9tb2RlbHMvcGFnZS1jaGFuZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGFnZUNoYW5nZSB7XHJcbiAgcGFnZUluZGV4OiBudW1iZXI7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjb21pbmctZXZlbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9tb2RlbHMvdXBjb21pbmctZXZlbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lZXRpbmdSb3cgfSBmcm9tICcuL21lZXRpbmctcm93Lm1vZGVsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBjb21pbmdFdmVudCB7XHJcbiAgZXZlbnRJZDogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgc3RhdHVzOiBzdHJpbmc7XHJcbiAgZGF5SW5kaWNhdG9yPzogc3RyaW5nO1xyXG4gIG1lZXRpbmdDb3VudDogbnVtYmVyO1xyXG4gIG9wZW5Gb3JBdHRlbmRhbmNlQ291bnQ6IG51bWJlcjtcclxuICBzdGFydERhdGU6IHN0cmluZztcclxuICBlbmREYXRlOiBzdHJpbmc7XHJcbiAgdGltZXpvbmU6IHN0cmluZztcclxuICBtZWV0aW5nczogTWVldGluZ1Jvd1tdO1xyXG59XHJcbiJdfQ==