@ieeesa-npm/dashboard 0.0.0-stage → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -3
- package/esm2022/ieeesa-npm-dashboard.mjs +5 -0
- package/esm2022/lib/assets/constants.json +141 -0
- package/esm2022/lib/assets/dashboard-mock.mjs +217 -0
- package/esm2022/lib/assets/dashboard-route-paths.mock.mjs +12 -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 +277 -0
- package/esm2022/lib/components/meeting-attendance-row/meeting-attendance-row.component.mjs +181 -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 +163 -0
- package/esm2022/lib/components/welcome-header/dashboard-welcome-header.component.mjs +151 -0
- package/esm2022/lib/components/your-groups/your-groups.component.mjs +206 -0
- package/esm2022/lib/dashboard.component.mjs +377 -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/group-row.model.mjs +2 -0
- package/esm2022/lib/models/meeting-row.model.mjs +2 -0
- package/esm2022/lib/models/page-change.model.mjs +2 -0
- package/esm2022/lib/models/upcoming-event.model.mjs +2 -0
- package/esm2022/lib/services/attendance-reducers.mjs +54 -0
- package/esm2022/lib/services/dashboard.service.mjs +208 -0
- package/esm2022/lib/services/user-permissions.service.mjs +50 -0
- package/esm2022/lib/utils/attendance-action.util.mjs +53 -0
- package/esm2022/public-api.mjs +34 -0
- package/fesm2022/ieeesa-npm-dashboard.mjs +2234 -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 +300 -0
- package/lib/components/meeting-attendance-row/meeting-attendance-row.component.d.ts +239 -0
- package/lib/components/member-level-badge/member-level-badge.component.d.ts +161 -0
- package/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.d.ts +238 -0
- package/lib/components/welcome-header/dashboard-welcome-header.component.d.ts +98 -0
- package/lib/components/your-groups/your-groups.component.d.ts +110 -0
- package/lib/dashboard.component.d.ts +376 -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/group-row.model.d.ts +8 -0
- package/lib/models/meeting-row.model.d.ts +12 -0
- package/lib/models/page-change.model.d.ts +4 -0
- package/lib/models/upcoming-event.model.d.ts +13 -0
- package/lib/services/attendance-reducers.d.ts +43 -0
- package/lib/services/dashboard.service.d.ts +119 -0
- package/lib/services/user-permissions.service.d.ts +31 -0
- package/lib/utils/attendance-action.util.d.ts +38 -0
- package/package.json +30 -3
- package/public-api.d.ts +24 -0
package/README.md
CHANGED
|
@@ -1,3 +1,75 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
This
|
|
1
|
+
# Dashboard
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project dashboard` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project dashboard`.
|
|
8
|
+
> Note: Don't forget to add `--project dashboard` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build dashboard` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build dashboard`, go to the dist folder `cd dist/dashboard` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test dashboard` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
# Dashboard NPM Package Usage Guide
|
|
23
|
+
|
|
24
|
+
## 1. Angular versions
|
|
25
|
+
Dashboard npm package is developed using Angular 16. To use the dashboard npm package in an Angular application, the application should be developed with Angular 16 and above.
|
|
26
|
+
|
|
27
|
+
## 2. Install dashboard NPM Package
|
|
28
|
+
You can use the following command to install the dashboard NPM package.
|
|
29
|
+
npm install @ieeesa-npm/dashboard or npm install @ieeesa-npm/dashboard@latest or npm install @ieeesa-npm/dashboard@0.0.1 (in case of a particular version)
|
|
30
|
+
|
|
31
|
+
## 3. Install dashboard peer dependency NPM Packages
|
|
32
|
+
The following npm packages are dependencies for the dashboard module and you can use the commands below to install those NPM packages.
|
|
33
|
+
|
|
34
|
+
* npm install @ieeesa-npm/presentation
|
|
35
|
+
* npm install @ieeesa-npm/shared-styles
|
|
36
|
+
* npm install @ieeesa-npm/feature
|
|
37
|
+
* npm install @ieeesa-npm/utility
|
|
38
|
+
|
|
39
|
+
## 4. Import DashboardComponent from installed node_modules
|
|
40
|
+
Import the `DashboardComponent` into your application component where you want to integrate the dashboard. The `DashboardComponent` is imported from `@ieeesa-npm/dashboard` and provided in the `imports` array of the component decorator.
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
44
|
+
import { CommonModule } from '@angular/common';
|
|
45
|
+
import { DashboardComponent } from '@ieeesa-npm/dashboard';
|
|
46
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
47
|
+
|
|
48
|
+
@Component({
|
|
49
|
+
selector: 'home',
|
|
50
|
+
standalone: true,
|
|
51
|
+
imports: [CommonModule, DashboardComponent, HttpClientModule],
|
|
52
|
+
templateUrl: './home.component.html',
|
|
53
|
+
styleUrls: ['./home.component.scss'],
|
|
54
|
+
encapsulation: ViewEncapsulation.None,
|
|
55
|
+
})
|
|
56
|
+
export class HomeComponent {}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Next, you can integrate the dashboard component in the HTML template using the dashboard component selector `<ieeesa-dashboard></ieeesa-dashboard>`.
|
|
60
|
+
|
|
61
|
+
```html
|
|
62
|
+
<ieeesa-dashboard
|
|
63
|
+
[apiBaseURL]="apiBaseURL"
|
|
64
|
+
[userInfo]="userInfo"
|
|
65
|
+
[userPermissions]="userPermissions"
|
|
66
|
+
[routePaths]="routePaths"
|
|
67
|
+
></ieeesa-dashboard>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 5. Use constants.json to update the screen texts, labels and error messages
|
|
71
|
+
You can find the screen texts, labels, aria labels, and error messages at **projects/dashboard/src/lib/assets/constants.json**.
|
|
72
|
+
|
|
73
|
+
## Further help
|
|
74
|
+
|
|
75
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWVlZXNhLW5wbS1kYXNoYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2llZWVzYS1ucG0tZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
{
|
|
2
|
+
"welcomeHeader": {
|
|
3
|
+
"greeting": "Welcome back, ",
|
|
4
|
+
"fallbackGreeting": "Welcome back",
|
|
5
|
+
"helperText": "Here's what's happening inside the portal",
|
|
6
|
+
"jumpToLabel": "JUMP TO",
|
|
7
|
+
"shortcuts": {
|
|
8
|
+
"meetings": {
|
|
9
|
+
"label": "Upcoming Meetings & Events",
|
|
10
|
+
"iconUrl": "/assets/images/icons/attendance-flag.svg",
|
|
11
|
+
"ariaLabel": "Jump to upcoming meetings and events"
|
|
12
|
+
},
|
|
13
|
+
"groups": {
|
|
14
|
+
"label": "Your Groups",
|
|
15
|
+
"iconUrl": "/assets/images/icons/icon-committees.svg",
|
|
16
|
+
"ariaLabel": "Jump to your groups"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"upcomingSection": {
|
|
21
|
+
"title": "Upcoming Meetings & Events",
|
|
22
|
+
"viewAllLabel": "View All",
|
|
23
|
+
"expandLabel": "Expand",
|
|
24
|
+
"collapseLabel": "Collapse",
|
|
25
|
+
"ariaLabel": {
|
|
26
|
+
"viewAll": "View all upcoming meetings and events",
|
|
27
|
+
"toggle": "Collapse or expand upcoming meetings and events"
|
|
28
|
+
},
|
|
29
|
+
"emptyMessage": "You have no upcoming meetings or events.",
|
|
30
|
+
"errorMessage": "Unable to load upcoming meetings and events. Please try again."
|
|
31
|
+
},
|
|
32
|
+
"eventGroupCard": {
|
|
33
|
+
"viewEventLabel": "View Event",
|
|
34
|
+
"meetingListToggle": {
|
|
35
|
+
"showLabelPrefix": "Show Meetings (",
|
|
36
|
+
"showLabelSuffix": " open for attendance)",
|
|
37
|
+
"hideLabel": "Hide Meetings"
|
|
38
|
+
},
|
|
39
|
+
"ariaLabel": {
|
|
40
|
+
"viewEvent": "View event details",
|
|
41
|
+
"meetingListToggle": "Show or hide the meeting list for this event"
|
|
42
|
+
},
|
|
43
|
+
"paginator": {
|
|
44
|
+
"rangeTemplate": "Showing {start}-{end} of {total}",
|
|
45
|
+
"totalTemplate": "{total} meetings"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"meetingRow": {
|
|
49
|
+
"emptyFieldPlaceholder": "—",
|
|
50
|
+
"currentlyAttendingIndicator": "Currently Attending",
|
|
51
|
+
"logAttendanceLabel": "Log Attendance",
|
|
52
|
+
"leaveMeetingLabel": "Leave Meeting",
|
|
53
|
+
"ariaLabel": {
|
|
54
|
+
"meetingNameLink": "View meeting details",
|
|
55
|
+
"logAttendance": "Log attendance for this meeting",
|
|
56
|
+
"leaveMeeting": "Leave this meeting"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"groupsSection": {
|
|
60
|
+
"title": "Your Groups",
|
|
61
|
+
"viewAllLabel": "View All",
|
|
62
|
+
"expandLabel": "Expand",
|
|
63
|
+
"collapseLabel": "Collapse",
|
|
64
|
+
"countSuffix": "Groups",
|
|
65
|
+
"emptyValue": "-",
|
|
66
|
+
"ariaLabel": {
|
|
67
|
+
"viewAll": "View all your groups",
|
|
68
|
+
"toggle": "Collapse or expand your groups",
|
|
69
|
+
"groupLink": "View group details"
|
|
70
|
+
},
|
|
71
|
+
"columns": {
|
|
72
|
+
"group": "Group",
|
|
73
|
+
"type": "Type",
|
|
74
|
+
"officerRole": "Officer Role",
|
|
75
|
+
"affiliation": "Affiliation",
|
|
76
|
+
"memberLevel": "Member Level"
|
|
77
|
+
},
|
|
78
|
+
"paginator": {
|
|
79
|
+
"rangeTemplate": "Showing {start}-{end} of {total}",
|
|
80
|
+
"totalTemplate": "{total} groups"
|
|
81
|
+
},
|
|
82
|
+
"memberLevelBadge": {
|
|
83
|
+
"votingMember": "ieeesa-your-groups__badge--success",
|
|
84
|
+
"default": "ieeesa-your-groups__badge--warning"
|
|
85
|
+
},
|
|
86
|
+
"emptyMessage": "You are not a member of any groups.",
|
|
87
|
+
"errorMessage": "Unable to load your groups. Please try again."
|
|
88
|
+
},
|
|
89
|
+
"memberLevel": {
|
|
90
|
+
"colorMap": {
|
|
91
|
+
"Voting Member": "$ieeesa-color-success",
|
|
92
|
+
"Observer": "$ieeesa-color-info",
|
|
93
|
+
"Associate Member": "$ieeesa-color-warning",
|
|
94
|
+
"Member": "$ieeesa-color-primary",
|
|
95
|
+
"default": "$ieeesa-color-neutral"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"attendance": {
|
|
99
|
+
"errorMessage": "Unable to update your attendance. Please try again."
|
|
100
|
+
},
|
|
101
|
+
"footer": {
|
|
102
|
+
"links": [
|
|
103
|
+
{
|
|
104
|
+
"label": "Dashboard",
|
|
105
|
+
"target": "/dashboard"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"label": "Contact & Support",
|
|
109
|
+
"target": "https://supportcenter.ieee.org/app/home"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"label": "Accessibility",
|
|
113
|
+
"target": "https://www.ieee.org/accessibility-statement.html"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"label": "Nondiscrimination Policy",
|
|
117
|
+
"target": "https://www.ieee.org/about/corporate/governance/p9-26.html"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"label": "IEEE Ethics Reporting",
|
|
121
|
+
"target": "https://www.ieee.org/about/ethics/index.html"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"label": "IEEE Privacy Policy",
|
|
125
|
+
"target": "https://www.ieee.org/security-privacy.html"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"label": "IEEE SA Copyright Policy",
|
|
129
|
+
"target": "https://standards.ieee.org/about/policies/"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"copyright": "© Copyright 2024 IEEE - All rights reserved. Use of this website signifies your agreement to the IEEE Terms and Conditions."
|
|
133
|
+
},
|
|
134
|
+
"defaultRouteConfig": {
|
|
135
|
+
"eventDetail": "/events",
|
|
136
|
+
"meetingDetail": "/meetings",
|
|
137
|
+
"groupDetail": "/groups",
|
|
138
|
+
"viewAllEvents": "/events-and-meetings/view-events-meetings-list",
|
|
139
|
+
"viewAllGroups": "/groups"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { AttendanceState } from '../models/attendance-state.model';
|
|
2
|
+
/**
|
|
3
|
+
* Mock upcoming-events + groups fixtures for the dashboard library.
|
|
4
|
+
*
|
|
5
|
+
* These exercise the key presentation edge cases:
|
|
6
|
+
* - empty/undefined `groupOrCommittee` and `roomOrLocation` (empty-field placeholder)
|
|
7
|
+
* - a mix of `CURRENTLY_ATTENDING` / `NOT_ATTENDING` attendance states
|
|
8
|
+
* - events with many meetings so per-card pagination is exercised
|
|
9
|
+
*
|
|
10
|
+
* TODO: Replace mock with real API call when BE is ready
|
|
11
|
+
*/
|
|
12
|
+
export const DashboardUpcomingEventsMock = [
|
|
13
|
+
{
|
|
14
|
+
eventId: 'EVT-001',
|
|
15
|
+
title: 'NESC Revision Cycle Kickoff',
|
|
16
|
+
status: 'In Progress',
|
|
17
|
+
dayIndicator: 'Day 1 of 3',
|
|
18
|
+
meetingCount: 6,
|
|
19
|
+
openForAttendanceCount: 3,
|
|
20
|
+
startDate: '2025-03-14T09:00:00',
|
|
21
|
+
endDate: '2025-03-16T17:00:00',
|
|
22
|
+
timezone: 'America/New_York',
|
|
23
|
+
meetings: [
|
|
24
|
+
{
|
|
25
|
+
meetingId: 'MTG-001',
|
|
26
|
+
meetingName: 'Opening Plenary',
|
|
27
|
+
groupOrCommittee: 'NESC Main Committee',
|
|
28
|
+
roomOrLocation: 'Grand Ballroom A',
|
|
29
|
+
meetingDate: '2025-03-14T09:00:00',
|
|
30
|
+
meetingTime: '2025-03-14T09:00:00',
|
|
31
|
+
timezone: 'America/New_York',
|
|
32
|
+
isOpenForAttendance: true,
|
|
33
|
+
attendanceState: AttendanceState.CURRENTLY_ATTENDING,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
meetingId: 'MTG-002',
|
|
37
|
+
meetingName: 'Subcommittee 1 Working Session',
|
|
38
|
+
groupOrCommittee: 'Subcommittee 1 - Grounding',
|
|
39
|
+
// RoomOrLocation intentionally omitted to exercise the empty-field placeholder.
|
|
40
|
+
meetingDate: '2025-03-14T11:00:00',
|
|
41
|
+
meetingTime: '2025-03-14T11:00:00',
|
|
42
|
+
timezone: 'America/New_York',
|
|
43
|
+
isOpenForAttendance: true,
|
|
44
|
+
attendanceState: AttendanceState.NOT_ATTENDING,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
meetingId: 'MTG-003',
|
|
48
|
+
meetingName: 'Subcommittee 2 Working Session',
|
|
49
|
+
// GroupOrCommittee intentionally empty to exercise the empty-field placeholder.
|
|
50
|
+
groupOrCommittee: '',
|
|
51
|
+
roomOrLocation: 'Room 204',
|
|
52
|
+
meetingDate: '2025-03-14T13:30:00',
|
|
53
|
+
meetingTime: '2025-03-14T13:30:00',
|
|
54
|
+
timezone: 'America/New_York',
|
|
55
|
+
isOpenForAttendance: true,
|
|
56
|
+
attendanceState: AttendanceState.NOT_ATTENDING,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
meetingId: 'MTG-004',
|
|
60
|
+
meetingName: 'Editorial Review',
|
|
61
|
+
groupOrCommittee: 'Editorial Task Force',
|
|
62
|
+
roomOrLocation: 'Room 118',
|
|
63
|
+
meetingDate: '2025-03-15T09:00:00',
|
|
64
|
+
meetingTime: '2025-03-15T09:00:00',
|
|
65
|
+
timezone: 'America/New_York',
|
|
66
|
+
isOpenForAttendance: false,
|
|
67
|
+
attendanceState: AttendanceState.NOT_ATTENDING,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
meetingId: 'MTG-005',
|
|
71
|
+
meetingName: 'Interpretations Panel',
|
|
72
|
+
groupOrCommittee: 'Interpretations Subcommittee',
|
|
73
|
+
roomOrLocation: 'Room 310',
|
|
74
|
+
meetingDate: '2025-03-15T14:00:00',
|
|
75
|
+
meetingTime: '2025-03-15T14:00:00',
|
|
76
|
+
timezone: 'America/New_York',
|
|
77
|
+
isOpenForAttendance: true,
|
|
78
|
+
attendanceState: AttendanceState.CURRENTLY_ATTENDING,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
meetingId: 'MTG-006',
|
|
82
|
+
meetingName: 'Closing Plenary',
|
|
83
|
+
groupOrCommittee: 'NESC Main Committee',
|
|
84
|
+
roomOrLocation: 'Grand Ballroom A',
|
|
85
|
+
meetingDate: '2025-03-16T15:00:00',
|
|
86
|
+
meetingTime: '2025-03-16T15:00:00',
|
|
87
|
+
timezone: 'America/New_York',
|
|
88
|
+
isOpenForAttendance: false,
|
|
89
|
+
attendanceState: AttendanceState.NOT_ATTENDING,
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
eventId: 'EVT-002',
|
|
95
|
+
title: 'Standards Board Quarterly Meeting',
|
|
96
|
+
status: 'Upcoming',
|
|
97
|
+
dayIndicator: 'Day 1 of 1',
|
|
98
|
+
meetingCount: 3,
|
|
99
|
+
openForAttendanceCount: 1,
|
|
100
|
+
startDate: '2025-04-02T08:30:00',
|
|
101
|
+
endDate: '2025-04-02T16:00:00',
|
|
102
|
+
timezone: 'America/Los_Angeles',
|
|
103
|
+
meetings: [
|
|
104
|
+
{
|
|
105
|
+
meetingId: 'MTG-101',
|
|
106
|
+
meetingName: 'Board Opening Remarks',
|
|
107
|
+
groupOrCommittee: 'Standards Board',
|
|
108
|
+
roomOrLocation: 'Pacific Hall',
|
|
109
|
+
meetingDate: '2025-04-02T08:30:00',
|
|
110
|
+
meetingTime: '2025-04-02T08:30:00',
|
|
111
|
+
timezone: 'America/Los_Angeles',
|
|
112
|
+
isOpenForAttendance: true,
|
|
113
|
+
attendanceState: AttendanceState.NOT_ATTENDING,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
meetingId: 'MTG-102',
|
|
117
|
+
meetingName: 'Ballot Review Session',
|
|
118
|
+
// Both optional location/group fields omitted to exercise placeholders.
|
|
119
|
+
meetingDate: '2025-04-02T10:30:00',
|
|
120
|
+
meetingTime: '2025-04-02T10:30:00',
|
|
121
|
+
timezone: 'America/Los_Angeles',
|
|
122
|
+
isOpenForAttendance: false,
|
|
123
|
+
attendanceState: AttendanceState.NOT_ATTENDING,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
meetingId: 'MTG-103',
|
|
127
|
+
meetingName: 'Action Items & Wrap-up',
|
|
128
|
+
groupOrCommittee: 'Standards Board',
|
|
129
|
+
roomOrLocation: 'Pacific Hall',
|
|
130
|
+
meetingDate: '2025-04-02T15:00:00',
|
|
131
|
+
meetingTime: '2025-04-02T15:00:00',
|
|
132
|
+
timezone: 'America/Los_Angeles',
|
|
133
|
+
isOpenForAttendance: false,
|
|
134
|
+
attendanceState: AttendanceState.CURRENTLY_ATTENDING,
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
eventId: 'EVT-003',
|
|
140
|
+
title: 'Working Group Interim',
|
|
141
|
+
status: 'Upcoming',
|
|
142
|
+
// DayIndicator intentionally omitted (optional field).
|
|
143
|
+
meetingCount: 0,
|
|
144
|
+
openForAttendanceCount: 0,
|
|
145
|
+
startDate: '2025-05-20T09:00:00',
|
|
146
|
+
endDate: '2025-05-20T12:00:00',
|
|
147
|
+
timezone: 'Europe/London',
|
|
148
|
+
meetings: [],
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
/**
|
|
152
|
+
* Mock a single meeting row with an empty `meetingId` to exercise the
|
|
153
|
+
* non-actionable (empty/undefined id) path in the meeting row component.
|
|
154
|
+
*
|
|
155
|
+
* TODO: Replace mock with real API call when BE is ready
|
|
156
|
+
*/
|
|
157
|
+
export const DashboardNonActionableMeetingMock = {
|
|
158
|
+
meetingId: '',
|
|
159
|
+
meetingName: 'Unscheduled Placeholder Session',
|
|
160
|
+
groupOrCommittee: '',
|
|
161
|
+
meetingDate: '2025-06-01T09:00:00',
|
|
162
|
+
meetingTime: '2025-06-01T09:00:00',
|
|
163
|
+
timezone: 'America/New_York',
|
|
164
|
+
isOpenForAttendance: false,
|
|
165
|
+
attendanceState: AttendanceState.NOT_ATTENDING,
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Mock groups fixtures for the dashboard "Your Groups" section.
|
|
169
|
+
*
|
|
170
|
+
* Includes rows with missing optional fields (`type`, `officerRole`,
|
|
171
|
+
* `affiliation`) and a spread of member levels so the member-level badge
|
|
172
|
+
* colour map and empty-field placeholders are exercised.
|
|
173
|
+
*
|
|
174
|
+
* TODO: Replace mock with real API call when BE is ready
|
|
175
|
+
*/
|
|
176
|
+
export const DashboardGroupsMock = [
|
|
177
|
+
{
|
|
178
|
+
groupId: 'GRP-001',
|
|
179
|
+
group: 'NESC Main Committee',
|
|
180
|
+
type: 'Committee',
|
|
181
|
+
officerRole: 'Chair',
|
|
182
|
+
affiliation: 'Employer Corp',
|
|
183
|
+
memberLevel: 'Senior Member',
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
groupId: 'GRP-002',
|
|
187
|
+
group: 'Subcommittee 1 - Grounding',
|
|
188
|
+
type: 'Subcommittee',
|
|
189
|
+
// OfficerRole intentionally omitted (member with no officer role).
|
|
190
|
+
affiliation: 'Standards Member',
|
|
191
|
+
memberLevel: 'Member',
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
groupId: 'GRP-003',
|
|
195
|
+
group: 'Editorial Task Force',
|
|
196
|
+
// Type and affiliation intentionally omitted to exercise placeholders.
|
|
197
|
+
officerRole: 'Secretary',
|
|
198
|
+
memberLevel: 'Fellow',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
groupId: 'GRP-004',
|
|
202
|
+
group: 'Interpretations Subcommittee',
|
|
203
|
+
type: 'Subcommittee',
|
|
204
|
+
officerRole: 'Member',
|
|
205
|
+
affiliation: 'Tech Solutions Inc',
|
|
206
|
+
memberLevel: 'Associate Member',
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
groupId: 'GRP-005',
|
|
210
|
+
group: 'Standards Board',
|
|
211
|
+
type: 'Board',
|
|
212
|
+
officerRole: 'Vice Chair',
|
|
213
|
+
affiliation: 'CodeCraft Studio',
|
|
214
|
+
memberLevel: 'Senior Member',
|
|
215
|
+
},
|
|
216
|
+
];
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9hc3NldHMvZGFzaGJvYXJkLW1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBS25FOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFvQjtJQUMxRDtRQUNFLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEtBQUssRUFBRSw2QkFBNkI7UUFDcEMsTUFBTSxFQUFFLGFBQWE7UUFDckIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsWUFBWSxFQUFFLENBQUM7UUFDZixzQkFBc0IsRUFBRSxDQUFDO1FBQ3pCLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLFFBQVEsRUFBRTtZQUNSO2dCQUNFLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixnQkFBZ0IsRUFBRSxxQkFBcUI7Z0JBQ3ZDLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLFdBQVcsRUFBRSxxQkFBcUI7Z0JBQ2xDLFdBQVcsRUFBRSxxQkFBcUI7Z0JBQ2xDLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLG1CQUFtQixFQUFFLElBQUk7Z0JBQ3pCLGVBQWUsRUFBRSxlQUFlLENBQUMsbUJBQW1CO2FBQ3JEO1lBQ0Q7Z0JBQ0UsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFdBQVcsRUFBRSxnQ0FBZ0M7Z0JBQzdDLGdCQUFnQixFQUFFLDRCQUE0QjtnQkFDOUMsZ0ZBQWdGO2dCQUNoRixXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixtQkFBbUIsRUFBRSxJQUFJO2dCQUN6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Q2xCLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsdUVBQXVFO1FBQ3ZFLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLFdBQVcsRUFBRSxRQUFRO0tBQ3RCO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsU0FBUztRQUNsQixLQUFLLEVBQUUsOEJBQThCO1FBQ3JDLElBQUksRUFBRSxjQUFjO1FBQ3BCLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsV0FBVyxFQUFFLGtCQUFrQjtLQUNoQztJQUNEO1FBQ0UsT0FBTyxFQUFFLFNBQVM7UUFDbEIsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixJQUFJLEVBQUUsT0FBTztRQUNiLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLFdBQVcsRUFBRSxrQkFBa0I7UUFDL0IsV0FBVyxFQUFFLGVBQWU7S0FDN0I7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0ZW5kYW5jZVN0YXRlIH0gZnJvbSAnLi4vbW9kZWxzL2F0dGVuZGFuY2Utc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cFJvdyB9IGZyb20gJy4uL21vZGVscy9ncm91cC1yb3cubW9kZWwnO1xyXG5pbXBvcnQgeyBNZWV0aW5nUm93IH0gZnJvbSAnLi4vbW9kZWxzL21lZXRpbmctcm93Lm1vZGVsJztcclxuaW1wb3J0IHsgVXBjb21pbmdFdmVudCB9IGZyb20gJy4uL21vZGVscy91cGNvbWluZy1ldmVudC5tb2RlbCc7XHJcblxyXG4vKipcclxuICogTW9jayB1cGNvbWluZy1ldmVudHMgKyBncm91cHMgZml4dHVyZXMgZm9yIHRoZSBkYXNoYm9hcmQgbGlicmFyeS5cclxuICpcclxuICogVGhlc2UgZXhlcmNpc2UgdGhlIGtleSBwcmVzZW50YXRpb24gZWRnZSBjYXNlczpcclxuICogLSBlbXB0eS91bmRlZmluZWQgYGdyb3VwT3JDb21taXR0ZWVgIGFuZCBgcm9vbU9yTG9jYXRpb25gIChlbXB0eS1maWVsZCBwbGFjZWhvbGRlcilcclxuICogLSBhIG1peCBvZiBgQ1VSUkVOVExZX0FUVEVORElOR2AgLyBgTk9UX0FUVEVORElOR2AgYXR0ZW5kYW5jZSBzdGF0ZXNcclxuICogLSBldmVudHMgd2l0aCBtYW55IG1lZXRpbmdzIHNvIHBlci1jYXJkIHBhZ2luYXRpb24gaXMgZXhlcmNpc2VkXHJcbiAqXHJcbiAqIFRPRE86IFJlcGxhY2UgbW9jayB3aXRoIHJlYWwgQVBJIGNhbGwgd2hlbiBCRSBpcyByZWFkeVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IERhc2hib2FyZFVwY29taW5nRXZlbnRzTW9jazogVXBjb21pbmdFdmVudFtdID0gW1xyXG4gIHtcclxuICAgIGV2ZW50SWQ6ICdFVlQtMDAxJyxcclxuICAgIHRpdGxlOiAnTkVTQyBSZXZpc2lvbiBDeWNsZSBLaWNrb2ZmJyxcclxuICAgIHN0YXR1czogJ0luIFByb2dyZXNzJyxcclxuICAgIGRheUluZGljYXRvcjogJ0RheSAxIG9mIDMnLFxyXG4gICAgbWVldGluZ0NvdW50OiA2LFxyXG4gICAgb3BlbkZvckF0dGVuZGFuY2VDb3VudDogMyxcclxuICAgIHN0YXJ0RGF0ZTogJzIwMjUtMDMtMTRUMDk6MDA6MDAnLFxyXG4gICAgZW5kRGF0ZTogJzIwMjUtMDMtMTZUMTc6MDA6MDAnLFxyXG4gICAgdGltZXpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyxcclxuICAgIG1lZXRpbmdzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBtZWV0aW5nSWQ6ICdNVEctMDAxJyxcclxuICAgICAgICBtZWV0aW5nTmFtZTogJ09wZW5pbmcgUGxlbmFyeScsXHJcbiAgICAgICAgZ3JvdXBPckNvbW1pdHRlZTogJ05FU0MgTWFpbiBDb21taXR0ZWUnLFxyXG4gICAgICAgIHJvb21PckxvY2F0aW9uOiAnR3JhbmQgQmFsbHJvb20gQScsXHJcbiAgICAgICAgbWVldGluZ0RhdGU6ICcyMDI1LTAzLTE0VDA5OjAwOjAwJyxcclxuICAgICAgICBtZWV0aW5nVGltZTogJzIwMjUtMDMtMTRUMDk6MDA6MDAnLFxyXG4gICAgICAgIHRpbWV6b25lOiAnQW1lcmljYS9OZXdfWW9yaycsXHJcbiAgICAgICAgaXNPcGVuRm9yQXR0ZW5kYW5jZTogdHJ1ZSxcclxuICAgICAgICBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZS5DVVJSRU5UTFlfQVRURU5ESU5HLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbWVldGluZ0lkOiAnTVRHLTAwMicsXHJcbiAgICAgICAgbWVldGluZ05hbWU6ICdTdWJjb21taXR0ZWUgMSBXb3JraW5nIFNlc3Npb24nLFxyXG4gICAgICAgIGdyb3VwT3JDb21taXR0ZWU6ICdTdWJjb21taXR0ZWUgMSAtIEdyb3VuZGluZycsXHJcbiAgICAgICAgLy8gUm9vbU9yTG9jYXRpb24gaW50ZW50aW9uYWxseSBvbWl0dGVkIHRvIGV4ZXJjaXNlIHRoZSBlbXB0eS1maWVsZCBwbGFjZWhvbGRlci5cclxuICAgICAgICBtZWV0aW5nRGF0ZTogJzIwMjUtMDMtMTRUMTE6MDA6MDAnLFxyXG4gICAgICAgIG1lZXRpbmdUaW1lOiAnMjAyNS0wMy0xNFQxMTowMDowMCcsXHJcbiAgICAgICAgdGltZXpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyxcclxuICAgICAgICBpc09wZW5Gb3JBdHRlbmRhbmNlOiB0cnVlLFxyXG4gICAgICAgIGF0dGVuZGFuY2VTdGF0ZTogQXR0ZW5kYW5jZVN0YXRlLk5PVF9BVFRFTkRJTkcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBtZWV0aW5nSWQ6ICdNVEctMDAzJyxcclxuICAgICAgICBtZWV0aW5nTmFtZTogJ1N1YmNvbW1pdHRlZSAyIFdvcmtpbmcgU2Vzc2lvbicsXHJcbiAgICAgICAgLy8gR3JvdXBPckNvbW1pdHRlZSBpbnRlbnRpb25hbGx5IGVtcHR5IHRvIGV4ZXJjaXNlIHRoZSBlbXB0eS1maWVsZCBwbGFjZWhvbGRlci5cclxuICAgICAgICBncm91cE9yQ29tbWl0dGVlOiAnJyxcclxuICAgICAgICByb29tT3JMb2NhdGlvbjogJ1Jvb20gMjA0JyxcclxuICAgICAgICBtZWV0aW5nRGF0ZTogJzIwMjUtMDMtMTRUMTM6MzA6MDAnLFxyXG4gICAgICAgIG1lZXRpbmdUaW1lOiAnMjAyNS0wMy0xNFQxMzozMDowMCcsXHJcbiAgICAgICAgdGltZXpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyxcclxuICAgICAgICBpc09wZW5Gb3JBdHRlbmRhbmNlOiB0cnVlLFxyXG4gICAgICAgIGF0dGVuZGFuY2VTdGF0ZTogQXR0ZW5kYW5jZVN0YXRlLk5PVF9BVFRFTkRJTkcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBtZWV0aW5nSWQ6ICdNVEctMDA0JyxcclxuICAgICAgICBtZWV0aW5nTmFtZTogJ0VkaXRvcmlhbCBSZXZpZXcnLFxyXG4gICAgICAgIGdyb3VwT3JDb21taXR0ZWU6ICdFZGl0b3JpYWwgVGFzayBGb3JjZScsXHJcbiAgICAgICAgcm9vbU9yTG9jYXRpb246ICdSb29tIDExOCcsXHJcbiAgICAgICAgbWVldGluZ0RhdGU6ICcyMDI1LTAzLTE1VDA5OjAwOjAwJyxcclxuICAgICAgICBtZWV0aW5nVGltZTogJzIwMjUtMDMtMTVUMDk6MDA6MDAnLFxyXG4gICAgICAgIHRpbWV6b25lOiAnQW1lcmljYS9OZXdfWW9yaycsXHJcbiAgICAgICAgaXNPcGVuRm9yQXR0ZW5kYW5jZTogZmFsc2UsXHJcbiAgICAgICAgYXR0ZW5kYW5jZVN0YXRlOiBBdHRlbmRhbmNlU3RhdGUuTk9UX0FUVEVORElORyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG1lZXRpbmdJZDogJ01URy0wMDUnLFxyXG4gICAgICAgIG1lZXRpbmdOYW1lOiAnSW50ZXJwcmV0YXRpb25zIFBhbmVsJyxcclxuICAgICAgICBncm91cE9yQ29tbWl0dGVlOiAnSW50ZXJwcmV0YXRpb25zIFN1YmNvbW1pdHRlZScsXHJcbiAgICAgICAgcm9vbU9yTG9jYXRpb246ICdSb29tIDMxMCcsXHJcbiAgICAgICAgbWVldGluZ0RhdGU6ICcyMDI1LTAzLTE1VDE0OjAwOjAwJyxcclxuICAgICAgICBtZWV0aW5nVGltZTogJzIwMjUtMDMtMTVUMTQ6MDA6MDAnLFxyXG4gICAgICAgIHRpbWV6b25lOiAnQW1lcmljYS9OZXdfWW9yaycsXHJcbiAgICAgICAgaXNPcGVuRm9yQXR0ZW5kYW5jZTogdHJ1ZSxcclxuICAgICAgICBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZS5DVVJSRU5UTFlfQVRURU5ESU5HLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbWVldGluZ0lkOiAnTVRHLTAwNicsXHJcbiAgICAgICAgbWVldGluZ05hbWU6ICdDbG9zaW5nIFBsZW5hcnknLFxyXG4gICAgICAgIGdyb3VwT3JDb21taXR0ZWU6ICdORVNDIE1haW4gQ29tbWl0dGVlJyxcclxuICAgICAgICByb29tT3JMb2NhdGlvbjogJ0dyYW5kIEJhbGxyb29tIEEnLFxyXG4gICAgICAgIG1lZXRpbmdEYXRlOiAnMjAyNS0wMy0xNlQxNTowMDowMCcsXHJcbiAgICAgICAgbWVldGluZ1RpbWU6ICcyMDI1LTAzLTE2VDE1OjAwOjAwJyxcclxuICAgICAgICB0aW1lem9uZTogJ0FtZXJpY2EvTmV3X1lvcmsnLFxyXG4gICAgICAgIGlzT3BlbkZvckF0dGVuZGFuY2U6IGZhbHNlLFxyXG4gICAgICAgIGF0dGVuZGFuY2VTdGF0ZTogQXR0ZW5kYW5jZVN0YXRlLk5PVF9BVFRFTkRJTkcsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZXZlbnRJZDogJ0VWVC0wMDInLFxyXG4gICAgdGl0bGU6ICdTdGFuZGFyZHMgQm9hcmQgUXVhcnRlcmx5IE1lZXRpbmcnLFxyXG4gICAgc3RhdHVzOiAnVXBjb21pbmcnLFxyXG4gICAgZGF5SW5kaWNhdG9yOiAnRGF5IDEgb2YgMScsXHJcbiAgICBtZWV0aW5nQ291bnQ6IDMsXHJcbiAgICBvcGVuRm9yQXR0ZW5kYW5jZUNvdW50OiAxLFxyXG4gICAgc3RhcnREYXRlOiAnMjAyNS0wNC0wMlQwODozMDowMCcsXHJcbiAgICBlbmREYXRlOiAnMjAyNS0wNC0wMlQxNjowMDowMCcsXHJcbiAgICB0aW1lem9uZTogJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnLFxyXG4gICAgbWVldGluZ3M6IFtcclxuICAgICAge1xyXG4gICAgICAgIG1lZXRpbmdJZDogJ01URy0xMDEnLFxyXG4gICAgICAgIG1lZXRpbmdOYW1lOiAnQm9hcmQgT3BlbmluZyBSZW1hcmtzJyxcclxuICAgICAgICBncm91cE9yQ29tbWl0dGVlOiAnU3RhbmRhcmRzIEJvYXJkJyxcclxuICAgICAgICByb29tT3JMb2NhdGlvbjogJ1BhY2lmaWMgSGFsbCcsXHJcbiAgICAgICAgbWVldGluZ0RhdGU6ICcyMDI1LTA0LTAyVDA4OjMwOjAwJyxcclxuICAgICAgICBtZWV0aW5nVGltZTogJzIwMjUtMDQtMDJUMDg6MzA6MDAnLFxyXG4gICAgICAgIHRpbWV6b25lOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycsXHJcbiAgICAgICAgaXNPcGVuRm9yQXR0ZW5kYW5jZTogdHJ1ZSxcclxuICAgICAgICBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZS5OT1RfQVRURU5ESU5HLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbWVldGluZ0lkOiAnTVRHLTEwMicsXHJcbiAgICAgICAgbWVldGluZ05hbWU6ICdCYWxsb3QgUmV2aWV3IFNlc3Npb24nLFxyXG4gICAgICAgIC8vIEJvdGggb3B0aW9uYWwgbG9jYXRpb24vZ3JvdXAgZmllbGRzIG9taXR0ZWQgdG8gZXhlcmNpc2UgcGxhY2Vob2xkZXJzLlxyXG4gICAgICAgIG1lZXRpbmdEYXRlOiAnMjAyNS0wNC0wMlQxMDozMDowMCcsXHJcbiAgICAgICAgbWVldGluZ1RpbWU6ICcyMDI1LTA0LTAyVDEwOjMwOjAwJyxcclxuICAgICAgICB0aW1lem9uZTogJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnLFxyXG4gICAgICAgIGlzT3BlbkZvckF0dGVuZGFuY2U6IGZhbHNlLFxyXG4gICAgICAgIGF0dGVuZGFuY2VTdGF0ZTogQXR0ZW5kYW5jZVN0YXRlLk5PVF9BVFRFTkRJTkcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBtZWV0aW5nSWQ6ICdNVEctMTAzJyxcclxuICAgICAgICBtZWV0aW5nTmFtZTogJ0FjdGlvbiBJdGVtcyAmIFdyYXAtdXAnLFxyXG4gICAgICAgIGdyb3VwT3JDb21taXR0ZWU6ICdTdGFuZGFyZHMgQm9hcmQnLFxyXG4gICAgICAgIHJvb21PckxvY2F0aW9uOiAnUGFjaWZpYyBIYWxsJyxcclxuICAgICAgICBtZWV0aW5nRGF0ZTogJzIwMjUtMDQtMDJUMTU6MDA6MDAnLFxyXG4gICAgICAgIG1lZXRpbmdUaW1lOiAnMjAyNS0wNC0wMlQxNTowMDowMCcsXHJcbiAgICAgICAgdGltZXpvbmU6ICdBbWVyaWNhL0xvc19BbmdlbGVzJyxcclxuICAgICAgICBpc09wZW5Gb3JBdHRlbmRhbmNlOiBmYWxzZSxcclxuICAgICAgICBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZS5DVVJSRU5UTFlfQVRURU5ESU5HLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICB9LFxyXG4gIHtcclxuICAgIGV2ZW50SWQ6ICdFVlQtMDAzJyxcclxuICAgIHRpdGxlOiAnV29ya2luZyBHcm91cCBJbnRlcmltJyxcclxuICAgIHN0YXR1czogJ1VwY29taW5nJyxcclxuICAgIC8vIERheUluZGljYXRvciBpbnRlbnRpb25hbGx5IG9taXR0ZWQgKG9wdGlvbmFsIGZpZWxkKS5cclxuICAgIG1lZXRpbmdDb3VudDogMCxcclxuICAgIG9wZW5Gb3JBdHRlbmRhbmNlQ291bnQ6IDAsXHJcbiAgICBzdGFydERhdGU6ICcyMDI1LTA1LTIwVDA5OjAwOjAwJyxcclxuICAgIGVuZERhdGU6ICcyMDI1LTA1LTIwVDEyOjAwOjAwJyxcclxuICAgIHRpbWV6b25lOiAnRXVyb3BlL0xvbmRvbicsXHJcbiAgICBtZWV0aW5nczogW10sXHJcbiAgfSxcclxuXTtcclxuXHJcbi8qKlxyXG4gKiBNb2NrIGEgc2luZ2xlIG1lZXRpbmcgcm93IHdpdGggYW4gZW1wdHkgYG1lZXRpbmdJZGAgdG8gZXhlcmNpc2UgdGhlXHJcbiAqIG5vbi1hY3Rpb25hYmxlIChlbXB0eS91bmRlZmluZWQgaWQpIHBhdGggaW4gdGhlIG1lZXRpbmcgcm93IGNvbXBvbmVudC5cclxuICpcclxuICogVE9ETzogUmVwbGFjZSBtb2NrIHdpdGggcmVhbCBBUEkgY2FsbCB3aGVuIEJFIGlzIHJlYWR5XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRGFzaGJvYXJkTm9uQWN0aW9uYWJsZU1lZXRpbmdNb2NrOiBNZWV0aW5nUm93ID0ge1xyXG4gIG1lZXRpbmdJZDogJycsXHJcbiAgbWVldGluZ05hbWU6ICdVbnNjaGVkdWxlZCBQbGFjZWhvbGRlciBTZXNzaW9uJyxcclxuICBncm91cE9yQ29tbWl0dGVlOiAnJyxcclxuICBtZWV0aW5nRGF0ZTogJzIwMjUtMDYtMDFUMDk6MDA6MDAnLFxyXG4gIG1lZXRpbmdUaW1lOiAnMjAyNS0wNi0wMVQwOTowMDowMCcsXHJcbiAgdGltZXpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyxcclxuICBpc09wZW5Gb3JBdHRlbmRhbmNlOiBmYWxzZSxcclxuICBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZS5OT1RfQVRURU5ESU5HLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIE1vY2sgZ3JvdXBzIGZpeHR1cmVzIGZvciB0aGUgZGFzaGJvYXJkIFwiWW91ciBHcm91cHNcIiBzZWN0aW9uLlxyXG4gKlxyXG4gKiBJbmNsdWRlcyByb3dzIHdpdGggbWlzc2luZyBvcHRpb25hbCBmaWVsZHMgKGB0eXBlYCwgYG9mZmljZXJSb2xlYCxcclxuICogYGFmZmlsaWF0aW9uYCkgYW5kIGEgc3ByZWFkIG9mIG1lbWJlciBsZXZlbHMgc28gdGhlIG1lbWJlci1sZXZlbCBiYWRnZVxyXG4gKiBjb2xvdXIgbWFwIGFuZCBlbXB0eS1maWVsZCBwbGFjZWhvbGRlcnMgYXJlIGV4ZXJjaXNlZC5cclxuICpcclxuICogVE9ETzogUmVwbGFjZSBtb2NrIHdpdGggcmVhbCBBUEkgY2FsbCB3aGVuIEJFIGlzIHJlYWR5XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRGFzaGJvYXJkR3JvdXBzTW9jazogR3JvdXBSb3dbXSA9IFtcclxuICB7XHJcbiAgICBncm91cElkOiAnR1JQLTAwMScsXHJcbiAgICBncm91cDogJ05FU0MgTWFpbiBDb21taXR0ZWUnLFxyXG4gICAgdHlwZTogJ0NvbW1pdHRlZScsXHJcbiAgICBvZmZpY2VyUm9sZTogJ0NoYWlyJyxcclxuICAgIGFmZmlsaWF0aW9uOiAnRW1wbG95ZXIgQ29ycCcsXHJcbiAgICBtZW1iZXJMZXZlbDogJ1NlbmlvciBNZW1iZXInLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZ3JvdXBJZDogJ0dSUC0wMDInLFxyXG4gICAgZ3JvdXA6ICdTdWJjb21taXR0ZWUgMSAtIEdyb3VuZGluZycsXHJcbiAgICB0eXBlOiAnU3ViY29tbWl0dGVlJyxcclxuICAgIC8vIE9mZmljZXJSb2xlIGludGVudGlvbmFsbHkgb21pdHRlZCAobWVtYmVyIHdpdGggbm8gb2ZmaWNlciByb2xlKS5cclxuICAgIGFmZmlsaWF0aW9uOiAnU3RhbmRhcmRzIE1lbWJlcicsXHJcbiAgICBtZW1iZXJMZXZlbDogJ01lbWJlcicsXHJcbiAgfSxcclxuICB7XHJcbiAgICBncm91cElkOiAnR1JQLTAwMycsXHJcbiAgICBncm91cDogJ0VkaXRvcmlhbCBUYXNrIEZvcmNlJyxcclxuICAgIC8vIFR5cGUgYW5kIGFmZmlsaWF0aW9uIGludGVudGlvbmFsbHkgb21pdHRlZCB0byBleGVyY2lzZSBwbGFjZWhvbGRlcnMuXHJcbiAgICBvZmZpY2VyUm9sZTogJ1NlY3JldGFyeScsXHJcbiAgICBtZW1iZXJMZXZlbDogJ0ZlbGxvdycsXHJcbiAgfSxcclxuICB7XHJcbiAgICBncm91cElkOiAnR1JQLTAwNCcsXHJcbiAgICBncm91cDogJ0ludGVycHJldGF0aW9ucyBTdWJjb21taXR0ZWUnLFxyXG4gICAgdHlwZTogJ1N1YmNvbW1pdHRlZScsXHJcbiAgICBvZmZpY2VyUm9sZTogJ01lbWJlcicsXHJcbiAgICBhZmZpbGlhdGlvbjogJ1RlY2ggU29sdXRpb25zIEluYycsXHJcbiAgICBtZW1iZXJMZXZlbDogJ0Fzc29jaWF0ZSBNZW1iZXInLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZ3JvdXBJZDogJ0dSUC0wMDUnLFxyXG4gICAgZ3JvdXA6ICdTdGFuZGFyZHMgQm9hcmQnLFxyXG4gICAgdHlwZTogJ0JvYXJkJyxcclxuICAgIG9mZmljZXJSb2xlOiAnVmljZSBDaGFpcicsXHJcbiAgICBhZmZpbGlhdGlvbjogJ0NvZGVDcmFmdCBTdHVkaW8nLFxyXG4gICAgbWVtYmVyTGV2ZWw6ICdTZW5pb3IgTWVtYmVyJyxcclxuICB9LFxyXG5dO1xyXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const DashboardRoutePathsMock = {
|
|
2
|
+
eventDetail: 'events-and-meetings/view-event',
|
|
3
|
+
meetingDetail: 'events-and-meetings/view-meeting',
|
|
4
|
+
// The demo app only registers a flat `groups` route (no group-detail screen),
|
|
5
|
+
// so group-row navigation targets it rather than a `view-group` child that
|
|
6
|
+
// the demo does not implement. A consuming app with a real group-detail route
|
|
7
|
+
// supplies its own path via the `routePaths` input.
|
|
8
|
+
groupDetail: 'groups',
|
|
9
|
+
viewAllEvents: 'events-and-meetings/view-events-meetings-list',
|
|
10
|
+
viewAllGroups: 'groups',
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXJvdXRlLXBhdGhzLm1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9hc3NldHMvZGFzaGJvYXJkLXJvdXRlLXBhdGhzLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXlCO0lBQzNELFdBQVcsRUFBRSxnQ0FBZ0M7SUFDN0MsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCw4RUFBOEU7SUFDOUUsMkVBQTJFO0lBQzNFLDhFQUE4RTtJQUM5RSxvREFBb0Q7SUFDcEQsV0FBVyxFQUFFLFFBQVE7SUFDckIsYUFBYSxFQUFFLCtDQUErQztJQUM5RCxhQUFhLEVBQUUsUUFBUTtDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGFzaGJvYXJkUm91dGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvZGFzaGJvYXJkLXJvdXRlLWNvbmZpZy5tb2RlbCc7XHJcblxyXG5leHBvcnQgY29uc3QgRGFzaGJvYXJkUm91dGVQYXRoc01vY2s6IERhc2hib2FyZFJvdXRlQ29uZmlnID0ge1xyXG4gIGV2ZW50RGV0YWlsOiAnZXZlbnRzLWFuZC1tZWV0aW5ncy92aWV3LWV2ZW50JyxcclxuICBtZWV0aW5nRGV0YWlsOiAnZXZlbnRzLWFuZC1tZWV0aW5ncy92aWV3LW1lZXRpbmcnLFxyXG4gIC8vIFRoZSBkZW1vIGFwcCBvbmx5IHJlZ2lzdGVycyBhIGZsYXQgYGdyb3Vwc2Agcm91dGUgKG5vIGdyb3VwLWRldGFpbCBzY3JlZW4pLFxyXG4gIC8vIHNvIGdyb3VwLXJvdyBuYXZpZ2F0aW9uIHRhcmdldHMgaXQgcmF0aGVyIHRoYW4gYSBgdmlldy1ncm91cGAgY2hpbGQgdGhhdFxyXG4gIC8vIHRoZSBkZW1vIGRvZXMgbm90IGltcGxlbWVudC4gQSBjb25zdW1pbmcgYXBwIHdpdGggYSByZWFsIGdyb3VwLWRldGFpbCByb3V0ZVxyXG4gIC8vIHN1cHBsaWVzIGl0cyBvd24gcGF0aCB2aWEgdGhlIGByb3V0ZVBhdGhzYCBpbnB1dC5cclxuICBncm91cERldGFpbDogJ2dyb3VwcycsXHJcbiAgdmlld0FsbEV2ZW50czogJ2V2ZW50cy1hbmQtbWVldGluZ3Mvdmlldy1ldmVudHMtbWVldGluZ3MtbGlzdCcsXHJcbiAgdmlld0FsbEdyb3VwczogJ2dyb3VwcycsXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const DashboardUserPermissionsMock = [
|
|
2
|
+
{
|
|
3
|
+
permissionName: 'View Events',
|
|
4
|
+
permissionId: 'PERM_5dd65526-5df3-428d-8acc-cee7ffb5f261',
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
permissionName: 'View Meetings',
|
|
8
|
+
permissionId: 'PERM_5dd65526-5df3-428d-8acc-cee7ffb5f261',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
permissionName: 'View Groups',
|
|
12
|
+
permissionId: 'PERM_9a1f0c84-2b77-4e2a-9f3d-1c6b4e9a8d20',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
permissionName: 'Log Attendance',
|
|
16
|
+
permissionId: 'PERM_1b2c3d4e-5f60-4718-8293-aabbccddeeff',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
permissionName: 'Leave Meeting',
|
|
20
|
+
permissionId: 'PERM_6f5e4d3c-2b1a-4908-8716-ffeeddccbbaa',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXVzZXItcGVybWlzc2lvbnMubW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2Fzc2V0cy9kYXNoYm9hcmQtdXNlci1wZXJtaXNzaW9ucy5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFxQjtJQUM1RDtRQUNFLGNBQWMsRUFBRSxhQUFhO1FBQzdCLFlBQVksRUFBRSwyQ0FBMkM7S0FDMUQ7SUFDRDtRQUNFLGNBQWMsRUFBRSxlQUFlO1FBQy9CLFlBQVksRUFBRSwyQ0FBMkM7S0FDMUQ7SUFDRDtRQUNFLGNBQWMsRUFBRSxhQUFhO1FBQzdCLFlBQVksRUFBRSwyQ0FBMkM7S0FDMUQ7SUFDRDtRQUNFLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsWUFBWSxFQUFFLDJDQUEyQztLQUMxRDtJQUNEO1FBQ0UsY0FBYyxFQUFFLGVBQWU7UUFDL0IsWUFBWSxFQUFFLDJDQUEyQztLQUMxRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyUGVybWlzc2lvbiB9IGZyb20gJ0BpZWVlc2EtbnBtL21vZGVscyc7XHJcblxyXG5leHBvcnQgY29uc3QgRGFzaGJvYXJkVXNlclBlcm1pc3Npb25zTW9jazogVXNlclBlcm1pc3Npb25bXSA9IFtcclxuICB7XHJcbiAgICBwZXJtaXNzaW9uTmFtZTogJ1ZpZXcgRXZlbnRzJyxcclxuICAgIHBlcm1pc3Npb25JZDogJ1BFUk1fNWRkNjU1MjYtNWRmMy00MjhkLThhY2MtY2VlN2ZmYjVmMjYxJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBlcm1pc3Npb25OYW1lOiAnVmlldyBNZWV0aW5ncycsXHJcbiAgICBwZXJtaXNzaW9uSWQ6ICdQRVJNXzVkZDY1NTI2LTVkZjMtNDI4ZC04YWNjLWNlZTdmZmI1ZjI2MScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwZXJtaXNzaW9uTmFtZTogJ1ZpZXcgR3JvdXBzJyxcclxuICAgIHBlcm1pc3Npb25JZDogJ1BFUk1fOWExZjBjODQtMmI3Ny00ZTJhLTlmM2QtMWM2YjRlOWE4ZDIwJyxcclxuICB9LFxyXG4gIHtcclxuICAgIHBlcm1pc3Npb25OYW1lOiAnTG9nIEF0dGVuZGFuY2UnLFxyXG4gICAgcGVybWlzc2lvbklkOiAnUEVSTV8xYjJjM2Q0ZS01ZjYwLTQ3MTgtODI5My1hYWJiY2NkZGVlZmYnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGVybWlzc2lvbk5hbWU6ICdMZWF2ZSBNZWV0aW5nJyxcclxuICAgIHBlcm1pc3Npb25JZDogJ1BFUk1fNmY1ZTRkM2MtMmIxYS00OTA4LTg3MTYtZmZlZWRkY2NiYmFhJyxcclxuICB9LFxyXG5dO1xyXG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Luxon format tokens used across the dashboard library for rendering
|
|
3
|
+
* event/meeting dates, times, and timezones.
|
|
4
|
+
*
|
|
5
|
+
* These tokens follow the luxon `DateTime.toFormat()` convention
|
|
6
|
+
* (NOT moment). New code in this library must use luxon exclusively.
|
|
7
|
+
*
|
|
8
|
+
* @see https://moment.github.io/luxon/#/formatting?id=table-of-tokens
|
|
9
|
+
*/
|
|
10
|
+
export const DateFormats = {
|
|
11
|
+
/** ISO date used for request payloads, e.g. 2025-03-14. */
|
|
12
|
+
requestPayloadFormat: 'yyyy-MM-dd',
|
|
13
|
+
/** ISO date-time used for request payloads, e.g. 2025-03-14T09:30:00. */
|
|
14
|
+
requestPayloadDateTimeFormat: "yyyy-MM-dd'T'HH:mm:ss",
|
|
15
|
+
/** Human-readable date for display, e.g. 14 Mar 2025. */
|
|
16
|
+
displayFormat: 'dd MMM yyyy',
|
|
17
|
+
/** Human-readable long date for display, e.g. 14 March 2025. */
|
|
18
|
+
displayLongFormat: 'dd MMMM yyyy',
|
|
19
|
+
/** 24-hour time for display, e.g. 09:30. */
|
|
20
|
+
timeFormat: 'HH:mm',
|
|
21
|
+
/** 12-hour time with meridiem for display, e.g. 9:30 AM. */
|
|
22
|
+
timeMeridiemFormat: 'h:mm a',
|
|
23
|
+
/** Short timezone abbreviation for display, e.g. EST. */
|
|
24
|
+
timezoneFormat: 'ZZZZ',
|
|
25
|
+
/** Long timezone name for display, e.g. Eastern Standard Time. */
|
|
26
|
+
timezoneLongFormat: 'ZZZZZ',
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtYXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkL3NyYy9saWIvYXNzZXRzL2RhdGUtZm9ybWF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QiwyREFBMkQ7SUFDM0Qsb0JBQW9CLEVBQUUsWUFBWTtJQUNsQyx5RUFBeUU7SUFDekUsNEJBQTRCLEVBQUUsdUJBQXVCO0lBQ3JELHlEQUF5RDtJQUN6RCxhQUFhLEVBQUUsYUFBYTtJQUM1QixnRUFBZ0U7SUFDaEUsaUJBQWlCLEVBQUUsY0FBYztJQUNqQyw0Q0FBNEM7SUFDNUMsVUFBVSxFQUFFLE9BQU87SUFDbkIsNERBQTREO0lBQzVELGtCQUFrQixFQUFFLFFBQVE7SUFDNUIseURBQXlEO0lBQ3pELGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGtFQUFrRTtJQUNsRSxrQkFBa0IsRUFBRSxPQUFPO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogTHV4b24gZm9ybWF0IHRva2VucyB1c2VkIGFjcm9zcyB0aGUgZGFzaGJvYXJkIGxpYnJhcnkgZm9yIHJlbmRlcmluZ1xyXG4gKiBldmVudC9tZWV0aW5nIGRhdGVzLCB0aW1lcywgYW5kIHRpbWV6b25lcy5cclxuICpcclxuICogVGhlc2UgdG9rZW5zIGZvbGxvdyB0aGUgbHV4b24gYERhdGVUaW1lLnRvRm9ybWF0KClgIGNvbnZlbnRpb25cclxuICogKE5PVCBtb21lbnQpLiBOZXcgY29kZSBpbiB0aGlzIGxpYnJhcnkgbXVzdCB1c2UgbHV4b24gZXhjbHVzaXZlbHkuXHJcbiAqXHJcbiAqIEBzZWUgaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvZm9ybWF0dGluZz9pZD10YWJsZS1vZi10b2tlbnNcclxuICovXHJcbmV4cG9ydCBjb25zdCBEYXRlRm9ybWF0cyA9IHtcclxuICAvKiogSVNPIGRhdGUgdXNlZCBmb3IgcmVxdWVzdCBwYXlsb2FkcywgZS5nLiAyMDI1LTAzLTE0LiAqL1xyXG4gIHJlcXVlc3RQYXlsb2FkRm9ybWF0OiAneXl5eS1NTS1kZCcsXHJcbiAgLyoqIElTTyBkYXRlLXRpbWUgdXNlZCBmb3IgcmVxdWVzdCBwYXlsb2FkcywgZS5nLiAyMDI1LTAzLTE0VDA5OjMwOjAwLiAqL1xyXG4gIHJlcXVlc3RQYXlsb2FkRGF0ZVRpbWVGb3JtYXQ6IFwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzXCIsXHJcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRhdGUgZm9yIGRpc3BsYXksIGUuZy4gMTQgTWFyIDIwMjUuICovXHJcbiAgZGlzcGxheUZvcm1hdDogJ2RkIE1NTSB5eXl5JyxcclxuICAvKiogSHVtYW4tcmVhZGFibGUgbG9uZyBkYXRlIGZvciBkaXNwbGF5LCBlLmcuIDE0IE1hcmNoIDIwMjUuICovXHJcbiAgZGlzcGxheUxvbmdGb3JtYXQ6ICdkZCBNTU1NIHl5eXknLFxyXG4gIC8qKiAyNC1ob3VyIHRpbWUgZm9yIGRpc3BsYXksIGUuZy4gMDk6MzAuICovXHJcbiAgdGltZUZvcm1hdDogJ0hIOm1tJyxcclxuICAvKiogMTItaG91ciB0aW1lIHdpdGggbWVyaWRpZW0gZm9yIGRpc3BsYXksIGUuZy4gOTozMCBBTS4gKi9cclxuICB0aW1lTWVyaWRpZW1Gb3JtYXQ6ICdoOm1tIGEnLFxyXG4gIC8qKiBTaG9ydCB0aW1lem9uZSBhYmJyZXZpYXRpb24gZm9yIGRpc3BsYXksIGUuZy4gRVNULiAqL1xyXG4gIHRpbWV6b25lRm9ybWF0OiAnWlpaWicsXHJcbiAgLyoqIExvbmcgdGltZXpvbmUgbmFtZSBmb3IgZGlzcGxheSwgZS5nLiBFYXN0ZXJuIFN0YW5kYXJkIFRpbWUuICovXHJcbiAgdGltZXpvbmVMb25nRm9ybWF0OiAnWlpaWlonLFxyXG59O1xyXG4iXX0=
|