ready for connecting to entraID
6
.env.example
Normal file
|
@ -0,0 +1,6 @@
|
|||
NODE_ENV=
|
||||
HTTP_PORT=
|
||||
OPENWEATHER_APPID=
|
||||
AZURE_CLIENT_ID=
|
||||
AZURE_CLIENT_SECRET=
|
||||
AZURE_TENANT_ID=
|
1
.gitignore
vendored
|
@ -130,3 +130,4 @@ dist
|
|||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
|
||||
certs/
|
||||
|
|
8
LICENSE
|
@ -1,8 +0,0 @@
|
|||
ISC License:
|
||||
|
||||
Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (c) 1995-2003 by Internet Software Consortium
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
124
events/s-er-1431-00@liveconcordia.onmicrosoft.com.json
Normal file
|
@ -0,0 +1,124 @@
|
|||
{
|
||||
"value": [
|
||||
{
|
||||
"subject": "Team Standup Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T08:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T09:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-00 Open Space"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer1@example.com",
|
||||
"name": "John Doe"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Project Discussion",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T10:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-00 Open Space"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer2@example.com",
|
||||
"name": "Jane Smith"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Client Call",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-00 Open Space"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer3@example.com",
|
||||
"name": "Alice Johnson"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Lunch Break",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T13:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-00 Open Space"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer4@example.com",
|
||||
"name": "Bob White"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Design Review",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T14:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T15:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-00 Open Space"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer5@example.com",
|
||||
"name": "Clara Green"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Wrap-Up Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T16:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T17:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-00 Open Space"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer6@example.com",
|
||||
"name": "Daniel Blue"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
124
events/s-er-1431-03@liveconcordia.onmicrosoft.com.json
Normal file
|
@ -0,0 +1,124 @@
|
|||
{
|
||||
"value": [
|
||||
{
|
||||
"subject": "Team Standup Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T08:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T09:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-03 Visualization Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer1@example.com",
|
||||
"name": "John Doe"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Project Discussion",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T10:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-03 Visualization Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer2@example.com",
|
||||
"name": "Jane Smith"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Client Call",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-03 Visualization Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer3@example.com",
|
||||
"name": "Alice Johnson"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Lunch Break",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T13:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-03 Visualization Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer4@example.com",
|
||||
"name": "Bob White"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Design Review",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T14:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T15:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-03 Visualization Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer5@example.com",
|
||||
"name": "Clara Green"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Wrap-Up Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T16:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T17:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-03 Visualization Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer6@example.com",
|
||||
"name": "Daniel Blue"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
124
events/s-er-1431-33@liveconcordia.onmicrosoft.com.json
Normal file
|
@ -0,0 +1,124 @@
|
|||
{
|
||||
"value": [
|
||||
{
|
||||
"subject": "Team Standup Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T08:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T09:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-33 Ideation Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer1@example.com",
|
||||
"name": "John Doe"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Project Discussion",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T10:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-33 Ideation Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer2@example.com",
|
||||
"name": "Jane Smith"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Client Call",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-33 Ideation Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer3@example.com",
|
||||
"name": "Alice Johnson"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Lunch Break",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T13:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-33 Ideation Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer4@example.com",
|
||||
"name": "Bob White"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Design Review",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T14:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T15:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-33 Ideation Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer5@example.com",
|
||||
"name": "Clara Green"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Wrap-Up Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T16:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T17:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-33 Ideation Lab"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer6@example.com",
|
||||
"name": "Daniel Blue"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
124
events/s-er-1431-37@liveconcordia.onmicrosoft.com.json
Normal file
|
@ -0,0 +1,124 @@
|
|||
{
|
||||
"value": [
|
||||
{
|
||||
"subject": "Team Standup Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T08:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T09:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-37 Multipurpose Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer1@example.com",
|
||||
"name": "John Doe"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Project Discussion",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T10:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-37 Multipurpose Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer2@example.com",
|
||||
"name": "Jane Smith"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Client Call",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-37 Multipurpose Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer3@example.com",
|
||||
"name": "Alice Johnson"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Lunch Break",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T13:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-37 Multipurpose Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer4@example.com",
|
||||
"name": "Bob White"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Design Review",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T14:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T15:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-37 Multipurpose Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer5@example.com",
|
||||
"name": "Clara Green"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Wrap-Up Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T16:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T17:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-37 Multipurpose Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer6@example.com",
|
||||
"name": "Daniel Blue"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
124
events/s-er-1431-39@liveconcordia.onmicrosoft.com.json
Normal file
|
@ -0,0 +1,124 @@
|
|||
{
|
||||
"value": [
|
||||
{
|
||||
"subject": "Team Standup Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T08:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T09:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-39 Conference Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer1@example.com",
|
||||
"name": "John Doe"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Project Discussion",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T10:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-39 Conference Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer2@example.com",
|
||||
"name": "Jane Smith"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Client Call",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T11:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-39 Conference Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer3@example.com",
|
||||
"name": "Alice Johnson"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Lunch Break",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T12:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T13:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-39 Conference Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer4@example.com",
|
||||
"name": "Bob White"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Design Review",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T14:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T15:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-39 Conference Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer5@example.com",
|
||||
"name": "Clara Green"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"subject": "Wrap-Up Meeting",
|
||||
"start": {
|
||||
"dateTime": "2024-04-12T16:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2024-04-12T17:00:00",
|
||||
"timeZone": "Eastern Standard Time"
|
||||
},
|
||||
"location": {
|
||||
"displayName": "ER 1431-39 Conference Room"
|
||||
},
|
||||
"organizer": {
|
||||
"emailAddress": {
|
||||
"address": "organizer6@example.com",
|
||||
"name": "Daniel Blue"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
240
frontend-dev/vwss-frontend/frontend.js
Normal file
|
@ -0,0 +1,240 @@
|
|||
function populateTable(resourceUPN, events, container) {
|
||||
console.log(events);
|
||||
// Create a wrapper for the resource and its events
|
||||
const resourceWrapper = document.createElement('div');
|
||||
resourceWrapper.className = 'resource-wrapper';
|
||||
|
||||
// Create a row for the resource title
|
||||
const titleRow = document.createElement('div');
|
||||
titleRow.className = 'title-row';
|
||||
|
||||
switch (resourceUPN.split("@")[0]) {
|
||||
case "s-er-1431-00":
|
||||
titleRow.innerHTML = 'ER 1431-00 Open Space';
|
||||
break;
|
||||
case "s-er-1431-03":
|
||||
titleRow.innerHTML = 'ER 1431-03 Visualization Lab';
|
||||
break;
|
||||
case "s-er-1431-33":
|
||||
titleRow.innerHTML = 'ER 1431-33 Ideation Lab';
|
||||
break;
|
||||
case "s-er-1431-37":
|
||||
titleRow.innerHTML = 'ER 1431-37 Multipurpose Room';
|
||||
break;
|
||||
case "s-er-1431-39":
|
||||
titleRow.innerHTML = 'ER 1431-39 Conference Room';
|
||||
break;
|
||||
}
|
||||
resourceWrapper.appendChild(titleRow);
|
||||
|
||||
// Create a grid for events
|
||||
const eventGrid = document.createElement('div');
|
||||
eventGrid.className = 'event-row';
|
||||
|
||||
events.forEach((event, index) => {
|
||||
const eventCell = document.createElement('div');
|
||||
eventCell.className = 'flex-cell';
|
||||
const title = event.subject;
|
||||
const organizer = event.organizer.emailAddress.name;
|
||||
const startTime = formatUTCTime(event.start.dateTime + 'Z');
|
||||
const endTime = formatUTCTime(event.end.dateTime + 'Z');
|
||||
|
||||
const titleDiv = document.createElement('div');
|
||||
titleDiv.textContent = title;
|
||||
|
||||
const organizerDiv = document.createElement('div');
|
||||
organizerDiv.textContent = organizer;
|
||||
organizerDiv.className = 'organizer';
|
||||
|
||||
const timeDiv = document.createElement('div');
|
||||
timeDiv.className = 'time-range';
|
||||
timeDiv.innerHTML = `${startTime} - ${endTime}`;
|
||||
|
||||
eventCell.appendChild(titleDiv);
|
||||
eventCell.appendChild(organizerDiv);
|
||||
eventCell.appendChild(timeDiv);
|
||||
eventGrid.appendChild(eventCell);
|
||||
});
|
||||
|
||||
resourceWrapper.appendChild(eventGrid);
|
||||
container.appendChild(resourceWrapper);
|
||||
}
|
||||
|
||||
function formatUTCTime(date) {
|
||||
const etDate = new Date(date.toLocaleString("en-US", { timeZone: "America/New_York" }));
|
||||
const hours = etDate.getHours();
|
||||
const minutes = etDate.getMinutes().toString().padStart(2, '0');
|
||||
|
||||
return `<span class="time">${hours}</span><span class="separator">:</span><span class="time">${minutes}</span>`;
|
||||
}
|
||||
|
||||
async function fetchAllEvents() {
|
||||
console.log("fetching events");
|
||||
const response = await fetch('http://localhost:8080/api/events');
|
||||
const allEvents = await response.json();
|
||||
|
||||
console.log(allEvents);
|
||||
|
||||
|
||||
const resourcesContainer = document.getElementById('resources-container');
|
||||
resourcesContainer.innerHTML = '';
|
||||
const keys = Object.keys(allEvents);
|
||||
|
||||
keys.forEach((key) => {
|
||||
console.log(allEvents[key]);
|
||||
populateTable(key, allEvents[key].value, resourcesContainer);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function updateTime(showSeparator) {
|
||||
let timeString = formatUTCTime(new Date());
|
||||
|
||||
if (!showSeparator) {
|
||||
timeString = timeString.replace(':', ' ');
|
||||
}
|
||||
document.getElementById('time').innerHTML = timeString;
|
||||
|
||||
}
|
||||
|
||||
function updateFontSize(elementId) {
|
||||
const element = document.getElementById(elementId);
|
||||
const textLength = element.textContent.length;
|
||||
|
||||
if (textLength <= 83) {
|
||||
element.style.fontSize = '5em';
|
||||
} else if (textLength <= 166) {
|
||||
element.style.fontSize = '4em';
|
||||
} else {
|
||||
element.style.fontSize = '3em';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Function to fetch and display a quote
|
||||
async function fetchAndDisplayQuote() {
|
||||
try {
|
||||
const response = await fetch('http://localhost:8080/api/quotes');
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
const quotes = data.results;
|
||||
const randomIndex = Math.floor(Math.random() * quotes.length);
|
||||
const randomQuote = quotes[randomIndex];
|
||||
|
||||
document.getElementById('quote').innerHTML = `<i>${randomQuote.content}</i>`;
|
||||
updateFontSize('quote');
|
||||
document.getElementById('author').innerHTML = `${randomQuote.author}`;
|
||||
|
||||
} else {
|
||||
console.error('Failed to fetch data');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('An error occurred:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// Fetch Current Weather
|
||||
async function fetchWeather() {
|
||||
const response = await fetch('http://localhost:8080/api/weather');
|
||||
const data = await response.json();
|
||||
if (data.cod === 200) {
|
||||
const temperature = data.main.temp;
|
||||
const description = data.weather[0].description;
|
||||
const iconCode = data.weather[0].icon;
|
||||
const iconUrl = `https://openweathermap.org/img/wn/${iconCode}.png`
|
||||
|
||||
document.getElementById("weather-icon-container").innerHTML = `<img id="weather-icon" alt="Weather Icon" src="${iconUrl}">`;
|
||||
document.getElementById("temperature").innerHTML = `${temperature}°`;
|
||||
document.getElementById("description").innerHTML = `${description}`;
|
||||
} else {
|
||||
document.getElementById("weather").innerText = 'Weather data unavailable';
|
||||
}
|
||||
}
|
||||
|
||||
// Display Current Time
|
||||
function displayTime() {
|
||||
const now = new Date();
|
||||
const timeHtml = formatUTCTime(now);
|
||||
document.getElementById("time").innerHTML = timeHtml;
|
||||
setTimeout(displayTime, 60000);
|
||||
|
||||
}
|
||||
|
||||
// Slideshow
|
||||
|
||||
async function fetchSlideshowImages() {
|
||||
try {
|
||||
const response = await fetch('http://localhost:8080/api/slideshow');
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch slideshow images');
|
||||
}
|
||||
const images = await response.json();
|
||||
updateSlideshow(images);
|
||||
} catch (error) {
|
||||
console.error('Error fetching slideshow images:', error);
|
||||
}
|
||||
}
|
||||
|
||||
function createSlideshowElement(src) {
|
||||
const img = document.createElement('img');
|
||||
// img.src = src;
|
||||
img.src = `http://localhost:8080${src}`;
|
||||
img.className = 'slideshow-img';
|
||||
img.style.width = '100%';
|
||||
img.style.maxHeight = '100vh';
|
||||
img.style.objectFit = 'cover';
|
||||
const filename = src.split('/').pop().split('.')[0]; // Extracts filename without extension
|
||||
|
||||
// Set the filename as the alt text
|
||||
img.alt = filename;
|
||||
|
||||
// If you also want to set the title attribute
|
||||
img.title = filename;
|
||||
return img;
|
||||
}
|
||||
|
||||
let currentIndex = 0;
|
||||
function updateSlideshow(images) {
|
||||
if (images.length === 0) {
|
||||
console.log('No images found for the slideshow.');
|
||||
return;
|
||||
}
|
||||
|
||||
const slideshowContainer = document.getElementById('slideshow');
|
||||
slideshowContainer.innerHTML = '';
|
||||
const imageElement = createSlideshowElement(images[currentIndex]);
|
||||
slideshowContainer.appendChild(imageElement);
|
||||
|
||||
// Wait a little bit before starting the fade-in to ensure it's loaded
|
||||
setTimeout(() => { imageElement.style.opacity = '1'; }, 100);
|
||||
|
||||
// Clean up the previous image after the new one has faded in
|
||||
setTimeout(() => {
|
||||
while (slideshowContainer.children.length > 1) {
|
||||
slideshowContainer.removeChild(slideshowContainer.firstChild);
|
||||
}
|
||||
}, 100);
|
||||
|
||||
currentIndex = (currentIndex + 1) % images.length;
|
||||
setTimeout(() => updateSlideshow(images), 30000); // Change image every 5 seconds
|
||||
}
|
||||
|
||||
let showSeparator = true;
|
||||
|
||||
fetchAndDisplayQuote();
|
||||
setInterval(fetchAndDisplayQuote, 60 * 60 * 1000);
|
||||
|
||||
fetchWeather();
|
||||
setInterval(fetchWeather, 15 * 60 * 1000);
|
||||
|
||||
updateTime(showSeparator);
|
||||
setInterval(() => {
|
||||
updateTime(showSeparator);
|
||||
showSeparator = !showSeparator;
|
||||
}, 1000);
|
||||
|
||||
fetchSlideshowImages();
|
||||
|
||||
fetchAllEvents();
|
||||
setInterval(fetchAllEvents, 5 * 60 * 1000);
|
47
frontend-dev/vwss-frontend/index.html
Normal file
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>NGCI Daily Schedule</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="grid">
|
||||
<div id="schedule-container">
|
||||
<div class="header">
|
||||
<img id="horizontal-logo" src="ngci-logo-white-wide.svg" alt="Next-Generation Cities Institute">
|
||||
</div>
|
||||
<div id="resources-container"></div>
|
||||
</div>
|
||||
|
||||
<div id="slideshow"></div>
|
||||
|
||||
<div id="homepage-container">
|
||||
<div class="header">
|
||||
<img id="horizontal-logo" src="ngci-logo-white-wide.svg" alt="Next-Generation Cities Institute">
|
||||
</div>
|
||||
<div class="top-container">
|
||||
<div id="time-weather-container">
|
||||
<div id="weather">
|
||||
<div id="weather-icon-container"></div>
|
||||
<div id="temperature"></div>
|
||||
<div id="description"></div>
|
||||
</div>
|
||||
<div id="time"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bottom-section">
|
||||
<div id="quote"></div>
|
||||
<div id="author"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="module" src="frontend.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
758
frontend-dev/vwss-frontend/package-lock.json
generated
Normal file
|
@ -0,0 +1,758 @@
|
|||
{
|
||||
"name": "vwss-frontend",
|
||||
"version": "0.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "vwss-frontend",
|
||||
"version": "0.0.0",
|
||||
"devDependencies": {
|
||||
"vite": "^5.1.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
|
||||
"integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"aix"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
|
||||
"integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
|
||||
"integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
|
||||
"integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
|
||||
"integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
|
||||
"integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
|
||||
"integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
|
||||
"integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
|
||||
"integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
|
||||
"integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
|
||||
"integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
|
||||
"integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
|
||||
"integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"sunos"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
|
||||
"integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
|
||||
"integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz",
|
||||
"integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz",
|
||||
"integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz",
|
||||
"integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz",
|
||||
"integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz",
|
||||
"integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz",
|
||||
"integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz",
|
||||
"integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz",
|
||||
"integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz",
|
||||
"integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz",
|
||||
"integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz",
|
||||
"integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz",
|
||||
"integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz",
|
||||
"integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
|
||||
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
|
||||
"integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.19.12",
|
||||
"@esbuild/android-arm": "0.19.12",
|
||||
"@esbuild/android-arm64": "0.19.12",
|
||||
"@esbuild/android-x64": "0.19.12",
|
||||
"@esbuild/darwin-arm64": "0.19.12",
|
||||
"@esbuild/darwin-x64": "0.19.12",
|
||||
"@esbuild/freebsd-arm64": "0.19.12",
|
||||
"@esbuild/freebsd-x64": "0.19.12",
|
||||
"@esbuild/linux-arm": "0.19.12",
|
||||
"@esbuild/linux-arm64": "0.19.12",
|
||||
"@esbuild/linux-ia32": "0.19.12",
|
||||
"@esbuild/linux-loong64": "0.19.12",
|
||||
"@esbuild/linux-mips64el": "0.19.12",
|
||||
"@esbuild/linux-ppc64": "0.19.12",
|
||||
"@esbuild/linux-riscv64": "0.19.12",
|
||||
"@esbuild/linux-s390x": "0.19.12",
|
||||
"@esbuild/linux-x64": "0.19.12",
|
||||
"@esbuild/netbsd-x64": "0.19.12",
|
||||
"@esbuild/openbsd-x64": "0.19.12",
|
||||
"@esbuild/sunos-x64": "0.19.12",
|
||||
"@esbuild/win32-arm64": "0.19.12",
|
||||
"@esbuild/win32-ia32": "0.19.12",
|
||||
"@esbuild/win32-x64": "0.19.12"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.36",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz",
|
||||
"integrity": "sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz",
|
||||
"integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/estree": "1.0.5"
|
||||
},
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0",
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.13.0",
|
||||
"@rollup/rollup-android-arm64": "4.13.0",
|
||||
"@rollup/rollup-darwin-arm64": "4.13.0",
|
||||
"@rollup/rollup-darwin-x64": "4.13.0",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.13.0",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.13.0",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.13.0",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.13.0",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.13.0",
|
||||
"@rollup/rollup-linux-x64-musl": "4.13.0",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.13.0",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.13.0",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.13.0",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz",
|
||||
"integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "5.1.6",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.1.6.tgz",
|
||||
"integrity": "sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.19.3",
|
||||
"postcss": "^8.4.35",
|
||||
"rollup": "^4.2.0"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/vitejs/vite?sponsor=1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/node": "^18.0.0 || >=20.0.0",
|
||||
"less": "*",
|
||||
"lightningcss": "^1.21.0",
|
||||
"sass": "*",
|
||||
"stylus": "*",
|
||||
"sugarss": "*",
|
||||
"terser": "^5.4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/node": {
|
||||
"optional": true
|
||||
},
|
||||
"less": {
|
||||
"optional": true
|
||||
},
|
||||
"lightningcss": {
|
||||
"optional": true
|
||||
},
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
"sugarss": {
|
||||
"optional": true
|
||||
},
|
||||
"terser": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
14
frontend-dev/vwss-frontend/package.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"name": "vwss-frontend",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "^5.1.6"
|
||||
}
|
||||
}
|
BIN
frontend-dev/vwss-frontend/public/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
296
frontend-dev/vwss-frontend/public/ngci-logo-white-wide.svg
Executable file
|
@ -0,0 +1,296 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
width="884.44"
|
||||
height="117.89333"
|
||||
viewBox="0 0 884.44 117.89333"
|
||||
sodipodi:docname="Concordia-Logo-NGCI-ENG-HORIZ-CMYK-white (1).eps"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
id="namedview4"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<g
|
||||
id="g8"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="ink_ext_XXXXXX"
|
||||
transform="matrix(1.3333333,0,0,-1.3333333,0,117.89333)">
|
||||
<g
|
||||
id="g10"
|
||||
transform="scale(0.1)">
|
||||
<path
|
||||
d="m 1082.71,343.16 c -28.83,-20.058 -63.19,-30.156 -105.093,-30.676 -47.976,-1.289 -91.062,14.532 -121.355,44.563 -28.032,27.793 -42.5,64.629 -41.821,106.562 0.414,43.797 17.004,83.602 46.582,112.286 29.297,28.418 69.778,43.601 114.028,42.695 33.109,-0.449 53.949,-6.035 82.439,-22.246 l 13.89,-7.844 v 58.645 l -5.78,2.382 c -32.16,13.504 -54.13,16.075 -91.198,16.661 -64.058,0.507 -121.929,-21.739 -163.054,-62.637 -36.946,-36.856 -57.207,-86.504 -56.985,-139.805 0.266,-55.176 21.723,-105.793 60.293,-142.578 41.739,-39.746 100,-60.137 163.989,-57.305 -0.059,0 5.144,0.137 5.144,0.137 33.001,0.898 54.791,1.543 87.461,13.379 0.07,0.059 3.92,1.473 3.92,1.473 l 33.26,82.316 -25.72,-18.008"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path12" />
|
||||
<path
|
||||
d="m 1304.56,311.461 c -43.56,0 -78.03,38.457 -78.49,87.586 -0.26,26.301 9.94,52.219 27.24,69.191 14.28,14.024 32.18,21.16 51.84,20.645 43.28,-2.121 78.44,-41.738 78.44,-88.418 l -0.05,-2.832 c -0.9,-47.52 -36.34,-86.172 -78.98,-86.172 z m 97.62,180.644 c -25.1,26.172 -59,41.016 -95.43,41.856 h -0.03 c -35.85,0.527 -71.19,-13.75 -96.94,-39.16 -25.63,-25.274 -39.75,-58.586 -39.75,-93.887 0,-72.551 59.42,-132.48 132.41,-133.516 36.37,-0.566 70.68,12.997 96.66,38.204 25.27,24.57 39.48,57.304 39.99,92.156 0.78,35.109 -12.34,68.683 -36.91,94.347"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path14" />
|
||||
<path
|
||||
d="m 2072.29,327.086 c -14.94,-10.742 -42.51,-18.262 -70.17,-19.16 -24.43,-0.391 -47.33,8.808 -64.5,25.918 -17.33,17.285 -26.66,40.703 -26.2,65.906 0,50.813 38.09,89.777 88.61,90.676 22.23,0.39 46.21,-6.68 61.05,-18.067 l 14.99,-11.386 v 58.398 l -5.79,2.371 c -25.47,10.422 -43.43,10.742 -68.3,11.192 l -2.36,0.07 c -41.26,1.023 -78.98,-13.254 -106.15,-40.195 -24.31,-24.18 -37.58,-56.594 -37.58,-91.7 0,-0.976 0,-1.933 0,-2.968 0.51,-35.938 14.59,-68.938 39.67,-92.727 27.24,-25.789 65.27,-39.168 107.2,-37.559 l 8.24,0.254 c 22.73,0.774 40.77,1.282 64.69,10.871 -0.09,0 2,0.782 2,0.782 l 2.86,1.082 10.19,59.543 -18.45,-13.301"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path16" />
|
||||
<path
|
||||
d="m 2307.27,311.461 c -43.61,0 -78.04,38.457 -78.46,87.586 -0.28,26.301 9.91,52.219 27.18,69.191 14.29,14.024 32.21,21.16 51.82,20.645 44.05,-2.121 78.5,-40.957 78.5,-88.418 v -2.832 c -0.97,-47.52 -36.4,-86.172 -79.04,-86.172 z m 97.56,180.391 c -25.27,26.425 -59.14,41.347 -95.41,42.109 -35.86,0.527 -71.16,-13.75 -96.95,-39.16 -25.59,-25.215 -39.75,-58.586 -39.75,-93.887 0,-72.551 59.43,-132.48 132.43,-133.516 36.39,-0.566 70.68,12.997 96.65,38.204 25.28,24.57 39.45,57.304 39.94,92.156 0.06,1.027 0.06,1.992 0.06,2.961 0,33.953 -13.05,66.238 -36.97,91.133"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path18" />
|
||||
<path
|
||||
d="m 3540.69,397.438 c 0,-10.352 0,-45.469 0,-45.469 0,-27.071 -29.12,-43.606 -57.15,-44.043 -13.89,-0.196 -27.27,5.137 -35.78,14.277 -6.21,6.746 -9.38,14.395 -9.38,23.016 l 0.2,2.902 c 1.11,18.574 14.45,31.824 35.7,35.613 0.18,0 45.49,8.489 45.49,8.489 0.29,0.066 12.83,3.222 20.92,5.215 z m 66.64,-126.172 -7.27,13.379 c -3.02,5.585 -4.2,8.808 -5.52,14.921 -1.78,5.977 -2.25,9.454 -2.25,16.075 v 130.156 c 0,58.262 -32.68,86.562 -102.83,89.129 h -0.06 c -26.06,0 -51.43,-1.348 -77.44,-17.293 l -4.46,-2.774 v -54.015 l 15.36,13.371 c 13.41,11.523 34.72,17.176 65.27,17.176 28.85,0 50.59,-14.403 50.59,-33.633 0,-16.785 -8.72,-21.024 -28.11,-24.188 -0.12,-0.058 -4.43,-0.761 -50,-8.547 -49.94,-7.722 -71.99,-30.027 -73.59,-74.656 -0.06,-1.601 -0.06,-3.156 -0.06,-4.699 0,-20.066 6.93,-37.879 20.27,-51.824 16.8,-17.434 42.48,-27.344 70.53,-27.012 18.96,0.371 40.66,3.398 61.91,17.031 0,-4.375 0,-14.211 0,-14.211 l 67.66,1.614"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path20" />
|
||||
<path
|
||||
d="m 1704.88,280.133 -12.73,-16.074 h 90.81 l -11.78,15.058 c -3.05,3.985 -4.04,5.653 -4.65,8.992 -2.55,8.684 -2.77,12.805 -2.77,20.254 v 124.25 c 0,25.594 -10.49,49.715 -29.49,67.852 -20.51,19.609 -49.19,30.098 -78.62,28.75 -26.11,-0.91 -45.58,-7.531 -63.18,-20.91 0.06,3.156 0.25,12.414 0.25,12.414 l -5.45,0.058 h -59.23 l 8.49,-24.238 c 0,0 0.12,0.313 0.16,0.379 0.16,-1.152 0.35,-2.188 0.66,-3.34 l 1.68,-9.129 V 293.902 c 0,-2.89 -0.32,-4.629 -1.25,-6.816 -0.13,-0.254 -3.63,-7.715 -3.67,-7.793 -0.06,0 -4.53,-7.004 -4.53,-7.004 l -5.24,-8.23 h 83.19 l -11.74,24.57 c -2.25,7.266 -2.7,12.09 -2.7,21.738 v 120.196 c 0,31.894 22.31,54.785 54.28,55.625 18.67,0.449 37.71,-6.368 49.64,-17.95 8.26,-8.027 12.64,-17.941 12.64,-28.672 V 309.332 c 0,-0.129 0.26,-7.578 0.26,-7.578 0,0.195 -0.19,-13.449 -0.19,-13.449 -0.27,-2.383 -1.36,-3.856 -4.84,-8.172"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path22" />
|
||||
<path
|
||||
d="m 2685.59,537.309 c -19.02,3.281 -35.27,0.714 -51,-8.036 -6.67,-3.925 -11.99,-7.91 -16.58,-12.148 0,1.66 0,9.902 0,9.902 h -75.33 l 10.37,-12.734 c 4.32,-5.285 6.56,-8.359 8.46,-13.711 2.09,-5.012 2.42,-8.73 2.42,-14.336 V 315.641 c 0,-0.137 0.1,-4.055 0.1,-4.055 0.02,-6.563 0.1,-10.938 -1.64,-16.844 -0.65,-2.89 -1.58,-4.375 -3.52,-7.402 -0.15,-0.254 -10.94,-17.688 -10.94,-17.688 l 16.88,0.196 h 74.45 l -9.26,14.336 c -3.96,6.183 -5.62,9.855 -7.24,16.281 -2.44,8.555 -3.26,13.113 -3.26,22.109 v 106.309 c 0,23.476 10.5,45.273 26.19,54.219 12.07,6.621 21.78,7.519 35.56,3.203 0.04,0 12.13,-3.723 12.13,-3.723 v 53.254 l -7.79,1.473"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path24" />
|
||||
<path
|
||||
d="m 3187.21,284.957 -11.13,-15.625 h 83.53 l -9.7,16.914 -3.09,6.953 c -0.98,3.34 -0.98,5.078 -0.98,10.41 v 223.418 h -72.79 l 11.06,-10.996 c 2.56,-2.578 3.9,-4.57 5.6,-8.242 1.06,-2.754 1.19,-5.215 1.19,-8.75 0,-0.508 -0.04,-4.816 -0.04,-4.816 V 302.652 c 0,-0.07 0.04,-3.8 0.04,-3.8 l -0.54,-8.555 c -0.32,-1.414 -1.19,-2.625 -3.15,-5.34 z m 58.17,345.801 h -61.51 v -63.547 h 61.51 v 63.547"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path26" />
|
||||
<path
|
||||
d="m 2969.65,430.367 v -56.914 c 0,-19.875 -6.11,-36.144 -17.69,-47.082 -11.17,-10.535 -26.88,-15.496 -45.37,-14.461 -18.26,0.899 -34.4,8.934 -46.78,23.406 -16.58,19.348 -24.71,47.59 -21.8,75.559 3.91,34.668 19.03,76.523 69.07,79.043 17.65,0.645 33.78,-5.09 45.33,-16.211 11.33,-10.871 17.24,-25.781 17.24,-43.34 z m 73.15,-160.519 -12.13,18.136 c -2.25,3.34 -3.17,4.754 -3.63,7.137 -2.8,19.738 -2.8,31.184 -2.8,51.895 v 312.668 h -74.04 l 12.81,-15.176 c 0,-0.059 2.91,-4.238 3.58,-5.207 0.04,-0.125 0.13,-0.574 0.13,-0.574 v 0 l 1.45,-6.875 c 0,0 -0.29,-85.02 -0.41,-114.922 -20.04,14.199 -40.24,20.254 -65.65,19.023 -74,-2.754 -117.26,-51.183 -118.51,-132.93 -0.35,-41.601 15.15,-81.535 41.4,-106.808 22.27,-21.348 50.98,-31.836 83.07,-30.36 23.63,0.84 41.78,6.434 60.1,17.95 0,-4.239 0,-13.957 0,-13.957 h 74.63"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path28" />
|
||||
<path
|
||||
d="m 1227.59,814.801 v -49.004 c 0,-28.684 -19.48,-38.516 -43.19,-38.516 -25.11,0 -43.21,11.641 -43.21,38.387 v 49.133 h 21.53 v -49.649 c 0,-12.414 9.02,-19.863 21.43,-19.863 11.41,0 21.89,5.918 21.89,21.406 v 48.106 h 21.55"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path30" />
|
||||
<path
|
||||
d="m 1436.4,728.434 h -18.14 l -47.74,55.312 v -55.312 h -21.56 v 86.367 h 19.79 l 46.1,-52.793 v 52.793 h 21.55 v -86.367"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path32" />
|
||||
<path
|
||||
d="m 1580.7,728.434 h -21.53 v 86.367 h 21.53 v -86.367"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path34" />
|
||||
<path
|
||||
d="m 1744.76,727.281 h -9.39 l -41.81,87.52 h 23.45 l 22.8,-49.258 21.66,49.258 h 23.19 l -39.9,-87.52"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path36" />
|
||||
<path
|
||||
d="m 1960.9,728.434 h -63.73 v 86.367 H 1960 V 798.98 h -41.28 v -18.136 h 39.38 v -15.821 h -39.38 v -20.769 h 42.18 v -15.82"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path38" />
|
||||
<path
|
||||
d="m 2101.53,779.301 h 11.39 c 5.99,0 11.78,2.57 11.78,9.914 0,6.484 -4.18,9.765 -12.29,9.765 h -10.88 z m 17.08,35.5 c 17.77,0 28.27,-11.895 28.27,-24.824 0,-9.512 -4.95,-16.594 -14.82,-21.153 8.87,-4.433 11.54,-15.051 23.69,-40.39 h -23.69 c -9.24,18.457 -12.68,35.046 -24.34,35.046 h -6.19 V 728.434 H 2080 v 86.367 h 38.61"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path40" />
|
||||
<path
|
||||
d="m 2326.4,792.359 c -12.54,5.586 -20.03,7.774 -27.37,7.774 -7.71,0 -12.67,-2.824 -12.67,-7.129 0,-13.059 43.96,-9.336 43.96,-39.492 0,-16.582 -13.92,-26.231 -33.22,-26.231 -15.04,0 -22.5,3.926 -31.11,8.36 v 18.574 c 12.4,-8.223 20,-11.113 29.51,-11.113 8.23,0 12.67,2.89 12.67,7.968 0,14.219 -43.98,9.004 -43.98,40.059 0,14.922 12.91,24.824 32.91,24.824 9.65,0 18.4,-2.051 29.3,-6.738 v -16.856"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path42" />
|
||||
<path
|
||||
d="m 2469.83,728.434 h -21.54 v 86.367 h 21.54 v -86.367"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path44" />
|
||||
<path
|
||||
d="m 2670.36,798.98 h -31.25 v -70.546 h -21.55 v 70.546 h -31.32 v 15.821 h 84.12 V 798.98"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path46" />
|
||||
<path
|
||||
d="m 2815.94,823.16 h -9.39 l 9.39,18.516 h 20.92 z m 34.08,-94.726 h -63.71 v 86.367 h 62.82 V 798.98 h -41.29 v -18.136 h 39.43 v -15.821 h -39.43 v -20.769 h 42.18 v -15.82"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path48" />
|
||||
<path
|
||||
d="M 2083.15,88.0469 V 38.9844 c 0,-28.6133 -19.55,-38.51565 -43.22,-38.51565 -25.08,0 -43.21,11.62105 -43.21,38.37895 v 49.1992 h 21.55 V 38.3398 c 0,-12.4023 9,-19.8828 21.41,-19.8828 11.38,0 21.92,5.9961 21.92,21.4258 v 48.1641 h 21.55"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path50" />
|
||||
<path
|
||||
d="M 2291.89,1.62109 H 2273.8 L 2226.04,56.9922 V 1.62109 H 2204.5 V 88.0469 h 19.75 l 46.1,-52.8516 v 52.8516 h 21.54 V 1.62109"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path52" />
|
||||
<path
|
||||
d="m 2436.22,1.62109 h -21.55 V 88.0469 h 21.55 V 1.62109"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path54" />
|
||||
<path
|
||||
d="m 2600.3,0.46875 h -9.4 l -41.79,87.57815 h 23.43 l 22.84,-49.3164 21.66,49.3164 h 23.14 L 2600.3,0.46875"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path56" />
|
||||
<path
|
||||
d="M 2816.43,1.62109 H 2752.7 V 88.0469 h 62.87 V 72.168 h -41.33 V 54.0234 h 39.4 V 38.2227 h -39.4 V 17.4414 h 42.19 V 1.62109"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path58" />
|
||||
<path
|
||||
d="m 2957.04,52.5391 h 11.42 c 5.94,0 11.76,2.5195 11.76,9.9023 0,6.4453 -4.14,9.7266 -12.25,9.7266 h -10.93 z m 17.11,35.5078 c 17.75,0 28.26,-11.9531 28.26,-24.8828 0,-9.4532 -4.94,-16.6016 -14.83,-21.1524 8.89,-4.4336 11.53,-15.0586 23.67,-40.39061 h -23.67 c -9.25,18.51561 -12.65,35.11721 -24.29,35.11721 h -6.25 V 1.62109 h -21.55 V 88.0469 h 38.66"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path60" />
|
||||
<path
|
||||
d="m 3181.94,65.6055 c -12.54,5.5859 -20.02,7.7148 -27.36,7.7148 -7.76,0 -12.68,-2.7734 -12.68,-7.0703 0,-13.0469 43.96,-9.3945 43.96,-39.5508 0,-16.6015 -13.94,-26.23045 -33.18,-26.23045 -15.1,0 -22.58,3.90625 -31.21,8.35938 V 27.4805 c 12.42,-8.2422 20.04,-11.1914 29.57,-11.1914 8.18,0 12.64,2.9492 12.64,8.0273 0,14.1406 -43.93,8.9453 -43.93,40 0,14.9805 12.89,24.8242 32.93,24.8242 9.61,0 18.38,-1.9922 29.26,-6.6797 V 65.6055"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path62" />
|
||||
<path
|
||||
d="m 3325.34,1.62109 h -21.55 V 88.0469 h 21.55 V 1.62109"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path64" />
|
||||
<path
|
||||
d="m 3525.92,72.168 h -31.33 V 1.62109 h -21.54 V 72.168 h -31.25 v 15.8789 h 84.12 V 72.168"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path66" />
|
||||
<path
|
||||
d="m 3666.02,42.0117 -34.08,46.0352 h 26.13 l 18.71,-27.1289 18.91,27.1289 h 25.96 L 3687.56,42.0117 V 1.62109 h -21.54 V 42.0117"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path68" />
|
||||
<path
|
||||
d="M 0,730.426 92.7578,574.641 C 86.7695,602.406 75.1758,656.09 75.1758,656.09 87.9102,646.117 227.52,597.563 256.074,588.559 l 0.266,-0.067 c -18.82,30.36 -48.559,59.297 -76.281,87.793 19.707,-20.265 55.019,-40.137 82.921,-57.812 10.458,-6.633 21.297,-13.254 32.899,-19.551 -1.223,32.09 -16.848,64.687 -28.645,95.43 9.036,-23.672 34.438,-49.258 53.989,-71.321 5.523,-6.172 11.316,-12.41 17.742,-18.582 15.691,31.055 21.379,64.571 21.805,95.879 -0.426,-29.199 5.683,-65.527 21.828,-95.754 7.976,7.531 14.953,15.371 21.672,23.086 17.722,20.774 41.511,44.504 49.968,66.692 -12.058,-31.641 -25.945,-63.868 -28.039,-96.075 45.18,22.95 80.676,52.793 115.219,78.008 -28.105,-20.527 -47.309,-48.555 -65.156,-71.836 -3.949,-5.148 -7.844,-10.547 -11.313,-15.949 l 0.903,0.188 c 28.582,9.003 165.918,49.98 165.918,49.98 l -216.961,-105.68 215.418,101.617 -11.836,-63.593 3.472,-7.715 100.766,167.129 H 0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path70" />
|
||||
<path
|
||||
d="M 355.82,880.621 C 143.047,895.836 24.6289,858.277 2.63672,854.156 V 794.41 c 62.21488,13.965 172.33628,32.801 328.87928,38.074 -0.078,0 -0.098,0 -0.137,0 l 0.379,0.071 c -0.125,0 -0.188,-0.071 -0.242,-0.071 214.785,4.18 346.621,-21.023 383.882,-30.164 0.098,0.782 -0.039,-0.761 0,-0.058 0,0 -123.601,57.488 -359.578,78.359"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path72" />
|
||||
<path
|
||||
d="M 633.242,295.563 C 541.797,184.703 415.559,105.156 364.246,82.1289 c 0.102,0 -0.035,0.0781 0,0 v 0 c 0.102,0.0781 -0.035,0 0,0 -77.625,35.8201 -263.16,163.2191 -346.5702,410.8051 -1.9219,6.945 -3.7617,13.898 -5.5586,20.968 1.1953,-9.14 2.4141,-18.261 3.7305,-27.336 l -0.0938,0.52 c 3.125,-15.695 6.3633,-31.25 10.125,-46.496 C 103.535,175.699 292.539,37.9492 363.977,0 418.895,29.1406 543.34,135.82 633.242,295.563"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path74" />
|
||||
<path
|
||||
d="M 87.4219,639.82 127.004,403.297 c 0,0 93.699,-140.586 226.922,-215.762 L 354.043,500.777 87.4219,639.82"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path76" />
|
||||
<path
|
||||
d="M 374.719,509.137 V 187.66 c 2.769,1.543 5.523,3.156 8.301,4.758 2.312,1.355 4.597,2.703 6.914,4.062 v 316.27 l -15.215,-3.613"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path78" />
|
||||
<path
|
||||
d="m 647.98,651.461 c 0,0 -218.886,-113.828 -285.285,-119.688 C 288.605,539.047 87.4531,639.82 87.4531,639.82 217.297,531.715 359.031,498.277 364.813,496.539 l -0.055,0.125 c 0,0 107.012,20.899 254.082,125.852 -1.352,-22.696 -8.11,-90.215 -20.324,-166.485 l 49.464,195.43 c 0.567,0.703 -0.585,-0.391 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path80" />
|
||||
<path
|
||||
d="m 4369.62,563.879 h -32.63 l -86.63,96.973 v -96.973 h -38.84 v 156.719 h 35.62 l 83.87,-92.375 v 92.375 h 38.61 V 563.879"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path82" />
|
||||
<path
|
||||
d="M 4531.59,563.879 H 4416 v 156.719 h 113.98 v -29.18 h -74.46 v -31.711 h 71.02 v -29.414 h -71.02 v -37.695 h 76.07 v -28.719"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path84" />
|
||||
<path
|
||||
d="m 4673.1,645 68.03,-81.121 h -50.56 l -42.51,51.707 -41.82,-51.707 h -49.88 l 66.42,81.121 -62.74,75.598 h 50.56 l 37.46,-46.184 36.76,46.184 h 49.65 L 4673.1,645"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path86" />
|
||||
<path
|
||||
d="m 4903.32,691.184 h -56.53 V 563.879 h -39.75 v 127.305 h -56.76 v 29.414 h 153.04 v -29.414"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path88" />
|
||||
<path
|
||||
d="m 4959.36,601.797 h -59.98 v 30.558 h 59.98 v -30.558"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path90" />
|
||||
<path
|
||||
d="m 5143.4,675.793 c -18.39,8.492 -38.15,14.246 -58.37,14.246 -18.15,0 -28.95,-4.601 -35.85,-8.965 -11.26,-6.894 -21.37,-20.449 -21.37,-40.215 0,-29.648 24.82,-46.418 51.71,-46.418 9.65,0 19.07,2.063 28.03,5.508 v 18.391 h -22.52 v 29.18 h 62.28 v -64.571 c -16.08,-13.554 -41.59,-21.14 -67.1,-21.14 -50.33,0 -93.07,29.871 -93.07,80.425 0,48.95 39.3,80.434 94.67,80.434 31.03,0 52.17,-8.969 61.59,-12.871 v -34.004"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path92" />
|
||||
<path
|
||||
d="m 5308.35,563.879 h -115.58 v 156.719 h 113.97 v -29.18 h -74.46 v -31.711 h 71.02 v -29.414 h -71.02 v -37.695 h 76.07 v -28.719"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path94" />
|
||||
<path
|
||||
d="m 5507.78,563.879 h -32.63 l -86.64,96.973 v -96.973 h -38.83 v 156.719 h 35.61 l 83.88,-92.375 v 92.375 h 38.61 V 563.879"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path96" />
|
||||
<path
|
||||
d="m 5669.74,563.879 h -115.58 v 156.719 h 113.98 v -29.18 h -74.45 v -31.711 h 70.99 v -29.414 h -70.99 v -37.695 h 76.05 v -28.719"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path98" />
|
||||
<path
|
||||
d="m 5750.6,692.102 v -35.84 h 16.31 c 10.12,0.457 12.64,0.457 16.78,2.754 5.74,2.988 8.5,8.726 8.5,15.164 0,17.922 -17.47,17.922 -21.82,17.922 z m 20.68,28.496 c 14.24,0 28.5,0 41.14,-7.817 8.26,-5.515 20.45,-18.379 20.45,-36.988 0,-26.203 -20.22,-35.395 -26.9,-38.613 11.27,-5.508 19.08,-21.367 22.52,-29.414 4.38,-8.957 11.04,-23.664 15.18,-32.629 l 5.29,-11.258 h -42.99 c -3.44,6.894 -16.99,37.918 -20.21,44.117 -10.57,19.77 -18.38,19.77 -29.42,19.77 h -5.74 v -63.887 h -39.53 v 156.719 h 60.21"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path100" />
|
||||
<path
|
||||
d="m 5943.59,682.91 -22.99,-60.664 h 48.26 z m 91.68,-119.031 h -42.05 l -12.87,31.023 h -70.08 l -11.72,-31.023 h -41.37 l 63.21,156.719 h 45.25 l 69.63,-156.719"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path102" />
|
||||
<path
|
||||
d="m 6174.27,691.184 h -56.52 V 563.879 h -39.77 v 127.305 h -56.75 v 29.414 h 153.04 v -29.414"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path104" />
|
||||
<path
|
||||
d="m 6239.72,563.879 h -39.53 v 156.719 h 39.53 V 563.879"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path106" />
|
||||
<path
|
||||
d="m 6357.36,689.348 c -28.03,0 -49.18,-17.004 -49.18,-48.032 0,-37.461 30.8,-47.793 49.41,-47.793 25.04,0 49.4,16.543 49.4,47.571 0,29.179 -19.07,48.254 -49.63,48.254 z m -0.47,-127.539 c -54.22,0 -89.38,39.296 -89.38,80.203 0,36.535 30.34,80.656 90.08,80.656 55.37,0 89.85,-39.758 89.85,-80.656 0,-36.309 -29.65,-80.203 -90.55,-80.203"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path108" />
|
||||
<path
|
||||
d="m 6633.32,563.879 h -32.64 l -86.64,96.973 v -96.973 h -38.83 v 156.719 h 35.62 l 83.87,-92.375 v 92.375 h 38.62 V 563.879"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path110" />
|
||||
<path
|
||||
d="m 4354.92,282.043 c -22.99,-12.18 -41.6,-15.625 -61.59,-15.625 -60.89,0 -91.23,39.754 -91.23,79.969 0,39.519 31.02,80.886 94.67,80.886 28.5,0 48.26,-8.96 56.31,-13.789 V 377.41 c -6.44,4.824 -26.42,17.004 -53.54,17.004 -32.63,0 -56.77,-18.84 -56.77,-47.566 0,-30.793 26.2,-48.032 55.61,-48.032 14.71,0 28.5,4.145 41.6,10.801 l 14.94,8.508 v -36.082"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path112" />
|
||||
<path
|
||||
d="m 4432.32,268.484 h -39.53 v 156.719 h 39.53 V 268.484"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path114" />
|
||||
<path
|
||||
d="m 4615.68,395.793 h -56.53 V 268.484 h -39.76 v 127.309 h -56.76 v 29.41 h 153.05 v -29.41"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path116" />
|
||||
<path
|
||||
d="m 4685.72,268.484 h -39.51 v 156.719 h 39.51 V 268.484"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path118" />
|
||||
<path
|
||||
d="m 4847.71,268.484 h -115.59 v 156.719 h 113.98 v -29.18 h -74.46 v -31.707 h 71.01 v -29.414 h -71.01 v -37.695 h 76.07 v -28.723"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path120" />
|
||||
<path
|
||||
d="m 4993.82,382.93 c -10.8,5.285 -30.33,15.168 -50.32,15.168 -22.98,0 -23.67,-11.262 -23.67,-12.871 0,-9.426 15.4,-14.946 37.92,-22.981 19.76,-7.129 43.2,-19.07 43.2,-49.402 0,-36.313 -37.92,-46.426 -61.37,-46.426 -26.42,0 -51.46,12.41 -55.37,15.164 v 33.777 c 13.56,-8.496 31.49,-19.531 54.46,-19.531 5.06,0 23.44,0.238 23.44,14.25 0,10.344 -8.96,13.555 -29.63,20.684 -22.53,7.812 -51.02,18.847 -51.02,51.933 0,23.899 19.98,44.578 59.28,44.578 12.41,0 28.03,-1.375 53.08,-12.175 V 382.93"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path122" />
|
||||
<path
|
||||
d="m 5158.32,268.484 h -39.54 v 156.719 h 39.54 V 268.484"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path124" />
|
||||
<path
|
||||
d="m 5358.22,268.484 h -32.64 l -86.64,96.977 v -96.977 h -38.83 v 156.719 h 35.62 l 83.87,-92.371 v 92.371 h 38.62 V 268.484"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path126" />
|
||||
<path
|
||||
d="m 5504.78,382.93 c -10.8,5.285 -30.33,15.168 -50.33,15.168 -22.98,0 -23.67,-11.262 -23.67,-12.871 0,-9.426 15.4,-14.946 37.92,-22.981 19.76,-7.129 43.2,-19.07 43.2,-49.402 0,-36.313 -37.92,-46.426 -61.36,-46.426 -26.42,0 -51.46,12.41 -55.38,15.164 v 33.777 c 13.57,-8.496 31.49,-19.531 54.46,-19.531 5.06,0 23.44,0.238 23.44,14.25 0,10.344 -8.96,13.555 -29.64,20.684 -22.53,7.812 -51.01,18.847 -51.01,51.933 0,23.899 19.99,44.578 59.28,44.578 12.41,0 28.03,-1.375 53.09,-12.175 V 382.93"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path128" />
|
||||
<path
|
||||
d="m 5686.74,395.793 h -56.53 V 268.484 h -39.75 v 127.309 h -56.75 v 29.41 h 153.03 v -29.41"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path130" />
|
||||
<path
|
||||
d="m 5756.79,268.484 h -39.53 v 156.719 h 39.53 V 268.484"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path132" />
|
||||
<path
|
||||
d="m 5930.97,395.793 h -56.54 V 268.484 h -39.75 v 127.309 h -56.76 v 29.41 h 153.05 v -29.41"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path134" />
|
||||
<path
|
||||
d="m 6108.33,339.949 c 0,-12.398 -0.23,-31.941 -13.55,-48.25 -16.09,-19.304 -41.84,-25.281 -65.96,-25.281 -12.18,0 -44.8,0.457 -65.95,27.801 -6.21,8.281 -11.96,19.304 -11.96,44.59 v 86.394 h 39.53 v -77.664 c 0,-6.434 0,-15.625 2.76,-24.363 5.06,-17.461 20.92,-25.278 36.31,-25.278 22.75,0 33.32,14.946 36.54,22.981 2.75,6.894 2.75,12.871 2.75,26.66 v 77.664 h 39.53 v -85.254"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path136" />
|
||||
<path
|
||||
d="m 6281.32,395.793 h -56.54 V 268.484 h -39.75 v 127.309 h -56.75 v 29.41 h 153.04 v -29.41"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path138" />
|
||||
<path
|
||||
d="m 6422.85,268.484 h -115.61 v 156.719 h 113.99 v -29.18 h -74.46 v -31.707 h 71.02 v -29.414 h -71.02 v -37.695 h 76.08 v -28.723"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path140" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 25 KiB |
178
frontend-dev/vwss-frontend/style.css
Normal file
|
@ -0,0 +1,178 @@
|
|||
/* schedule-styles.css */
|
||||
:root {
|
||||
--font-size: 1vw;
|
||||
--width: 65vw;
|
||||
--img-margin: -2vw;
|
||||
}
|
||||
|
||||
@media (orientation: landscape) {
|
||||
:root {
|
||||
--font-size: 1vh;
|
||||
--width: 65vh;
|
||||
--img-margin: -2vh;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
font-size: var(--font-size);
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
font-family: "Calibri", sans-serif;
|
||||
background-color: black;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.header {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.resource-wrapper {
|
||||
/* display: flex; */
|
||||
/* flex-direction: column; */
|
||||
/* justify-content: space-around; */
|
||||
width: 100%;
|
||||
/* overflow-x: hidden; */
|
||||
}
|
||||
|
||||
.title-row {
|
||||
font-weight: bold;
|
||||
font-size: 3em;
|
||||
padding: 0.25em 0;
|
||||
}
|
||||
|
||||
.event-row {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
overflow-x: hidden;
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
.flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.flex-cell {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
align-items: left;
|
||||
flex: 0 0 633px;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
.organizer {
|
||||
font-weight: lighter;
|
||||
font-style: italic;
|
||||
}
|
||||
#horizontal-logo {
|
||||
width: 100%;
|
||||
/* margin: 2em 0 1em 0; */
|
||||
}
|
||||
|
||||
#resources-container {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
}
|
||||
|
||||
.time-range {
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
#grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr 1fr;
|
||||
gap: 1em;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#schedule-container {
|
||||
height: 100%;
|
||||
grid-column: 1;
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
#homepage-container {
|
||||
grid-column: 3;
|
||||
padding: 2em;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.top-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
#time-weather-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-size: 5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-family: 'Calibri', sans-serif;
|
||||
}
|
||||
|
||||
.separator {
|
||||
font-family: 'Courier New', monospace;
|
||||
}
|
||||
|
||||
#slideshow {
|
||||
grid-column: 2;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.slideshow-img {
|
||||
transition: opacity 1s ease-in-out;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#weather-icon {
|
||||
align-self: end; /* Aligns the icon to the end of its grid cell */
|
||||
width: 2em;
|
||||
margin: var(--img-margin);
|
||||
}
|
||||
|
||||
#temperature {
|
||||
align-self: start; /* Aligns the temperature text to the start of its grid cell */
|
||||
}
|
||||
#description {
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
#quote {
|
||||
font-size: 5em;
|
||||
margin: 0 10%;
|
||||
max-height: 40vh;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#author {
|
||||
margin-top: 2.5%;
|
||||
font-size: 4em;
|
||||
width: 75%;
|
||||
text-align: right;
|
||||
}
|
9
frontend-dev/vwss-frontend/vite.config.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { defineConfig } from 'vite';
|
||||
|
||||
export default defineConfig({
|
||||
server: {
|
||||
proxy: {
|
||||
'/api': 'http://localhost:8080',
|
||||
},
|
||||
},
|
||||
});
|
109
msGraphHelper.js
Normal file
|
@ -0,0 +1,109 @@
|
|||
require('isomorphic-fetch');
|
||||
// const { PublicClientApplication } = require('@azure/msal-node');
|
||||
// const { TokenCredentialAuthenticationProvider } = require('@microsoft/microsoft-graph-client/authProviders/azureTokenCredentials');
|
||||
const graph = require('@microsoft/microsoft-graph-client');
|
||||
|
||||
const azure = require('@azure/identity');
|
||||
const authProviders = require('@microsoft/microsoft-graph-client/authProviders/azureTokenCredentials');
|
||||
|
||||
let _settings = undefined;
|
||||
let _clientSecretCredential = undefined;
|
||||
let _appClient = undefined;
|
||||
|
||||
function initializeGraphForAppOnlyAuth(settings) {
|
||||
// Ensure settings isn't null
|
||||
if (!settings) {
|
||||
throw new Error('Settings cannot be undefined');
|
||||
}
|
||||
|
||||
_settings = settings;
|
||||
|
||||
// Ensure settings isn't null
|
||||
if (!_settings) {
|
||||
throw new Error('Settings cannot be undefined');
|
||||
}
|
||||
|
||||
if (!_clientSecretCredential) {
|
||||
_clientSecretCredential = new azure.ClientSecretCredential(
|
||||
_settings.tenantId,
|
||||
_settings.clientId,
|
||||
_settings.clientSecret
|
||||
);
|
||||
}
|
||||
|
||||
if (!_appClient) {
|
||||
const authProvider = new authProviders.TokenCredentialAuthenticationProvider(
|
||||
_clientSecretCredential, {
|
||||
scopes: ['https://graph.microsoft.com/.default']
|
||||
});
|
||||
|
||||
_appClient = graph.Client.initWithMiddleware({
|
||||
authProvider: authProvider
|
||||
});
|
||||
}
|
||||
}
|
||||
module.exports.initializeGraphForAppOnlyAuth = initializeGraphForAppOnlyAuth;
|
||||
|
||||
let _userClient = undefined;
|
||||
|
||||
function initializeGraphForUserAuth(settings, deviceCodeCallback) {
|
||||
if (!settings) {
|
||||
throw new Error('Settings cannot be undefined');
|
||||
}
|
||||
|
||||
const msalConfig = {
|
||||
auth: {
|
||||
clientId: settings.clientId,
|
||||
authority: `https://login.microsoftonline.com/${settings.tenantId}`
|
||||
}
|
||||
};
|
||||
|
||||
const pca = new PublicClientApplication(msalConfig);
|
||||
|
||||
const deviceCodeRequest = {
|
||||
scopes: settings.graphUserScopes,
|
||||
|
||||
deviceCodeCallback: (response) => {
|
||||
// console.log(response.message);
|
||||
deviceCodeCallback(response);
|
||||
}, // Your callback function to handle the message
|
||||
scopes: settings.graphUserScopes
|
||||
};
|
||||
|
||||
pca.acquireTokenByDeviceCode(deviceCodeRequest).then((response) => {
|
||||
const authProvider = new TokenCredentialAuthenticationProvider(pca, {
|
||||
scopes: settings.graphUserScopes,
|
||||
getToken: async () => response.accessToken
|
||||
});
|
||||
|
||||
_userClient = graph.Client.initWithMiddleware({ authProvider });
|
||||
}).catch((error) => {
|
||||
console.error("Error acquiring token by device code", error);
|
||||
});
|
||||
}
|
||||
module.exports.initializeGraphForUserAuth = initializeGraphForUserAuth;
|
||||
|
||||
async function getCalendarView(resourceUPN, startDateTime, endDateTime) {
|
||||
if (!_userClient) {
|
||||
throw new Error('Graph has not been initialized for user auth');
|
||||
}
|
||||
|
||||
try {
|
||||
const apiUrl = `/users/${resourceUPN}/calendarView?startDateTime=${startDateTime}&endDateTime=${endDateTime}`;
|
||||
console.log(apiUrl);
|
||||
const calendarView =
|
||||
await _userClient?.api(apiUrl)
|
||||
.get();
|
||||
|
||||
if (calendarView && calendarView.value) {
|
||||
return calendarView.value;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error in getCalendarView:', error);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.getCalendarView = getCalendarView;
|
||||
|
1536
package-lock.json
generated
Normal file
26
package.json
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"name": "vizwall_screensaver",
|
||||
"version": "1.0.0",
|
||||
"description": "Screensaver that marries the slideshow, the daily schedule, and the vizwall_homepage",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "node server.js",
|
||||
"dev": "nodemon server.js"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@azure/identity": "^3.3.2",
|
||||
"@azure/msal-node": "^2.6.1",
|
||||
"@microsoft/microsoft-graph-client": "^3.0.7",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^16.3.1",
|
||||
"express": "^4.18.2",
|
||||
"fs": "^0.0.1-security",
|
||||
"http": "^0.0.1-security",
|
||||
"http-proxy-middleware": "^2.0.6",
|
||||
"https": "^1.0.0",
|
||||
"isomorphic-fetch": "^3.0.0"
|
||||
}
|
||||
}
|
7
resourceUPNs.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
[
|
||||
"s-er-1431-00@liveconcordia.onmicrosoft.com",
|
||||
"s-er-1431-03@liveconcordia.onmicrosoft.com",
|
||||
"s-er-1431-33@liveconcordia.onmicrosoft.com",
|
||||
"s-er-1431-37@liveconcordia.onmicrosoft.com",
|
||||
"s-er-1431-39@liveconcordia.onmicrosoft.com"
|
||||
]
|
129
server.js
Normal file
|
@ -0,0 +1,129 @@
|
|||
const express = require('express');
|
||||
const http = require('http');
|
||||
const fs = require('fs');
|
||||
const fetch = require('isomorphic-fetch');
|
||||
const path = require('path');
|
||||
const cors = require('cors');
|
||||
require('dotenv').config();
|
||||
|
||||
|
||||
const msGraphHelper = require('./msGraphHelper');
|
||||
const settings = require('./settings');
|
||||
|
||||
const HTTP_PORT = process.env.HTTP_PORT || 8080;
|
||||
|
||||
const app = express();
|
||||
const slideshowDir = './slideshow';
|
||||
|
||||
|
||||
app.use(cors({
|
||||
origin: 'http://localhost:5173'
|
||||
}));
|
||||
app.use(express.json());
|
||||
app.use(express.static('public'));
|
||||
|
||||
// GRAPH API SECTION - USER AUTH
|
||||
//
|
||||
// msGraphHelper.initializeGraphForUserAuth(settings, async (deviceCodeResponse) => {
|
||||
// if (!deviceCodeResponse) {
|
||||
// throw new Error("Device code response is undefined.");
|
||||
// }
|
||||
// console.log(deviceCodeResponse.message);
|
||||
// });
|
||||
//
|
||||
// GRAPH API SECTION - APP ONLY AUTH
|
||||
//
|
||||
// msGraphHelper.initializeGraphForAppOnlyAuth(settings);
|
||||
const data = fs.readFileSync('./resourceUPNs.json', 'utf8');
|
||||
const resourceUPNs = JSON.parse(data);
|
||||
function pollAPI() {
|
||||
events = {};
|
||||
}
|
||||
|
||||
|
||||
app.get('/api/events', async (req, res) => {
|
||||
|
||||
try {
|
||||
let events = {};
|
||||
let now = new Date();
|
||||
let startDateTime = new Date(now);
|
||||
startDateTime.setHours(8, 0, 0, 0);
|
||||
let endDateTime = new Date(now);
|
||||
endDateTime.setHours(17, 0, 0, 0);
|
||||
|
||||
for (const resource of resourceUPNs) {
|
||||
try {
|
||||
const data =
|
||||
// msGraphHelper.getCalendarView(resource, startDateTime.toISOString(), endDateTime.toISOString());
|
||||
fs.readFileSync(`./events/${resource}.json`, 'utf8');
|
||||
const resourceEvents = JSON.parse(data);
|
||||
events[resource] = resourceEvents;
|
||||
// console.log(`${new Date()}: Grabbed events for ${resource}`);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
res.json(events);
|
||||
} catch (err) {
|
||||
res.status(500).json({ message: err.message });
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
app.get('/api/weather', async (req, res) => {
|
||||
try {
|
||||
const lat = 45.49;
|
||||
const lon = -73.58;
|
||||
const appid = process.env.OPENWEATHER_APPID;
|
||||
const url = `https://api.openweathermap.org/data/2.5/weather?units=metric&lat=${lat}&lon=${lon}&appid=${appid}`;
|
||||
|
||||
const response = await fetch(url);
|
||||
|
||||
if (response.ok) {
|
||||
const json = await response.json();
|
||||
res.json(json);
|
||||
} else {
|
||||
res.status(500).json({ message: 'Error in /weather' });
|
||||
}
|
||||
} catch (err) {
|
||||
res.status(500).json({ message: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/quotes', async (req, res) => {
|
||||
try {
|
||||
const url = `https://api.quotable.io/quotes?limit=150&tags=urban|city|technology|future`
|
||||
const response = await fetch(url);
|
||||
|
||||
if (response.ok) {
|
||||
const json = await response.json();
|
||||
res.json(json);
|
||||
} else {
|
||||
res.status(500).json({ message: 'Error in /quotes' });
|
||||
}
|
||||
} catch (err) {
|
||||
res.status(500).json({ message: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.use('/slideshow', express.static(slideshowDir));
|
||||
app.get('/api/slideshow', (req, res) => {
|
||||
fs.readdir(slideshowDir, (err, files) => {
|
||||
if (err) {
|
||||
console.error('Failed to list slideshow images: ', err.message);
|
||||
res.status(500).json({ message: err.message });
|
||||
return;
|
||||
} else {
|
||||
const imagePaths = files
|
||||
.filter(file => /\.(jpg|jpeg|png|gif)$/i.test(file))
|
||||
.map(file => `/slideshow/${file}`);
|
||||
|
||||
res.json(imagePaths);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
const httpServer = http.createServer(app);
|
||||
|
||||
httpServer.listen(HTTP_PORT, () => console.log(`HTTP Server listening on http://localhost:${HTTP_PORT}`));
|
11
settings.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
const settings = {
|
||||
'clientId': process.env.AZURE_CLIENT_ID,
|
||||
'clientSecret': process.env.AZURE_CLIENT_SECRET,
|
||||
'tenantId': process.env.AZURE_TENANT_ID,
|
||||
'graphUserScopes': [
|
||||
'calendars.read',
|
||||
'calendars.read.shared'
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = settings;
|
BIN
slideshow/07 - 14 August 2020 - Iceland, Ice Cap.jpg
Normal file
After Width: | Height: | Size: 3.3 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20210710_KangerlussuaqFjord_Greenland.jpg
Normal file
After Width: | Height: | Size: 4.3 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20210729_HeatWaveGreenland.jpg
Normal file
After Width: | Height: | Size: 7.9 MiB |
3
slideshow/20210729_HeatWaveGreenland.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20210824_SnowPatagonia.jpg
Normal file
After Width: | Height: | Size: 8.0 MiB |
3
slideshow/20210824_SnowPatagonia.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20210908_AnetoGlacier.jpg
Normal file
After Width: | Height: | Size: 3.8 MiB |
3
slideshow/20210908_AnetoGlacier.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20211028_NorilskRussia.jpg
Normal file
After Width: | Height: | Size: 4.2 MiB |
3
slideshow/20211028_NorilskRussia.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20211104_RankinInlet_Canada.jpg
Normal file
After Width: | Height: | Size: 2.4 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20211106_CherskyRussia.jpg
Normal file
After Width: | Height: | Size: 8.2 MiB |
3
slideshow/20211106_CherskyRussia.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20211201_SnowCentralEU.jpg
Normal file
After Width: | Height: | Size: 6.7 MiB |
3
slideshow/20211201_SnowCentralEU.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/202112121_Himalaya.jpg
Normal file
After Width: | Height: | Size: 7.0 MiB |
3
slideshow/202112121_Himalaya.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/202200906_GreenlandWestCoast.jpg
Normal file
After Width: | Height: | Size: 2.0 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220106_ThwaitesGlacier.jpg
Normal file
After Width: | Height: | Size: 5.1 MiB |
3
slideshow/20220106_ThwaitesGlacier.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220107_MalaspinaGlacier.jpg
Normal file
After Width: | Height: | Size: 10 MiB |
3
slideshow/20220107_MalaspinaGlacier.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220111_AdamelloGlacier_Italy.jpg
Normal file
After Width: | Height: | Size: 6.7 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220120_IcebreakerInAntarctica.jpg
Normal file
After Width: | Height: | Size: 3.1 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220126_SouthernAlps_NewZealand.jpg
Normal file
After Width: | Height: | Size: 11 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220127_SnowGreenland.jpg
Normal file
After Width: | Height: | Size: 3.1 MiB |
3
slideshow/20220127_SnowGreenland.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220305_Alps.jpg
Normal file
After Width: | Height: | Size: 5.4 MiB |
3
slideshow/20220305_Alps.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220322_HeatwaveInsAntarctica.jpg
Normal file
After Width: | Height: | Size: 2.6 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20220726_IceCapMeltingGreenland.jpg
Normal file
After Width: | Height: | Size: 5.0 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20221002_PineIslandGlacier.jpg
Normal file
After Width: | Height: | Size: 5.1 MiB |
3
slideshow/20221002_PineIslandGlacier.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20221010_ChurchillCanada.png
Normal file
After Width: | Height: | Size: 25 MiB |
3
slideshow/20221010_ChurchillCanada.png:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20221022_RossSea.jpg
Normal file
After Width: | Height: | Size: 5.1 MiB |
3
slideshow/20221022_RossSea.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20221108_LosAlercesNationalParkArgentina.jpg
Normal file
After Width: | Height: | Size: 2.8 MiB |
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20221118_Denman_Glacier.jpeg
Normal file
After Width: | Height: | Size: 7.0 MiB |
3
slideshow/20221118_Denman_Glacier.jpeg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20230402_SeaIce_Greenland.jpg
Normal file
After Width: | Height: | Size: 5.6 MiB |
3
slideshow/20230402_SeaIce_Greenland.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/20230412_SeaIceCover.jpg
Normal file
After Width: | Height: | Size: 5.2 MiB |
3
slideshow/20230412_SeaIceCover.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/BloomAntarctica_logo.jpg
Normal file
After Width: | Height: | Size: 6.2 MiB |
3
slideshow/BloomAntarctica_logo.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/ChukchiSea.jpg
Normal file
After Width: | Height: | Size: 2.4 MiB |
3
slideshow/ChukchiSea.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/FoxeBasin_credit_row.jpg
Normal file
After Width: | Height: | Size: 3.5 MiB |
3
slideshow/FoxeBasin_credit_row.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/FranzJosefLand.jpg
Normal file
After Width: | Height: | Size: 1.9 MiB |
3
slideshow/FranzJosefLand.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/IceArcNaresStrait.jpg
Normal file
After Width: | Height: | Size: 4.1 MiB |
3
slideshow/IceArcNaresStrait.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/IceGreatLakes.jpg
Normal file
After Width: | Height: | Size: 3.4 MiB |
3
slideshow/IceGreatLakes.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/Image_006.jpg
Normal file
After Width: | Height: | Size: 2.6 MiB |
3
slideshow/Image_006.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/Image_013.jpg
Normal file
After Width: | Height: | Size: 3.0 MiB |
3
slideshow/Image_013.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/Layout 1.jpg
Normal file
After Width: | Height: | Size: 4.1 MiB |
3
slideshow/Layout 1.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/Mackenzie_credit_row_logo.jpg
Normal file
After Width: | Height: | Size: 4.1 MiB |
3
slideshow/Mackenzie_credit_row_logo.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/Matterhorn_row.jpg
Normal file
After Width: | Height: | Size: 2.8 MiB |
3
slideshow/Matterhorn_row.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|
BIN
slideshow/MtEverest_credit_row_logo.jpg
Normal file
After Width: | Height: | Size: 2.1 MiB |
3
slideshow/MtEverest_credit_row_logo.jpg:Zone.Identifier
Normal file
|
@ -0,0 +1,3 @@
|
|||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\suhanna\Pictures\wetransfer_some-special-mission-for-you_2023-04-13_1213.zip
|