@ieeesa-npm/dashboard 0.0.0-stage → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -3
- package/esm2022/ieeesa-npm-dashboard.mjs +5 -0
- package/esm2022/lib/assets/constants.json +158 -0
- package/esm2022/lib/assets/dashboard-mock.mjs +221 -0
- package/esm2022/lib/assets/dashboard-route-paths.mock.mjs +14 -0
- package/esm2022/lib/assets/dashboard-user-permissions.mock.mjs +23 -0
- package/esm2022/lib/assets/date-formats.mjs +28 -0
- package/esm2022/lib/components/event-group-card/event-group-card.component.mjs +414 -0
- package/esm2022/lib/components/meeting-attendance-row/meeting-attendance-row.component.mjs +182 -0
- package/esm2022/lib/components/member-level-badge/member-level-badge.component.mjs +79 -0
- package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs +261 -0
- package/esm2022/lib/components/welcome-header/dashboard-welcome-header.component.mjs +151 -0
- package/esm2022/lib/components/your-groups/your-groups.component.mjs +243 -0
- package/esm2022/lib/dashboard.component.mjs +417 -0
- package/esm2022/lib/dashboard.module.mjs +16 -0
- package/esm2022/lib/dashboard.routes.mjs +7 -0
- package/esm2022/lib/models/attendance-action-permissions.model.mjs +2 -0
- package/esm2022/lib/models/attendance-state.model.mjs +7 -0
- package/esm2022/lib/models/dashboard-list-response.model.mjs +2 -0
- package/esm2022/lib/models/dashboard-route-config.model.mjs +2 -0
- package/esm2022/lib/models/dashboard-section-state.model.mjs +9 -0
- package/esm2022/lib/models/dashboard-user-info.model.mjs +2 -0
- package/esm2022/lib/models/event-meeting-list-item.model.mjs +2 -0
- package/esm2022/lib/models/event-meeting-list-payload.model.mjs +8 -0
- package/esm2022/lib/models/group-row.model.mjs +2 -0
- package/esm2022/lib/models/meeting-row.model.mjs +2 -0
- package/esm2022/lib/models/my-groups-view.model.mjs +2 -0
- package/esm2022/lib/models/page-change.model.mjs +2 -0
- package/esm2022/lib/models/upcoming-event.model.mjs +13 -0
- package/esm2022/lib/services/attendance-reducers.mjs +54 -0
- package/esm2022/lib/services/dashboard.service.mjs +402 -0
- package/esm2022/lib/services/user-permissions.service.mjs +50 -0
- package/esm2022/lib/utils/attendance-action.util.mjs +53 -0
- package/esm2022/lib/utils/date-format.util.mjs +110 -0
- package/esm2022/lib/utils/event-meeting-mapper.util.mjs +96 -0
- package/esm2022/public-api.mjs +36 -0
- package/fesm2022/ieeesa-npm-dashboard.mjs +2981 -0
- package/fesm2022/ieeesa-npm-dashboard.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/assets/dashboard-mock.d.ts +31 -0
- package/lib/assets/dashboard-route-paths.mock.d.ts +2 -0
- package/lib/assets/dashboard-user-permissions.mock.d.ts +2 -0
- package/lib/assets/date-formats.d.ts +27 -0
- package/lib/components/event-group-card/event-group-card.component.d.ts +268 -0
- package/lib/components/meeting-attendance-row/meeting-attendance-row.component.d.ts +115 -0
- package/lib/components/member-level-badge/member-level-badge.component.d.ts +177 -0
- package/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.d.ts +175 -0
- package/lib/components/welcome-header/dashboard-welcome-header.component.d.ts +98 -0
- package/lib/components/your-groups/your-groups.component.d.ts +159 -0
- package/lib/dashboard.component.d.ts +414 -0
- package/lib/dashboard.module.d.ts +7 -0
- package/lib/dashboard.routes.d.ts +2 -0
- package/lib/models/attendance-action-permissions.model.d.ts +4 -0
- package/lib/models/attendance-state.model.d.ts +4 -0
- package/lib/models/dashboard-list-response.model.d.ts +5 -0
- package/lib/models/dashboard-route-config.model.d.ts +7 -0
- package/lib/models/dashboard-section-state.model.d.ts +6 -0
- package/lib/models/dashboard-user-info.model.d.ts +5 -0
- package/lib/models/event-meeting-list-item.model.d.ts +107 -0
- package/lib/models/event-meeting-list-payload.model.d.ts +40 -0
- package/lib/models/group-row.model.d.ts +33 -0
- package/lib/models/meeting-row.model.d.ts +28 -0
- package/lib/models/my-groups-view.model.d.ts +56 -0
- package/lib/models/page-change.model.d.ts +4 -0
- package/lib/models/upcoming-event.model.d.ts +51 -0
- package/lib/services/attendance-reducers.d.ts +43 -0
- package/lib/services/dashboard.service.d.ts +202 -0
- package/lib/services/user-permissions.service.d.ts +31 -0
- package/lib/utils/attendance-action.util.d.ts +38 -0
- package/lib/utils/date-format.util.d.ts +60 -0
- package/lib/utils/event-meeting-mapper.util.d.ts +50 -0
- package/package.json +30 -3
- package/public-api.d.ts +26 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { AttendanceState } from '../../models/attendance-state.model';
|
|
4
|
+
import { DateFormats } from '../../assets/date-formats';
|
|
5
|
+
import { AttendanceAction, resolveAttendanceAction, } from '../../utils/attendance-action.util';
|
|
6
|
+
import { formatEpoch } from '../../utils/date-format.util';
|
|
7
|
+
import * as screenTexts from '../../assets/constants.json';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
/**
|
|
11
|
+
* Meeting_Attendance_Row renders a single meeting within an event-group card:
|
|
12
|
+
* the meeting-name link, group/committee, room/location, date, and
|
|
13
|
+
* time+timezone (all luxon-formatted), together with the attendance action
|
|
14
|
+
* button that drives the per-meeting attendance state machine.
|
|
15
|
+
*
|
|
16
|
+
* The component is purely presentational — it emits navigation and attendance
|
|
17
|
+
* intents via `@Output()` and never performs navigation or HTTP itself. The
|
|
18
|
+
* action button delegates to the pure `resolveAttendanceAction` handler so the
|
|
19
|
+
* emit/guard logic is shared with the property-tested core (Property 1), and the
|
|
20
|
+
* displayed state only advances when the host updates `attendanceState`.
|
|
21
|
+
* @export
|
|
22
|
+
* @class MeetingAttendanceRowComponent
|
|
23
|
+
*/
|
|
24
|
+
export class MeetingAttendanceRowComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
this.constants = screenTexts;
|
|
28
|
+
/** The current attendance state controlling label/indicator and action. */
|
|
29
|
+
this.attendanceState = AttendanceState.NOT_ATTENDING;
|
|
30
|
+
/** Whether an attendance action for this meeting is awaiting resolution. */
|
|
31
|
+
this.isInFlight = false;
|
|
32
|
+
/** Host permissions gating the log-attendance / leave-meeting buttons. */
|
|
33
|
+
this.permissions = {
|
|
34
|
+
canLogAttendance: false,
|
|
35
|
+
canLeaveMeeting: false,
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Renders the leaner "standalone meeting" variant used by standalone-meeting
|
|
39
|
+
* cards (the group/location and status live on the parent card, so the row
|
|
40
|
+
* only shows the TIME & TIMEZONE block and the attendance + View actions).
|
|
41
|
+
*/
|
|
42
|
+
this.compact = false;
|
|
43
|
+
/** Emits the meeting id when the meeting-name link is activated (Req 7.4). */
|
|
44
|
+
this.openMeeting = new EventEmitter();
|
|
45
|
+
/** Emits the meeting id to request logging attendance (Req 7.7). */
|
|
46
|
+
this.logAttendance = new EventEmitter();
|
|
47
|
+
/** Emits the meeting id to request leaving the meeting (Req 7.8). */
|
|
48
|
+
this.leaveMeeting = new EventEmitter();
|
|
49
|
+
/** Expose the enum to the template for state comparisons. */
|
|
50
|
+
this.AttendanceState = AttendanceState;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Whether this row is actionable — a non-empty `meetingId` is required for the
|
|
54
|
+
* meeting-name link and action button to emit anything (Req 7.10).
|
|
55
|
+
* @return {boolean} True when the row has a usable meeting id.
|
|
56
|
+
* @memberof MeetingAttendanceRowComponent
|
|
57
|
+
*/
|
|
58
|
+
get isActionable() {
|
|
59
|
+
return !!this.meeting?.meetingId;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Whether the row is in the currently-attending state, which shows the
|
|
63
|
+
* currently-attending indicator and the leave-meeting action (Req 7.5).
|
|
64
|
+
* @return {boolean} True when the attendance state is `CURRENTLY_ATTENDING`.
|
|
65
|
+
* @memberof MeetingAttendanceRowComponent
|
|
66
|
+
*/
|
|
67
|
+
get isCurrentlyAttending() {
|
|
68
|
+
return this.attendanceState === AttendanceState.CURRENTLY_ATTENDING;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Whether the log-attendance button should be shown: only when the row is in
|
|
72
|
+
* the log state (not currently attending) and the host grants
|
|
73
|
+
* `canLogAttendance` (Req 7.6, 12.1).
|
|
74
|
+
* @return {boolean} True when the log-attendance button is visible.
|
|
75
|
+
* @memberof MeetingAttendanceRowComponent
|
|
76
|
+
*/
|
|
77
|
+
get showLogAttendanceButton() {
|
|
78
|
+
return !this.isCurrentlyAttending && !!this.permissions?.canLogAttendance;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Whether the leave-meeting button should be shown: only when the row is in
|
|
82
|
+
* the currently-attending state and the host grants `canLeaveMeeting`
|
|
83
|
+
* (Req 7.5, 12.2).
|
|
84
|
+
* @return {boolean} True when the leave-meeting button is visible.
|
|
85
|
+
* @memberof MeetingAttendanceRowComponent
|
|
86
|
+
*/
|
|
87
|
+
get showLeaveMeetingButton() {
|
|
88
|
+
return this.isCurrentlyAttending && !!this.permissions?.canLeaveMeeting;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Resolves a group-or-committee / room-or-location field value, substituting
|
|
92
|
+
* the empty-field placeholder from `constants.json` when the value is empty or
|
|
93
|
+
* undefined (Req 7.2).
|
|
94
|
+
* @param {string | undefined} value - The raw field value from the meeting.
|
|
95
|
+
* @return {string} The value to display, or the empty-field placeholder.
|
|
96
|
+
* @memberof MeetingAttendanceRowComponent
|
|
97
|
+
*/
|
|
98
|
+
resolveFieldValue(value) {
|
|
99
|
+
const placeholder = this.constants?.meetingRow?.emptyFieldPlaceholder ?? '—';
|
|
100
|
+
return value && value.trim().length > 0 ? value : placeholder;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Formats the meeting date for display using the shared luxon display format
|
|
104
|
+
* (Req 7.3). Falls back to the raw value when it cannot be parsed.
|
|
105
|
+
* @return {string} The formatted meeting date.
|
|
106
|
+
* @memberof MeetingAttendanceRowComponent
|
|
107
|
+
*/
|
|
108
|
+
get formattedDate() {
|
|
109
|
+
const value = this.meeting?.startDateTime ?? this.meeting?.meetingDate;
|
|
110
|
+
return formatEpoch(value, DateFormats.displayFormat, this.meeting?.timezone);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Formats the meeting time + timezone for display using luxon (Req 7.3).
|
|
114
|
+
* The timezone abbreviation from the meeting model is appended to the parsed
|
|
115
|
+
* time. Falls back to the raw value when it cannot be parsed.
|
|
116
|
+
* @return {string} The formatted meeting time with timezone.
|
|
117
|
+
* @memberof MeetingAttendanceRowComponent
|
|
118
|
+
*/
|
|
119
|
+
get formattedTime() {
|
|
120
|
+
const timezone = this.meeting?.timezone ?? '';
|
|
121
|
+
const startValue = this.meeting?.startDateTime ?? this.meeting?.meetingTime;
|
|
122
|
+
const start = formatEpoch(startValue, DateFormats.timeMeridiemFormat, timezone);
|
|
123
|
+
const end = formatEpoch(this.meeting?.endDateTime, DateFormats.timeMeridiemFormat, timezone);
|
|
124
|
+
const range = end ? `${start} – ${end}` : start;
|
|
125
|
+
if (!range) {
|
|
126
|
+
return '';
|
|
127
|
+
}
|
|
128
|
+
return timezone ? `${range} ${timezone}` : range;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Handles activation of the attendance action button. Delegates to the pure
|
|
132
|
+
* `resolveAttendanceAction` handler and emits exactly one event based on the
|
|
133
|
+
* resolved action: `logAttendance` for `LOG_ATTENDANCE`, `leaveMeeting` for
|
|
134
|
+
* `LEAVE_MEETING`, and nothing for `NONE` (empty id or in-flight)
|
|
135
|
+
* (Req 7.7, 7.8, 7.9, 7.10, 13.6).
|
|
136
|
+
* @memberof MeetingAttendanceRowComponent
|
|
137
|
+
*/
|
|
138
|
+
onAttendanceAction() {
|
|
139
|
+
const action = resolveAttendanceAction(this.attendanceState, this.isInFlight, this.meeting?.meetingId);
|
|
140
|
+
if (action === AttendanceAction.LOG_ATTENDANCE) {
|
|
141
|
+
this.logAttendance.emit(this.meeting.meetingId);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (action === AttendanceAction.LEAVE_MEETING) {
|
|
145
|
+
this.leaveMeeting.emit(this.meeting.meetingId);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Handles activation of the meeting-name link. Emits the meeting id only when
|
|
150
|
+
* the row is actionable (non-empty meeting id) (Req 7.4, 7.10).
|
|
151
|
+
* @memberof MeetingAttendanceRowComponent
|
|
152
|
+
*/
|
|
153
|
+
onOpenMeeting() {
|
|
154
|
+
if (!this.isActionable) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
this.openMeeting.emit(this.meeting.meetingId);
|
|
158
|
+
}
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MeetingAttendanceRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MeetingAttendanceRowComponent, isStandalone: true, selector: "ieeesa-meeting-attendance-row", inputs: { meeting: "meeting", attendanceState: "attendanceState", isInFlight: "isInFlight", permissions: "permissions", compact: "compact" }, outputs: { openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-meeting-attendance-row\"\r\n [class.ieeesa-meeting-attendance-row--compact]=\"compact\"\r\n>\r\n <!-- Meeting name + group/location (hidden in the compact standalone variant). -->\r\n <div class=\"ieeesa-meeting-attendance-row__name-col\">\r\n <ng-container *ngIf=\"!compact\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__name-link\"\r\n [disabled]=\"!isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.meetingNameLink\"\r\n (click)=\"onOpenMeeting()\"\r\n >\r\n {{ meeting.meetingName }}\r\n </button>\r\n\r\n <p class=\"ieeesa-meeting-attendance-row__subtitle\">\r\n {{ resolveFieldValue(meeting.groupOrCommittee) }}<ng-container\r\n *ngIf=\"meeting.roomOrLocation\"\r\n > · {{ meeting.roomOrLocation }}</ng-container>\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- MEETING DATE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--date\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.eventGroupCard.meetingDateLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedDate }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- TIME & TIMEZONE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--time\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.meetingRow.timeTimezoneLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedTime }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- Attendance indicator + actions column. -->\r\n <div class=\"ieeesa-meeting-attendance-row__actions\">\r\n <!-- Currently-attending pill shown only in the attending state. -->\r\n <span\r\n *ngIf=\"isCurrentlyAttending\"\r\n class=\"ieeesa-meeting-attendance-row__attending-pill\"\r\n >\r\n <span class=\"ieeesa-meeting-attendance-row__attending-dot\" aria-hidden=\"true\"></span>\r\n {{ constants.meetingRow.currentlyAttendingIndicator }}\r\n </span>\r\n\r\n <!-- Log-attendance button: shown in the log state with the permission. -->\r\n <button\r\n *ngIf=\"showLogAttendanceButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--log\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.logAttendance\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.logAttendanceLabel }}\r\n </button>\r\n\r\n <!-- Leave-meeting button: shown in the attending state with the permission. -->\r\n <button\r\n *ngIf=\"showLeaveMeetingButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--leave\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.leaveMeeting\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.leaveMeetingLabel }}\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-meeting-attendance-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) minmax(180px,1.2fr) auto;align-items:center;column-gap:24px;min-height:72px;padding:16px 20px;background-color:#fff;font-family:Calibri Regular}.ieeesa-meeting-attendance-row__name-col{display:flex;flex-direction:column;gap:4px;min-width:0}.ieeesa-meeting-attendance-row__name-link{padding:0;border:0;background:none;text-align:left;text-decoration:underline;font-family:Calibri Bold;font-size:1rem;line-height:20px;color:#00629b;cursor:pointer}.ieeesa-meeting-attendance-row__name-link:disabled{color:#939094;text-decoration:none;cursor:default}.ieeesa-meeting-attendance-row__subtitle{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__col{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.ieeesa-meeting-attendance-row__col-label{font-family:Calibri Bold;font-size:.75rem;letter-spacing:.03125em;text-transform:uppercase;color:#939094}.ieeesa-meeting-attendance-row__col-value{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0}.ieeesa-meeting-attendance-row__attending-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;white-space:nowrap;font-size:.8125rem;color:#1a7f37;background-color:#e8f5ec}.ieeesa-meeting-attendance-row__attending-dot{width:8px;height:8px;border-radius:50%;background-color:#1a7f37}.ieeesa-meeting-attendance-row__action-button{min-width:146px;padding:10px 16px;border-radius:4px;font-family:Calibri Bold;font-size:.875rem;cursor:pointer}.ieeesa-meeting-attendance-row__action-button--log{border:1px solid #00629b;background-color:#00629b;color:#fff}.ieeesa-meeting-attendance-row__action-button--leave{border:1px solid #00629b;background-color:#fff;color:#00629b}.ieeesa-meeting-attendance-row__action-button:disabled{border-color:#939094;background-color:#939094;color:#fff;cursor:default}.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact)+.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact){border-top:1px solid #d7d6d6}.ieeesa-meeting-attendance-row--compact{grid-template-columns:minmax(180px,1.2fr) auto;padding:0;min-height:0}.ieeesa-meeting-attendance-row--compact .ieeesa-meeting-attendance-row__col--date{display:none}@media (max-width: 767px){.ieeesa-meeting-attendance-row{grid-template-columns:1fr;row-gap:12px}.ieeesa-meeting-attendance-row__actions{justify-content:flex-start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
161
|
+
}
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MeetingAttendanceRowComponent, decorators: [{
|
|
163
|
+
type: Component,
|
|
164
|
+
args: [{ selector: 'ieeesa-meeting-attendance-row', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-meeting-attendance-row\"\r\n [class.ieeesa-meeting-attendance-row--compact]=\"compact\"\r\n>\r\n <!-- Meeting name + group/location (hidden in the compact standalone variant). -->\r\n <div class=\"ieeesa-meeting-attendance-row__name-col\">\r\n <ng-container *ngIf=\"!compact\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__name-link\"\r\n [disabled]=\"!isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.meetingNameLink\"\r\n (click)=\"onOpenMeeting()\"\r\n >\r\n {{ meeting.meetingName }}\r\n </button>\r\n\r\n <p class=\"ieeesa-meeting-attendance-row__subtitle\">\r\n {{ resolveFieldValue(meeting.groupOrCommittee) }}<ng-container\r\n *ngIf=\"meeting.roomOrLocation\"\r\n > · {{ meeting.roomOrLocation }}</ng-container>\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- MEETING DATE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--date\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.eventGroupCard.meetingDateLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedDate }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- TIME & TIMEZONE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--time\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.meetingRow.timeTimezoneLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedTime }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- Attendance indicator + actions column. -->\r\n <div class=\"ieeesa-meeting-attendance-row__actions\">\r\n <!-- Currently-attending pill shown only in the attending state. -->\r\n <span\r\n *ngIf=\"isCurrentlyAttending\"\r\n class=\"ieeesa-meeting-attendance-row__attending-pill\"\r\n >\r\n <span class=\"ieeesa-meeting-attendance-row__attending-dot\" aria-hidden=\"true\"></span>\r\n {{ constants.meetingRow.currentlyAttendingIndicator }}\r\n </span>\r\n\r\n <!-- Log-attendance button: shown in the log state with the permission. -->\r\n <button\r\n *ngIf=\"showLogAttendanceButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--log\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.logAttendance\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.logAttendanceLabel }}\r\n </button>\r\n\r\n <!-- Leave-meeting button: shown in the attending state with the permission. -->\r\n <button\r\n *ngIf=\"showLeaveMeetingButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--leave\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.leaveMeeting\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.leaveMeetingLabel }}\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-meeting-attendance-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) minmax(180px,1.2fr) auto;align-items:center;column-gap:24px;min-height:72px;padding:16px 20px;background-color:#fff;font-family:Calibri Regular}.ieeesa-meeting-attendance-row__name-col{display:flex;flex-direction:column;gap:4px;min-width:0}.ieeesa-meeting-attendance-row__name-link{padding:0;border:0;background:none;text-align:left;text-decoration:underline;font-family:Calibri Bold;font-size:1rem;line-height:20px;color:#00629b;cursor:pointer}.ieeesa-meeting-attendance-row__name-link:disabled{color:#939094;text-decoration:none;cursor:default}.ieeesa-meeting-attendance-row__subtitle{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__col{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.ieeesa-meeting-attendance-row__col-label{font-family:Calibri Bold;font-size:.75rem;letter-spacing:.03125em;text-transform:uppercase;color:#939094}.ieeesa-meeting-attendance-row__col-value{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0}.ieeesa-meeting-attendance-row__attending-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;white-space:nowrap;font-size:.8125rem;color:#1a7f37;background-color:#e8f5ec}.ieeesa-meeting-attendance-row__attending-dot{width:8px;height:8px;border-radius:50%;background-color:#1a7f37}.ieeesa-meeting-attendance-row__action-button{min-width:146px;padding:10px 16px;border-radius:4px;font-family:Calibri Bold;font-size:.875rem;cursor:pointer}.ieeesa-meeting-attendance-row__action-button--log{border:1px solid #00629b;background-color:#00629b;color:#fff}.ieeesa-meeting-attendance-row__action-button--leave{border:1px solid #00629b;background-color:#fff;color:#00629b}.ieeesa-meeting-attendance-row__action-button:disabled{border-color:#939094;background-color:#939094;color:#fff;cursor:default}.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact)+.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact){border-top:1px solid #d7d6d6}.ieeesa-meeting-attendance-row--compact{grid-template-columns:minmax(180px,1.2fr) auto;padding:0;min-height:0}.ieeesa-meeting-attendance-row--compact .ieeesa-meeting-attendance-row__col--date{display:none}@media (max-width: 767px){.ieeesa-meeting-attendance-row{grid-template-columns:1fr;row-gap:12px}.ieeesa-meeting-attendance-row__actions{justify-content:flex-start}}\n"] }]
|
|
165
|
+
}], propDecorators: { meeting: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], attendanceState: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], isInFlight: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], permissions: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], compact: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], openMeeting: [{
|
|
176
|
+
type: Output
|
|
177
|
+
}], logAttendance: [{
|
|
178
|
+
type: Output
|
|
179
|
+
}], leaveMeeting: [{
|
|
180
|
+
type: Output
|
|
181
|
+
}] } });
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cvbWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cvbWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixHQUN4QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEtBQUssV0FBVyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7R0FhRztBQVVILE1BQU0sT0FBTyw2QkFBNkI7SUFUMUM7UUFVRSw4REFBOEQ7UUFDOUQsY0FBUyxHQUFRLFdBQVcsQ0FBQztRQUs3QiwyRUFBMkU7UUFDbEUsb0JBQWUsR0FBb0IsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUUxRSw0RUFBNEU7UUFDbkUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU1QiwwRUFBMEU7UUFDakUsZ0JBQVcsR0FBZ0M7WUFDbEQsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDO1FBRUY7Ozs7V0FJRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFekIsOEVBQThFO1FBQ3BFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVuRCxvRUFBb0U7UUFDMUQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXJELHFFQUFxRTtRQUMzRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFcEQsNkRBQTZEO1FBQ3BELG9CQUFlLEdBQUcsZUFBZSxDQUFDO0tBMEk1QztJQXhJQzs7Ozs7T0FLRztJQUNILElBQUksWUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGlCQUFpQixDQUFDLEtBQXlCO1FBQ3pDLE1BQU0sV0FBVyxHQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixJQUFJLEdBQUcsQ0FBQztRQUMzRCxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxhQUFhO1FBQ2YsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7UUFDM0QsT0FBTyxXQUFXLENBQ2hCLEtBQUssRUFDTCxXQUFXLENBQUMsYUFBYSxFQUN6QixJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLGFBQWE7UUFDZixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDOUMsTUFBTSxVQUFVLEdBQ2QsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUN2QixVQUFVLEVBQ1YsV0FBVyxDQUFDLGtCQUFrQixFQUM5QixRQUFRLENBQ1QsQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FDckIsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQ3pCLFdBQVcsQ0FBQyxrQkFBa0IsRUFDOUIsUUFBUSxDQUNULENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGtCQUFrQjtRQUNoQixNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FDcEMsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FDeEIsQ0FBQztRQUVGLElBQUksTUFBTSxLQUFLLGdCQUFnQixDQUFDLGNBQWMsRUFBRTtZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hELE9BQU87U0FDUjtRQUVELElBQUksTUFBTSxLQUFLLGdCQUFnQixDQUFDLGFBQWEsRUFBRTtZQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDOytHQTdLVSw2QkFBNkI7bUdBQTdCLDZCQUE2Qiw4VUMxQzFDLDh1R0FpRkEsNDBXRDVDWSxZQUFZOzs0RkFLWCw2QkFBNkI7a0JBVHpDLFNBQVM7K0JBRUUsK0JBQStCLGNBQzdCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJOzhCQU81QixPQUFPO3NCQUFmLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBVUcsT0FBTztzQkFBZixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBR0csYUFBYTtzQkFBdEIsTUFBTTtnQkFHRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXR0ZW5kYW5jZUFjdGlvblBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGFuY2UtYWN0aW9uLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgQXR0ZW5kYW5jZVN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGFuY2Utc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBNZWV0aW5nUm93IH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lZXRpbmctcm93Lm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tICcuLi8uLi9hc3NldHMvZGF0ZS1mb3JtYXRzJztcclxuaW1wb3J0IHtcclxuICBBdHRlbmRhbmNlQWN0aW9uLFxyXG4gIHJlc29sdmVBdHRlbmRhbmNlQWN0aW9uLFxyXG59IGZyb20gJy4uLy4uL3V0aWxzL2F0dGVuZGFuY2UtYWN0aW9uLnV0aWwnO1xyXG5pbXBvcnQgeyBmb3JtYXRFcG9jaCB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGUtZm9ybWF0LnV0aWwnO1xyXG5pbXBvcnQgKiBhcyBzY3JlZW5UZXh0cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5cclxuLyoqXHJcbiAqIE1lZXRpbmdfQXR0ZW5kYW5jZV9Sb3cgcmVuZGVycyBhIHNpbmdsZSBtZWV0aW5nIHdpdGhpbiBhbiBldmVudC1ncm91cCBjYXJkOlxyXG4gKiB0aGUgbWVldGluZy1uYW1lIGxpbmssIGdyb3VwL2NvbW1pdHRlZSwgcm9vbS9sb2NhdGlvbiwgZGF0ZSwgYW5kXHJcbiAqIHRpbWUrdGltZXpvbmUgKGFsbCBsdXhvbi1mb3JtYXR0ZWQpLCB0b2dldGhlciB3aXRoIHRoZSBhdHRlbmRhbmNlIGFjdGlvblxyXG4gKiBidXR0b24gdGhhdCBkcml2ZXMgdGhlIHBlci1tZWV0aW5nIGF0dGVuZGFuY2Ugc3RhdGUgbWFjaGluZS5cclxuICpcclxuICogVGhlIGNvbXBvbmVudCBpcyBwdXJlbHkgcHJlc2VudGF0aW9uYWwg4oCUIGl0IGVtaXRzIG5hdmlnYXRpb24gYW5kIGF0dGVuZGFuY2VcclxuICogaW50ZW50cyB2aWEgYEBPdXRwdXQoKWAgYW5kIG5ldmVyIHBlcmZvcm1zIG5hdmlnYXRpb24gb3IgSFRUUCBpdHNlbGYuIFRoZVxyXG4gKiBhY3Rpb24gYnV0dG9uIGRlbGVnYXRlcyB0byB0aGUgcHVyZSBgcmVzb2x2ZUF0dGVuZGFuY2VBY3Rpb25gIGhhbmRsZXIgc28gdGhlXHJcbiAqIGVtaXQvZ3VhcmQgbG9naWMgaXMgc2hhcmVkIHdpdGggdGhlIHByb3BlcnR5LXRlc3RlZCBjb3JlIChQcm9wZXJ0eSAxKSwgYW5kIHRoZVxyXG4gKiBkaXNwbGF5ZWQgc3RhdGUgb25seSBhZHZhbmNlcyB3aGVuIHRoZSBob3N0IHVwZGF0ZXMgYGF0dGVuZGFuY2VTdGF0ZWAuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnQge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuXHJcbiAgLyoqIFRoZSBtZWV0aW5nIHJlbmRlcmVkIGJ5IHRoaXMgcm93LiAqL1xyXG4gIEBJbnB1dCgpIG1lZXRpbmchOiBNZWV0aW5nUm93O1xyXG5cclxuICAvKiogVGhlIGN1cnJlbnQgYXR0ZW5kYW5jZSBzdGF0ZSBjb250cm9sbGluZyBsYWJlbC9pbmRpY2F0b3IgYW5kIGFjdGlvbi4gKi9cclxuICBASW5wdXQoKSBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZSA9IEF0dGVuZGFuY2VTdGF0ZS5OT1RfQVRURU5ESU5HO1xyXG5cclxuICAvKiogV2hldGhlciBhbiBhdHRlbmRhbmNlIGFjdGlvbiBmb3IgdGhpcyBtZWV0aW5nIGlzIGF3YWl0aW5nIHJlc29sdXRpb24uICovXHJcbiAgQElucHV0KCkgaXNJbkZsaWdodCA9IGZhbHNlO1xyXG5cclxuICAvKiogSG9zdCBwZXJtaXNzaW9ucyBnYXRpbmcgdGhlIGxvZy1hdHRlbmRhbmNlIC8gbGVhdmUtbWVldGluZyBidXR0b25zLiAqL1xyXG4gIEBJbnB1dCgpIHBlcm1pc3Npb25zOiBBdHRlbmRhbmNlQWN0aW9uUGVybWlzc2lvbnMgPSB7XHJcbiAgICBjYW5Mb2dBdHRlbmRhbmNlOiBmYWxzZSxcclxuICAgIGNhbkxlYXZlTWVldGluZzogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVuZGVycyB0aGUgbGVhbmVyIFwic3RhbmRhbG9uZSBtZWV0aW5nXCIgdmFyaWFudCB1c2VkIGJ5IHN0YW5kYWxvbmUtbWVldGluZ1xyXG4gICAqIGNhcmRzICh0aGUgZ3JvdXAvbG9jYXRpb24gYW5kIHN0YXR1cyBsaXZlIG9uIHRoZSBwYXJlbnQgY2FyZCwgc28gdGhlIHJvd1xyXG4gICAqIG9ubHkgc2hvd3MgdGhlIFRJTUUgJiBUSU1FWk9ORSBibG9jayBhbmQgdGhlIGF0dGVuZGFuY2UgKyBWaWV3IGFjdGlvbnMpLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbXBhY3QgPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSBtZWV0aW5nIGlkIHdoZW4gdGhlIG1lZXRpbmctbmFtZSBsaW5rIGlzIGFjdGl2YXRlZCAoUmVxIDcuNCkuICovXHJcbiAgQE91dHB1dCgpIG9wZW5NZWV0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB0aGUgbWVldGluZyBpZCB0byByZXF1ZXN0IGxvZ2dpbmcgYXR0ZW5kYW5jZSAoUmVxIDcuNykuICovXHJcbiAgQE91dHB1dCgpIGxvZ0F0dGVuZGFuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSBtZWV0aW5nIGlkIHRvIHJlcXVlc3QgbGVhdmluZyB0aGUgbWVldGluZyAoUmVxIDcuOCkuICovXHJcbiAgQE91dHB1dCgpIGxlYXZlTWVldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogRXhwb3NlIHRoZSBlbnVtIHRvIHRoZSB0ZW1wbGF0ZSBmb3Igc3RhdGUgY29tcGFyaXNvbnMuICovXHJcbiAgcmVhZG9ubHkgQXR0ZW5kYW5jZVN0YXRlID0gQXR0ZW5kYW5jZVN0YXRlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoaXMgcm93IGlzIGFjdGlvbmFibGUg4oCUIGEgbm9uLWVtcHR5IGBtZWV0aW5nSWRgIGlzIHJlcXVpcmVkIGZvciB0aGVcclxuICAgKiBtZWV0aW5nLW5hbWUgbGluayBhbmQgYWN0aW9uIGJ1dHRvbiB0byBlbWl0IGFueXRoaW5nIChSZXEgNy4xMCkuXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSB3aGVuIHRoZSByb3cgaGFzIGEgdXNhYmxlIG1lZXRpbmcgaWQuXHJcbiAgICogQG1lbWJlcm9mIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IGlzQWN0aW9uYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMubWVldGluZz8ubWVldGluZ0lkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGUgcm93IGlzIGluIHRoZSBjdXJyZW50bHktYXR0ZW5kaW5nIHN0YXRlLCB3aGljaCBzaG93cyB0aGVcclxuICAgKiBjdXJyZW50bHktYXR0ZW5kaW5nIGluZGljYXRvciBhbmQgdGhlIGxlYXZlLW1lZXRpbmcgYWN0aW9uIChSZXEgNy41KS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGF0dGVuZGFuY2Ugc3RhdGUgaXMgYENVUlJFTlRMWV9BVFRFTkRJTkdgLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBpc0N1cnJlbnRseUF0dGVuZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmF0dGVuZGFuY2VTdGF0ZSA9PT0gQXR0ZW5kYW5jZVN0YXRlLkNVUlJFTlRMWV9BVFRFTkRJTkc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBsb2ctYXR0ZW5kYW5jZSBidXR0b24gc2hvdWxkIGJlIHNob3duOiBvbmx5IHdoZW4gdGhlIHJvdyBpcyBpblxyXG4gICAqIHRoZSBsb2cgc3RhdGUgKG5vdCBjdXJyZW50bHkgYXR0ZW5kaW5nKSBhbmQgdGhlIGhvc3QgZ3JhbnRzXHJcbiAgICogYGNhbkxvZ0F0dGVuZGFuY2VgIChSZXEgNy42LCAxMi4xKS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGxvZy1hdHRlbmRhbmNlIGJ1dHRvbiBpcyB2aXNpYmxlLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBzaG93TG9nQXR0ZW5kYW5jZUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0N1cnJlbnRseUF0dGVuZGluZyAmJiAhIXRoaXMucGVybWlzc2lvbnM/LmNhbkxvZ0F0dGVuZGFuY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBsZWF2ZS1tZWV0aW5nIGJ1dHRvbiBzaG91bGQgYmUgc2hvd246IG9ubHkgd2hlbiB0aGUgcm93IGlzIGluXHJcbiAgICogdGhlIGN1cnJlbnRseS1hdHRlbmRpbmcgc3RhdGUgYW5kIHRoZSBob3N0IGdyYW50cyBgY2FuTGVhdmVNZWV0aW5nYFxyXG4gICAqIChSZXEgNy41LCAxMi4yKS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGxlYXZlLW1lZXRpbmcgYnV0dG9uIGlzIHZpc2libGUuXHJcbiAgICogQG1lbWJlcm9mIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHNob3dMZWF2ZU1lZXRpbmdCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0N1cnJlbnRseUF0dGVuZGluZyAmJiAhIXRoaXMucGVybWlzc2lvbnM/LmNhbkxlYXZlTWVldGluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc29sdmVzIGEgZ3JvdXAtb3ItY29tbWl0dGVlIC8gcm9vbS1vci1sb2NhdGlvbiBmaWVsZCB2YWx1ZSwgc3Vic3RpdHV0aW5nXHJcbiAgICogdGhlIGVtcHR5LWZpZWxkIHBsYWNlaG9sZGVyIGZyb20gYGNvbnN0YW50cy5qc29uYCB3aGVuIHRoZSB2YWx1ZSBpcyBlbXB0eSBvclxyXG4gICAqIHVuZGVmaW5lZCAoUmVxIDcuMikuXHJcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHZhbHVlIC0gVGhlIHJhdyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBtZWV0aW5nLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHZhbHVlIHRvIGRpc3BsYXksIG9yIHRoZSBlbXB0eS1maWVsZCBwbGFjZWhvbGRlci5cclxuICAgKiBAbWVtYmVyb2YgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnRcclxuICAgKi9cclxuICByZXNvbHZlRmllbGRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBsYWNlaG9sZGVyID1cclxuICAgICAgdGhpcy5jb25zdGFudHM/Lm1lZXRpbmdSb3c/LmVtcHR5RmllbGRQbGFjZWhvbGRlciA/PyAn4oCUJztcclxuICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMCA/IHZhbHVlIDogcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXRzIHRoZSBtZWV0aW5nIGRhdGUgZm9yIGRpc3BsYXkgdXNpbmcgdGhlIHNoYXJlZCBsdXhvbiBkaXNwbGF5IGZvcm1hdFxyXG4gICAqIChSZXEgNy4zKS4gRmFsbHMgYmFjayB0byB0aGUgcmF3IHZhbHVlIHdoZW4gaXQgY2Fubm90IGJlIHBhcnNlZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgbWVldGluZyBkYXRlLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBmb3JtYXR0ZWREYXRlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZSA9XHJcbiAgICAgIHRoaXMubWVldGluZz8uc3RhcnREYXRlVGltZSA/PyB0aGlzLm1lZXRpbmc/Lm1lZXRpbmdEYXRlO1xyXG4gICAgcmV0dXJuIGZvcm1hdEVwb2NoKFxyXG4gICAgICB2YWx1ZSxcclxuICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdCxcclxuICAgICAgdGhpcy5tZWV0aW5nPy50aW1lem9uZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgdGhlIG1lZXRpbmcgdGltZSArIHRpbWV6b25lIGZvciBkaXNwbGF5IHVzaW5nIGx1eG9uIChSZXEgNy4zKS5cclxuICAgKiBUaGUgdGltZXpvbmUgYWJicmV2aWF0aW9uIGZyb20gdGhlIG1lZXRpbmcgbW9kZWwgaXMgYXBwZW5kZWQgdG8gdGhlIHBhcnNlZFxyXG4gICAqIHRpbWUuIEZhbGxzIGJhY2sgdG8gdGhlIHJhdyB2YWx1ZSB3aGVuIGl0IGNhbm5vdCBiZSBwYXJzZWQuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIG1lZXRpbmcgdGltZSB3aXRoIHRpbWV6b25lLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBmb3JtYXR0ZWRUaW1lKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0aW1lem9uZSA9IHRoaXMubWVldGluZz8udGltZXpvbmUgPz8gJyc7XHJcbiAgICBjb25zdCBzdGFydFZhbHVlID1cclxuICAgICAgdGhpcy5tZWV0aW5nPy5zdGFydERhdGVUaW1lID8/IHRoaXMubWVldGluZz8ubWVldGluZ1RpbWU7XHJcbiAgICBjb25zdCBzdGFydCA9IGZvcm1hdEVwb2NoKFxyXG4gICAgICBzdGFydFZhbHVlLFxyXG4gICAgICBEYXRlRm9ybWF0cy50aW1lTWVyaWRpZW1Gb3JtYXQsXHJcbiAgICAgIHRpbWV6b25lXHJcbiAgICApO1xyXG4gICAgY29uc3QgZW5kID0gZm9ybWF0RXBvY2goXHJcbiAgICAgIHRoaXMubWVldGluZz8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgIERhdGVGb3JtYXRzLnRpbWVNZXJpZGllbUZvcm1hdCxcclxuICAgICAgdGltZXpvbmVcclxuICAgICk7XHJcbiAgICBjb25zdCByYW5nZSA9IGVuZCA/IGAke3N0YXJ0fSDigJMgJHtlbmR9YCA6IHN0YXJ0O1xyXG4gICAgaWYgKCFyYW5nZSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGltZXpvbmUgPyBgJHtyYW5nZX0gJHt0aW1lem9uZX1gIDogcmFuZ2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGFjdGl2YXRpb24gb2YgdGhlIGF0dGVuZGFuY2UgYWN0aW9uIGJ1dHRvbi4gRGVsZWdhdGVzIHRvIHRoZSBwdXJlXHJcbiAgICogYHJlc29sdmVBdHRlbmRhbmNlQWN0aW9uYCBoYW5kbGVyIGFuZCBlbWl0cyBleGFjdGx5IG9uZSBldmVudCBiYXNlZCBvbiB0aGVcclxuICAgKiByZXNvbHZlZCBhY3Rpb246IGBsb2dBdHRlbmRhbmNlYCBmb3IgYExPR19BVFRFTkRBTkNFYCwgYGxlYXZlTWVldGluZ2AgZm9yXHJcbiAgICogYExFQVZFX01FRVRJTkdgLCBhbmQgbm90aGluZyBmb3IgYE5PTkVgIChlbXB0eSBpZCBvciBpbi1mbGlnaHQpXHJcbiAgICogKFJlcSA3LjcsIDcuOCwgNy45LCA3LjEwLCAxMy42KS5cclxuICAgKiBAbWVtYmVyb2YgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnRcclxuICAgKi9cclxuICBvbkF0dGVuZGFuY2VBY3Rpb24oKTogdm9pZCB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSByZXNvbHZlQXR0ZW5kYW5jZUFjdGlvbihcclxuICAgICAgdGhpcy5hdHRlbmRhbmNlU3RhdGUsXHJcbiAgICAgIHRoaXMuaXNJbkZsaWdodCxcclxuICAgICAgdGhpcy5tZWV0aW5nPy5tZWV0aW5nSWRcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGFjdGlvbiA9PT0gQXR0ZW5kYW5jZUFjdGlvbi5MT0dfQVRURU5EQU5DRSkge1xyXG4gICAgICB0aGlzLmxvZ0F0dGVuZGFuY2UuZW1pdCh0aGlzLm1lZXRpbmcubWVldGluZ0lkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhY3Rpb24gPT09IEF0dGVuZGFuY2VBY3Rpb24uTEVBVkVfTUVFVElORykge1xyXG4gICAgICB0aGlzLmxlYXZlTWVldGluZy5lbWl0KHRoaXMubWVldGluZy5tZWV0aW5nSWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhY3RpdmF0aW9uIG9mIHRoZSBtZWV0aW5nLW5hbWUgbGluay4gRW1pdHMgdGhlIG1lZXRpbmcgaWQgb25seSB3aGVuXHJcbiAgICogdGhlIHJvdyBpcyBhY3Rpb25hYmxlIChub24tZW1wdHkgbWVldGluZyBpZCkgKFJlcSA3LjQsIDcuMTApLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3Blbk1lZXRpbmcoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNBY3Rpb25hYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMub3Blbk1lZXRpbmcuZW1pdCh0aGlzLm1lZXRpbmcubWVldGluZ0lkKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dcIlxyXG4gIFtjbGFzcy5pZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvdy0tY29tcGFjdF09XCJjb21wYWN0XCJcclxuPlxyXG4gIDwhLS0gTWVldGluZyBuYW1lICsgZ3JvdXAvbG9jYXRpb24gKGhpZGRlbiBpbiB0aGUgY29tcGFjdCBzdGFuZGFsb25lIHZhcmlhbnQpLiAtLT5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX25hbWUtY29sXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbXBhY3RcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX25hbWUtbGlua1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0FjdGlvbmFibGVcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLm1lZXRpbmdSb3cuYXJpYUxhYmVsLm1lZXRpbmdOYW1lTGlua1wiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uT3Blbk1lZXRpbmcoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtZWV0aW5nLm1lZXRpbmdOYW1lIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPHAgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fc3VidGl0bGVcIj5cclxuICAgICAgICB7eyByZXNvbHZlRmllbGRWYWx1ZShtZWV0aW5nLmdyb3VwT3JDb21taXR0ZWUpIH19PG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJtZWV0aW5nLnJvb21PckxvY2F0aW9uXCJcclxuICAgICAgICA+ICZtaWRkb3Q7IHt7IG1lZXRpbmcucm9vbU9yTG9jYXRpb24gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9wPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTUVFVElORyBEQVRFIGNvbHVtbi4gLS0+XHJcbiAgPGRsIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbCBpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLS1kYXRlXCI+XHJcbiAgICA8ZHQgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLWxhYmVsXCI+XHJcbiAgICAgIHt7IGNvbnN0YW50cy5ldmVudEdyb3VwQ2FyZC5tZWV0aW5nRGF0ZUxhYmVsIH19XHJcbiAgICA8L2R0PlxyXG4gICAgPGRkIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbC12YWx1ZVwiPlxyXG4gICAgICB7eyBmb3JtYXR0ZWREYXRlIH19XHJcbiAgICA8L2RkPlxyXG4gIDwvZGw+XHJcblxyXG4gIDwhLS0gVElNRSAmIFRJTUVaT05FIGNvbHVtbi4gLS0+XHJcbiAgPGRsIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbCBpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLS10aW1lXCI+XHJcbiAgICA8ZHQgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLWxhYmVsXCI+XHJcbiAgICAgIHt7IGNvbnN0YW50cy5tZWV0aW5nUm93LnRpbWVUaW1lem9uZUxhYmVsIH19XHJcbiAgICA8L2R0PlxyXG4gICAgPGRkIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbC12YWx1ZVwiPlxyXG4gICAgICB7eyBmb3JtYXR0ZWRUaW1lIH19XHJcbiAgICA8L2RkPlxyXG4gIDwvZGw+XHJcblxyXG4gIDwhLS0gQXR0ZW5kYW5jZSBpbmRpY2F0b3IgKyBhY3Rpb25zIGNvbHVtbi4gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19hY3Rpb25zXCI+XHJcbiAgICA8IS0tIEN1cnJlbnRseS1hdHRlbmRpbmcgcGlsbCBzaG93biBvbmx5IGluIHRoZSBhdHRlbmRpbmcgc3RhdGUuIC0tPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJpc0N1cnJlbnRseUF0dGVuZGluZ1wiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2F0dGVuZGluZy1waWxsXCJcclxuICAgID5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYXR0ZW5kaW5nLWRvdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgICAge3sgY29uc3RhbnRzLm1lZXRpbmdSb3cuY3VycmVudGx5QXR0ZW5kaW5nSW5kaWNhdG9yIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSBMb2ctYXR0ZW5kYW5jZSBidXR0b246IHNob3duIGluIHRoZSBsb2cgc3RhdGUgd2l0aCB0aGUgcGVybWlzc2lvbi4gLS0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0xvZ0F0dGVuZGFuY2VCdXR0b25cIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYWN0aW9uLWJ1dHRvbiBpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYWN0aW9uLWJ1dHRvbi0tbG9nXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzSW5GbGlnaHQgfHwgIWlzQWN0aW9uYWJsZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLm1lZXRpbmdSb3cuYXJpYUxhYmVsLmxvZ0F0dGVuZGFuY2VcIlxyXG4gICAgICAoY2xpY2spPVwib25BdHRlbmRhbmNlQWN0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMubWVldGluZ1Jvdy5sb2dBdHRlbmRhbmNlTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDwhLS0gTGVhdmUtbWVldGluZyBidXR0b246IHNob3duIGluIHRoZSBhdHRlbmRpbmcgc3RhdGUgd2l0aCB0aGUgcGVybWlzc2lvbi4gLS0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0xlYXZlTWVldGluZ0J1dHRvblwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19hY3Rpb24tYnV0dG9uIGllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19hY3Rpb24tYnV0dG9uLS1sZWF2ZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0luRmxpZ2h0IHx8ICFpc0FjdGlvbmFibGVcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbnN0YW50cy5tZWV0aW5nUm93LmFyaWFMYWJlbC5sZWF2ZU1lZXRpbmdcIlxyXG4gICAgICAoY2xpY2spPVwib25BdHRlbmRhbmNlQWN0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMubWVldGluZ1Jvdy5sZWF2ZU1lZXRpbmdMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { LegendComponent } from '@ieeesa-npm/presentation';
|
|
4
|
+
import * as constants from '../../assets/constants.json';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
/**
|
|
8
|
+
* Member_Level_Badge renders a single member-level value as a colored pill.
|
|
9
|
+
* It reuses the Presentation_Library Legend component for the pill primitive,
|
|
10
|
+
* sourcing the level-to-color mapping from `constants.json` (`memberLevel.colorMap`)
|
|
11
|
+
* with a nullish-coalescing fallback to the configured default color.
|
|
12
|
+
* @export
|
|
13
|
+
* @class MemberLevelBadgeComponent
|
|
14
|
+
*/
|
|
15
|
+
export class MemberLevelBadgeComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.constants = constants;
|
|
18
|
+
this.memberLevelValue = '';
|
|
19
|
+
/** The Legend input consumed by the Presentation_Library Legend component. */
|
|
20
|
+
this.legends = this.buildLegends('');
|
|
21
|
+
}
|
|
22
|
+
set memberLevel(value) {
|
|
23
|
+
this.memberLevelValue = value ?? '';
|
|
24
|
+
this.legends = this.buildLegends(this.memberLevelValue);
|
|
25
|
+
}
|
|
26
|
+
get memberLevel() {
|
|
27
|
+
return this.memberLevelValue;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Builds the single-item Legend list for the supplied member level, resolving
|
|
31
|
+
* the pill color from the `constants.json` color map and falling back to the
|
|
32
|
+
* configured default color when the level has no explicit mapping.
|
|
33
|
+
* @param {string} memberLevel - The member-level label to render.
|
|
34
|
+
* @return {Legend[]} A single-element Legend array for the Legend component.
|
|
35
|
+
* @memberof MemberLevelBadgeComponent
|
|
36
|
+
*/
|
|
37
|
+
buildLegends(memberLevel) {
|
|
38
|
+
return [
|
|
39
|
+
{
|
|
40
|
+
label: memberLevel,
|
|
41
|
+
color: this.resolveColorClass(memberLevel),
|
|
42
|
+
hierarchy: 0,
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolves the CSS modifier class for a member level from the `constants.json`
|
|
48
|
+
* color map, using the `??` fallback to the `default` entry when the level is
|
|
49
|
+
* missing from the map.
|
|
50
|
+
* @param {string} memberLevel - The member-level label to resolve a color for.
|
|
51
|
+
* @return {string} The CSS modifier class applied to the pill.
|
|
52
|
+
* @memberof MemberLevelBadgeComponent
|
|
53
|
+
*/
|
|
54
|
+
resolveColorClass(memberLevel) {
|
|
55
|
+
const colorMap = this.constants?.memberLevel?.colorMap;
|
|
56
|
+
const token = colorMap?.[memberLevel] ?? colorMap?.['default'] ?? '$ieeesa-color-neutral';
|
|
57
|
+
return this.toColorClass(token);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Converts a shared-styles color token (for example `$ieeesa-color-success`)
|
|
61
|
+
* into a valid BEM-style CSS modifier class defined in this component's SCSS.
|
|
62
|
+
* @param {string} token - The color token from the color map.
|
|
63
|
+
* @return {string} A valid CSS class name.
|
|
64
|
+
* @memberof MemberLevelBadgeComponent
|
|
65
|
+
*/
|
|
66
|
+
toColorClass(token) {
|
|
67
|
+
const normalized = token.replace(/^\$ieeesa-color-/, '').replace(/^\$/, '');
|
|
68
|
+
return `ieeesa-member-level-badge--${normalized || 'neutral'}`;
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MemberLevelBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MemberLevelBadgeComponent, isStandalone: true, selector: "ieeesa-member-level-badge", inputs: { memberLevel: "memberLevel" }, ngImport: i0, template: "<span\r\n class=\"ieeesa-member-level-badge\"\r\n [attr.aria-label]=\"memberLevel\"\r\n>\r\n <ieeesa-legend\r\n *ngIf=\"memberLevel\"\r\n [legends]=\"legends\"\r\n ></ieeesa-legend>\r\n</span>\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-member-level-badge,.ieeesa-member-level-badge .ieeesa-legend{display:inline-flex}.ieeesa-member-level-badge .ieeesa-legend__indicator{align-items:center;gap:4px;padding:4px 12px;border-radius:16px;background-color:#f0f5f9}.ieeesa-member-level-badge .ieeesa-legend__square{width:8px;min-width:8px;height:8px;margin:0;border-radius:50%}.ieeesa-member-level-badge .ieeesa-legend p{margin:0}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--success{background-color:#78d7ef}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--info{background-color:#00b5e2}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--warning{background-color:#ffd92e}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--primary{background-color:#00629b}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--neutral{background-color:#939094}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LegendComponent, selector: "ieeesa-legend", inputs: ["legends", "isSorting"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
72
|
+
}
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MemberLevelBadgeComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'ieeesa-member-level-badge', standalone: true, imports: [CommonModule, LegendComponent], encapsulation: ViewEncapsulation.None, template: "<span\r\n class=\"ieeesa-member-level-badge\"\r\n [attr.aria-label]=\"memberLevel\"\r\n>\r\n <ieeesa-legend\r\n *ngIf=\"memberLevel\"\r\n [legends]=\"legends\"\r\n ></ieeesa-legend>\r\n</span>\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-member-level-badge,.ieeesa-member-level-badge .ieeesa-legend{display:inline-flex}.ieeesa-member-level-badge .ieeesa-legend__indicator{align-items:center;gap:4px;padding:4px 12px;border-radius:16px;background-color:#f0f5f9}.ieeesa-member-level-badge .ieeesa-legend__square{width:8px;min-width:8px;height:8px;margin:0;border-radius:50%}.ieeesa-member-level-badge .ieeesa-legend p{margin:0}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--success{background-color:#78d7ef}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--info{background-color:#00b5e2}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--warning{background-color:#ffd92e}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--primary{background-color:#00629b}.ieeesa-member-level-badge .ieeesa-legend__square.ieeesa-member-level-badge--neutral{background-color:#939094}\n"] }]
|
|
76
|
+
}], propDecorators: { memberLevel: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLWxldmVsLWJhZGdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvbWVtYmVyLWxldmVsLWJhZGdlL21lbWJlci1sZXZlbC1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL21lbWJlci1sZXZlbC1iYWRnZS9tZW1iZXItbGV2ZWwtYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBVSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFekQ7Ozs7Ozs7R0FPRztBQVVILE1BQU0sT0FBTyx5QkFBeUI7SUFUdEM7UUFVRSxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBRWQscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBVzlCLDhFQUE4RTtRQUM5RSxZQUFPLEdBQWEsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQWdEM0M7SUExREMsSUFDSSxXQUFXLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFLRDs7Ozs7OztPQU9HO0lBQ0ssWUFBWSxDQUFDLFdBQW1CO1FBQ3RDLE9BQU87WUFDTDtnQkFDRSxLQUFLLEVBQUUsV0FBVztnQkFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7Z0JBQzFDLFNBQVMsRUFBRSxDQUFDO2FBQ2I7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxpQkFBaUIsQ0FBQyxXQUFtQjtRQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUVqQyxDQUFDO1FBQ2QsTUFBTSxLQUFLLEdBQ1QsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksdUJBQXVCLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxZQUFZLENBQUMsS0FBYTtRQUNoQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsT0FBTyw4QkFBOEIsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQ2pFLENBQUM7K0dBOURVLHlCQUF5QjttR0FBekIseUJBQXlCLDZIQ3RCdEMsZ05BU0EsNHRURFFZLFlBQVksbUlBQUUsZUFBZTs7NEZBSzVCLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFFRSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxpQkFHekIsaUJBQWlCLENBQUMsSUFBSTs4QkFRakMsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGVnZW5kLCBMZWdlbmRDb21wb25lbnQgfSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuXHJcbi8qKlxyXG4gKiBNZW1iZXJfTGV2ZWxfQmFkZ2UgcmVuZGVycyBhIHNpbmdsZSBtZW1iZXItbGV2ZWwgdmFsdWUgYXMgYSBjb2xvcmVkIHBpbGwuXHJcbiAqIEl0IHJldXNlcyB0aGUgUHJlc2VudGF0aW9uX0xpYnJhcnkgTGVnZW5kIGNvbXBvbmVudCBmb3IgdGhlIHBpbGwgcHJpbWl0aXZlLFxyXG4gKiBzb3VyY2luZyB0aGUgbGV2ZWwtdG8tY29sb3IgbWFwcGluZyBmcm9tIGBjb25zdGFudHMuanNvbmAgKGBtZW1iZXJMZXZlbC5jb2xvck1hcGApXHJcbiAqIHdpdGggYSBudWxsaXNoLWNvYWxlc2NpbmcgZmFsbGJhY2sgdG8gdGhlIGNvbmZpZ3VyZWQgZGVmYXVsdCBjb2xvci5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgTWVtYmVyTGV2ZWxCYWRnZUNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1tZW1iZXItbGV2ZWwtYmFkZ2UnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGVnZW5kQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWVtYmVyLWxldmVsLWJhZGdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZW1iZXItbGV2ZWwtYmFkZ2UuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVtYmVyTGV2ZWxCYWRnZUNvbXBvbmVudCB7XHJcbiAgY29uc3RhbnRzID0gY29uc3RhbnRzO1xyXG5cclxuICBwcml2YXRlIG1lbWJlckxldmVsVmFsdWUgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbWVtYmVyTGV2ZWwodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5tZW1iZXJMZXZlbFZhbHVlID0gdmFsdWUgPz8gJyc7XHJcbiAgICB0aGlzLmxlZ2VuZHMgPSB0aGlzLmJ1aWxkTGVnZW5kcyh0aGlzLm1lbWJlckxldmVsVmFsdWUpO1xyXG4gIH1cclxuICBnZXQgbWVtYmVyTGV2ZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm1lbWJlckxldmVsVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIExlZ2VuZCBpbnB1dCBjb25zdW1lZCBieSB0aGUgUHJlc2VudGF0aW9uX0xpYnJhcnkgTGVnZW5kIGNvbXBvbmVudC4gKi9cclxuICBsZWdlbmRzOiBMZWdlbmRbXSA9IHRoaXMuYnVpbGRMZWdlbmRzKCcnKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIHRoZSBzaW5nbGUtaXRlbSBMZWdlbmQgbGlzdCBmb3IgdGhlIHN1cHBsaWVkIG1lbWJlciBsZXZlbCwgcmVzb2x2aW5nXHJcbiAgICogdGhlIHBpbGwgY29sb3IgZnJvbSB0aGUgYGNvbnN0YW50cy5qc29uYCBjb2xvciBtYXAgYW5kIGZhbGxpbmcgYmFjayB0byB0aGVcclxuICAgKiBjb25maWd1cmVkIGRlZmF1bHQgY29sb3Igd2hlbiB0aGUgbGV2ZWwgaGFzIG5vIGV4cGxpY2l0IG1hcHBpbmcuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lbWJlckxldmVsIC0gVGhlIG1lbWJlci1sZXZlbCBsYWJlbCB0byByZW5kZXIuXHJcbiAgICogQHJldHVybiB7TGVnZW5kW119IEEgc2luZ2xlLWVsZW1lbnQgTGVnZW5kIGFycmF5IGZvciB0aGUgTGVnZW5kIGNvbXBvbmVudC5cclxuICAgKiBAbWVtYmVyb2YgTWVtYmVyTGV2ZWxCYWRnZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYnVpbGRMZWdlbmRzKG1lbWJlckxldmVsOiBzdHJpbmcpOiBMZWdlbmRbXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6IG1lbWJlckxldmVsLFxyXG4gICAgICAgIGNvbG9yOiB0aGlzLnJlc29sdmVDb2xvckNsYXNzKG1lbWJlckxldmVsKSxcclxuICAgICAgICBoaWVyYXJjaHk6IDAsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzb2x2ZXMgdGhlIENTUyBtb2RpZmllciBjbGFzcyBmb3IgYSBtZW1iZXIgbGV2ZWwgZnJvbSB0aGUgYGNvbnN0YW50cy5qc29uYFxyXG4gICAqIGNvbG9yIG1hcCwgdXNpbmcgdGhlIGA/P2AgZmFsbGJhY2sgdG8gdGhlIGBkZWZhdWx0YCBlbnRyeSB3aGVuIHRoZSBsZXZlbCBpc1xyXG4gICAqIG1pc3NpbmcgZnJvbSB0aGUgbWFwLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZW1iZXJMZXZlbCAtIFRoZSBtZW1iZXItbGV2ZWwgbGFiZWwgdG8gcmVzb2x2ZSBhIGNvbG9yIGZvci5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBDU1MgbW9kaWZpZXIgY2xhc3MgYXBwbGllZCB0byB0aGUgcGlsbC5cclxuICAgKiBAbWVtYmVyb2YgTWVtYmVyTGV2ZWxCYWRnZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzb2x2ZUNvbG9yQ2xhc3MobWVtYmVyTGV2ZWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjb2xvck1hcCA9IHRoaXMuY29uc3RhbnRzPy5tZW1iZXJMZXZlbD8uY29sb3JNYXAgYXNcclxuICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XHJcbiAgICAgIHwgdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgdG9rZW4gPVxyXG4gICAgICBjb2xvck1hcD8uW21lbWJlckxldmVsXSA/PyBjb2xvck1hcD8uWydkZWZhdWx0J10gPz8gJyRpZWVlc2EtY29sb3ItbmV1dHJhbCc7XHJcbiAgICByZXR1cm4gdGhpcy50b0NvbG9yQ2xhc3ModG9rZW4pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydHMgYSBzaGFyZWQtc3R5bGVzIGNvbG9yIHRva2VuIChmb3IgZXhhbXBsZSBgJGllZWVzYS1jb2xvci1zdWNjZXNzYClcclxuICAgKiBpbnRvIGEgdmFsaWQgQkVNLXN0eWxlIENTUyBtb2RpZmllciBjbGFzcyBkZWZpbmVkIGluIHRoaXMgY29tcG9uZW50J3MgU0NTUy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9rZW4gLSBUaGUgY29sb3IgdG9rZW4gZnJvbSB0aGUgY29sb3IgbWFwLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gQSB2YWxpZCBDU1MgY2xhc3MgbmFtZS5cclxuICAgKiBAbWVtYmVyb2YgTWVtYmVyTGV2ZWxCYWRnZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdG9Db2xvckNsYXNzKHRva2VuOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRva2VuLnJlcGxhY2UoL15cXCRpZWVlc2EtY29sb3ItLywgJycpLnJlcGxhY2UoL15cXCQvLCAnJyk7XHJcbiAgICByZXR1cm4gYGllZWVzYS1tZW1iZXItbGV2ZWwtYmFkZ2UtLSR7bm9ybWFsaXplZCB8fCAnbmV1dHJhbCd9YDtcclxuICB9XHJcbn1cclxuIiwiPHNwYW5cclxuICBjbGFzcz1cImllZWVzYS1tZW1iZXItbGV2ZWwtYmFkZ2VcIlxyXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwibWVtYmVyTGV2ZWxcIlxyXG4+XHJcbiAgPGllZWVzYS1sZWdlbmRcclxuICAgICpuZ0lmPVwibWVtYmVyTGV2ZWxcIlxyXG4gICAgW2xlZ2VuZHNdPVwibGVnZW5kc1wiXHJcbiAgPjwvaWVlZXNhLWxlZ2VuZD5cclxuPC9zcGFuPlxyXG4iXX0=
|