@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,163 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
3
+ import { LoaderComponent } from '@ieeesa-npm/presentation';
4
+ import { DashboardSectionState } from '../../models/dashboard-section-state.model';
5
+ import { EventGroupCardComponent } from '../event-group-card/event-group-card.component';
6
+ import * as constants from '../../assets/constants.json';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ /**
10
+ * Upcoming_Meetings_Events renders the "Upcoming Meetings & Events" dashboard
11
+ * section: a section title and "View All" link, a collapse/expand toggle that
12
+ * starts expanded, and one {@link EventGroupCardComponent} per upcoming event.
13
+ *
14
+ * The section is driven by its `sectionState` input: it shows the Loader while
15
+ * `LOADING`, the event-group cards while `LOADED`, the empty-state message while
16
+ * `EMPTY`, and the error message while `ERROR` — the four regions are mutually
17
+ * exclusive (Req 13.1, 13.2, 13.3, 13.5). The component is purely
18
+ * presentational: "View All" emits `viewAll` (Req 5.1, 5.2), the collapse toggle
19
+ * flips `isExpanded` and the card-list visibility while exposing
20
+ * `[attr.aria-expanded]` (Req 5.3, 5.4, 14.3), and each card is rendered via
21
+ * `*ngFor` with {@link trackByEventId} to preserve input order (Req 5.5, 5.6,
22
+ * 14.4). Card outputs (`viewEvent`/`openMeeting`/`logAttendance`/`leaveMeeting`)
23
+ * are bubbled upward unchanged, and each card's `pageChange` is mapped to
24
+ * `meetingPageChange` tagged with the originating event id (Req 6.9).
25
+ * @export
26
+ * @class UpcomingMeetingsEventsComponent
27
+ */
28
+ export class UpcomingMeetingsEventsComponent {
29
+ constructor() {
30
+ /** User-facing strings sourced from `constants.json`. */
31
+ this.constants = constants;
32
+ /** Enum reference for template comparisons against `sectionState`. */
33
+ this.sectionStates = DashboardSectionState;
34
+ /** The upcoming events rendered as event-group cards (Req 5.5, 5.6). */
35
+ this.events = [];
36
+ /** The load/empty/error status driving the section's mutually exclusive regions. */
37
+ this.sectionState = DashboardSectionState.LOADING;
38
+ /** Host permissions gating the per-row log-attendance / leave-meeting buttons. */
39
+ this.permissions = {
40
+ canLogAttendance: false,
41
+ canLeaveMeeting: false,
42
+ };
43
+ /** Map of meeting id to current attendance state, passed down to each card. */
44
+ this.attendanceStates = {};
45
+ /** Set of meeting ids with an attendance action awaiting resolution. */
46
+ this.inFlightMeetingIds = new Set();
47
+ /** Whether the host has determined the viewport is at/below the mobile breakpoint. */
48
+ this.isMobileView = false;
49
+ /** Emits when the "View All" link is activated (Req 5.2). */
50
+ this.viewAll = new EventEmitter();
51
+ /** Bubbles the event id when a card's "View Event" button is activated (Req 6.4). */
52
+ this.viewEvent = new EventEmitter();
53
+ /** Bubbles the meeting id when a card's meeting-name link is activated (Req 7.4). */
54
+ this.openMeeting = new EventEmitter();
55
+ /** Bubbles the meeting id when a card requests logging attendance (Req 7.7). */
56
+ this.logAttendance = new EventEmitter();
57
+ /** Bubbles the meeting id when a card requests leaving the meeting (Req 7.8). */
58
+ this.leaveMeeting = new EventEmitter();
59
+ /** Emits the requested page tagged with its event id when a card paginates (Req 6.9). */
60
+ this.meetingPageChange = new EventEmitter();
61
+ /** Whether the section's card list is currently expanded; starts collapsed. */
62
+ this.isExpanded = false;
63
+ }
64
+ /**
65
+ * `trackBy` for the event-group-card `*ngFor`, keyed by the stable event id so
66
+ * Angular renders exactly one card per event in input order (Req 5.5, 5.6, 14.4).
67
+ * @param {number} index - The iteration index (fallback key).
68
+ * @param {UpcomingEvent} event - The event for this card.
69
+ * @return {string} The stable track key (event id).
70
+ * @memberof UpcomingMeetingsEventsComponent
71
+ */
72
+ trackByEventId(index, event) {
73
+ return event?.eventId ?? `${index}`;
74
+ }
75
+ /**
76
+ * Toggles the section's expanded/collapsed state, inverting the card-list
77
+ * visibility and the exposed `aria-expanded` value (Req 5.4, 14.3).
78
+ * @memberof UpcomingMeetingsEventsComponent
79
+ */
80
+ onToggleExpanded() {
81
+ this.isExpanded = !this.isExpanded;
82
+ }
83
+ /**
84
+ * Handles the "View All" link, emitting the `viewAll` intent to the host (Req 5.2).
85
+ * @memberof UpcomingMeetingsEventsComponent
86
+ */
87
+ onViewAll() {
88
+ this.viewAll.emit();
89
+ }
90
+ /**
91
+ * Bubbles a card's "View Event" activation upward (Req 6.4).
92
+ * @param {string} eventId - The event id emitted by the card.
93
+ * @memberof UpcomingMeetingsEventsComponent
94
+ */
95
+ onViewEvent(eventId) {
96
+ this.viewEvent.emit(eventId);
97
+ }
98
+ /**
99
+ * Bubbles a card's meeting-name link activation upward (Req 7.4).
100
+ * @param {string} meetingId - The meeting id emitted by the card.
101
+ * @memberof UpcomingMeetingsEventsComponent
102
+ */
103
+ onOpenMeeting(meetingId) {
104
+ this.openMeeting.emit(meetingId);
105
+ }
106
+ /**
107
+ * Bubbles a card's log-attendance request upward (Req 7.7).
108
+ * @param {string} meetingId - The meeting id emitted by the card.
109
+ * @memberof UpcomingMeetingsEventsComponent
110
+ */
111
+ onLogAttendance(meetingId) {
112
+ this.logAttendance.emit(meetingId);
113
+ }
114
+ /**
115
+ * Bubbles a card's leave-meeting request upward (Req 7.8).
116
+ * @param {string} meetingId - The meeting id emitted by the card.
117
+ * @memberof UpcomingMeetingsEventsComponent
118
+ */
119
+ onLeaveMeeting(meetingId) {
120
+ this.leaveMeeting.emit(meetingId);
121
+ }
122
+ /**
123
+ * Maps a card's `pageChange` into a `meetingPageChange` tagged with the
124
+ * originating event id so the host can page the correct event (Req 6.9).
125
+ * @param {string} eventId - The id of the event whose card paginated.
126
+ * @param {PageChange} page - The requested page from the card paginator.
127
+ * @memberof UpcomingMeetingsEventsComponent
128
+ */
129
+ onMeetingPageChange(eventId, page) {
130
+ this.meetingPageChange.emit({ eventId, ...page });
131
+ }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UpcomingMeetingsEventsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UpcomingMeetingsEventsComponent, isStandalone: true, selector: "ieeesa-upcoming-meetings-events", inputs: { events: "events", sectionState: "sectionState", permissions: "permissions", attendanceStates: "attendanceStates", inFlightMeetingIds: "inFlightMeetingIds", isMobileView: "isMobileView" }, outputs: { viewAll: "viewAll", viewEvent: "viewEvent", openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting", meetingPageChange: "meetingPageChange" }, ngImport: i0, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants?.upcomingSection?.title ?? 'Upcoming Meetings & Events' }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle, matching the Your Groups card\r\n header (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants?.upcomingSection?.ariaLabel?.viewAll ?? 'View all upcoming meetings and events'\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants?.upcomingSection?.viewAllLabel ?? 'View All' }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants?.upcomingSection?.ariaLabel?.toggle ?? 'Collapse or expand upcoming meetings and events'\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? (constants?.upcomingSection?.collapseLabel ?? 'Collapse') : (constants?.upcomingSection?.expandLabel ?? 'Expand') }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div\r\n *ngIf=\"isExpanded\"\r\n class=\"ieeesa-upcoming-meetings-events__body\"\r\n >\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of events; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n ></ieeesa-event-group-card>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants?.upcomingSection?.emptyMessage ?? 'You have no upcoming meetings or events.' }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants?.upcomingSection?.errorMessage ?? 'Unable to load upcoming meetings and events. Please try again.' }}\r\n </p>\r\n </div>\r\n</section>\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-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:1.125rem;color:#333436}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:.875rem;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:.875rem;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoaderComponent, selector: "ieeesa-loader", inputs: ["diameter"] }, { kind: "component", type: EventGroupCardComponent, selector: "ieeesa-event-group-card", inputs: ["event", "permissions", "attendanceStates", "inFlightMeetingIds", "isMobileView"], outputs: ["viewEvent", "openMeeting", "logAttendance", "leaveMeeting", "pageChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
134
+ }
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UpcomingMeetingsEventsComponent, decorators: [{
136
+ type: Component,
137
+ args: [{ selector: 'ieeesa-upcoming-meetings-events', standalone: true, imports: [CommonModule, LoaderComponent, EventGroupCardComponent], encapsulation: ViewEncapsulation.None, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants?.upcomingSection?.title ?? 'Upcoming Meetings & Events' }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle, matching the Your Groups card\r\n header (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants?.upcomingSection?.ariaLabel?.viewAll ?? 'View all upcoming meetings and events'\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants?.upcomingSection?.viewAllLabel ?? 'View All' }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants?.upcomingSection?.ariaLabel?.toggle ?? 'Collapse or expand upcoming meetings and events'\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? (constants?.upcomingSection?.collapseLabel ?? 'Collapse') : (constants?.upcomingSection?.expandLabel ?? 'Expand') }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div\r\n *ngIf=\"isExpanded\"\r\n class=\"ieeesa-upcoming-meetings-events__body\"\r\n >\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of events; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n ></ieeesa-event-group-card>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants?.upcomingSection?.emptyMessage ?? 'You have no upcoming meetings or events.' }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants?.upcomingSection?.errorMessage ?? 'Unable to load upcoming meetings and events. Please try again.' }}\r\n </p>\r\n </div>\r\n</section>\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-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:1.125rem;color:#333436}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:.875rem;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:.875rem;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"] }]
138
+ }], propDecorators: { events: [{
139
+ type: Input
140
+ }], sectionState: [{
141
+ type: Input
142
+ }], permissions: [{
143
+ type: Input
144
+ }], attendanceStates: [{
145
+ type: Input
146
+ }], inFlightMeetingIds: [{
147
+ type: Input
148
+ }], isMobileView: [{
149
+ type: Input
150
+ }], viewAll: [{
151
+ type: Output
152
+ }], viewEvent: [{
153
+ type: Output
154
+ }], openMeeting: [{
155
+ type: Output
156
+ }], logAttendance: [{
157
+ type: Output
158
+ }], leaveMeeting: [{
159
+ type: Output
160
+ }], meetingPageChange: [{
161
+ type: Output
162
+ }] } });
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjb21pbmctbWVldGluZ3MtZXZlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvdXBjb21pbmctbWVldGluZ3MtZXZlbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUczRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUduRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFekQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQVVILE1BQU0sT0FBTywrQkFBK0I7SUFUNUM7UUFVRSx5REFBeUQ7UUFDekQsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0QixzRUFBc0U7UUFDN0Qsa0JBQWEsR0FBRyxxQkFBcUIsQ0FBQztRQUUvQyx3RUFBd0U7UUFDL0QsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFFdEMsb0ZBQW9GO1FBQzNFLGlCQUFZLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztRQUU3RSxrRkFBa0Y7UUFD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QkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBBdHRlbmRhbmNlQWN0aW9uUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXR0ZW5kYW5jZS1hY3Rpb24tcGVybWlzc2lvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBBdHRlbmRhbmNlU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXR0ZW5kYW5jZS1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IERhc2hib2FyZFNlY3Rpb25TdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXNoYm9hcmQtc2VjdGlvbi1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VDaGFuZ2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGFnZS1jaGFuZ2UubW9kZWwnO1xyXG5pbXBvcnQgeyBVcGNvbWluZ0V2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VwY29taW5nLWV2ZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRHcm91cENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9ldmVudC1ncm91cC1jYXJkL2V2ZW50LWdyb3VwLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogVXBjb21pbmdfTWVldGluZ3NfRXZlbnRzIHJlbmRlcnMgdGhlIFwiVXBjb21pbmcgTWVldGluZ3MgJiBFdmVudHNcIiBkYXNoYm9hcmRcclxuICogc2VjdGlvbjogYSBzZWN0aW9uIHRpdGxlIGFuZCBcIlZpZXcgQWxsXCIgbGluaywgYSBjb2xsYXBzZS9leHBhbmQgdG9nZ2xlIHRoYXRcclxuICogc3RhcnRzIGV4cGFuZGVkLCBhbmQgb25lIHtAbGluayBFdmVudEdyb3VwQ2FyZENvbXBvbmVudH0gcGVyIHVwY29taW5nIGV2ZW50LlxyXG4gKlxyXG4gKiBUaGUgc2VjdGlvbiBpcyBkcml2ZW4gYnkgaXRzIGBzZWN0aW9uU3RhdGVgIGlucHV0OiBpdCBzaG93cyB0aGUgTG9hZGVyIHdoaWxlXHJcbiAqIGBMT0FESU5HYCwgdGhlIGV2ZW50LWdyb3VwIGNhcmRzIHdoaWxlIGBMT0FERURgLCB0aGUgZW1wdHktc3RhdGUgbWVzc2FnZSB3aGlsZVxyXG4gKiBgRU1QVFlgLCBhbmQgdGhlIGVycm9yIG1lc3NhZ2Ugd2hpbGUgYEVSUk9SYCDigJQgdGhlIGZvdXIgcmVnaW9ucyBhcmUgbXV0dWFsbHlcclxuICogZXhjbHVzaXZlIChSZXEgMTMuMSwgMTMuMiwgMTMuMywgMTMuNSkuIFRoZSBjb21wb25lbnQgaXMgcHVyZWx5XHJcbiAqIHByZXNlbnRhdGlvbmFsOiBcIlZpZXcgQWxsXCIgZW1pdHMgYHZpZXdBbGxgIChSZXEgNS4xLCA1LjIpLCB0aGUgY29sbGFwc2UgdG9nZ2xlXHJcbiAqIGZsaXBzIGBpc0V4cGFuZGVkYCBhbmQgdGhlIGNhcmQtbGlzdCB2aXNpYmlsaXR5IHdoaWxlIGV4cG9zaW5nXHJcbiAqIGBbYXR0ci5hcmlhLWV4cGFuZGVkXWAgKFJlcSA1LjMsIDUuNCwgMTQuMyksIGFuZCBlYWNoIGNhcmQgaXMgcmVuZGVyZWQgdmlhXHJcbiAqIGAqbmdGb3JgIHdpdGgge0BsaW5rIHRyYWNrQnlFdmVudElkfSB0byBwcmVzZXJ2ZSBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LFxyXG4gKiAxNC40KS4gQ2FyZCBvdXRwdXRzIChgdmlld0V2ZW50YC9gb3Blbk1lZXRpbmdgL2Bsb2dBdHRlbmRhbmNlYC9gbGVhdmVNZWV0aW5nYClcclxuICogYXJlIGJ1YmJsZWQgdXB3YXJkIHVuY2hhbmdlZCwgYW5kIGVhY2ggY2FyZCdzIGBwYWdlQ2hhbmdlYCBpcyBtYXBwZWQgdG9cclxuICogYG1lZXRpbmdQYWdlQ2hhbmdlYCB0YWdnZWQgd2l0aCB0aGUgb3JpZ2luYXRpbmcgZXZlbnQgaWQgKFJlcSA2LjkpLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMb2FkZXJDb21wb25lbnQsIEV2ZW50R3JvdXBDYXJkQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBjb21pbmctbWVldGluZ3MtZXZlbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudCB7XHJcbiAgLyoqIFVzZXItZmFjaW5nIHN0cmluZ3Mgc291cmNlZCBmcm9tIGBjb25zdGFudHMuanNvbmAuICovXHJcbiAgY29uc3RhbnRzID0gY29uc3RhbnRzO1xyXG5cclxuICAvKiogRW51bSByZWZlcmVuY2UgZm9yIHRlbXBsYXRlIGNvbXBhcmlzb25zIGFnYWluc3QgYHNlY3Rpb25TdGF0ZWAuICovXHJcbiAgcmVhZG9ubHkgc2VjdGlvblN0YXRlcyA9IERhc2hib2FyZFNlY3Rpb25TdGF0ZTtcclxuXHJcbiAgLyoqIFRoZSB1cGNvbWluZyBldmVudHMgcmVuZGVyZWQgYXMgZXZlbnQtZ3JvdXAgY2FyZHMgKFJlcSA1LjUsIDUuNikuICovXHJcbiAgQElucHV0KCkgZXZlbnRzOiBVcGNvbWluZ0V2ZW50W10gPSBbXTtcclxuXHJcbiAgLyoqIFRoZSBsb2FkL2VtcHR5L2Vycm9yIHN0YXR1cyBkcml2aW5nIHRoZSBzZWN0aW9uJ3MgbXV0dWFsbHkgZXhjbHVzaXZlIHJlZ2lvbnMuICovXHJcbiAgQElucHV0KCkgc2VjdGlvblN0YXRlOiBEYXNoYm9hcmRTZWN0aW9uU3RhdGUgPSBEYXNoYm9hcmRTZWN0aW9uU3RhdGUuTE9BRElORztcclxuXHJcbiAgLyoqIEhvc3QgcGVybWlzc2lvbnMgZ2F0aW5nIHRoZSBwZXItcm93IGxvZy1hdHRlbmRhbmNlIC8gbGVhdmUtbWVldGluZyBidXR0b25zLiAqL1xyXG4gIEBJbnB1dCgpIHBlcm1pc3Npb25zOiBBdHRlbmRhbmNlQWN0aW9uUGVybWlzc2lvbnMgPSB7XHJcbiAgICBjYW5Mb2dBdHRlbmRhbmNlOiBmYWxzZSxcclxuICAgIGNhbkxlYXZlTWVldGluZzogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgLyoqIE1hcCBvZiBtZWV0aW5nIGlkIHRvIGN1cnJlbnQgYXR0ZW5kYW5jZSBzdGF0ZSwgcGFzc2VkIGRvd24gdG8gZWFjaCBjYXJkLiAqL1xyXG4gIEBJbnB1dCgpIGF0dGVuZGFuY2VTdGF0ZXM6IFJlY29yZDxzdHJpbmcsIEF0dGVuZGFuY2VTdGF0ZT4gPSB7fTtcclxuXHJcbiAgLyoqIFNldCBvZiBtZWV0aW5nIGlkcyB3aXRoIGFuIGF0dGVuZGFuY2UgYWN0aW9uIGF3YWl0aW5nIHJlc29sdXRpb24uICovXHJcbiAgQElucHV0KCkgaW5GbGlnaHRNZWV0aW5nSWRzOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBob3N0IGhhcyBkZXRlcm1pbmVkIHRoZSB2aWV3cG9ydCBpcyBhdC9iZWxvdyB0aGUgbW9iaWxlIGJyZWFrcG9pbnQuICovXHJcbiAgQElucHV0KCkgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBcIlZpZXcgQWxsXCIgbGluayBpcyBhY3RpdmF0ZWQgKFJlcSA1LjIpLiAqL1xyXG4gIEBPdXRwdXQoKSB2aWV3QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKiogQnViYmxlcyB0aGUgZXZlbnQgaWQgd2hlbiBhIGNhcmQncyBcIlZpZXcgRXZlbnRcIiBidXR0b24gaXMgYWN0aXZhdGVkIChSZXEgNi40KS4gKi9cclxuICBAT3V0cHV0KCkgdmlld0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBtZWV0aW5nIGlkIHdoZW4gYSBjYXJkJ3MgbWVldGluZy1uYW1lIGxpbmsgaXMgYWN0aXZhdGVkIChSZXEgNy40KS4gKi9cclxuICBAT3V0cHV0KCkgb3Blbk1lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgdGhlIG1lZXRpbmcgaWQgd2hlbiBhIGNhcmQgcmVxdWVzdHMgbG9nZ2luZyBhdHRlbmRhbmNlIChSZXEgNy43KS4gKi9cclxuICBAT3V0cHV0KCkgbG9nQXR0ZW5kYW5jZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogQnViYmxlcyB0aGUgbWVldGluZyBpZCB3aGVuIGEgY2FyZCByZXF1ZXN0cyBsZWF2aW5nIHRoZSBtZWV0aW5nIChSZXEgNy44KS4gKi9cclxuICBAT3V0cHV0KCkgbGVhdmVNZWV0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB0aGUgcmVxdWVzdGVkIHBhZ2UgdGFnZ2VkIHdpdGggaXRzIGV2ZW50IGlkIHdoZW4gYSBjYXJkIHBhZ2luYXRlcyAoUmVxIDYuOSkuICovXHJcbiAgQE91dHB1dCgpIG1lZXRpbmdQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGV2ZW50SWQ6IHN0cmluZyB9ICYgUGFnZUNoYW5nZT4oKTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHNlY3Rpb24ncyBjYXJkIGxpc3QgaXMgY3VycmVudGx5IGV4cGFuZGVkOyBzdGFydHMgY29sbGFwc2VkLiAqL1xyXG4gIGlzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogYHRyYWNrQnlgIGZvciB0aGUgZXZlbnQtZ3JvdXAtY2FyZCBgKm5nRm9yYCwga2V5ZWQgYnkgdGhlIHN0YWJsZSBldmVudCBpZCBzb1xyXG4gICAqIEFuZ3VsYXIgcmVuZGVycyBleGFjdGx5IG9uZSBjYXJkIHBlciBldmVudCBpbiBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LCAxNC40KS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggLSBUaGUgaXRlcmF0aW9uIGluZGV4IChmYWxsYmFjayBrZXkpLlxyXG4gICAqIEBwYXJhbSB7VXBjb21pbmdFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgZm9yIHRoaXMgY2FyZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzdGFibGUgdHJhY2sga2V5IChldmVudCBpZCkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5RXZlbnRJZChpbmRleDogbnVtYmVyLCBldmVudDogVXBjb21pbmdFdmVudCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZXZlbnQ/LmV2ZW50SWQgPz8gYCR7aW5kZXh9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIHNlY3Rpb24ncyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGUsIGludmVydGluZyB0aGUgY2FyZC1saXN0XHJcbiAgICogdmlzaWJpbGl0eSBhbmQgdGhlIGV4cG9zZWQgYGFyaWEtZXhwYW5kZWRgIHZhbHVlIChSZXEgNS40LCAxNC4zKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgXCJWaWV3IEFsbFwiIGxpbmssIGVtaXR0aW5nIHRoZSBgdmlld0FsbGAgaW50ZW50IHRvIHRoZSBob3N0IChSZXEgNS4yKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVmlld0FsbCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0FsbC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIFwiVmlldyBFdmVudFwiIGFjdGl2YXRpb24gdXB3YXJkIChSZXEgNi40KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRJZCAtIFRoZSBldmVudCBpZCBlbWl0dGVkIGJ5IHRoZSBjYXJkLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WaWV3RXZlbnQoZXZlbnRJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdFdmVudC5lbWl0KGV2ZW50SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnViYmxlcyBhIGNhcmQncyBtZWV0aW5nLW5hbWUgbGluayBhY3RpdmF0aW9uIHVwd2FyZCAoUmVxIDcuNCkuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lZXRpbmdJZCAtIFRoZSBtZWV0aW5nIGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbk9wZW5NZWV0aW5nKG1lZXRpbmdJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wZW5NZWV0aW5nLmVtaXQobWVldGluZ0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgbG9nLWF0dGVuZGFuY2UgcmVxdWVzdCB1cHdhcmQgKFJlcSA3LjcpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZWV0aW5nSWQgLSBUaGUgbWVldGluZyBpZCBlbWl0dGVkIGJ5IHRoZSBjYXJkLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Mb2dBdHRlbmRhbmNlKG1lZXRpbmdJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvZ0F0dGVuZGFuY2UuZW1pdChtZWV0aW5nSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnViYmxlcyBhIGNhcmQncyBsZWF2ZS1tZWV0aW5nIHJlcXVlc3QgdXB3YXJkIChSZXEgNy44KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVldGluZ0lkIC0gVGhlIG1lZXRpbmcgaWQgZW1pdHRlZCBieSB0aGUgY2FyZC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTGVhdmVNZWV0aW5nKG1lZXRpbmdJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmxlYXZlTWVldGluZy5lbWl0KG1lZXRpbmdJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYXBzIGEgY2FyZCdzIGBwYWdlQ2hhbmdlYCBpbnRvIGEgYG1lZXRpbmdQYWdlQ2hhbmdlYCB0YWdnZWQgd2l0aCB0aGVcclxuICAgKiBvcmlnaW5hdGluZyBldmVudCBpZCBzbyB0aGUgaG9zdCBjYW4gcGFnZSB0aGUgY29ycmVjdCBldmVudCAoUmVxIDYuOSkuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50SWQgLSBUaGUgaWQgb2YgdGhlIGV2ZW50IHdob3NlIGNhcmQgcGFnaW5hdGVkLlxyXG4gICAqIEBwYXJhbSB7UGFnZUNoYW5nZX0gcGFnZSAtIFRoZSByZXF1ZXN0ZWQgcGFnZSBmcm9tIHRoZSBjYXJkIHBhZ2luYXRvci5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVldGluZ1BhZ2VDaGFuZ2UoZXZlbnRJZDogc3RyaW5nLCBwYWdlOiBQYWdlQ2hhbmdlKTogdm9pZCB7XHJcbiAgICB0aGlzLm1lZXRpbmdQYWdlQ2hhbmdlLmVtaXQoeyBldmVudElkLCAuLi5wYWdlIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvblxyXG4gIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c1wiXHJcbiAgW2NsYXNzLmllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHMtLW1vYmlsZV09XCJpc01vYmlsZVZpZXdcIlxyXG4+XHJcbiAgPGhlYWRlciBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2hlYWRlclwiPlxyXG4gICAgPCEtLSBTZWN0aW9uIHRpdGxlIChSZXEgNS4xKS4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19faGVhZGluZ1wiPlxyXG4gICAgICA8aDIgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX190aXRsZVwiPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cz8udXBjb21pbmdTZWN0aW9uPy50aXRsZSA/PyAnVXBjb21pbmcgTWVldGluZ3MgJiBFdmVudHMnIH19XHJcbiAgICAgIDwvaDI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFZpZXcgQWxsIGxpbmsgKyBFeHBhbmQvQ29sbGFwc2UgdG9nZ2xlLCBtYXRjaGluZyB0aGUgWW91ciBHcm91cHMgY2FyZFxyXG4gICAgICAgICBoZWFkZXIgKFJlcSA1LjEsIDUuMiwgNS4zLCA1LjQsIDE0LjMpLiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19hY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3ZpZXctYWxsXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbnN0YW50cz8udXBjb21pbmdTZWN0aW9uPy5hcmlhTGFiZWw/LnZpZXdBbGwgPz8gJ1ZpZXcgYWxsIHVwY29taW5nIG1lZXRpbmdzIGFuZCBldmVudHMnXCJcclxuICAgICAgICAoY2xpY2spPVwib25WaWV3QWxsKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgY29uc3RhbnRzPy51cGNvbWluZ1NlY3Rpb24/LnZpZXdBbGxMYWJlbCA/PyAnVmlldyBBbGwnIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdG9nZ2xlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy51cGNvbWluZ1NlY3Rpb24/LmFyaWFMYWJlbD8udG9nZ2xlID8/ICdDb2xsYXBzZSBvciBleHBhbmQgdXBjb21pbmcgbWVldGluZ3MgYW5kIGV2ZW50cydcIlxyXG4gICAgICAgIChjbGljayk9XCJvblRvZ2dsZUV4cGFuZGVkKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4+e3sgaXNFeHBhbmRlZCA/IChjb25zdGFudHM/LnVwY29taW5nU2VjdGlvbj8uY29sbGFwc2VMYWJlbCA/PyAnQ29sbGFwc2UnKSA6IChjb25zdGFudHM/LnVwY29taW5nU2VjdGlvbj8uZXhwYW5kTGFiZWwgPz8gJ0V4cGFuZCcpIH19PC9zcGFuPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBjbGFzcz1cImZhLXNvbGlkXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzRXhwYW5kZWQgPyAnZmEtY2hldnJvbi11cCcgOiAnZmEtY2hldnJvbi1kb3duJ1wiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDwhLS0gQ2FyZCBsaXN0LCBzaG93biBvbmx5IHdoaWxlIGV4cGFuZGVkIChSZXEgNS40KS4gLS0+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJpc0V4cGFuZGVkXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fYm9keVwiXHJcbiAgPlxyXG4gICAgPCEtLSBMb2FkZXIgcmVnaW9uIChSZXEgMTMuMSkuIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cInNlY3Rpb25TdGF0ZSA9PT0gc2VjdGlvblN0YXRlcy5MT0FESU5HXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19sb2FkZXJcIlxyXG4gICAgPlxyXG4gICAgICA8aWVlZXNhLWxvYWRlcj48L2llZWVzYS1sb2FkZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIENvbnRlbnQgcmVnaW9uOiBvbmUgY2FyZCBwZXIgZXZlbnQgcHJlc2VydmluZyBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LCAxMy4yKS4gLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwic2VjdGlvblN0YXRlID09PSBzZWN0aW9uU3RhdGVzLkxPQURFRFwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fY2FyZHNcIlxyXG4gICAgPlxyXG4gICAgICA8aWVlZXNhLWV2ZW50LWdyb3VwLWNhcmRcclxuICAgICAgICAqbmdGb3I9XCJsZXQgZXZlbnQgb2YgZXZlbnRzOyB0cmFja0J5OiB0cmFja0J5RXZlbnRJZFwiXHJcbiAgICAgICAgW2V2ZW50XT1cImV2ZW50XCJcclxuICAgICAgICBbcGVybWlzc2lvbnNdPVwicGVybWlzc2lvbnNcIlxyXG4gICAgICAgIFthdHRlbmRhbmNlU3RhdGVzXT1cImF0dGVuZGFuY2VTdGF0ZXNcIlxyXG4gICAgICAgIFtpbkZsaWdodE1lZXRpbmdJZHNdPVwiaW5GbGlnaHRNZWV0aW5nSWRzXCJcclxuICAgICAgICBbaXNNb2JpbGVWaWV3XT1cImlzTW9iaWxlVmlld1wiXHJcbiAgICAgICAgKHZpZXdFdmVudCk9XCJvblZpZXdFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAob3Blbk1lZXRpbmcpPVwib25PcGVuTWVldGluZygkZXZlbnQpXCJcclxuICAgICAgICAobG9nQXR0ZW5kYW5jZSk9XCJvbkxvZ0F0dGVuZGFuY2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGxlYXZlTWVldGluZyk9XCJvbkxlYXZlTWVldGluZygkZXZlbnQpXCJcclxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvbk1lZXRpbmdQYWdlQ2hhbmdlKGV2ZW50LmV2ZW50SWQsICRldmVudClcIlxyXG4gICAgICA+PC9pZWVlc2EtZXZlbnQtZ3JvdXAtY2FyZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gRW1wdHktc3RhdGUgcmVnaW9uIChSZXEgMTMuMykuIC0tPlxyXG4gICAgPHBcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuRU1QVFlcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2VtcHR5XCJcclxuICAgID5cclxuICAgICAge3sgY29uc3RhbnRzPy51cGNvbWluZ1NlY3Rpb24/LmVtcHR5TWVzc2FnZSA/PyAnWW91IGhhdmUgbm8gdXBjb21pbmcgbWVldGluZ3Mgb3IgZXZlbnRzLicgfX1cclxuICAgIDwvcD5cclxuXHJcbiAgICA8IS0tIEVycm9yIHJlZ2lvbiAoUmVxIDEzLjUpLiAtLT5cclxuICAgIDxwXHJcbiAgICAgICpuZ0lmPVwic2VjdGlvblN0YXRlID09PSBzZWN0aW9uU3RhdGVzLkVSUk9SXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19lcnJvclwiXHJcbiAgICAgIHJvbGU9XCJhbGVydFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGNvbnN0YW50cz8udXBjb21pbmdTZWN0aW9uPy5lcnJvck1lc3NhZ2UgPz8gJ1VuYWJsZSB0byBsb2FkIHVwY29taW5nIG1lZXRpbmdzIGFuZCBldmVudHMuIFBsZWFzZSB0cnkgYWdhaW4uJyB9fVxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
@@ -0,0 +1,151 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
3
+ import * as constants from '../../assets/constants.json';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ /**
7
+ * Identifies which dashboard section a "Jump to" shortcut targets, emitted via
8
+ * {@link DashboardWelcomeHeaderComponent.shortcutSelected} for the host/container
9
+ * to scroll to or navigate.
10
+ */
11
+ // eslint-disable-next-line no-unused-vars
12
+ export var DashboardJumpTarget;
13
+ (function (DashboardJumpTarget) {
14
+ // eslint-disable-next-line no-unused-vars
15
+ DashboardJumpTarget["MEETINGS"] = "MEETINGS";
16
+ // eslint-disable-next-line no-unused-vars
17
+ DashboardJumpTarget["GROUPS"] = "GROUPS";
18
+ })(DashboardJumpTarget || (DashboardJumpTarget = {}));
19
+ /**
20
+ * Welcome_Header renders the personalized greeting and the "Jump to" shortcut
21
+ * control at the top of the dashboard.
22
+ *
23
+ * The greeting is composed from the greeting label in `constants.json` and the
24
+ * supplied `userName`, falling back to the configured fallback greeting when the
25
+ * name is empty or undefined. The "Jump to" control shows one circular icon per
26
+ * dashboard section (Upcoming Meetings & Events, Your Groups); hovering or
27
+ * focusing an icon expands it into a pill with the section label and a count
28
+ * badge (the counts are supplied by the host via `meetingsCount` /
29
+ * `groupsCount`). Activating a shortcut emits {@link shortcutSelected} with the
30
+ * target section for the host to act on. Purely presentational — no API work.
31
+ * @export
32
+ * @class DashboardWelcomeHeaderComponent
33
+ */
34
+ export class DashboardWelcomeHeaderComponent {
35
+ constructor() {
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ this.constants = constants;
38
+ /** User-facing strings sourced from `constants.json`. */
39
+ this.texts = this.constants?.welcomeHeader;
40
+ /** Enum reference for template comparisons. */
41
+ this.jumpTarget = DashboardJumpTarget;
42
+ this.userNameValue = '';
43
+ this.meetingsCountValue = 0;
44
+ this.groupsCountValue = 0;
45
+ /** Emits the selected "Jump to" target for the host to act on. */
46
+ this.shortcutSelected = new EventEmitter();
47
+ /** The jump shortcuts rendered in the control, rebuilt when counts change. */
48
+ this.shortcuts = this.buildShortcutList();
49
+ }
50
+ /**
51
+ * The signed-in user's display name. Drives the personalized greeting; when
52
+ * empty or undefined the greeting falls back to the configured fallback text.
53
+ * @memberof DashboardWelcomeHeaderComponent
54
+ */
55
+ set userName(value) {
56
+ this.userNameValue = value ?? '';
57
+ }
58
+ get userName() {
59
+ return this.userNameValue;
60
+ }
61
+ /** Count shown in the Upcoming Meetings & Events shortcut badge. */
62
+ set meetingsCount(value) {
63
+ this.meetingsCountValue = value ?? 0;
64
+ this.buildShortcuts();
65
+ }
66
+ get meetingsCount() {
67
+ return this.meetingsCountValue;
68
+ }
69
+ /** Count shown in the Your Groups shortcut badge. */
70
+ set groupsCount(value) {
71
+ this.groupsCountValue = value ?? 0;
72
+ this.buildShortcuts();
73
+ }
74
+ get groupsCount() {
75
+ return this.groupsCountValue;
76
+ }
77
+ /**
78
+ * The personalized greeting: the greeting label plus the user's name when
79
+ * present, otherwise the configured fallback greeting.
80
+ * @readonly
81
+ * @memberof DashboardWelcomeHeaderComponent
82
+ */
83
+ get greeting() {
84
+ const name = this.userName?.trim();
85
+ return name
86
+ ? `${this.texts?.greeting}${name}!`
87
+ : `${this.texts?.fallbackGreeting}!`;
88
+ }
89
+ /**
90
+ * Emits the chosen shortcut's target for the host to scroll/navigate to.
91
+ * @param {DashboardJumpTarget} target - The selected section.
92
+ * @memberof DashboardWelcomeHeaderComponent
93
+ */
94
+ onShortcutClick(target) {
95
+ this.shortcutSelected.emit(target);
96
+ }
97
+ /**
98
+ * TrackBy for the shortcut list.
99
+ * @param {number} _index
100
+ * @param {JumpShortcut} shortcut
101
+ * @return {string}
102
+ * @memberof DashboardWelcomeHeaderComponent
103
+ */
104
+ trackByTarget(_index, shortcut) {
105
+ return shortcut.target;
106
+ }
107
+ /** Rebuilds the shortcut list so the template reflects the latest counts. */
108
+ buildShortcuts() {
109
+ this.shortcuts = this.buildShortcutList();
110
+ }
111
+ /**
112
+ * Builds the shortcut view models from `constants.json` and the current
113
+ * counts.
114
+ * @return {JumpShortcut[]}
115
+ * @memberof DashboardWelcomeHeaderComponent
116
+ */
117
+ buildShortcutList() {
118
+ const shortcutTexts = this.constants?.welcomeHeader?.shortcuts;
119
+ return [
120
+ {
121
+ target: DashboardJumpTarget.MEETINGS,
122
+ label: shortcutTexts?.meetings?.label,
123
+ iconUrl: shortcutTexts?.meetings?.iconUrl,
124
+ ariaLabel: shortcutTexts?.meetings?.ariaLabel,
125
+ count: this.meetingsCountValue,
126
+ },
127
+ {
128
+ target: DashboardJumpTarget.GROUPS,
129
+ label: shortcutTexts?.groups?.label,
130
+ iconUrl: shortcutTexts?.groups?.iconUrl,
131
+ ariaLabel: shortcutTexts?.groups?.ariaLabel,
132
+ count: this.groupsCountValue,
133
+ },
134
+ ];
135
+ }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardWelcomeHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardWelcomeHeaderComponent, isStandalone: true, selector: "ieeesa-dashboard-welcome-header", inputs: { userName: "userName", meetingsCount: "meetingsCount", groupsCount: "groupsCount" }, outputs: { shortcutSelected: "shortcutSelected" }, ngImport: i0, template: "<div class=\"ieeesa-dashboard-welcome-header\">\r\n <!-- Greeting + helper line -->\r\n <div class=\"ieeesa-dashboard-welcome-header__intro\">\r\n <h1 class=\"ieeesa-dashboard-welcome-header__greeting m-0\">\r\n {{ greeting }}\r\n </h1>\r\n <p class=\"ieeesa-dashboard-welcome-header__helper-text m-0\">\r\n {{ texts?.helperText }}\r\n </p>\r\n </div>\r\n\r\n <!-- \"Jump to\" shortcuts: each icon expands on hover/focus into a pill with\r\n the section label and its count badge. -->\r\n <div class=\"ieeesa-dashboard-welcome-header__jump-to\">\r\n <span class=\"ieeesa-dashboard-welcome-header__jump-to-label\">\r\n {{ texts?.jumpToLabel }}\r\n </span>\r\n\r\n <button\r\n *ngFor=\"let shortcut of shortcuts; trackBy: trackByTarget\"\r\n type=\"button\"\r\n class=\"ieeesa-dashboard-welcome-header__shortcut\"\r\n [attr.aria-label]=\"shortcut.ariaLabel + ' (' + shortcut.count + ')'\"\r\n (click)=\"onShortcutClick(shortcut.target)\"\r\n >\r\n <img\r\n class=\"ieeesa-dashboard-welcome-header__shortcut-icon\"\r\n [src]=\"shortcut.iconUrl\"\r\n alt=\"\"\r\n aria-hidden=\"true\"\r\n />\r\n <span class=\"ieeesa-dashboard-welcome-header__shortcut-label\">\r\n {{ shortcut.label }}\r\n </span>\r\n <span class=\"ieeesa-dashboard-welcome-header__shortcut-count\">\r\n {{ shortcut.count }}\r\n </span>\r\n </button>\r\n </div>\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-welcome-header{display:flex;align-items:center;justify-content:flex-start;gap:10%;flex-wrap:wrap}.ieeesa-dashboard-welcome-header__intro{display:flex;flex-direction:column;gap:4px}.ieeesa-dashboard-welcome-header__greeting{font-family:Calibri Bold;font-weight:700;font-style:normal;font-size:18px;line-height:27px;letter-spacing:0px;color:#111}.ieeesa-dashboard-welcome-header__helper-text{font-family:Calibri Regular;font-weight:400;font-style:normal;font-size:12px;line-height:16.5px;letter-spacing:0px;color:#6a7282}.ieeesa-dashboard-welcome-header__jump-to{display:inline-flex;align-items:center;gap:20px;min-width:228px;width:-moz-fit-content;width:fit-content;height:60px;padding-left:18px;padding-right:18px;background-color:#fff;border-radius:10px;box-shadow:0 1px 2px #0003}.ieeesa-dashboard-welcome-header__jump-to-label{font-family:Calibri Bold;font-weight:700;font-size:.8125rem;letter-spacing:.03125em;text-transform:uppercase;color:#333436;white-space:nowrap}.ieeesa-dashboard-welcome-header__shortcut{display:inline-flex;align-items:center;justify-content:center;gap:0;width:40px;height:40px;padding:0;border:1.5px solid #D1D5DC;border-radius:20px;background-color:#fff;color:#00629b;cursor:pointer;overflow:hidden;transition:width .25s ease,padding .25s ease,gap .2s ease,background-color .2s ease,border-color .2s ease}.ieeesa-dashboard-welcome-header__shortcut:hover,.ieeesa-dashboard-welcome-header__shortcut:focus-visible{width:auto;gap:8px;padding:0 14px;border-color:#00629b;background-color:#eaf3f9;outline:none}.ieeesa-dashboard-welcome-header__shortcut-icon{flex:0 0 auto;width:20px;height:20px;display:block}.ieeesa-dashboard-welcome-header__shortcut-label{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-family:Calibri Bold;font-weight:700;font-size:.875rem;color:#333436;transition:max-width .25s ease,opacity .2s ease}.ieeesa-dashboard-welcome-header__shortcut-count{display:inline-flex;align-items:center;justify-content:center;max-width:0;padding:0;opacity:0;overflow:hidden;border-radius:12px;background-color:#eaf3f9;color:#00629b;font-family:Calibri Bold;font-weight:700;font-size:.75rem;white-space:nowrap;transition:max-width .25s ease,opacity .2s ease,padding .2s ease}.ieeesa-dashboard-welcome-header__shortcut:hover .ieeesa-dashboard-welcome-header__shortcut-label,.ieeesa-dashboard-welcome-header__shortcut:focus-visible .ieeesa-dashboard-welcome-header__shortcut-label{max-width:240px;opacity:1}.ieeesa-dashboard-welcome-header__shortcut:hover .ieeesa-dashboard-welcome-header__shortcut-count,.ieeesa-dashboard-welcome-header__shortcut:focus-visible .ieeesa-dashboard-welcome-header__shortcut-count{max-width:48px;padding:2px 10px;opacity:1}@media (max-width: 767px){.ieeesa-dashboard-welcome-header{align-items:flex-start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None }); }
138
+ }
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardWelcomeHeaderComponent, decorators: [{
140
+ type: Component,
141
+ args: [{ selector: 'ieeesa-dashboard-welcome-header', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-dashboard-welcome-header\">\r\n <!-- Greeting + helper line -->\r\n <div class=\"ieeesa-dashboard-welcome-header__intro\">\r\n <h1 class=\"ieeesa-dashboard-welcome-header__greeting m-0\">\r\n {{ greeting }}\r\n </h1>\r\n <p class=\"ieeesa-dashboard-welcome-header__helper-text m-0\">\r\n {{ texts?.helperText }}\r\n </p>\r\n </div>\r\n\r\n <!-- \"Jump to\" shortcuts: each icon expands on hover/focus into a pill with\r\n the section label and its count badge. -->\r\n <div class=\"ieeesa-dashboard-welcome-header__jump-to\">\r\n <span class=\"ieeesa-dashboard-welcome-header__jump-to-label\">\r\n {{ texts?.jumpToLabel }}\r\n </span>\r\n\r\n <button\r\n *ngFor=\"let shortcut of shortcuts; trackBy: trackByTarget\"\r\n type=\"button\"\r\n class=\"ieeesa-dashboard-welcome-header__shortcut\"\r\n [attr.aria-label]=\"shortcut.ariaLabel + ' (' + shortcut.count + ')'\"\r\n (click)=\"onShortcutClick(shortcut.target)\"\r\n >\r\n <img\r\n class=\"ieeesa-dashboard-welcome-header__shortcut-icon\"\r\n [src]=\"shortcut.iconUrl\"\r\n alt=\"\"\r\n aria-hidden=\"true\"\r\n />\r\n <span class=\"ieeesa-dashboard-welcome-header__shortcut-label\">\r\n {{ shortcut.label }}\r\n </span>\r\n <span class=\"ieeesa-dashboard-welcome-header__shortcut-count\">\r\n {{ shortcut.count }}\r\n </span>\r\n </button>\r\n </div>\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-welcome-header{display:flex;align-items:center;justify-content:flex-start;gap:10%;flex-wrap:wrap}.ieeesa-dashboard-welcome-header__intro{display:flex;flex-direction:column;gap:4px}.ieeesa-dashboard-welcome-header__greeting{font-family:Calibri Bold;font-weight:700;font-style:normal;font-size:18px;line-height:27px;letter-spacing:0px;color:#111}.ieeesa-dashboard-welcome-header__helper-text{font-family:Calibri Regular;font-weight:400;font-style:normal;font-size:12px;line-height:16.5px;letter-spacing:0px;color:#6a7282}.ieeesa-dashboard-welcome-header__jump-to{display:inline-flex;align-items:center;gap:20px;min-width:228px;width:-moz-fit-content;width:fit-content;height:60px;padding-left:18px;padding-right:18px;background-color:#fff;border-radius:10px;box-shadow:0 1px 2px #0003}.ieeesa-dashboard-welcome-header__jump-to-label{font-family:Calibri Bold;font-weight:700;font-size:.8125rem;letter-spacing:.03125em;text-transform:uppercase;color:#333436;white-space:nowrap}.ieeesa-dashboard-welcome-header__shortcut{display:inline-flex;align-items:center;justify-content:center;gap:0;width:40px;height:40px;padding:0;border:1.5px solid #D1D5DC;border-radius:20px;background-color:#fff;color:#00629b;cursor:pointer;overflow:hidden;transition:width .25s ease,padding .25s ease,gap .2s ease,background-color .2s ease,border-color .2s ease}.ieeesa-dashboard-welcome-header__shortcut:hover,.ieeesa-dashboard-welcome-header__shortcut:focus-visible{width:auto;gap:8px;padding:0 14px;border-color:#00629b;background-color:#eaf3f9;outline:none}.ieeesa-dashboard-welcome-header__shortcut-icon{flex:0 0 auto;width:20px;height:20px;display:block}.ieeesa-dashboard-welcome-header__shortcut-label{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-family:Calibri Bold;font-weight:700;font-size:.875rem;color:#333436;transition:max-width .25s ease,opacity .2s ease}.ieeesa-dashboard-welcome-header__shortcut-count{display:inline-flex;align-items:center;justify-content:center;max-width:0;padding:0;opacity:0;overflow:hidden;border-radius:12px;background-color:#eaf3f9;color:#00629b;font-family:Calibri Bold;font-weight:700;font-size:.75rem;white-space:nowrap;transition:max-width .25s ease,opacity .2s ease,padding .2s ease}.ieeesa-dashboard-welcome-header__shortcut:hover .ieeesa-dashboard-welcome-header__shortcut-label,.ieeesa-dashboard-welcome-header__shortcut:focus-visible .ieeesa-dashboard-welcome-header__shortcut-label{max-width:240px;opacity:1}.ieeesa-dashboard-welcome-header__shortcut:hover .ieeesa-dashboard-welcome-header__shortcut-count,.ieeesa-dashboard-welcome-header__shortcut:focus-visible .ieeesa-dashboard-welcome-header__shortcut-count{max-width:48px;padding:2px 10px;opacity:1}@media (max-width: 767px){.ieeesa-dashboard-welcome-header{align-items:flex-start}}\n"] }]
142
+ }], propDecorators: { userName: [{
143
+ type: Input
144
+ }], meetingsCount: [{
145
+ type: Input
146
+ }], groupsCount: [{
147
+ type: Input
148
+ }], shortcutSelected: [{
149
+ type: Output
150
+ }] } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvd2VsY29tZS1oZWFkZXIvZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvd2VsY29tZS1oZWFkZXIvZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFekQ7Ozs7R0FJRztBQUNILDBDQUEwQztBQUMxQyxNQUFNLENBQU4sSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzdCLDBDQUEwQztJQUMxQyw0Q0FBcUIsQ0FBQTtJQUNyQiwwQ0FBMEM7SUFDMUMsd0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUI7QUFlRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVVILE1BQU0sT0FBTywrQkFBK0I7SUFUNUM7UUFVRSw4REFBOEQ7UUFDN0MsY0FBUyxHQUFRLFNBQVMsQ0FBQztRQUM1Qyx5REFBeUQ7UUFDaEQsVUFBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO1FBRS9DLCtDQUErQztRQUN0QyxlQUFVLEdBQUcsbUJBQW1CLENBQUM7UUFFbEMsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFjbkIsdUJB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RUUsaUNBQWlDLGNBQy9CLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJOzhCQWtCakMsUUFBUTtzQkFEWCxLQUFLO2dCQVdGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBWUYsV0FBVztzQkFEZCxLQUFLO2dCQVVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5cclxuLyoqXHJcbiAqIElkZW50aWZpZXMgd2hpY2ggZGFzaGJvYXJkIHNlY3Rpb24gYSBcIkp1bXAgdG9cIiBzaG9ydGN1dCB0YXJnZXRzLCBlbWl0dGVkIHZpYVxyXG4gKiB7QGxpbmsgRGFzaGJvYXJkV2VsY29tZUhlYWRlckNvbXBvbmVudC5zaG9ydGN1dFNlbGVjdGVkfSBmb3IgdGhlIGhvc3QvY29udGFpbmVyXHJcbiAqIHRvIHNjcm9sbCB0byBvciBuYXZpZ2F0ZS5cclxuICovXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRKdW1wVGFyZ2V0IHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBNRUVUSU5HUyA9ICdNRUVUSU5HUycsXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgR1JPVVBTID0gJ0dST1VQUycsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIHNpbmdsZSBcIkp1bXAgdG9cIiBzaG9ydGN1dCByZW5kZXJlZCBpbiB0aGUgd2VsY29tZSBoZWFkZXI6IGEgY2lyY3VsYXIgaWNvblxyXG4gKiB0aGF0IGV4cGFuZHMgb24gaG92ZXIvZm9jdXMgaW50byBhIHBpbGwgc2hvd2luZyB0aGUgc2VjdGlvbiBsYWJlbCBhbmQgaXRzXHJcbiAqIGNvdW50IGJhZGdlLlxyXG4gKi9cclxuaW50ZXJmYWNlIEp1bXBTaG9ydGN1dCB7XHJcbiAgdGFyZ2V0OiBEYXNoYm9hcmRKdW1wVGFyZ2V0O1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgaWNvblVybDogc3RyaW5nO1xyXG4gIGFyaWFMYWJlbDogc3RyaW5nO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXZWxjb21lX0hlYWRlciByZW5kZXJzIHRoZSBwZXJzb25hbGl6ZWQgZ3JlZXRpbmcgYW5kIHRoZSBcIkp1bXAgdG9cIiBzaG9ydGN1dFxyXG4gKiBjb250cm9sIGF0IHRoZSB0b3Agb2YgdGhlIGRhc2hib2FyZC5cclxuICpcclxuICogVGhlIGdyZWV0aW5nIGlzIGNvbXBvc2VkIGZyb20gdGhlIGdyZWV0aW5nIGxhYmVsIGluIGBjb25zdGFudHMuanNvbmAgYW5kIHRoZVxyXG4gKiBzdXBwbGllZCBgdXNlck5hbWVgLCBmYWxsaW5nIGJhY2sgdG8gdGhlIGNvbmZpZ3VyZWQgZmFsbGJhY2sgZ3JlZXRpbmcgd2hlbiB0aGVcclxuICogbmFtZSBpcyBlbXB0eSBvciB1bmRlZmluZWQuIFRoZSBcIkp1bXAgdG9cIiBjb250cm9sIHNob3dzIG9uZSBjaXJjdWxhciBpY29uIHBlclxyXG4gKiBkYXNoYm9hcmQgc2VjdGlvbiAoVXBjb21pbmcgTWVldGluZ3MgJiBFdmVudHMsIFlvdXIgR3JvdXBzKTsgaG92ZXJpbmcgb3JcclxuICogZm9jdXNpbmcgYW4gaWNvbiBleHBhbmRzIGl0IGludG8gYSBwaWxsIHdpdGggdGhlIHNlY3Rpb24gbGFiZWwgYW5kIGEgY291bnRcclxuICogYmFkZ2UgKHRoZSBjb3VudHMgYXJlIHN1cHBsaWVkIGJ5IHRoZSBob3N0IHZpYSBgbWVldGluZ3NDb3VudGAgL1xyXG4gKiBgZ3JvdXBzQ291bnRgKS4gQWN0aXZhdGluZyBhIHNob3J0Y3V0IGVtaXRzIHtAbGluayBzaG9ydGN1dFNlbGVjdGVkfSB3aXRoIHRoZVxyXG4gKiB0YXJnZXQgc2VjdGlvbiBmb3IgdGhlIGhvc3QgdG8gYWN0IG9uLiBQdXJlbHkgcHJlc2VudGF0aW9uYWwg4oCUIG5vIEFQSSB3b3JrLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBEYXNoYm9hcmRXZWxjb21lSGVhZGVyQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWRhc2hib2FyZC13ZWxjb21lLWhlYWRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXNoYm9hcmQtd2VsY29tZS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkV2VsY29tZUhlYWRlckNvbXBvbmVudCB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIC8qKiBVc2VyLWZhY2luZyBzdHJpbmdzIHNvdXJjZWQgZnJvbSBgY29uc3RhbnRzLmpzb25gLiAqL1xyXG4gIHJlYWRvbmx5IHRleHRzID0gdGhpcy5jb25zdGFudHM/LndlbGNvbWVIZWFkZXI7XHJcblxyXG4gIC8qKiBFbnVtIHJlZmVyZW5jZSBmb3IgdGVtcGxhdGUgY29tcGFyaXNvbnMuICovXHJcbiAgcmVhZG9ubHkganVtcFRhcmdldCA9IERhc2hib2FyZEp1bXBUYXJnZXQ7XHJcblxyXG4gIHByaXZhdGUgdXNlck5hbWVWYWx1ZSA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBzaWduZWQtaW4gdXNlcidzIGRpc3BsYXkgbmFtZS4gRHJpdmVzIHRoZSBwZXJzb25hbGl6ZWQgZ3JlZXRpbmc7IHdoZW5cclxuICAgKiBlbXB0eSBvciB1bmRlZmluZWQgdGhlIGdyZWV0aW5nIGZhbGxzIGJhY2sgdG8gdGhlIGNvbmZpZ3VyZWQgZmFsbGJhY2sgdGV4dC5cclxuICAgKiBAbWVtYmVyb2YgRGFzaGJvYXJkV2VsY29tZUhlYWRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHVzZXJOYW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudXNlck5hbWVWYWx1ZSA9IHZhbHVlID8/ICcnO1xyXG4gIH1cclxuICBnZXQgdXNlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJOYW1lVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1lZXRpbmdzQ291bnRWYWx1ZSA9IDA7XHJcbiAgLyoqIENvdW50IHNob3duIGluIHRoZSBVcGNvbWluZyBNZWV0aW5ncyAmIEV2ZW50cyBzaG9ydGN1dCBiYWRnZS4gKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtZWV0aW5nc0NvdW50KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMubWVldGluZ3NDb3VudFZhbHVlID0gdmFsdWUgPz8gMDtcclxuICAgIHRoaXMuYnVpbGRTaG9ydGN1dHMoKTtcclxuICB9XHJcbiAgZ2V0IG1lZXRpbmdzQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm1lZXRpbmdzQ291bnRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ3JvdXBzQ291bnRWYWx1ZSA9IDA7XHJcbiAgLyoqIENvdW50IHNob3duIGluIHRoZSBZb3VyIEdyb3VwcyBzaG9ydGN1dCBiYWRnZS4gKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBncm91cHNDb3VudCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmdyb3Vwc0NvdW50VmFsdWUgPSB2YWx1ZSA/PyAwO1xyXG4gICAgdGhpcy5idWlsZFNob3J0Y3V0cygpO1xyXG4gIH1cclxuICBnZXQgZ3JvdXBzQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdyb3Vwc0NvdW50VmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdHMgdGhlIHNlbGVjdGVkIFwiSnVtcCB0b1wiIHRhcmdldCBmb3IgdGhlIGhvc3QgdG8gYWN0IG9uLiAqL1xyXG4gIEBPdXRwdXQoKSBzaG9ydGN1dFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRKdW1wVGFyZ2V0PigpO1xyXG5cclxuICAvKiogVGhlIGp1bXAgc2hvcnRjdXRzIHJlbmRlcmVkIGluIHRoZSBjb250cm9sLCByZWJ1aWx0IHdoZW4gY291bnRzIGNoYW5nZS4gKi9cclxuICBzaG9ydGN1dHM6IEp1bXBTaG9ydGN1dFtdID0gdGhpcy5idWlsZFNob3J0Y3V0TGlzdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcGVyc29uYWxpemVkIGdyZWV0aW5nOiB0aGUgZ3JlZXRpbmcgbGFiZWwgcGx1cyB0aGUgdXNlcidzIG5hbWUgd2hlblxyXG4gICAqIHByZXNlbnQsIG90aGVyd2lzZSB0aGUgY29uZmlndXJlZCBmYWxsYmFjayBncmVldGluZy5cclxuICAgKiBAcmVhZG9ubHlcclxuICAgKiBAbWVtYmVyb2YgRGFzaGJvYXJkV2VsY29tZUhlYWRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBncmVldGluZygpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMudXNlck5hbWU/LnRyaW0oKTtcclxuICAgIHJldHVybiBuYW1lXHJcbiAgICAgID8gYCR7dGhpcy50ZXh0cz8uZ3JlZXRpbmd9JHtuYW1lfSFgXHJcbiAgICAgIDogYCR7dGhpcy50ZXh0cz8uZmFsbGJhY2tHcmVldGluZ30hYDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBjaG9zZW4gc2hvcnRjdXQncyB0YXJnZXQgZm9yIHRoZSBob3N0IHRvIHNjcm9sbC9uYXZpZ2F0ZSB0by5cclxuICAgKiBAcGFyYW0ge0Rhc2hib2FyZEp1bXBUYXJnZXR9IHRhcmdldCAtIFRoZSBzZWxlY3RlZCBzZWN0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBEYXNoYm9hcmRXZWxjb21lSGVhZGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TaG9ydGN1dENsaWNrKHRhcmdldDogRGFzaGJvYXJkSnVtcFRhcmdldCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG9ydGN1dFNlbGVjdGVkLmVtaXQodGFyZ2V0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYWNrQnkgZm9yIHRoZSBzaG9ydGN1dCBsaXN0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBfaW5kZXhcclxuICAgKiBAcGFyYW0ge0p1bXBTaG9ydGN1dH0gc2hvcnRjdXRcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIERhc2hib2FyZFdlbGNvbWVIZWFkZXJDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5VGFyZ2V0KF9pbmRleDogbnVtYmVyLCBzaG9ydGN1dDogSnVtcFNob3J0Y3V0KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBzaG9ydGN1dC50YXJnZXQ7XHJcbiAgfVxyXG5cclxuICAvKiogUmVidWlsZHMgdGhlIHNob3J0Y3V0IGxpc3Qgc28gdGhlIHRlbXBsYXRlIHJlZmxlY3RzIHRoZSBsYXRlc3QgY291bnRzLiAqL1xyXG4gIHByaXZhdGUgYnVpbGRTaG9ydGN1dHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3J0Y3V0cyA9IHRoaXMuYnVpbGRTaG9ydGN1dExpc3QoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkcyB0aGUgc2hvcnRjdXQgdmlldyBtb2RlbHMgZnJvbSBgY29uc3RhbnRzLmpzb25gIGFuZCB0aGUgY3VycmVudFxyXG4gICAqIGNvdW50cy5cclxuICAgKiBAcmV0dXJuIHtKdW1wU2hvcnRjdXRbXX1cclxuICAgKiBAbWVtYmVyb2YgRGFzaGJvYXJkV2VsY29tZUhlYWRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYnVpbGRTaG9ydGN1dExpc3QoKTogSnVtcFNob3J0Y3V0W10ge1xyXG4gICAgY29uc3Qgc2hvcnRjdXRUZXh0cyA9IHRoaXMuY29uc3RhbnRzPy53ZWxjb21lSGVhZGVyPy5zaG9ydGN1dHM7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGFyZ2V0OiBEYXNoYm9hcmRKdW1wVGFyZ2V0Lk1FRVRJTkdTLFxyXG4gICAgICAgIGxhYmVsOiBzaG9ydGN1dFRleHRzPy5tZWV0aW5ncz8ubGFiZWwsXHJcbiAgICAgICAgaWNvblVybDogc2hvcnRjdXRUZXh0cz8ubWVldGluZ3M/Lmljb25VcmwsXHJcbiAgICAgICAgYXJpYUxhYmVsOiBzaG9ydGN1dFRleHRzPy5tZWV0aW5ncz8uYXJpYUxhYmVsLFxyXG4gICAgICAgIGNvdW50OiB0aGlzLm1lZXRpbmdzQ291bnRWYWx1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRhcmdldDogRGFzaGJvYXJkSnVtcFRhcmdldC5HUk9VUFMsXHJcbiAgICAgICAgbGFiZWw6IHNob3J0Y3V0VGV4dHM/Lmdyb3Vwcz8ubGFiZWwsXHJcbiAgICAgICAgaWNvblVybDogc2hvcnRjdXRUZXh0cz8uZ3JvdXBzPy5pY29uVXJsLFxyXG4gICAgICAgIGFyaWFMYWJlbDogc2hvcnRjdXRUZXh0cz8uZ3JvdXBzPy5hcmlhTGFiZWwsXHJcbiAgICAgICAgY291bnQ6IHRoaXMuZ3JvdXBzQ291bnRWYWx1ZSxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyXCI+XHJcbiAgPCEtLSBHcmVldGluZyArIGhlbHBlciBsaW5lIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJpZWVlc2EtZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyX19pbnRyb1wiPlxyXG4gICAgPGgxIGNsYXNzPVwiaWVlZXNhLWRhc2hib2FyZC13ZWxjb21lLWhlYWRlcl9fZ3JlZXRpbmcgbS0wXCI+XHJcbiAgICAgIHt7IGdyZWV0aW5nIH19XHJcbiAgICA8L2gxPlxyXG4gICAgPHAgY2xhc3M9XCJpZWVlc2EtZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyX19oZWxwZXItdGV4dCBtLTBcIj5cclxuICAgICAge3sgdGV4dHM/LmhlbHBlclRleHQgfX1cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBcIkp1bXAgdG9cIiBzaG9ydGN1dHM6IGVhY2ggaWNvbiBleHBhbmRzIG9uIGhvdmVyL2ZvY3VzIGludG8gYSBwaWxsIHdpdGhcclxuICAgICAgIHRoZSBzZWN0aW9uIGxhYmVsIGFuZCBpdHMgY291bnQgYmFkZ2UuIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJpZWVlc2EtZGFzaGJvYXJkLXdlbGNvbWUtaGVhZGVyX19qdW1wLXRvXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1kYXNoYm9hcmQtd2VsY29tZS1oZWFkZXJfX2p1bXAtdG8tbGFiZWxcIj5cclxuICAgICAge3sgdGV4dHM/Lmp1bXBUb0xhYmVsIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdGb3I9XCJsZXQgc2hvcnRjdXQgb2Ygc2hvcnRjdXRzOyB0cmFja0J5OiB0cmFja0J5VGFyZ2V0XCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWRhc2hib2FyZC13ZWxjb21lLWhlYWRlcl9fc2hvcnRjdXRcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNob3J0Y3V0LmFyaWFMYWJlbCArICcgKCcgKyBzaG9ydGN1dC5jb3VudCArICcpJ1wiXHJcbiAgICAgIChjbGljayk9XCJvblNob3J0Y3V0Q2xpY2soc2hvcnRjdXQudGFyZ2V0KVwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1kYXNoYm9hcmQtd2VsY29tZS1oZWFkZXJfX3Nob3J0Y3V0LWljb25cIlxyXG4gICAgICAgIFtzcmNdPVwic2hvcnRjdXQuaWNvblVybFwiXHJcbiAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAvPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1kYXNoYm9hcmQtd2VsY29tZS1oZWFkZXJfX3Nob3J0Y3V0LWxhYmVsXCI+XHJcbiAgICAgICAge3sgc2hvcnRjdXQubGFiZWwgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1kYXNoYm9hcmQtd2VsY29tZS1oZWFkZXJfX3Nob3J0Y3V0LWNvdW50XCI+XHJcbiAgICAgICAge3sgc2hvcnRjdXQuY291bnQgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=