diff --git a/README.md b/README.md index e0fcb3f..1646623 100644 --- a/README.md +++ b/README.md @@ -1,80 +1,3 @@ -# Virtual Split-Flap Display +# Airport Split-Flap/Solari Board -![Screenshot](thumbnail.png) - -This is a simulation of a split-flap display (often called a Solari board) designed to run in a web browser. It dynamically loads JSON data from a data source and renders that data as characters and images on the board. Individual characters are animated using CSS sprites. - -The look and feel are fully configurable by changing the markup and using different sprite images, and the included files are simply examples intended to get you started with your own project. - -## Application Structure - -`/public/js` - The client-side code is in `split-flap.js`. This code loads jquery, underscore and backbone from dnjs.cloudflare.com. You may wish to change this if your application will run disconnected. - -`/public/img` - Image sprites. Customize these to change the look of the split flap elements or utilize different character sets or status indicators. I've included the .pxd file(s) so you can edit these in Pixelmator. - -`/public/css` - The base styles for this application. These can be extended or overridden by adding your own in `/public/plugins`. Note how the `.full`, `.character` and `.number` definitions here define different (sub)sets of images on the character sprites. If you edit the character sprites you must also edit these classes to match. - -`public/index.html` - Example HTML to render into the browser. This is where you define the layout of your board and define some basic constants. - -`/public/plugins` - Custom Javascript, CSS and images. Use these as a starting point to connect to new data sources, change the look and feel, etc. - -`/app.js` - A simple Node.js application to serve static files (HTML, Javascript, CSS and images) and to serve JSON data to populate the displays. If you already have a web/application server you might not need this file. - -## Installation - -``` -git clone https://github.com/baspete/Split-Flap.git -cd Split-Flap -npm install -node app.js -``` - -Navigate to `http://locahost:8080` in your browser. - -## Customization - -The look and feel is customized by changing the markup, CSS and sprite images. Of course, any size changes you make to the images must be reflected in the sprite images and vice-versa. - -The display refresh interval and the data source url are set in the ` + + + + + + + + + + + + + + + + diff --git a/public/index.html b/public/index.html index d4ee23a..947141e 100644 --- a/public/index.html +++ b/public/index.html @@ -10,17 +10,17 @@
-

Arrivals

+

Arrivals at KMHR

Airline
-
Flight
-
- City +
Flight
+
+ Origin
Gate
Scheduled
-
+
Remarks
@@ -37,10 +37,13 @@

Arrivals

-
-
-
-
+
+
+
+
+
+
+
@@ -57,16 +60,16 @@

Arrivals

-
-
-
+
+
+
-
-
+
+
:
-
-
+
+
diff --git a/public/plugins/.DS_Store b/public/plugins/.DS_Store new file mode 100644 index 0000000..b88f8a0 Binary files /dev/null and b/public/plugins/.DS_Store differ diff --git a/public/plugins/arrivals/.DS_Store b/public/plugins/arrivals/.DS_Store new file mode 100644 index 0000000..40e567e Binary files /dev/null and b/public/plugins/arrivals/.DS_Store differ diff --git a/public/plugins/arrivals/airline_logos.pxd/.DS_Store b/public/plugins/arrivals/airline_logos.pxd/.DS_Store new file mode 100644 index 0000000..7032daf Binary files /dev/null and b/public/plugins/arrivals/airline_logos.pxd/.DS_Store differ diff --git a/public/plugins/arrivals/custom.js b/public/plugins/arrivals/custom.js index d8966c0..8d5c552 100644 --- a/public/plugins/arrivals/custom.js +++ b/public/plugins/arrivals/custom.js @@ -27,7 +27,7 @@ sf.plugins.arrivals = { dataType: 'json', url: function(options) { - return 'api/arrivals'; + return '/api/airport/' + options.airframesData.airport + '/arrivals'; }, formatData: function(response) { diff --git a/public/plugins/common.js b/public/plugins/common.js new file mode 100644 index 0000000..58a17f5 --- /dev/null +++ b/public/plugins/common.js @@ -0,0 +1,24 @@ +// CUSTOMIZATION OPTIONS +sf.options = { + // REQUIRED + plugin: 'arrivals', // Plugin to load + container: $('#board'), // Where in the DOM to put the board + template: $('#row_template'), // Where in the DOM to find the row template + numRows: 13, // number of rows + + // OPTIONAL + sort: 'timeString', // the column to sort by + order: 'asc', // the order to sort by + maxResults: 26, // number of items to retrieve from service + pageInterval: 30000, // delay between pages (ms) + stagger: 1500, // delay between loading rows (ms) + + // PASS DATA TO FRONTEND UI + airframesData: airframesData +}; + +$(document).ready(function() { + sf.board.init(sf.options); + sf.items.init(sf.options); + sf.items.load(sf.options); +}); diff --git a/public/plugins/departures/.DS_Store b/public/plugins/departures/.DS_Store new file mode 100644 index 0000000..40e567e Binary files /dev/null and b/public/plugins/departures/.DS_Store differ diff --git a/public/plugins/departures/airline_logos.png b/public/plugins/departures/airline_logos.png new file mode 100644 index 0000000..ef5f8ff Binary files /dev/null and b/public/plugins/departures/airline_logos.png differ diff --git a/public/plugins/departures/airline_logos.pxd/.DS_Store b/public/plugins/departures/airline_logos.pxd/.DS_Store new file mode 100644 index 0000000..7032daf Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/.DS_Store differ diff --git a/public/plugins/departures/airline_logos.pxd/QuickLook/Icon.tiff b/public/plugins/departures/airline_logos.pxd/QuickLook/Icon.tiff new file mode 100644 index 0000000..c59e719 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/QuickLook/Icon.tiff differ diff --git a/public/plugins/departures/airline_logos.pxd/QuickLook/Preview.tiff b/public/plugins/departures/airline_logos.pxd/QuickLook/Preview.tiff new file mode 100644 index 0000000..17b15d8 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/QuickLook/Preview.tiff differ diff --git a/public/plugins/departures/airline_logos.pxd/QuickLook/Thumbnail.tiff b/public/plugins/departures/airline_logos.pxd/QuickLook/Thumbnail.tiff new file mode 100644 index 0000000..eb53f94 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/QuickLook/Thumbnail.tiff differ diff --git a/public/plugins/departures/airline_logos.pxd/data/01B292CA-90DD-4845-9759-DD197206978A-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/01B292CA-90DD-4845-9759-DD197206978A-20190104-165757 new file mode 100644 index 0000000..a44ec2e Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/01B292CA-90DD-4845-9759-DD197206978A-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/04BE7F07-ADB6-4688-BE32-E1B2238DC4E9 b/public/plugins/departures/airline_logos.pxd/data/04BE7F07-ADB6-4688-BE32-E1B2238DC4E9 new file mode 100644 index 0000000..f9f42f7 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/04BE7F07-ADB6-4688-BE32-E1B2238DC4E9 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/0CE249AD-FA73-494E-BA1D-65BD0CEB6947-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/0CE249AD-FA73-494E-BA1D-65BD0CEB6947-20190104-165757 new file mode 100644 index 0000000..d6517fb Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/0CE249AD-FA73-494E-BA1D-65BD0CEB6947-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/1F678EF2-C079-48CC-B175-EB0A4E380884-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/1F678EF2-C079-48CC-B175-EB0A4E380884-20190104-165757 new file mode 100644 index 0000000..241f53d Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/1F678EF2-C079-48CC-B175-EB0A4E380884-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/2043359F-B60A-4A66-9738-6DCAFBB75CEF b/public/plugins/departures/airline_logos.pxd/data/2043359F-B60A-4A66-9738-6DCAFBB75CEF new file mode 100644 index 0000000..412a866 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/2043359F-B60A-4A66-9738-6DCAFBB75CEF differ diff --git a/public/plugins/departures/airline_logos.pxd/data/2070AB44-B087-4AA0-89B1-90C0F857D3CB b/public/plugins/departures/airline_logos.pxd/data/2070AB44-B087-4AA0-89B1-90C0F857D3CB new file mode 100644 index 0000000..2b69db9 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/2070AB44-B087-4AA0-89B1-90C0F857D3CB differ diff --git a/public/plugins/departures/airline_logos.pxd/data/21279568-9484-4C42-BFCE-256B6A8B8763-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/21279568-9484-4C42-BFCE-256B6A8B8763-20190104-165757 new file mode 100644 index 0000000..48e7a22 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/21279568-9484-4C42-BFCE-256B6A8B8763-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/219A38D2-5338-40CD-87F8-F77B60A283CA-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/219A38D2-5338-40CD-87F8-F77B60A283CA-20190104-165757 new file mode 100644 index 0000000..c850bbb Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/219A38D2-5338-40CD-87F8-F77B60A283CA-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/21D83A2D-E14E-4915-B4A6-5F356260FFCD-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/21D83A2D-E14E-4915-B4A6-5F356260FFCD-20190104-165757 new file mode 100644 index 0000000..88a18fb Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/21D83A2D-E14E-4915-B4A6-5F356260FFCD-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/230D1491-7B6D-42A6-AB0C-2178677A62CB b/public/plugins/departures/airline_logos.pxd/data/230D1491-7B6D-42A6-AB0C-2178677A62CB new file mode 100644 index 0000000..f51ce98 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/230D1491-7B6D-42A6-AB0C-2178677A62CB differ diff --git a/public/plugins/departures/airline_logos.pxd/data/25FAD6EB-9D97-4B07-AA0C-E8E1A9545814 b/public/plugins/departures/airline_logos.pxd/data/25FAD6EB-9D97-4B07-AA0C-E8E1A9545814 new file mode 100644 index 0000000..4e5a7ea Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/25FAD6EB-9D97-4B07-AA0C-E8E1A9545814 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/28831A8E-5B72-421D-A0E1-26A884B11BF0-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/28831A8E-5B72-421D-A0E1-26A884B11BF0-20190104-165757 new file mode 100644 index 0000000..95fe7ea Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/28831A8E-5B72-421D-A0E1-26A884B11BF0-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/2A3F9FF1-8A67-48E2-B8B7-F309EF50A216-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/2A3F9FF1-8A67-48E2-B8B7-F309EF50A216-20190104-165757 new file mode 100644 index 0000000..0e602d1 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/2A3F9FF1-8A67-48E2-B8B7-F309EF50A216-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/30A5A3A7-64D0-4C12-ACE9-4DFDC16B8699-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/30A5A3A7-64D0-4C12-ACE9-4DFDC16B8699-20190104-165757 new file mode 100644 index 0000000..993ae95 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/30A5A3A7-64D0-4C12-ACE9-4DFDC16B8699-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/32F119C1-F770-4438-9A40-09DC86E72F2F b/public/plugins/departures/airline_logos.pxd/data/32F119C1-F770-4438-9A40-09DC86E72F2F new file mode 100644 index 0000000..94dc98c Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/32F119C1-F770-4438-9A40-09DC86E72F2F differ diff --git a/public/plugins/departures/airline_logos.pxd/data/41A0BFA3-BAF7-4F0E-BB5F-6544F307E8CC-20190104-165756 b/public/plugins/departures/airline_logos.pxd/data/41A0BFA3-BAF7-4F0E-BB5F-6544F307E8CC-20190104-165756 new file mode 100644 index 0000000..d90c29f Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/41A0BFA3-BAF7-4F0E-BB5F-6544F307E8CC-20190104-165756 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/43983999-7CEC-4342-85B6-36C1819FC05B b/public/plugins/departures/airline_logos.pxd/data/43983999-7CEC-4342-85B6-36C1819FC05B new file mode 100644 index 0000000..b457e41 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/43983999-7CEC-4342-85B6-36C1819FC05B differ diff --git a/public/plugins/departures/airline_logos.pxd/data/4C4E98ED-4192-4B18-B863-933F9B4960F9 b/public/plugins/departures/airline_logos.pxd/data/4C4E98ED-4192-4B18-B863-933F9B4960F9 new file mode 100644 index 0000000..9cf73d4 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/4C4E98ED-4192-4B18-B863-933F9B4960F9 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/53F80822-E409-4F2B-9363-5E8731F9C700-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/53F80822-E409-4F2B-9363-5E8731F9C700-20190104-165757 new file mode 100644 index 0000000..d04de3a Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/53F80822-E409-4F2B-9363-5E8731F9C700-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/58A5A87E-E36F-4134-A333-E1B96B69599E-20190104-165756 b/public/plugins/departures/airline_logos.pxd/data/58A5A87E-E36F-4134-A333-E1B96B69599E-20190104-165756 new file mode 100644 index 0000000..37e79f6 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/58A5A87E-E36F-4134-A333-E1B96B69599E-20190104-165756 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/5917DFC5-E9EE-49FE-8345-90CA98317313-20190104-165756 b/public/plugins/departures/airline_logos.pxd/data/5917DFC5-E9EE-49FE-8345-90CA98317313-20190104-165756 new file mode 100644 index 0000000..ca90d36 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/5917DFC5-E9EE-49FE-8345-90CA98317313-20190104-165756 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/5A202777-B083-4974-BC0C-5D75AD01201F b/public/plugins/departures/airline_logos.pxd/data/5A202777-B083-4974-BC0C-5D75AD01201F new file mode 100644 index 0000000..12d2844 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/5A202777-B083-4974-BC0C-5D75AD01201F differ diff --git a/public/plugins/departures/airline_logos.pxd/data/5FF42D5D-4211-4BCE-81FB-5197FBA009C6-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/5FF42D5D-4211-4BCE-81FB-5197FBA009C6-20190104-165757 new file mode 100644 index 0000000..5ef3517 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/5FF42D5D-4211-4BCE-81FB-5197FBA009C6-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/691782C6-4E99-4A76-BB81-5C4B40890314-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/691782C6-4E99-4A76-BB81-5C4B40890314-20190104-165757 new file mode 100644 index 0000000..46a00f9 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/691782C6-4E99-4A76-BB81-5C4B40890314-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/787B360E-DB26-46AF-9236-5A110ADDD55A b/public/plugins/departures/airline_logos.pxd/data/787B360E-DB26-46AF-9236-5A110ADDD55A new file mode 100644 index 0000000..6006f59 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/787B360E-DB26-46AF-9236-5A110ADDD55A differ diff --git a/public/plugins/departures/airline_logos.pxd/data/7C330333-E812-4DC5-B7C2-767996545ECD b/public/plugins/departures/airline_logos.pxd/data/7C330333-E812-4DC5-B7C2-767996545ECD new file mode 100644 index 0000000..5ee42db Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/7C330333-E812-4DC5-B7C2-767996545ECD differ diff --git a/public/plugins/departures/airline_logos.pxd/data/86A1B850-1E76-4689-A39D-134E19FB7A1D b/public/plugins/departures/airline_logos.pxd/data/86A1B850-1E76-4689-A39D-134E19FB7A1D new file mode 100644 index 0000000..0a6c58b Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/86A1B850-1E76-4689-A39D-134E19FB7A1D differ diff --git a/public/plugins/departures/airline_logos.pxd/data/8E3E06CB-1306-4643-9D20-0CE786FFCF4E-20190104-165756 b/public/plugins/departures/airline_logos.pxd/data/8E3E06CB-1306-4643-9D20-0CE786FFCF4E-20190104-165756 new file mode 100644 index 0000000..4c1ea36 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/8E3E06CB-1306-4643-9D20-0CE786FFCF4E-20190104-165756 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/96F72AF9-1333-4D8B-946B-EDB2810CE2B5-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/96F72AF9-1333-4D8B-946B-EDB2810CE2B5-20190104-165757 new file mode 100644 index 0000000..010d60d Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/96F72AF9-1333-4D8B-946B-EDB2810CE2B5-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/974EAC0D-9775-4C9B-A7EE-B65ABF507091 b/public/plugins/departures/airline_logos.pxd/data/974EAC0D-9775-4C9B-A7EE-B65ABF507091 new file mode 100644 index 0000000..1bf4f37 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/974EAC0D-9775-4C9B-A7EE-B65ABF507091 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/A949F58D-23C6-4BBF-8B1A-5E49AB79325D-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/A949F58D-23C6-4BBF-8B1A-5E49AB79325D-20190104-165757 new file mode 100644 index 0000000..21df106 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/A949F58D-23C6-4BBF-8B1A-5E49AB79325D-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/AC5793B6-1451-471C-86BC-EB5BE26B7924 b/public/plugins/departures/airline_logos.pxd/data/AC5793B6-1451-471C-86BC-EB5BE26B7924 new file mode 100644 index 0000000..9d5b820 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/AC5793B6-1451-471C-86BC-EB5BE26B7924 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/AD975F96-A31D-4ECB-9E09-9BBFEAF1517D-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/AD975F96-A31D-4ECB-9E09-9BBFEAF1517D-20190104-165757 new file mode 100644 index 0000000..eddb6b6 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/AD975F96-A31D-4ECB-9E09-9BBFEAF1517D-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/B366A9AE-B244-485E-B690-4E325F73ABF8-20190104-165756 b/public/plugins/departures/airline_logos.pxd/data/B366A9AE-B244-485E-B690-4E325F73ABF8-20190104-165756 new file mode 100644 index 0000000..f225b32 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/B366A9AE-B244-485E-B690-4E325F73ABF8-20190104-165756 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/B4385173-A092-47DD-A5F2-3BBB8E031B2F b/public/plugins/departures/airline_logos.pxd/data/B4385173-A092-47DD-A5F2-3BBB8E031B2F new file mode 100644 index 0000000..d71fbd0 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/B4385173-A092-47DD-A5F2-3BBB8E031B2F differ diff --git a/public/plugins/departures/airline_logos.pxd/data/BD5C1001-F4E6-44CA-9C12-8A945AF9CDE4 b/public/plugins/departures/airline_logos.pxd/data/BD5C1001-F4E6-44CA-9C12-8A945AF9CDE4 new file mode 100644 index 0000000..4ba84c2 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/BD5C1001-F4E6-44CA-9C12-8A945AF9CDE4 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/C7A603AA-AE57-4D1E-8CC7-E0B376092478 b/public/plugins/departures/airline_logos.pxd/data/C7A603AA-AE57-4D1E-8CC7-E0B376092478 new file mode 100644 index 0000000..a46187a Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/C7A603AA-AE57-4D1E-8CC7-E0B376092478 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/C9ADAA4D-2652-45C3-AF9A-DFAF7B70A582 b/public/plugins/departures/airline_logos.pxd/data/C9ADAA4D-2652-45C3-AF9A-DFAF7B70A582 new file mode 100644 index 0000000..2d26114 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/C9ADAA4D-2652-45C3-AF9A-DFAF7B70A582 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/CF376A8D-97BD-4EA1-B277-8F37E6AA8587-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/CF376A8D-97BD-4EA1-B277-8F37E6AA8587-20190104-165757 new file mode 100644 index 0000000..5a2a959 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/CF376A8D-97BD-4EA1-B277-8F37E6AA8587-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/D0295896-19B5-4B86-A67F-CC7C8060973F-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/D0295896-19B5-4B86-A67F-CC7C8060973F-20190104-165757 new file mode 100644 index 0000000..3239471 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/D0295896-19B5-4B86-A67F-CC7C8060973F-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/D1E11D00-B77F-4A2F-B519-2C8691EE5B53 b/public/plugins/departures/airline_logos.pxd/data/D1E11D00-B77F-4A2F-B519-2C8691EE5B53 new file mode 100644 index 0000000..5493b41 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/D1E11D00-B77F-4A2F-B519-2C8691EE5B53 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/D837A16A-9F82-4761-8804-2515A1957680-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/D837A16A-9F82-4761-8804-2515A1957680-20190104-165757 new file mode 100644 index 0000000..240662a Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/D837A16A-9F82-4761-8804-2515A1957680-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/D885D3B0-5024-4C25-B642-38CA72C29043-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/D885D3B0-5024-4C25-B642-38CA72C29043-20190104-165757 new file mode 100644 index 0000000..e33ce35 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/D885D3B0-5024-4C25-B642-38CA72C29043-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/DEED8052-C1B9-4388-80C2-9BB6C2D85AB1-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/DEED8052-C1B9-4388-80C2-9BB6C2D85AB1-20190104-165757 new file mode 100644 index 0000000..2400a3f Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/DEED8052-C1B9-4388-80C2-9BB6C2D85AB1-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/F14BAF93-F299-4394-91D3-38E2DA692FE9-20190104-165757 b/public/plugins/departures/airline_logos.pxd/data/F14BAF93-F299-4394-91D3-38E2DA692FE9-20190104-165757 new file mode 100644 index 0000000..3575a52 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/F14BAF93-F299-4394-91D3-38E2DA692FE9-20190104-165757 differ diff --git a/public/plugins/departures/airline_logos.pxd/data/F4A11620-DE52-47FE-9757-C98E8228EA2D b/public/plugins/departures/airline_logos.pxd/data/F4A11620-DE52-47FE-9757-C98E8228EA2D new file mode 100644 index 0000000..5260415 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/F4A11620-DE52-47FE-9757-C98E8228EA2D differ diff --git a/public/plugins/departures/airline_logos.pxd/data/F7786B3E-82ED-4F16-B780-6627C5FDD26C-20190104-165756 b/public/plugins/departures/airline_logos.pxd/data/F7786B3E-82ED-4F16-B780-6627C5FDD26C-20190104-165756 new file mode 100644 index 0000000..998fe48 Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/data/F7786B3E-82ED-4F16-B780-6627C5FDD26C-20190104-165756 differ diff --git a/public/plugins/departures/airline_logos.pxd/metadata.info b/public/plugins/departures/airline_logos.pxd/metadata.info new file mode 100644 index 0000000..804a1fb Binary files /dev/null and b/public/plugins/departures/airline_logos.pxd/metadata.info differ diff --git a/public/plugins/departures/custom.css b/public/plugins/departures/custom.css new file mode 100644 index 0000000..c1e9737 --- /dev/null +++ b/public/plugins/departures/custom.css @@ -0,0 +1,80 @@ +/* AIRLINE LOGOS DRUM */ +.splitflap .image { + float: left; + margin-right: 5px; + width: 115px; + height: 40px; + background: url('airline_logos.png') no-repeat; + background-position: 0px 0px; +} +.splitflap .image span { + width: 115px; + height: 40px; + display: block; + background: url('airline_logos.png') no-repeat; + background-position: 0px -40px; /* start with a blank */ +} + +.splitflap .image span.ctrn { + background-position: 0px 0px; +} /* transition */ +.splitflap .image span.csp { + background-position: 0px -40px; +} /* blank */ +.splitflap .image span.SWA { + background-position: 0px -80px; +} /* southwest */ +.splitflap .image span.AAL { + background-position: 0px -120px; +} /* american */ +.splitflap .image span.BAW { + background-position: 0px -160px; +} /* british airways */ +.splitflap .image span.DAL { + background-position: 0px -200px; +} /* delta */ +.splitflap .image span.UAE { + background-position: 0px -240px; +} /* emirates */ +.splitflap .image span.KLM { + background-position: 0px -280px; +} /* klm */ +.splitflap .image span.DLH { + background-position: 0px -320px; +} /* lufthansa */ +.splitflap .image span.ASA { + background-position: 0px -360px; +} /* alaska */ +.splitflap .image span.UAL { + background-position: 0px -400px; +} /* united */ +.splitflap .image span.FDX { + background-position: 0px -440px; +} /* fedex */ +.splitflap .image span.PXM { + background-position: 0px -480px; +} /* westair (Fedex Short Haul) */ +.splitflap .image span.SKW { + background-position: 0px -520px; +} /* skywest */ +.splitflap .image span.JBU { + background-position: 0px -560px; +} /* jetblue */ +.splitflap .image span.ACA { + background-position: 0px -600px; +} /* air canada */ +.splitflap .image span.QXE { + background-position: 0px -640px; +} /* horizon air */ +.splitflap .image span.NKS { + background-position: 0px -680px; +} /* spirit */ +.splitflap .image span.VIR { + background-position: 0px -720px; +} /* virgin atlantic */ +.splitflap .image span.LXJ { + background-position: 0px -760px; +} /* flexjet */ +.splitflap .image span.QFA { + background-position: 0px -800px; +} /* qantas */ diff --git a/public/plugins/departures/custom.js b/public/plugins/departures/custom.js new file mode 100644 index 0000000..e51db09 --- /dev/null +++ b/public/plugins/departures/custom.js @@ -0,0 +1,36 @@ +sf.display.ImageDrum = function() { + return [ + ' ', + 'SWA', + 'AAL', + 'BAW', + 'DAL', + 'UAE', + 'KLM', + 'DLH', + 'ASA', + 'UAL', + 'FDX', + 'PXM', + 'SKW', + 'JBU', + 'ACA', + 'QXE', + 'NKS', + 'VIR', + 'LXJ', + 'QFA' + ]; +}; + +sf.plugins.arrivals = { + dataType: 'json', + + url: function(options) { + return '/api/airport/' + options.airframesData.airport + '/departures'; + }, + + formatData: function(response) { + return response.data; + } +}; diff --git a/views/arrivals.pug b/views/arrivals.pug new file mode 100644 index 0000000..0748fed --- /dev/null +++ b/views/arrivals.pug @@ -0,0 +1,120 @@ +html + head + title= title + link(rel="stylesheet" href="/css/base.css") + link(rel="stylesheet" href="/plugins/arrivals/custom.css") + body + div(id="board" class="chartContainer splitflap" style="text-align: center;") + h1 Arrivals to #{airport} + + div(class="header" style="width:120px;margin-left:0px;") Airline + div(class="header" style="width:160px;margin-left:40px;") Flight + div(class="header" style="width:360px;margin-left:70px;text-align:left;") Origin + div(class="header" style="width:90px;margin-left:30px;") Term + div(class="header" style="width:90px;margin-left:30px;") Gate + div(class="header" style="width:135px;margin-left:30px;") Scheduled + div(class="header" style="width:290px;margin-left:30px;text-align:left;") Remarks + + script(type="text/template" id="row_template") + div(class="row") + div(class="group airline") + div(class="image") + span + div(class="group flight") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group city") + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="group terminal") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group gate") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group scheduled") + div(class="full") + span + div(class="full") + span + div(class="separator") : + div(class="full") + span + div(class="full") + span + div(class="group remarks") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group status") + div(class="sA") + div(class="sB") + script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js") + script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js") + script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js") + script. + const airframesData = !{JSON.stringify(airframesData)}; + script(type="text/javascript" src="/js/split-flap.js") + script(type="text/javascript" src="/plugins/arrivals/custom.js") + script(type="text/javascript" src="/plugins/common.js") diff --git a/views/departures.pug b/views/departures.pug new file mode 100644 index 0000000..73e47ff --- /dev/null +++ b/views/departures.pug @@ -0,0 +1,120 @@ +html + head + title= title + link(rel="stylesheet" href="/css/base.css") + link(rel="stylesheet" href="/plugins/arrivals/custom.css") + body + div(id="board" class="chartContainer splitflap" style="text-align: center;") + h1 Departures from #{airport} + + div(class="header" style="width:120px;margin-left:0px;") Airline + div(class="header" style="width:160px;margin-left:40px;") Flight + div(class="header" style="width:360px;margin-left:70px;text-align:left;") Destination + div(class="header" style="width:90px;margin-left:30px;") Term + div(class="header" style="width:90px;margin-left:30px;") Gate + div(class="header" style="width:135px;margin-left:30px;") Scheduled + div(class="header" style="width:290px;margin-left:30px;text-align:left;") Remarks + + script(type="text/template" id="row_template") + div(class="row") + div(class="group airline") + div(class="image") + span + div(class="group flight") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group city") + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="character") + span + div(class="group terminal") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group gate") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group scheduled") + div(class="full") + span + div(class="full") + span + div(class="separator") : + div(class="full") + span + div(class="full") + span + div(class="group remarks") + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="full") + span + div(class="group status") + div(class="sA") + div(class="sB") + script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js") + script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js") + script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js") + script. + const airframesData = !{JSON.stringify(airframesData)}; + script(type="text/javascript" src="/js/split-flap.js") + script(type="text/javascript" src="/plugins/departures/custom.js") + script(type="text/javascript" src="/plugins/common.js") diff --git a/yarn.lock b/yarn.lock index 9e71489..a5de68a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,25 @@ # yarn lockfile v1 +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.1.tgz#d91a387990b21e5d20047b336bb19b0553f02ff5" + integrity sha512-u9QMIRdKVF7hfEkb3nu2LgZDIzCQPv+yHD9Eg6ruoJLjkrQ9fFz4IBSlF/9XwoNri9+2F1IY+dYuOfZrXq8t3w== + +"@babel/types@^7.6.1", "@babel/types@^7.9.6": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" + integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + accepts@~1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" @@ -10,11 +29,40 @@ accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" +acorn@^7.1.1: + version "7.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +assert-never@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" + integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== + +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +babel-walk@3.0.0-canary-5: + version "3.0.0-canary-5" + resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" + integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== + dependencies: + "@babel/types" "^7.9.6" + body-parser@1.18.3: version "1.18.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" @@ -36,6 +84,21 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= +character-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= + dependencies: + is-regex "^1.0.3" + +constantinople@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" + integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== + dependencies: + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.1" + content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" @@ -63,6 +126,13 @@ debug@2.6.9: dependencies: ms "2.0.0" +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -73,6 +143,16 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -142,6 +222,13 @@ finalhandler@1.1.1: statuses "~1.4.0" unpipe "~1.0.0" +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -152,6 +239,11 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -179,6 +271,44 @@ ipaddr.js@1.8.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= +is-expression@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" + integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== + dependencies: + acorn "^7.1.1" + object-assign "^4.1.1" + +is-promise@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +js-stringify@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + +jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + +lodash@^4.17.19: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -211,6 +341,18 @@ mime@1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +moment-timezone@^0.5.31: + version "0.5.31" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.31.tgz#9c40d8c5026f0c7ab46eda3d63e49c155148de05" + integrity sha512-+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@^2.27.0: + version "2.27.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" + integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -221,6 +363,11 @@ negotiator@0.6.1: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -233,11 +380,23 @@ parseurl@~1.3.2: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +promise@^7.0.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + proxy-addr@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" @@ -246,6 +405,109 @@ proxy-addr@~2.0.4: forwarded "~0.1.2" ipaddr.js "1.8.0" +pug-attrs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" + integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== + dependencies: + constantinople "^4.0.1" + js-stringify "^1.0.2" + pug-runtime "^3.0.0" + +pug-code-gen@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.1.tgz#ff3b337b100c494ea63ef766091d27f7d73acb7e" + integrity sha512-xJIGvmXTQlkJllq6hqxxjRWcay2F9CU69TuAuiVZgHK0afOhG5txrQOcZyaPHBvSWCU/QQOqEp5XCH94rRZpBQ== + dependencies: + constantinople "^4.0.1" + doctypes "^1.1.0" + js-stringify "^1.0.2" + pug-attrs "^3.0.0" + pug-error "^2.0.0" + pug-runtime "^3.0.0" + void-elements "^3.1.0" + with "^7.0.0" + +pug-error@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" + integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== + +pug-filters@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" + integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== + dependencies: + constantinople "^4.0.1" + jstransformer "1.0.0" + pug-error "^2.0.0" + pug-walk "^2.0.0" + resolve "^1.15.1" + +pug-lexer@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.0.tgz#0b779e7d8cbf0f103803675be96351942fd9a727" + integrity sha512-52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A== + dependencies: + character-parser "^2.2.0" + is-expression "^4.0.0" + pug-error "^2.0.0" + +pug-linker@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" + integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== + dependencies: + pug-error "^2.0.0" + pug-walk "^2.0.0" + +pug-load@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" + integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== + dependencies: + object-assign "^4.1.1" + pug-walk "^2.0.0" + +pug-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" + integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== + dependencies: + pug-error "^2.0.0" + token-stream "1.0.0" + +pug-runtime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.0.tgz#d523025fdc0a1efe70929d1fd3a2d24121ffffb6" + integrity sha512-GoEPcmQNnaTsePEdVA05bDpY+Op5VLHKayg08AQiqJBWU/yIaywEYv7TetC5dEQS3fzBBoyb2InDcZEg3mPTIA== + +pug-strip-comments@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" + integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== + dependencies: + pug-error "^2.0.0" + +pug-walk@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" + integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== + +pug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.0.tgz#101eecd7a236cd9906e420e17799d4d57f2b7d93" + integrity sha512-inmsJyFBSHZaiGLaguoFgJGViX0If6AcfcElimvwj9perqjDpUpw79UIEDZbWFmoGVidh08aoE+e8tVkjVJPCw== + dependencies: + pug-code-gen "^3.0.0" + pug-filters "^4.0.0" + pug-lexer "^5.0.0" + pug-linker "^4.0.0" + pug-load "^3.0.0" + pug-parser "^6.0.0" + pug-runtime "^3.0.0" + pug-strip-comments "^2.0.0" + qs@6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -266,6 +528,13 @@ raw-body@2.3.3: iconv-lite "0.4.23" unpipe "1.0.0" +resolve@^1.15.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + safe-buffer@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -320,6 +589,16 @@ statuses@~1.4.0: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +token-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" + integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= + type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" @@ -342,3 +621,18 @@ vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +void-elements@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= + +with@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" + integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== + dependencies: + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" + assert-never "^1.2.1" + babel-walk "3.0.0-canary-5"