diff --git a/gatsby-config.js b/gatsby-config.js index 2e0adf110..7f27faa51 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -1,10 +1,25 @@ -/** - * Configure your Gatsby site with this file. - * - * See: https://www.gatsbyjs.org/docs/gatsby-config/ - */ +const siteConfig = require('./site-config'); + +require('dotenv').config({ + path: `.env.${process.env.NODE_ENV}`, +}); module.exports = { - /* Your site config here */ - plugins: [], + pathPrefix: '/rules', + siteMetadata: { + ...siteConfig, + }, + plugins: [ + 'gatsby-plugin-react-helmet', + 'gatsby-plugin-sitemap', + 'gatsby-transformer-json', + 'gatsby-plugin-postcss', + { + resolve: 'gatsby-plugin-breadcrumb', + options: { + useAutoGen: true, + autoGenHomeLabel: 'Rules', + useClassNames: true, + }, + }], } diff --git a/lib/ssw.megamenu/data/menu.json b/lib/ssw.megamenu/data/menu.json new file mode 100644 index 000000000..6af0e641c --- /dev/null +++ b/lib/ssw.megamenu/data/menu.json @@ -0,0 +1,714 @@ +{ + "menuItems" : [ + { + "text": "Services", + "groupImageUrl": "Menu-Banner-Services.png", + "children": [ + { + "text": "All Services", + "navigateUrl": + "https://www.ssw.com.au/ssw/Consulting/Default.aspx#filter=.all%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "children": [ + { + "text": "See All Services", + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Default.aspx" + } + ] + }, + { + "text": "Development Teams", + "navigateUrl": + "https://www.ssw.com.au/ssw/Consulting/Default.aspx#filter=.webdev%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Web-Applications.aspx", + "text": "Web Applications", + "cssClass": "Popular" + }, + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Consulting/Mobile-Application-Development.aspx", + "text": "Mobile Apps", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Angular.aspx", + "text": "Angular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/React.aspx", + "text": "React" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Vuejs.aspx", + "text": "VueJS" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Database-Development.aspx", + "text": "Database Development" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Enterprise-Reporting.aspx", + "text": "Enterprise Reporting & BI" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Power-BI.aspx", + "text": "Power BI" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Desktop-Development.aspx", + "text": "Windows Desktop Applications" + } + ] + }, + { + "text": "Creative Teams", + "navigateUrl": + "https://www.ssw.com.au/ssw/Consulting/Default.aspx#filter=.design%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/UI-UX-Design.aspx", + "text": "UI & UX Design Showcase" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Video-Production", + "text": "Video Production" + }, + { "navigateUrl": "https://sswdigital.com/", "text": "SSW Digital" } + ] + }, + + { + "text": "Consulting", + "breakListBefore": true, + "navigateUrl": + "https://www.ssw.com.au/ssw/Consulting/Default.aspx#filter=.consulting-services%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Remote-Work.aspx", + "text": "Remote work", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Chinafy-App.aspx", + "text": "Bring Your Apps to China", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Strategic-Architecture.aspx", + "text": "Strategic Architecture" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Software-Audit.aspx", + "text": "Software Auditing", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Bots.aspx", + "text": "Bots", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/ALM-Azure-DevOps.aspx", + "text": "ALM and Azure DevOps/TFS" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/DevOps.aspx", "text": "DevOps" }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Scrum.aspx", "text": "Scrum" }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Kubernetes.aspx", + "text": "Kubernetes" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Office-365.aspx", + "text": "Microsoft Office 365" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Document-Management-Workflow.aspx", + "text": "Document Management Workflow" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/PayPerClick.aspx", + "text": "Pay Per Click" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/HoloLens.aspx", + "text": "Microsoft HoloLens" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/ArtificialIntelligence.aspx", + "text": "AI & Machine Learning" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Smart-Office-and-Smart-Home.aspx", + "text": "Smart Office & Smart Home" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Access-Database-Upsizing.aspx", + "text": "Access Database Upsizing" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Zendesk.aspx", "text": "Zendesk" }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Educational/", "text": "Educational Industry" } + ] + }, + + { + "text": "Platform Development", + "breakListBefore": true, + "navigateUrl": + "https://www.ssw.com.au/ssw/Consulting/Default.aspx#filter=.cms%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/SharePoint.aspx", + "text": "SharePoint", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Microsoft-Dynamics-365.aspx", + "text": "Dynamics 365", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Power-Platform.aspx", + "text": "Power Platform" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/WordPress.aspx", + "text": "WordPress" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Kentico.aspx", "text": "Kentico" }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/DNN-DotNetNuke.aspx", + "text": "DotNetNuke" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Sitefinity.aspx", + "text": "Sitefinity" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Orchard.aspx", "text": "Orchard" }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Sitecore.aspx", "text": "Sitecore" }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Umbraco.aspx", "text": "Umbraco" } + ] + }, + + { + "text": "Cloud and Infrastructure", + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Default.aspx#filter=.hosting-solutions%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Azure.aspx", + "text": "Microsoft Azure", + "cssClass": "Popular" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Vault.aspx", "text": "Vault" }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Network-Architecture.aspx", + "text": "Network Architecture" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Hyper-V.aspx", + "text": "Virtualization with Hyper-V" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Data-Protection-Manager.aspx", + "text": "Data Protection Manager" + }, + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Consulting/BackBlaze-and-CloudBerry-Backup.aspx", + "text": "BackBlaze and CloudBerry Backup" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Backup-Recovery.aspx", + "text": "Backup/Disaster Recovery Audit" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Video-Conferencing.aspx", + "text": "Video Conferencing" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Microsoft-Teams.aspx", + "text": "Microsoft Teams" + }, + + + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Skype-for-Business.aspx", + "text": "Skype for Business" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Service-Desk.aspx", + "text": "Service Desk" + } + ] + }, + + { + "text": "Book Now", + "breakListBefore": true, + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Consulting.aspx", + "navigateUrlOnMobileOnly": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Consulting.aspx", + "text": "Team of Developers and Scrum Masters" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/Training/Courses.aspx", + "text": "A Trainer" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Mentoring.aspx", "text": "A Mentor" } + ] + } + ] + }, + + { + "text": "Products", + "groupImageUrl": "Menu-Banner-Products.png", + "children": [ + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Products/Default.aspx#filter=.all%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "text": "All Products", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Products/Default.aspx", + "text": "See All Products" + } + ] + }, + + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Products/Default.aspx#filter=.ai-prod%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "text": "AI", + "children": [ + { + "navigateUrl": "https://sswsophie.com/sophie-ai/", + "target": "_blank", + "text": "Sophie AI", + "cssClass": "ignore Popular" + }, + { + "navigateUrl": "https://sswsophie.com", + "target": "_blank", + "text": "Sophie Hub", + "cssClass": "ignore Popular" + } + ] + }, + + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Products/Default.aspx#filter=.web-prod%3Anot(.decommissioned)", + "navigateUrlOnMobileOnly": true, + "text": "Web", + "breakListBefore": true, + "children": [ + { + "navigateUrl": "https://sugarlearning.com/", + "target": "_blank", + "text": "SugarLearning", + "cssClass": "ignore Popular" + }, + { + "navigateUrl": "https://sswtimepro.com/", + "target": "_blank", + "text": "TimePro", + "cssClass": "ignore Popular" + }, + { + "navigateUrl": "https://sswlinkauditor.com/", + "target": "_blank", + "text": "LinkAuditor", + "cssClass": "ignore Popular" + }, + { + "navigateUrl": "https://sswhealthcheck.com/", + "target": "_blank", + "text": "HealthCheck", + "cssClass": "ignore" + }, + { + "navigateUrl": "https://smashingbarrier.com/", + "target": "_blank", + "text": "SmashingBarrier", + "cssClass": "ignore" + } + ] + }, + + { + "navigateUrl": "https://www.ssw.com.au/ssw/Standards/Support/BugReportOrEnhancement.aspx", + "navigateUrlOnMobileOnly": true, + "text": "Support", + "breakListBefore": true, + "children": [ + { + "navigateUrl": "https://pdi-ssw.zendesk.com/hc", + "text": "Knowledge Base" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Standards/Support/BugReportOrEnhancement.aspx", + "text": "Report a Bug" + } + ] + } + ] + }, + { + "text": "Training", + "groupImageUrl": "Menu-Banner-Training.png", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/?upcomingeventsonly=false", + "navigateUrlOnMobileOnly": true, + "text": "All Events", + "children": [ + { "navigateUrl": "https://www.ssw.com.au/ssw/Events/", "text": "See All Events" }, + { + "navigateUrl": "https://angularhackday.com", + "text": "Angular Hack Days", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://xamarinhackday.com", + "text": "Xamarin Hack Days", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://aihackday.com", + "text": "AI Hack Days", + "cssClass": "Popular" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/Training/Angular-Workshop.aspx", + "text": "Angular 2-Day Workshop" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/Training/Clean-Architecture-Workshop.aspx", + "text": "Clean Architecture 2-Day Workshop" + }, + + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/Training/Angular-Superpowers-Tour.aspx", + "text": "Angular SuperPowers Tour", + "breakListBefore": true + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/Training/Azure-Superpowers-Tour.aspx", + "text": "Azure SuperPowers Tour" + }, + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Events/Training/NET-Core-Superpowers-Tour.aspx", + "text": ".NET Core SuperPowers Tour" + }, + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Events/Training/Clean-Architecture-Superpowers-Tour.aspx", + "text": "Clean Architecture SuperPowers Tour" + }, + + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Events/Training/Scrum-Training-Course-3-days.aspx", + "text": "Professional Scrum Developer Training" + }, + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Events/Training/Professional-Tailored-Scrum.aspx", + "text": "Professional Tailored Scrum Training" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/Training/Training-Options.aspx", + "text": "Customized Training", + "cssClass": "Popular" + } + ] + }, + + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/?upcomingeventsonly=true", + "navigateUrlOnMobileOnly": true, + "text": "Events by Technology", + "breakListBefore": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/?tech=angular_and_react", + "text": "Angular / React" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/events/?tech=sharepoint", "text": "SharePoint" }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/?tech=dynamics_365", + "text": "Dynamics 365" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/events/?tech=visual_studio_and_tfs", + "text": "Visual Studio / TFS" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/events/?tech=scrum", "text": "Scrum" }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Events/?tech=_net_core", "text": ".NET Core" }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/events/?tech=mobile_development", + "text": "Mobile Development" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/events/?tech=sql_server", "text": "SQL Server" }, + { "navigateUrl": "https://www.ssw.com.au/ssw/events/?tech=other", "text": "Other" } + ] + }, + + { + "navigateUrl": + "https://www.ssw.com.au/ssw/Events/?upcomingeventsonly=true%26types=ssw_courses", + "navigateUrlOnMobileOnly": true, + "text": "Events by Type", + "breakListBefore": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/events/?types=ssw_courses", + "text": "SSW Training" + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/events/?types=webinar", "text": "Webinars" } + ] + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Events/?videoonly=true%26upcomingeventsonly=true", + "navigateUrlOnMobileOnly": true, + "text": "Related Services", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Consulting/Video-Production/", + "text": "Video Recording / Live Streaming" + }, + { + "navigateUrl": "http://sswchapel.com.au/", + "target": "_blank", + "text": "Conference Room for Hire", + "cssClass": "ignore" + } + ] + } + ] + }, + + { + "text": "User Group", + "groupImageUrl": "Menu-Banner-UserGroup.png", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Sydney.aspx", + "navigateUrlOnMobileOnly": true, + "text": "Sydney .NET UG", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Sydney.aspx", + "text": "Upcoming Sessions" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Company/Directions/NeutralBay/", + "text": "Map to SSW Sydney", + "cssClass": "map" + } + ] + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Canberra.aspx", + "navigateUrlOnMobileOnly": true, + "text": "Canberra .NET UG", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Canberra.aspx", + "text": "Upcoming Sessions" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/UserGroupMapDirectionsCanberra.aspx", + "text": "Map to Microsoft Canberra", + "cssClass": "map" + } + ] + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Melbourne.aspx", + "navigateUrlOnMobileOnly": true, + "text": "Melbourne .NET UG", + "breakListBefore": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Melbourne.aspx", + "text": "Upcoming Sessions" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Company/Directions/Melbourne/", + "text": "Map to SSW Melbourne", + "cssClass": "map" + } + ] + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Brisbane.aspx", + "navigateUrlOnMobileOnly": true, + "text": "Brisbane Full Stack UG", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Brisbane.aspx", + "text": "Upcoming Sessions" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Company/Directions/Brisbane/", + "text": "Map to SSW Brisbane", + "cssClass": "map" + } + ] + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Live/", + "navigateUrlOnMobileOnly": true, + "text": "Live UG", + "breakListBefore": true, + "children": [{ "navigateUrl": "https://www.ssw.com.au/ssw/Live/", "text": "Sydney .NET UG Live" }] + }, + { + "navigateUrl": "https://fireusergroup.com/", + "navigateUrlOnMobileOnly": true, + "text": "Fire UG - China", + "children": [{ "navigateUrl": "https://fireusergroup.com/", "text": "Upcoming Sessions" }] + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/", + "navigateUrlOnMobileOnly": true, + "text": "Resources", + "breakListBefore": true, + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/SSWUpdatePrevious.aspx", + "text": "Newsletters" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/PastSessions.aspx", + "text": "Past Sessions" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/UGEvaluationSurvey.aspx", + "text": "Evaluation Survey" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/Developerlinks.aspx", + "text": "Developer Links" + } + ] + } + ] + }, + + { + "text": "Rules", + "groupImageUrl": "Menu-Banner-Standards.png", + "children": [ + { + "navigateUrl": "https://rules.ssw.com.au/Pages/default.aspx", + "text": "New SSW Rules" + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Standards/Default.aspx", + "text": "SSW Rules" + }, + { + "text": "Popular Rules", + "navigateUrl": "https://www.ssw.com.au/ssw/Standards/Default.aspx", + "breakListBefore": true, + "children": [ + { + "navigateUrl": "https://rules.ssw.com.au/rules-to-successful-projects", + "text": "Rules to Successful Projects" + }, + { + "navigateUrl": "https://rules.ssw.com.au/rules-to-better-email", + "text": "Rules to Better Email" + }, + { + "navigateUrl": "https://rules.ssw.com.au/rules-to-better-google-rankings", + "text": "Rules to Better Google Rankings" + }, + { + "navigateUrl": + "https://rules.ssw.com.au/rules-to-better-interfaces-(general-usability-practices)", + "text": "Rules to Better Interfaces" + }, + { + "navigateUrl": "https://rules.ssw.com.au/rules-to-better-code", + "text": "Rules to Better Code" + }, + { + "navigateUrl": "https://rules.ssw.com.au/rules-to-better-scrum-using-azure-devops", + "text": "Rules to Better Scrum using Azure DevOps" + } + ] + }, + { + "navigateUrl": "https://bettersoftwaresuggestions.com/", + "text": "New SSW Better Software Suggestions", + "breakListBefore": true + }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Standards/BetterSoftwareSuggestions/", + "text": "SSW Better Software Suggestions" + } + ] + }, + { + "text": "About Us", + "groupImageUrl": "Menu-Banner-AboutUs.png", + "children": [ + { "navigateUrl": "https://www.ssw.com.au/ssw/Company/AboutUs.aspx", "text": "About Us" }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Company/Awards.aspx", "text": "Awards" }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/News/", + "text": "News & Press", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/NETUG/SSWUpdatePrevious.aspx", + "text": "Newsletters" + } + ] + }, + { "navigateUrl": "https://blog.ssw.com/", "text": "Blog", "breakListBefore": true }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Company/Culture", "text": "Our Culture" }, + { "navigateUrl": "https://www.ssw.com.au/people/", "text": "Our People" }, + { + "navigateUrl": "https://www.ssw.com.au/ssw/Company/Clients", + "text": "Our Clients", + "children": [ + { + "navigateUrl": "https://www.ssw.com.au/ssw/Testimonials/default.aspx", + "text": "Testimonials" + } + ] + }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Company/History.aspx", "text": "Our History", "breakListBefore": true }, + { "navigateUrl": "https://www.ssw.com.au/ssw/Company/Offices.aspx", "text": "Our Offices" }, + + { + "navigateUrl": "https://www.ssw.com.au/ssw/Employment/Employment.aspx", + "text": "Employment Opportunities" + }, + + { "navigateUrl": "https://www.ssw.com.au/ssw/Company/ContactUs.aspx", "text": "Contact Us" } + ] + }, + { + "text": "SSW TV", + "cssClass": "ignore no-dropdown menu-ssw-tv", + "navigateUrl": "http://tv.ssw.com", + "target": "_blank" + } +] +} \ No newline at end of file diff --git a/lib/ssw.megamenu/desktop-menu/desktop-menu.js b/lib/ssw.megamenu/desktop-menu/desktop-menu.js new file mode 100644 index 000000000..0690136f0 --- /dev/null +++ b/lib/ssw.megamenu/desktop-menu/desktop-menu.js @@ -0,0 +1,36 @@ +import React from 'react'; +import styles from './desktop-menu.module.css'; +import cs from 'classnames'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faAngleDown } from '@fortawesome/free-solid-svg-icons'; +import Dropdown from '../dropdown/dropdown'; + +var menuModel = require('../data/menu.json'); + +var DesktopMenu = function DesktopMenu() { + return /*#__PURE__*/React.createElement("div", { + className: cs(styles.menuDrop, styles.hiddenXs, styles.hiddenSm) + }, /*#__PURE__*/React.createElement("ul", null, menuModel.menuItems.map(function (item, index) { + return /*#__PURE__*/React.createElement("li", { + key: index + }, !item.children && /*#__PURE__*/React.createElement("a", { + href: item.navigateUrl ? item.navigateUrl : null, + className: cs(styles.ignore, 'unstyled') + }, item.text), ' ', item.children && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("a", { + className: cs(styles.ignore, 'unstyled') + }, item.text, " ", /*#__PURE__*/React.createElement(FontAwesomeIcon, { + icon: faAngleDown + })), /*#__PURE__*/React.createElement("div", { + className: styles.Menu + }, /*#__PURE__*/React.createElement("div", { + className: styles.MenuImg + }, /*#__PURE__*/React.createElement("img", { + src: require("../images/" + item.groupImageUrl), + loading: "lazy" + })), /*#__PURE__*/React.createElement(Dropdown, { + items: item.children + })))); + }))); +}; + +export default DesktopMenu; \ No newline at end of file diff --git a/lib/ssw.megamenu/desktop-menu/desktop-menu.module.css b/lib/ssw.megamenu/desktop-menu/desktop-menu.module.css new file mode 100644 index 000000000..60e0e2968 --- /dev/null +++ b/lib/ssw.megamenu/desktop-menu/desktop-menu.module.css @@ -0,0 +1,66 @@ +.menuDrop a { + text-decoration: none; +} +.menuDrop { + width: 100%; + float: left; + position: relative; +} +.menuDrop > ul { + padding: 0; + margin: 0; +} + +.menuDrop > ul > li { + padding: 0; + display: inline-block; + line-height: 36px; + background: none; +} +.menuDrop > ul > li:hover { + background: #eee; + color: #333 !important; +} +.menuDrop > ul > li:hover > a { + color: #333 !important; + border-bottom: 0; +} +.menuDrop > ul > li > a { + color: #eee; + border-bottom: 0; + text-decoration: none; + border-bottom: 0; + text-transform: uppercase; + padding: 0 15px; + font-size: 0.9rem; +} +.menuDrop > ul > li:hover > div.Menu { + display: block; +} +.Menu { + display: none; + position: absolute; + top: 36px; + left: 0; + z-index: 2000; + background-color: #f0f0f0; + width: 100%; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); +} +@media (max-width: 767px) { + .hiddenXs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hiddenSm { + display: none !important; + } +} +.ignore:after { + content: none !important; + padding-left: 0; +} +.MenuImg img { + width: 100%; +} diff --git a/lib/ssw.megamenu/dropdown-item/dropdown-item.js b/lib/ssw.megamenu/dropdown-item/dropdown-item.js new file mode 100644 index 000000000..e011d6222 --- /dev/null +++ b/lib/ssw.megamenu/dropdown-item/dropdown-item.js @@ -0,0 +1,23 @@ +import React from 'react'; +import styles from './dropdown-item.module.css'; +import cs from 'classnames'; + +var DropdownItem = function DropdownItem(_ref) { + var item = _ref.item, + index = _ref.index; + return /*#__PURE__*/React.createElement(React.Fragment, null, item.level === 1 && /*#__PURE__*/React.createElement("li", { + key: index, + className: item.data.navigateUrlOnMobileOnly ? cs(styles.NonClickableMenuItem, styles.level1) : styles.level1 + }, /*#__PURE__*/React.createElement("a", { + href: !item.data.navigateUrlOnMobileOnly ? item.data.navigateUrl : null, + className: cs(styles.ignore, 'unstyled') + }, item.data.text)), item.level === 2 && /*#__PURE__*/React.createElement("li", { + key: index, + className: item.data.cssClass ? cs(styles[item.data.cssClass], styles.ClickableMenuItem, styles.level2) : cs(styles.ClickableMenuItem, styles.level2) + }, /*#__PURE__*/React.createElement("a", { + href: item.data.navigateUrl ? item.data.navigateUrl : null, + className: cs(styles.ignore, 'unstyled') + }, item.data.text))); +}; + +export default DropdownItem; \ No newline at end of file diff --git a/lib/ssw.megamenu/dropdown-item/dropdown-item.module.css b/lib/ssw.megamenu/dropdown-item/dropdown-item.module.css new file mode 100644 index 000000000..80bb08b66 --- /dev/null +++ b/lib/ssw.megamenu/dropdown-item/dropdown-item.module.css @@ -0,0 +1,71 @@ +.Popular { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAOCAIAAADmEAgNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTJCMDg3OTFDMjMxMUU1QkYxNkQzRUE1Q0I0QzhENCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTJCMDg3QTFDMjMxMUU1QkYxNkQzRUE1Q0I0QzhENCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBMkIwODc3MUMyMzExRTVCRjE2RDNFQTVDQjRDOEQ0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBMkIwODc4MUMyMzExRTVCRjE2RDNFQTVDQjRDOEQ0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2JRVPgAAAb9JREFUeNpiPOdgyzCYABPDIAOjDiIEWOAs9UVLuWRlgYy/3749mTvn3bo1InEJUuERzFxcv96+fb5sKVBEKChEPjcPov7LjRu3M9P0tu54e+jg0852FmER3TXrnq9Z/WbFcgjjxdTJcMO116xnExa+29Lyae8urHZhD6GP586dd7T7+fataEAg0G7ZxCSgaqDI2/37gO7gNjGDKLtVWvJw8iQeDQ2gGmI8zefsBnQN0G4BeztMu4Rd3QhH2b+vX3kMDIABA3E70K9A43jNzdGU/fn4iRgHAd0BDM5X27YKGJtgyv58/Qqng/iNjAz3HwIyHvX1snDz4LJArbsHGGDASIGEP2EHGZt8vnL5242bwNgHJgN0u+pqcDoIEow346J/3r754egRYDhDIkUiOxdo1ueTJ+FRBlQGSSLfHz3i0dYBxYu9A5AE2ormGqALgHolQ0KVa0AWC1pawe0CxjswJcGdiJ6o0QAwstgkJYEhAUTAuANq/nrmFLucHJoyYFgq1NZB/AoJM2DqBrKBLgCib48fA2MfSAI9CRSULq8U8/BkV1WHWwFMGMB88/3aNaDhEEHG0ZJ61EEUAoAAAwCvXdrp+ivLHwAAAABJRU5ErkJggg==') + no-repeat scroll right 4px transparent !important; +} +.ignore:after { + content: none !important; + padding-left: 0; +} +.NonClickableMenuItem a:hover { + cursor: default !important; + color: #333 !important; + border-bottom: 1px solid #ccc !important; +} +.ClickableMenuItem a:hover { + border-bottom: 1px solid #cc4141 !important; + color: #cc4141 !important; +} +.ClickableMenuItem a, +.NonClickableMenuItem a { + padding-left: 0; + padding-right: 0; + color: #333; +} + +.level1 { + padding-bottom: 0; + padding-right: 2px; + padding-top: 0px; + padding-right: 0px; + padding-bottom: 0px; + padding-left: 0px; + background: none; +} +.level1 a { + background: none repeat scroll 0 0 transparent; + border-bottom: 1px solid #ccc; + font-size: 1rem; + font-weight: bold; + padding-bottom: 3px; + padding-top: 3px; + margin-bottom: 5px; + text-transform: none; + display: block; + line-height: normal; + color: #333; +} +.level1 a:hover { + border-bottom: 1px solid #cc4141; + color: #cc4141; +} +.level2 { + line-height: normal; + padding: 0 0 0 10px; + background: none; +} +.level2 a { + background: none repeat scroll 0 0 transparent; + border-bottom: 1px solid transparent; + font-size: 0.9rem; + font-weight: normal; + padding: 4px 0 3px; + margin: 0; + line-height: 1.4; + text-transform: none; + display: inline-block; +} +.map:after { + font-family: FontAwesome; + content: '\f041'; + padding: 0 3px 0; +} diff --git a/lib/ssw.megamenu/dropdown/dropdown.js b/lib/ssw.megamenu/dropdown/dropdown.js new file mode 100644 index 000000000..56a2da70d --- /dev/null +++ b/lib/ssw.megamenu/dropdown/dropdown.js @@ -0,0 +1,73 @@ +import React from 'react'; +import DropdownItem from '../dropdown-item/dropdown-item'; +import styles from './dropdown.module.css'; + +var Dropdown = function Dropdown(_ref) { + var items = _ref.items; + + var CountChildren = function CountChildren(items) { + var count = items.length; + items.forEach(function (level1) { + if (level1.children) { + count += level1.children.length; + } + }); + return count; + }; + + var createDropDown = function createDropDown(items) { + var blocks = []; + blocks.push([]); + var countChildren = CountChildren(items); + var currentIndex = 0; + var currentColumn = 0; + items.forEach(function (level1Item) { + if (level1Item.breakListBefore) { + currentColumn++; + currentIndex = 0; + blocks.push([]); + } + + blocks[currentColumn].push({ + level: 1, + data: level1Item + }); + + if (level1Item.children) { + level1Item.children.forEach(function (level2Item) { + if (level2Item.breakListBefore) { + currentIndex++; + + if (level2Item.breakListBefore || currentIndex > countChildren / currentColumn) { + currentColumn++; + currentIndex = 0; + blocks.push([]); + } + } + + blocks[currentColumn].push({ + level: 2, + data: level2Item + }); + }); + } + }); + return blocks.map(function (column, index) { + return /*#__PURE__*/React.createElement("ul", { + key: index, + className: styles.colMd3 + }, column.map(function (item, index) { + return /*#__PURE__*/React.createElement(DropdownItem, { + key: index, + item: item + }); + })); + }); + }; + + return /*#__PURE__*/React.createElement("div", { + className: styles.MenuWrapper + }, createDropDown(items)); +}; + +export default Dropdown; \ No newline at end of file diff --git a/lib/ssw.megamenu/dropdown/dropdown.module.css b/lib/ssw.megamenu/dropdown/dropdown.module.css new file mode 100644 index 000000000..43f75fb02 --- /dev/null +++ b/lib/ssw.megamenu/dropdown/dropdown.module.css @@ -0,0 +1,59 @@ +.colMd3 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; + float: left; +} +.colMd3 { + width: 25%; +} +.MenuWrapper { + padding: 10px 10px 20px; + width: 100%; + margin: 0; + display: table; + box-sizing: border-box; +} +.MenuWrapper > ul { + padding: 0 10px; + list-style: none; + box-sizing: border-box; +} +.MenuWrapper > ul li.level1 { + padding-bottom: 0; + padding-right: 2px; + padding-top: 0px; + padding-right: 0px; + padding-bottom: 0px; + padding-left: 0px; + background: none; +} +.MenuWrapper > ul li.level1 a { + background: none repeat scroll 0 0 transparent; + border-bottom: 1px solid #ccc; + font-size: 1rem; + font-weight: bold; + padding-bottom: 3px; + padding-top: 3px; + margin-bottom: 5px; + text-transform: none; + display: block; + line-height: normal; +} +.MenuWrapper > ul li.level2 { + line-height: normal; + padding: 0 0 0 10px; + background: none; +} +.MenuWrapper > ul li.level2 a { + background: none repeat scroll 0 0 transparent; + border-bottom: 1px solid transparent; + font-size: 0.9rem; + font-weight: normal; + padding: 4px 0 3px; + margin: 0; + line-height: 1.4; + text-transform: none; + display: inline-block; +} diff --git a/lib/ssw.megamenu/images/Menu-Banner-AboutUs.png b/lib/ssw.megamenu/images/Menu-Banner-AboutUs.png new file mode 100644 index 000000000..fa2a1895c Binary files /dev/null and b/lib/ssw.megamenu/images/Menu-Banner-AboutUs.png differ diff --git a/lib/ssw.megamenu/images/Menu-Banner-Products.png b/lib/ssw.megamenu/images/Menu-Banner-Products.png new file mode 100644 index 000000000..bcbd3689c Binary files /dev/null and b/lib/ssw.megamenu/images/Menu-Banner-Products.png differ diff --git a/lib/ssw.megamenu/images/Menu-Banner-Services.png b/lib/ssw.megamenu/images/Menu-Banner-Services.png new file mode 100644 index 000000000..624318a26 Binary files /dev/null and b/lib/ssw.megamenu/images/Menu-Banner-Services.png differ diff --git a/lib/ssw.megamenu/images/Menu-Banner-Standards.png b/lib/ssw.megamenu/images/Menu-Banner-Standards.png new file mode 100644 index 000000000..4f9a1c2fe Binary files /dev/null and b/lib/ssw.megamenu/images/Menu-Banner-Standards.png differ diff --git a/lib/ssw.megamenu/images/Menu-Banner-Training.png b/lib/ssw.megamenu/images/Menu-Banner-Training.png new file mode 100644 index 000000000..45cf0378a Binary files /dev/null and b/lib/ssw.megamenu/images/Menu-Banner-Training.png differ diff --git a/lib/ssw.megamenu/images/Menu-Banner-UserGroup.png b/lib/ssw.megamenu/images/Menu-Banner-UserGroup.png new file mode 100644 index 000000000..b4efbabe6 Binary files /dev/null and b/lib/ssw.megamenu/images/Menu-Banner-UserGroup.png differ diff --git a/lib/ssw.megamenu/menu/menu.js b/lib/ssw.megamenu/menu/menu.js new file mode 100644 index 000000000..c10a5f3a6 --- /dev/null +++ b/lib/ssw.megamenu/menu/menu.js @@ -0,0 +1,48 @@ +import React from 'react'; +import styles from './menu.module.css'; +import DesktopMenu from '../desktop-menu/desktop-menu'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faBars } from '@fortawesome/free-solid-svg-icons'; +import cs from 'classnames'; +var searchUrl = "https://www.google.com.au/search?q=site:ssw.com.au%20"; + +var Menu = function Menu(_ref) { + var onClickToggle = _ref.onClickToggle; + + var search = function search(_search) { + if (window) { + window.location.href = searchUrl + _search; + } + }; + + var handleKeyDown = function handleKeyDown(event) { + if (event.key === 'Enter') { + search(event.target.value); + } + }; + + return /*#__PURE__*/React.createElement("div", { + className: styles.MegaMenu + }, /*#__PURE__*/React.createElement("div", { + className: styles.menuContent + }, /*#__PURE__*/React.createElement("div", { + className: cs(styles.menuMobile, styles.visibleXs, styles.visibleSm) + }, /*#__PURE__*/React.createElement("div", { + className: styles.sbToggleLeft, + onClick: function onClick() { + return onClickToggle(); + } + }, /*#__PURE__*/React.createElement(FontAwesomeIcon, { + icon: faBars + }))), /*#__PURE__*/React.createElement(DesktopMenu, null), /*#__PURE__*/React.createElement("div", { + className: styles.menuSearch + }, /*#__PURE__*/React.createElement("input", { + type: "text", + className: styles.searchBox, + onKeyDown: function onKeyDown(event) { + return handleKeyDown(event); + } + })))); +}; + +export default Menu; \ No newline at end of file diff --git a/lib/ssw.megamenu/menu/menu.module.css b/lib/ssw.megamenu/menu/menu.module.css new file mode 100644 index 000000000..7ff48fb5b --- /dev/null +++ b/lib/ssw.megamenu/menu/menu.module.css @@ -0,0 +1,105 @@ +@font-face { + font-family: 'FontAwesome'; + src: url('https://ssw.com.au//ssw/include/pigeon/fonts/fontawesome-webfont.eot?v=4.4.0'); + src: url('https://ssw.com.au//ssw/include/pigeon/fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') + format('embedded-opentype'), + url('https://ssw.com.au//ssw/include/pigeon/fonts/fontawesome-webfont.woff2?v=4.4.0') + format('woff2'), + url('https://ssw.com.au//ssw/include/pigeon/fonts/fontawesome-webfont.woff?v=4.4.0') + format('woff'), + url('https://ssw.com.au//ssw/include/pigeon/fonts/fontawesome-webfont.ttf?v=4.4.0') + format('truetype'), + url('https://ssw.com.au//ssw/include/pigeon/fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') + format('svg'); + font-weight: normal; + font-style: normal; +} +.MegaMenu { + font-family: Arial, sans-serif; + font-weight: 400; +} +.MegaMenu { + clear: both; + height: 36px; + line-height: 24px; + padding-left: 0; + z-index: 0; + background: none repeat scroll 0 0 #414141; + position: relative; + z-index: 20; +} +.menuContent { + display: inline-block; + float: left; + width: 100%; +} +.menuMobile { + width: 100%; + float: left; + position: relative; +} +.visibleXs, +.visibleSm { + display: none !important; +} +@media (max-width: 767px) { + .visibleXs { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visibleSm { + display: block !important; + } +} +.sbToggleLeft { + font-size: 1.5rem; + line-height: 36px; + display: inline-block; + border-bottom: 0 !important; +} +.sbToggleLeft { + text-decoration: none; + border-bottom: 0; + color: #eee !important; + text-transform: uppercase; + padding: 0 15px; + font-size: 0.9rem; +} +.sbToggleLeft:hover { + text-decoration: none; + background: #eee; + color: #333 !important; + cursor: pointer; +} + +.menuSearch { + display: inline-block; + float: right; + padding-right: 0; + z-index: 10; + position: absolute; + right: 0; +} +.menuSearch input.searchBox[type='text'] { + background: url('https://ssw.com.au/ssw/include/pigeon/img/svg-sprite-sheet.svg') no-repeat scroll -2px -68px + #9e9e9e; + border: medium none; + color: #9e9e9e; + height: 26px; + line-height: 26px; + margin: 5px; + padding: 2px 0 2px 26px; + width: 1px; + -moz-transition: all 0.5s ease-in-out 0s; + -o-transition: all 0.5s ease-in-out 0s; + -webkit-transition: all 0.5s ease-in-out 0s; + transition: all 0.5s ease-in-out 0s; +} +.menuSearch input.searchBox[type='text']:hover { + background-color: #fff; +} +.menuSearch input.searchBox[type='text']:focus { + width: 225px; + background-color: #fff; +} diff --git a/lib/ssw.megamenu/mobile-dropdown-item/mobile-dropdown-item.js b/lib/ssw.megamenu/mobile-dropdown-item/mobile-dropdown-item.js new file mode 100644 index 000000000..7185aa327 --- /dev/null +++ b/lib/ssw.megamenu/mobile-dropdown-item/mobile-dropdown-item.js @@ -0,0 +1,16 @@ +import React from 'react'; +import styles from './mobile-dropdown-item.module.css'; + +var MobileDropdownItem = function MobileDropdownItem(_ref) { + var item = _ref.item, + index = _ref.index; + return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("li", { + key: index, + className: styles.level1 + }, /*#__PURE__*/React.createElement("a", { + href: item.navigateUrl, + className: styles.ignore + }, item.text))); +}; + +export default MobileDropdownItem; \ No newline at end of file diff --git a/lib/ssw.megamenu/mobile-dropdown-item/mobile-dropdown-item.module.css b/lib/ssw.megamenu/mobile-dropdown-item/mobile-dropdown-item.module.css new file mode 100644 index 000000000..8b817a8a8 --- /dev/null +++ b/lib/ssw.megamenu/mobile-dropdown-item/mobile-dropdown-item.module.css @@ -0,0 +1,24 @@ +.ignore:after { + content: none !important; + padding-left: 0; +} +.level1 { + padding-bottom: 0; + padding-right: 2px; + padding-top: 0px; + padding-right: 0px; + padding-bottom: 0px; + padding-left: 0px; + background: none; +} +.level1 a { + background: none repeat scroll 0 0 transparent; + border-bottom: 1px solid #ccc; + font-size: 1rem; + padding-bottom: 3px; + padding-top: 3px; + margin-bottom: 5px; + text-transform: none; + display: block; + line-height: normal; +} diff --git a/lib/ssw.megamenu/mobile-menu/mobile-menu.js b/lib/ssw.megamenu/mobile-menu/mobile-menu.js new file mode 100644 index 000000000..64b3728f3 --- /dev/null +++ b/lib/ssw.megamenu/mobile-menu/mobile-menu.js @@ -0,0 +1,95 @@ +import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper"; +import React from 'react'; +import styles from './mobile-menu.module.css'; +import cs from 'classnames'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faAngleDown } from '@fortawesome/free-solid-svg-icons'; +import MobileDropdownItem from '../mobile-dropdown-item/mobile-dropdown-item'; + +var menuModel = require('../data/menu.json'); + +var MobileMenu = function MobileMenu(_ref) { + var isMenuOpened = _ref.isMenuOpened; + + var closeOpenedElements = function closeOpenedElements() { + var openedItems = document.getElementsByClassName(cs(styles.dropdown, styles.open)); + + var _iterator = _createForOfIteratorHelper(openedItems), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var item = _step.value; + item.className = styles.dropdown; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + }; + + var openElement = function openElement(element) { + element.className = cs(styles.dropdown, styles.open); + }; + + var closeElement = function closeElement(element) { + element.className = styles.dropdown; + }; + + var openItem = function openItem(event) { + if (event.target.parentNode.className === styles.dropdown) { + closeOpenedElements(); + openElement(event.target.parentNode); + } else if (event.target.parentNode.parentNode.className === styles.dropdown) { + closeOpenedElements(); + openElement(event.target.parentNode.parentNode); + } else if (event.target.parentNode.className === cs(styles.dropdown, styles.open)) { + closeElement(event.target.parentNode); + } else if (event.target.parentNode.parentNode.className === cs(styles.dropdown, styles.open)) { + closeElement(event.target.parentNode.parentNode); + } + }; + + return /*#__PURE__*/React.createElement("div", { + className: cs(styles.sbSlidebar, styles.sbLeft), + style: { + width: isMenuOpened ? '84vw' : '0px' + }, + onClick: function onClick(event) { + return openItem(event); + } + }, /*#__PURE__*/React.createElement("div", { + className: cs(styles.menuDrop, styles.navbarCollapse) + }, /*#__PURE__*/React.createElement("ul", { + className: styles.navbarNav + }, menuModel.menuItems.map(function (item, index) { + if (!item.children) { + return /*#__PURE__*/React.createElement("li", { + key: index, + className: styles.dropdown + }, /*#__PURE__*/React.createElement("a", { + href: item.navigateUrl, + className: cs(styles.ignore, 'unstyled') + }, item.text)); + } else if (item.children) { + return /*#__PURE__*/React.createElement("li", { + key: index, + className: styles.dropdown + }, /*#__PURE__*/React.createElement("a", { + className: cs(styles.dropdownToggle, 'unstyled') + }, item.text, " ", /*#__PURE__*/React.createElement(FontAwesomeIcon, { + icon: faAngleDown + })), /*#__PURE__*/React.createElement("ul", { + className: styles.dropdownMenu + }, item.children.map(function (level1Item, indexLevel1) { + return /*#__PURE__*/React.createElement(MobileDropdownItem, { + key: indexLevel1, + item: level1Item + }); + }))); + } + })))); +}; + +export default MobileMenu; \ No newline at end of file diff --git a/lib/ssw.megamenu/mobile-menu/mobile-menu.module.css b/lib/ssw.megamenu/mobile-menu/mobile-menu.module.css new file mode 100644 index 000000000..5b3bd6602 --- /dev/null +++ b/lib/ssw.megamenu/mobile-menu/mobile-menu.module.css @@ -0,0 +1,195 @@ +.sbSlidebar { + font-family: Arial, sans-serif; + font-weight: 400; +} +.sbSlidebar { + margin: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.sbSlidebar { + height: 100%; + width: 0px; + overflow-y: auto; + overflow-x: hidden; + position: fixed; + top: 0; + z-index: 50; + display: block; + background-color: #222; +} +.sbSlidebar { + transition: 400ms ease; + transition-property: width; +} +.sbLeft { + left: 0; +} +.menuDrop li a { + text-decoration: none; + border-bottom: 0; + color: #eee !important; + text-transform: uppercase; + padding: 0 15px; + font-size: 0.9rem; +} +.menuDrop { + padding: 0; + border-top: 0; +} +.menuDrop ul { + float: none; +} +.menuDrop ul li { + float: none; + display: block; + height: auto; + color: #eee !important; + padding: 0; + text-decoration: none; + background: none; +} +.menuDrop ul li:hover { + background: transparent; +} +.menuDrop ul li a, +.menuDrop ul li a:link { + line-height: 35px; + display: block; + font-size: 1rem; + border-bottom: 1px dotted #666; + color: #eee !important; + background: transparent; +} +.menuDrop ul li a:hover, +.menuDrop ul li a:link:hover { + background: #eee; + color: #333 !important; +} +.menuDrop ul li a .fa, +.menuDrop ul li a:link .fa { + float: right; + line-height: 35px; +} +.menuDrop ul li a svg, +.menuDrop ul li a:link svg { + float: right; + line-height: 35px; + height: 2em; +} +.menuDrop ul li.open > a, +.menuDrop ul li.open > a:link { + background: #333; + color: #eee !important; +} +.menuDrop ul li.open > a:hover, +.menuDrop ul li.open > a:link:hover { + background: #eee; + color: #333 !important; +} +.menuDrop ul li.open ul.dropdownMenu { + padding: 0; + background: #333; + position: static; + float: none; + width: auto; + margin-top: 0; + border: 0; + box-shadow: none; +} +.menuDrop ul li.open ul.dropdownMenu li a, +.menuDrop ul li.open ul.dropdownMenu li a:link { + padding-top: 0; + padding-bottom: 0; + border-bottom: 0; + margin: 0px; +} +.navbarCollapse { + overflow-x: visible; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbarCollapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbarCollapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbarCollapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbarCollapse.in { + overflow-y: visible; + } +} +.dropdown { + position: relative; +} +.ignore:after { + content: none !important; + padding-left: 0; +} +.dropdownToggle:focus { + outline: 0; +} +.dropdownMenu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + text-align: left; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} +.open > .dropdownMenu { + display: block; +} +.navbarNav .open .dropdownMenu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; +} +.navbarNav .open .dropdownMenu > li > a { + line-height: 35px; +} +.navbarNav .open .dropdownMenu > li > a:hover, +.navbarNav .open .dropdownMenu > li > a:focus { + background-image: none; +} + +.navbarNav { + float: left; + margin: 0; + padding: 0; +} +.navbarNav > li { + float: left; +} +.navbarNav > li > .dropdownMenu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} diff --git a/package-lock.json b/package-lock.json index ccd8aad82..56e5df5b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -414,6 +414,22 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz", + "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -438,6 +454,14 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz", + "integrity": "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", @@ -988,6 +1012,74 @@ "to-fast-properties": "^2.0.0" } }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@emotion/is-prop-valid": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz", + "integrity": "sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==", + "requires": { + "@emotion/memoize": "0.7.1" + } + }, + "@emotion/memoize": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz", + "integrity": "sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==" + }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.28", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.28.tgz", + "integrity": "sha512-gtis2/5yLdfI6n0ia0jH7NJs5i/Z/8M/ZbQL6jXQhCthEOe5Cr5NcQPhgTvFxNOtURE03/ZqUcEskdn2M+QaBg==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.28", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.28.tgz", + "integrity": "sha512-4LeaNHWvrneoU0i8b5RTOJHKx7E+y7jYejplR7uSVB34+mp3Veg7cbKk7NBCLiI4TyoWS1wh9ZdoyLJR8wSAdg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.28" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.13.0.tgz", + "integrity": "sha512-/6xXiJFCMEQxqxXbL0FPJpwq5Cv6MRrjsbJEmH/t5vOvB4dILDpnY0f7zZSlA8+TG7jwlt12miF/yZpZkykucA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.28" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.13.0.tgz", + "integrity": "sha512-IHUgDJdomv6YtG4p3zl1B5wWf9ffinHIvebqQOmV3U+3SLw4fC+LUCCgwfETkbTtjy5/Qws2VoVf6z/ETQpFpg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.28" + } + }, + "@fortawesome/react-fontawesome": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.9.tgz", + "integrity": "sha512-49V3WNysLZU5fZ3sqSuys4nGRytsrxJktbv3vuaXkEoxv22C6T7TEG0TW6+nqVjMnkfCQd5xOnmJoZHMF78tOw==", + "requires": { + "prop-types": "^15.7.2" + } + }, + "@fullhuman/postcss-purgecss": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.1.2.tgz", + "integrity": "sha512-Jf34YVBK9GtXTblpu0svNUJdA7rTQoRMz+yEJe6mwTnXDIGipWLzaX/VgU/x6IPC6WvU5SY/XlawwqhxoyFPTg==", + "requires": { + "postcss": "7.0.27", + "purgecss": "^2.1.2" + } + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -1022,6 +1114,192 @@ "@hapi/hoek": "^8.3.0" } }, + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" + }, + "@jest/transform": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^25.5.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-regex-util": "^25.2.6", + "jest-util": "^25.5.0", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, "@jest/types": { "version": "25.4.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.4.0.tgz", @@ -1284,6 +1562,23 @@ } } }, + "@popmotion/easing": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@popmotion/easing/-/easing-1.0.2.tgz", + "integrity": "sha512-IkdW0TNmRnWTeWI7aGQIVDbKXPWHVEYdGgd5ZR4SH/Ty/61p63jCjrPxX1XrR7IGkl08bjhJROStD7j+RKgoIw==" + }, + "@popmotion/popcorn": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@popmotion/popcorn/-/popcorn-0.4.4.tgz", + "integrity": "sha512-jYO/8319fKoNLMlY4ZJPiPu8Ea8occYwRZhxpaNn/kZsK4QG2E7XFlXZMJBsTWDw7I1i0uaqyC4zn1nwEezLzg==", + "requires": { + "@popmotion/easing": "^1.0.1", + "framesync": "^4.0.1", + "hey-listen": "^1.0.8", + "style-value-types": "^3.1.7", + "tslib": "^1.10.0" + } + }, "@reach/router": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.3.tgz", @@ -1308,6 +1603,43 @@ "defer-to-connect": "^1.0.1" } }, + "@types/babel__core": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", + "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", + "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz", + "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==", + "requires": { + "@babel/types": "^7.3.0" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -1348,11 +1680,24 @@ "@types/node": "*" } }, + "@types/graceful-fs": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", + "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==", + "requires": { + "@types/node": "*" + } + }, "@types/history": { "version": "4.7.5", "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.5.tgz", "integrity": "sha512-wLD/Aq2VggCJXSjxEwrMafIP51Z+13H78nXIX0ABEuIGhmB5sNGbR113MOKo+yfw+RDo1ZU3DM6yfnnRF/+ouw==" }, + "@types/invariant": { + "version": "2.2.32", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.32.tgz", + "integrity": "sha512-WjY4WVFaehHv+TOgm+dS3UI559NvsPGFz/C0nIo7KOOdC+HeC7Y3/yLzdJYQ3+oFQaTXrOVm7cNtIgMataIDVg==" + }, "@types/istanbul-lib-coverage": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", @@ -1735,6 +2080,21 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==" + }, "address": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", @@ -2133,6 +2493,88 @@ "resolve": "^1.12.0" } }, + "babel-jest": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz", + "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==", + "requires": { + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "babel-loader": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", @@ -2236,6 +2678,28 @@ "@babel/helper-plugin-utils": "7.8.3" } }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz", + "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__traverse": "^7.0.6" + } + }, "babel-plugin-macros": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", @@ -2246,6 +2710,16 @@ "resolve": "^1.12.0" } }, + "babel-plugin-preval": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-preval/-/babel-plugin-preval-5.0.0.tgz", + "integrity": "sha512-8DqJq6/LPUjSZ0Qq6bVIFpsj2flCEE0Cbnbut9TvGU6jP9g3dOWEXtQ/sdvsA9d6souza8eNGh04WRXpuH9ThA==", + "requires": { + "@babel/runtime": "^7.9.2", + "babel-plugin-macros": "^2.8.0", + "require-from-string": "^2.0.2" + } + }, "babel-plugin-remove-graphql-queries": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.9.0.tgz", @@ -2256,6 +2730,23 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, + "babel-preset-current-node-syntax": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz", + "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, "babel-preset-gatsby": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.4.0.tgz", @@ -2276,6 +2767,15 @@ "gatsby-core-utils": "^1.2.0" } }, + "babel-preset-jest": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz", + "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==", + "requires": { + "babel-plugin-jest-hoist": "^25.5.0", + "babel-preset-current-node-syntax": "^0.1.2" + } + }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -2715,6 +3215,14 @@ "pkg-up": "^2.0.0" } }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, "buble-jsx-only": { "version": "0.19.8", "resolved": "https://registry.npmjs.org/buble-jsx-only/-/buble-jsx-only-0.19.8.tgz", @@ -2972,6 +3480,14 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz", "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==" }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } + }, "ccount": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", @@ -3160,6 +3676,11 @@ } } }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -3799,6 +4320,24 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -3896,6 +4435,11 @@ } } }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" + }, "css-what": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", @@ -4194,6 +4738,11 @@ } } }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, "del": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", @@ -4388,6 +4937,16 @@ } } }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, "devcert": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.1.0.tgz", @@ -5467,6 +6026,11 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -5509,6 +6073,11 @@ "safe-buffer": "^5.1.1" } }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" + }, "execa": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", @@ -5891,6 +6460,14 @@ "websocket-driver": ">=0.5.1" } }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -6142,6 +6719,15 @@ "map-cache": "^0.2.2" } }, + "framesync": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-4.0.4.tgz", + "integrity": "sha512-mdP0WvVHe0/qA62KG2LFUAOiWLng5GLpscRlwzBxu2VXOp6B8hNs5C5XlFigsMgrfDrr2YbqTsgdWZTc4RXRMQ==", + "requires": { + "hey-listen": "^1.0.8", + "tslib": "^1.10.0" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -7074,6 +7660,40 @@ "micromatch": "^3.1.10" } }, + "gatsby-plugin-breadcrumb": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/gatsby-plugin-breadcrumb/-/gatsby-plugin-breadcrumb-9.0.2.tgz", + "integrity": "sha512-USAJTXIdjIIC2fXHyqK/9o6jIEczw1447NHwTdhM9SNcjmmmLXJhAXydL+ogPj9ew+xxEzQzol3h5Kg6DxA7ew==", + "requires": { + "@babel/runtime": "^7.3.4", + "babel-jest": "^25.0.0", + "babel-preset-gatsby": "^0.3.0", + "identity-obj-proxy": "^3.0.0", + "prop-types": "^15.7.2" + }, + "dependencies": { + "babel-preset-gatsby": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.3.6.tgz", + "integrity": "sha512-3BZhFENS8KxP5Y0Y+XX8hntdfFkG3MRg5upwAeeM/P+k7wO0mBrUMNl+6ekYV1yEQabfMJq1sJG00w58r0KCMA==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/preset-env": "^7.8.7", + "@babel/preset-react": "^7.8.3", + "@babel/runtime": "^7.8.7", + "babel-plugin-dynamic-import-node": "^2.3.0", + "babel-plugin-macros": "^2.8.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24", + "gatsby-core-utils": "^1.1.4" + } + } + } + }, "gatsby-plugin-page-creator": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.3.0.tgz", @@ -7088,6 +7708,34 @@ "micromatch": "^3.1.10" } }, + "gatsby-plugin-postcss": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-postcss/-/gatsby-plugin-postcss-2.3.0.tgz", + "integrity": "sha512-1aonRsIrQ85hRBiCe/u2WrJEAVw8VkbsFb0nyxeASGiOIzQeQm6LXELB8P45MLr1qMuFqjFRKFjbsSyDbc9XsQ==", + "requires": { + "@babel/runtime": "^7.9.2", + "postcss-loader": "^3.0.0" + } + }, + "gatsby-plugin-react-helmet": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-3.3.0.tgz", + "integrity": "sha512-Z0G2/+fvX+FRkvd5H5VezJKlWNz39P6SZnPliIk6tGbKP4RIry5xdZYmyd3bn+IsyNvm2GmDoTQfOSqxsYNweQ==", + "requires": { + "@babel/runtime": "^7.9.2" + } + }, + "gatsby-plugin-sitemap": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-2.4.0.tgz", + "integrity": "sha512-HGFDk6FuzCtcJlsG0ymJAdK9B3mMTntkjdDjKCkzvDNAlXjsIiDRiLak5O5bB1SWubXT6ualFU3ZKtaDBLTh+w==", + "requires": { + "@babel/runtime": "^7.9.2", + "minimatch": "^3.0.4", + "pify": "^3.0.0", + "sitemap": "^1.13.0" + } + }, "gatsby-react-router-scroll": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.3.0.tgz", @@ -7343,6 +7991,15 @@ } } }, + "gatsby-transformer-json": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-json/-/gatsby-transformer-json-2.4.0.tgz", + "integrity": "sha512-bzpollwUs+b2vR8MpQnNnQ7UqW3a9iaPyUXnyLFALKe5POkc1b0FYlr4rt4V87n4wqiNsVgis2JM042ox7yfBA==", + "requires": { + "@babel/runtime": "^7.9.2", + "bluebird": "^3.7.2" + } + }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", @@ -7671,6 +8328,11 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -7888,6 +8550,11 @@ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" }, + "hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -8105,6 +8772,14 @@ } } }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -9216,41 +9891,318 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" + }, + "istanbul-lib-instrument": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", + "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", + "requires": { + "@babel/core": "^7.7.5", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, + "jest-diff": { + "version": "25.4.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.4.0.tgz", + "integrity": "sha512-kklLbJVXW0y8UKOWOdYhI6TH5MG6QAxrWiBMgQaPIuhj3dNFGirKCd+/xfplBXICQ7fI+3QcqHm9p9lWu1N6ug==", + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==" + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "graceful-fs": "^4.2.4" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + } } }, - "iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "jest-diff": { - "version": "25.4.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.4.0.tgz", - "integrity": "sha512-kklLbJVXW0y8UKOWOdYhI6TH5MG6QAxrWiBMgQaPIuhj3dNFGirKCd+/xfplBXICQ7fI+3QcqHm9p9lWu1N6ug==", + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", "requires": { + "@jest/types": "^25.5.0", "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.4.0" + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" }, "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", @@ -9282,11 +10234,29 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -9297,11 +10267,6 @@ } } }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==" - }, "jest-worker": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", @@ -9741,6 +10706,14 @@ } } }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -10248,6 +11221,11 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==" }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -10285,6 +11263,11 @@ } } }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, "node-object-hash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.0.0.tgz", @@ -10356,6 +11339,11 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" }, + "normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -10988,6 +11976,14 @@ "pinkie": "^2.0.0" } }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -11052,6 +12048,34 @@ "ts-pnp": "^1.1.6" } }, + "popmotion": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-8.7.1.tgz", + "integrity": "sha512-XVQQnlmc8nLKBbR9gGVtsjNe/g1mOzg9TzWR2cE2bztvZe/IaSDDV6OY8HZcbcL+yUg3lJn4hh4MWbV+J8mj9Q==", + "requires": { + "@popmotion/easing": "^1.0.1", + "@popmotion/popcorn": "^0.4.4", + "framesync": "^4.0.0", + "hey-listen": "^1.0.5", + "style-value-types": "^3.1.7", + "stylefire": "^7.0.1", + "tslib": "^1.10.0" + } + }, + "popmotion-pose": { + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/popmotion-pose/-/popmotion-pose-3.4.11.tgz", + "integrity": "sha512-KjaevePyC1+Q3ylIcBO3YMhCouE1a/3bvtBXThrwz44fw1yXCUQagPJGkGirXI/J1xF+w3Lx3bpkkgwArizpEQ==", + "requires": { + "@popmotion/easing": "^1.0.1", + "hey-listen": "^1.0.5", + "popmotion": "^8.7.1", + "pose-core": "^2.1.1", + "style-value-types": "^3.0.6", + "ts-essentials": "^1.0.3", + "tslib": "^1.10.0" + } + }, "portfinder": { "version": "1.0.25", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", @@ -11072,6 +12096,26 @@ } } }, + "pose-core": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pose-core/-/pose-core-2.1.1.tgz", + "integrity": "sha512-fV1sDfu80debHmKerikypqGoORMEUHVwGh/BlWnqUSmmzQGYIg8neDrdwe66hFeRO+adr2qS4ZERSu/ZVjOiSQ==", + "requires": { + "@types/invariant": "^2.2.29", + "@types/node": "^10.0.5", + "hey-listen": "^1.0.5", + "rollup-plugin-typescript2": "^0.25.2", + "tslib": "^1.10.0", + "typescript": "^3.7.2" + }, + "dependencies": { + "@types/node": { + "version": "10.17.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.21.tgz", + "integrity": "sha512-PQKsydPxYxF1DsAFWmunaxd3sOi3iMt6Zmx/tgaagHYmwJ/9cRH91hQkeJZaUGWbvn0K5HlSVEXkn5U/llWPpQ==" + } + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -11187,6 +12231,66 @@ "postcss": "^7.0.26" } }, + "postcss-functions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz", + "integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=", + "requires": { + "glob": "^7.1.2", + "object-assign": "^4.1.1", + "postcss": "^6.0.9", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz", + "integrity": "sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==", + "requires": { + "camelcase-css": "^2.0.1", + "postcss": "^7.0.18" + } + }, "postcss-load-config": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", @@ -11478,6 +12582,15 @@ } } }, + "postcss-nested": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.1.tgz", + "integrity": "sha512-AMayXX8tS0HCp4O4lolp4ygj9wBn32DJWXvG6gCv+ZvJrEa00GUxJcJEEzMh87BIe6FrWdYkpR2cuyqHKrxmXw==", + "requires": { + "postcss": "^7.0.21", + "postcss-selector-parser": "^6.0.2" + } + }, "postcss-normalize-charset": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", @@ -11782,6 +12895,19 @@ } } }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "preval.macro": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/preval.macro/-/preval.macro-5.0.0.tgz", + "integrity": "sha512-+OZRqZYx1pjZ7H5Jis8bPFXkiT7lwA46UzAT4IjuzFVKwkJK+TwIx1TCqrqNCf8U3e5O12mEJEz1BXslkCLWfQ==", + "requires": { + "babel-plugin-preval": "^5.0.0" + } + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -11906,6 +13032,24 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "purgecss": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-2.1.2.tgz", + "integrity": "sha512-5oDBxiT9VonwKmEMohPFRFZrj8fdSVKxHPwq7G5Rx/2pXicZFJu+D4m5bb3NuV0sSK3ooNxq5jFIwwHzifP5FA==", + "requires": { + "commander": "^5.0.0", + "glob": "^7.0.0", + "postcss": "7.0.27", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + } + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -11941,6 +13085,11 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" }, + "ramda": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", + "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -12296,6 +13445,27 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-3.0.0.tgz", "integrity": "sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw==" }, + "react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + }, + "react-ga": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.7.0.tgz", + "integrity": "sha512-AjC7UOZMvygrWTc2hKxTDvlMXEtbmA0IgJjmkhgmQQ3RkXrWR11xEagLGFGaNyaPnmg24oaIiaNPnEoftUhfXA==" + }, + "react-helmet": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.0.0.tgz", + "integrity": "sha512-My6S4sa0uHN/IuVUn0HFmasW5xj9clTkB9qmMngscVycQ5vVG51Qp44BEvLJ4lixupTwDlU9qX1/sCrMN4AEPg==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^2.0.4", + "react-side-effect": "^2.1.0" + } + }, "react-hot-loader": { "version": "4.12.20", "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.20.tgz", @@ -12328,6 +13498,17 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "react-pose": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/react-pose/-/react-pose-4.0.10.tgz", + "integrity": "sha512-OKc5oqKw+nL9FvIokxn8MmaAmkNsWv64hLX9xWWcMWXSgEo745hzYUqDn2viMJ97mf76oPy6Vc+BS4k6Kwj78g==", + "requires": { + "@emotion/is-prop-valid": "^0.7.3", + "hey-listen": "^1.0.5", + "popmotion-pose": "^3.4.10", + "tslib": "^1.10.0" + } + }, "react-reconciler": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.24.0.tgz", @@ -12345,6 +13526,11 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.7.2.tgz", "integrity": "sha512-u5l7fhAJXecWUJzVxzMRU2Zvw8m4QmDNHlTrT5uo3KBlYBhmChd7syAakBoay1yIiVhx/8Fi7a6v6kQZfsw81Q==" }, + "react-side-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", + "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" + }, "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -12353,6 +13539,21 @@ "mute-stream": "~0.0.4" } }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -12451,6 +13652,11 @@ "readable-stream": "^2.0.2" } }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==" + }, "recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", @@ -12459,6 +13665,22 @@ "minimatch": "3.0.4" } }, + "reduce-css-calc": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz", + "integrity": "sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==", + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, "redux": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", @@ -12681,6 +13903,11 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -12816,6 +14043,107 @@ "inherits": "^2.0.1" } }, + "rollup-plugin-typescript2": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz", + "integrity": "sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg==", + "requires": { + "find-cache-dir": "^3.0.0", + "fs-extra": "8.1.0", + "resolve": "1.12.0", + "rollup-pluginutils": "2.8.1", + "tslib": "1.10.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + } + } + }, + "rollup-pluginutils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz", + "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", + "requires": { + "estree-walker": "^0.6.1" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -12834,6 +14162,11 @@ "aproba": "^1.1.1" } }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -12873,6 +14206,38 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -13165,6 +14530,15 @@ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, + "sitemap": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-1.13.0.tgz", + "integrity": "sha1-Vpy+IYAgKSamKiZs094Jyc60P4M=", + "requires": { + "underscore": "^1.7.0", + "url-join": "^1.1.0" + } + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -13905,6 +15279,27 @@ "inline-style-parser": "0.1.1" } }, + "style-value-types": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-3.1.7.tgz", + "integrity": "sha512-jPaG5HcAPs3vetSwOJozrBXxuHo9tjZVnbRyBjxqb00c2saIoeuBJc1/2MtvB8eRZy41u/BBDH0CpfzWixftKg==", + "requires": { + "hey-listen": "^1.0.8", + "tslib": "^1.10.0" + } + }, + "stylefire": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/stylefire/-/stylefire-7.0.3.tgz", + "integrity": "sha512-Q0l7NSeFz/OkX+o6/7Zg3VZxSAZeQzQpYomWmIpOehFM/rJNMSLVX5fgg6Q48ut2ETNKwdhm97mPNU643EBCoQ==", + "requires": { + "@popmotion/popcorn": "^0.4.4", + "framesync": "^4.0.0", + "hey-listen": "^1.0.8", + "style-value-types": "^3.1.7", + "tslib": "^1.10.0" + } + }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -13986,6 +15381,41 @@ } } }, + "svg-react-loader": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/svg-react-loader/-/svg-react-loader-0.4.6.tgz", + "integrity": "sha512-HVEypjWQsQuJdBIPzXGxpmQsQts7QwfQuYgK1rah6BVCMoLNSCh/ESKVNd7/tHq8DkWYHHTyaUMDA1FjqZYrgA==", + "requires": { + "css": "2.2.4", + "loader-utils": "1.1.0", + "ramda": "0.21.0", + "rx": "4.1.0", + "traverse": "0.6.6", + "xml2js": "0.4.17" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + } + } + }, "svg-tag-names": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/svg-tag-names/-/svg-tag-names-2.0.1.tgz", @@ -14079,6 +15509,78 @@ } } }, + "tailwindcss": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.4.0.tgz", + "integrity": "sha512-Np/VKalw2CI8EUSKNwGLFoqWIiBYVv5LpzBjQKI8XajA2SaVDj/C+YKHctmSZKR97LiiB1S81itZwtGT+BQAiQ==", + "requires": { + "@fullhuman/postcss-purgecss": "^2.1.2", + "autoprefixer": "^9.4.5", + "browserslist": "^4.12.0", + "bytes": "^3.0.0", + "chalk": "^4.0.0", + "color": "^3.1.2", + "detective": "^5.2.0", + "fs-extra": "^8.0.0", + "lodash": "^4.17.15", + "node-emoji": "^1.8.1", + "normalize.css": "^8.0.1", + "postcss": "^7.0.11", + "postcss-functions": "^3.0.0", + "postcss-js": "^2.0.0", + "postcss-nested": "^4.1.1", + "postcss-selector-parser": "^6.0.0", + "pretty-hrtime": "^1.0.3", + "reduce-css-calc": "^2.1.6", + "resolve": "^1.14.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -14168,6 +15670,16 @@ } } }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -14218,6 +15730,11 @@ "os-tmpdir": "~1.0.2" } }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, "to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", @@ -14281,6 +15798,11 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" + }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", @@ -14306,6 +15828,11 @@ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" }, + "ts-essentials": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", + "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==" + }, "ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", @@ -14369,11 +15896,21 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==" + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + }, "unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", @@ -14845,6 +16382,11 @@ } } }, + "url-join": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", + "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=" + }, "url-loader": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", @@ -15011,6 +16553,14 @@ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, "warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -15612,6 +17162,23 @@ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" }, + "xml2js": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "^4.1.0" + } + }, + "xmlbuilder": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "requires": { + "lodash": "^4.0.0" + } + }, "xmlhttprequest-ssl": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", diff --git a/package.json b/package.json index e48bef844..291e2e830 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,33 @@ "clean": "gatsby clean", "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1" }, - "dependencies": { + "dependencies": { + "autoprefixer": "^9.7.6", + "classnames": "^2.2.6", "gatsby": "^2.21.0", + "gatsby-plugin-breadcrumb": "^9.0.2", + "gatsby-plugin-postcss": "^2.3.0", + "gatsby-plugin-react-helmet": "^3.3.0", + "gatsby-plugin-sitemap": "^2.4.0", + "gatsby-transformer-json": "^2.4.0", + "postcss-import": "^12.0.1", + "postcss-nested": "^4.2.1", + "preval.macro": "^5.0.0", + "prop-types": "^15.7.2", "react": "^16.12.0", - "react-dom": "^16.12.0" + "react-dom": "^16.12.0", + "react-ga": "^2.7.0", + "react-helmet": "^6.0.0", + "react-pose": "^4.0.10", + "svg-react-loader": "^0.4.6" }, "devDependencies": { - "prettier": "2.0.5" + "@fortawesome/fontawesome-svg-core": "^1.2.28", + "@fortawesome/free-brands-svg-icons": "^5.13.0", + "@fortawesome/free-solid-svg-icons": "^5.13.0", + "@fortawesome/react-fontawesome": "^0.1.9", + "prettier": "^2.0.5", + "tailwindcss": "^1.4.0" }, "repository": { "type": "git", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 000000000..8f4e9c0ef --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,8 @@ +module.exports = () => ({ + plugins: [ + require('postcss-import'), + require('tailwindcss'), + require('autoprefixer'), + require('postcss-nested'), + ], +}); diff --git a/site-config.js b/site-config.js new file mode 100644 index 000000000..55e853052 --- /dev/null +++ b/site-config.js @@ -0,0 +1,18 @@ +/*eslint quotes: ["warn", "backtick"]*/ +const path = require(`path`); + +module.exports = { + siteTitle: `SSW.Rules | Australia's Leading .NET and Azure Consultants`, + siteTitleShort: `SSW.Rules | Australia's Leading .NET and Azure Consultants`, + siteDescription: ``, + siteUrl: `https://ssw.com.au/rules`, + themeColor: `#cc4141`, + backgroundColor: `#fff`, + pathPrefix: null, + logo: path.resolve(__dirname, `src/images/icon.png`), + social: { + twitter: `SSW_TV`, + fbAppId: `120920301257947`, + }, + parentSiteUrl: `https://ssw.com.au`, +}; diff --git a/src/components/breadcrumb/breadcrumb.js b/src/components/breadcrumb/breadcrumb.js new file mode 100644 index 000000000..d327c3df4 --- /dev/null +++ b/src/components/breadcrumb/breadcrumb.js @@ -0,0 +1,27 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Breadcrumb } from 'gatsby-plugin-breadcrumb'; +import { parentSiteUrl } from '../../../site-config'; + +const Breadcrumbs = ({ crumbs, crumbLabel }) => { + return ( +
+
+ SSW Consulting + > + +
+
+ ); +}; + +Breadcrumbs.propTypes = { + crumbs: PropTypes.array, + crumbLabel: PropTypes.string, +}; + +export default Breadcrumbs; diff --git a/src/components/footer/footer.js b/src/components/footer/footer.js new file mode 100644 index 000000000..7a41a2d5d --- /dev/null +++ b/src/components/footer/footer.js @@ -0,0 +1,126 @@ +import React from 'react'; +import preval from 'preval.macro'; +import moment from 'moment'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faHeart } from '@fortawesome/free-solid-svg-icons'; +import { faGithub } from '@fortawesome/free-brands-svg-icons'; + +const buildTimestamp = preval`module.exports = new Date().getTime();`; + +const Footer = () => { + return ( + <> +
+
+ We open + source. This page is on{' '} + + GitHub + +
+
+ + + ); +}; + +const getLastDeployTime = () => { + const lastDeployDuration = moment.duration(Date.now() - buildTimestamp); + let delta = Math.abs(lastDeployDuration) / 1000; + + const days = Math.floor(delta / 86400); + delta -= days * 86400; + + var hours = Math.floor(delta / 3600) % 24; + delta -= hours * 3600; + + var minutes = Math.floor(delta / 60) % 60; + delta -= minutes * 60; + + return days !== 0 + ? `${days} day(s)` + : ' ' + hours !== 0 + ? `${hours} hour(s)` + : ' ' + minutes > 1 + ? `${minutes} minutes` + : '1 minute'; +}; + +Footer.propTypes = {}; + +export default Footer; diff --git a/src/components/google-analytics/google-analytics.js b/src/components/google-analytics/google-analytics.js new file mode 100644 index 000000000..0507bd8cb --- /dev/null +++ b/src/components/google-analytics/google-analytics.js @@ -0,0 +1,18 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import ReactGA from 'react-ga'; + +ReactGA.initialize(process.env.GOOGLE_ANALYTICS); + +const GoogleAnalytics = ({ pageTitle }) => ( + <> + {typeof window !== 'undefined' && + ReactGA.pageview(window.location.pathname, null, pageTitle)} + +); + +GoogleAnalytics.propTypes = { + pageTitle: PropTypes.string, +}; + +export default GoogleAnalytics; diff --git a/src/components/head/head.js b/src/components/head/head.js new file mode 100644 index 000000000..cd3dfeb58 --- /dev/null +++ b/src/components/head/head.js @@ -0,0 +1,212 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Helmet } from 'react-helmet'; +import { StaticQuery, graphql } from 'gatsby'; +import { Location } from '@reach/router'; +import schemaGenerator from '../../helpers/schemaGenerator'; + +const Head = ({ + siteTitle, + siteDescription, + siteUrl, + parentSiteUrl, + pageTitle, + pageTitleFull = pageTitle ? `${pageTitle} | ${siteTitle}` : siteTitle, + themeColor, + social, + imageUrl, + location, + canonical = parentSiteUrl + (location.pathname || ''), +}) => ( + + + + + + + + + + {pageTitleFull} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + +Head.propTypes = { + siteTitle: PropTypes.string, + siteTitleShort: PropTypes.string, + siteDescription: PropTypes.string, + siteUrl: PropTypes.string, + parentSiteUrl: PropTypes.string, + themeColor: PropTypes.string, + social: PropTypes.objectOf(PropTypes.string), + imageUrl: PropTypes.string, + canonical: PropTypes.string, + pageTitle: PropTypes.string, + pageTitleFull: PropTypes.string, + location: PropTypes.object.isRequired, +}; + +const HeadWithQuery = props => ( + ( + + {({ location }) => ( + + )} + + )} + /> +); + +export default HeadWithQuery; diff --git a/src/components/header/header.js b/src/components/header/header.js new file mode 100644 index 000000000..f98f92fe0 --- /dev/null +++ b/src/components/header/header.js @@ -0,0 +1,71 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import posed from 'react-pose'; +import SSWLogo from '-!svg-react-loader!../../images/SSWLogo.svg'; +import GitHubIcon from '-!svg-react-loader!../../images/github.svg'; +import InfoIcon from '-!svg-react-loader!../../images/info.svg'; +import { parentSiteUrl } from '../../../site-config'; + +// Example of a component-specific page transition +const AnimatedContainer = posed.div({ + enter: { + y: 0, + transition: { + ease: 'easeInOut', + }, + }, + exit: { + y: '-100%', + transition: { + ease: 'easeInOut', + }, + }, +}); + +const Header = ({ displayActions, profileId }) => { + return ( + +
+
+
+ + + +

Rules

+
+ {displayActions ? ( +
+ +
Edit
+ +
+ +
Info
+ +
+
+ ) : ( +
+ )} +
+
+
+ ); +}; + +Header.propTypes = { + displayActions: PropTypes.bool.isRequired, + profileId: PropTypes.string, +}; + +export default Header; diff --git a/src/components/layout/layout.js b/src/components/layout/layout.js new file mode 100644 index 000000000..8793ca364 --- /dev/null +++ b/src/components/layout/layout.js @@ -0,0 +1,96 @@ +import React, { useRef, useState } from 'react'; +import PropTypes from 'prop-types'; +import { StaticQuery, graphql } from 'gatsby'; +import Head from '../head/head'; +import Header from '../header/header'; +import Footer from '../footer/footer'; +import '../../style.css'; +import Breadcrumbs from '../breadcrumb/breadcrumb'; +import GoogleAnalytics from '../google-analytics/google-analytics'; +import Menu from '../../../lib/ssw.megamenu/menu/menu'; +import MobileMenu from '../../../lib/ssw.megamenu/mobile-menu/mobile-menu'; + +const Layout = ({ + children, + displayActions, + profileId, + pageTitle, + crumbs, + crumbLabel, +}) => { + const node = useRef(); + const [isMenuOpened, setIsMenuOpened] = useState(false); + + const actionOnToggleClick = () => { + setIsMenuOpened(!isMenuOpened); + }; + + const handleClick = e => { + if (node.current.contains(e.target)) { + setIsMenuOpened(false); + } + }; + + return ( +
+ {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */} +
handleClick(event) : null} + style={{ + transform: isMenuOpened ? 'translateX(84%)' : 'translateX(0px)', + }} + > +
+ +
+ + actionOnToggleClick()}> + {crumbs ? ( + + ) : ( +
+ )} +
{children}
+
+
+
+ +
+ ); +}; + +Layout.propTypes = { + children: PropTypes.node.isRequired, + data: PropTypes.object.isRequired, + displayActions: PropTypes.bool.isRequired, + profileId: PropTypes.string, + pageTitle: PropTypes.string, + crumbs: PropTypes.array, + crumbLabel: PropTypes.string, +}; + +const LayoutWithQuery = props => ( + } + /> +); + +LayoutWithQuery.propTypes = { + children: PropTypes.node.isRequired, +}; + +export default LayoutWithQuery; diff --git a/src/helpers/schemaGenerator.js b/src/helpers/schemaGenerator.js new file mode 100644 index 000000000..84371083d --- /dev/null +++ b/src/helpers/schemaGenerator.js @@ -0,0 +1,50 @@ +// This does not support nested pages (level 2 and up) +// If you're working with deeply nested pages, remove this or rework it. + +export default ({ + location, + canonical, + siteUrl, + pageTitle, + siteTitle, + pageTitleFull, +}) => { + const isSubPage = pageTitle && location.pathname !== '/'; + + let schema = [ + { + '@context': 'http://schema.org', + '@type': 'WebSite', + url: canonical, + name: pageTitle || siteTitle, + alternateName: pageTitleFull, + }, + ]; + + if (isSubPage) { + schema.push({ + '@context': 'http://schema.org', + '@type': 'BreadcrumbList', + itemListElement: [ + { + '@type': 'ListItem', + position: 1, + item: { + '@id': siteUrl, + name: siteTitle, + }, + }, + { + '@type': 'ListItem', + position: 2, + item: { + '@id': canonical, + name: pageTitle, + }, + }, + ], + }); + } + + return schema; +}; diff --git a/src/images/SSWLogo.svg b/src/images/SSWLogo.svg new file mode 100644 index 000000000..ff4be85f9 --- /dev/null +++ b/src/images/SSWLogo.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + diff --git a/src/images/SSWPause2x.svg b/src/images/SSWPause2x.svg new file mode 100644 index 000000000..6ff3d829e --- /dev/null +++ b/src/images/SSWPause2x.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/images/SSWPlay2x.svg b/src/images/SSWPlay2x.svg new file mode 100644 index 000000000..59b8cde87 --- /dev/null +++ b/src/images/SSWPlay2x.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/images/bullet_square.gif b/src/images/bullet_square.gif new file mode 100644 index 000000000..775a54f44 Binary files /dev/null and b/src/images/bullet_square.gif differ diff --git a/src/images/facebook.png b/src/images/facebook.png new file mode 100644 index 000000000..08febd462 Binary files /dev/null and b/src/images/facebook.png differ diff --git a/src/images/favor_email.gif b/src/images/favor_email.gif new file mode 100644 index 000000000..7f44094dd Binary files /dev/null and b/src/images/favor_email.gif differ diff --git a/src/images/filterSymbol.png b/src/images/filterSymbol.png new file mode 100644 index 000000000..501a823c1 Binary files /dev/null and b/src/images/filterSymbol.png differ diff --git a/src/images/github.png b/src/images/github.png new file mode 100644 index 000000000..ffe78ba36 Binary files /dev/null and b/src/images/github.png differ diff --git a/src/images/github.svg b/src/images/github.svg new file mode 100644 index 000000000..2fc564e31 --- /dev/null +++ b/src/images/github.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/images/icon.png b/src/images/icon.png new file mode 100644 index 000000000..bcb4bfc04 Binary files /dev/null and b/src/images/icon.png differ diff --git a/src/images/info.svg b/src/images/info.svg new file mode 100644 index 000000000..0110eea3a --- /dev/null +++ b/src/images/info.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/infoPhoto_bg.jpg b/src/images/infoPhoto_bg.jpg new file mode 100644 index 000000000..e8890de92 Binary files /dev/null and b/src/images/infoPhoto_bg.jpg differ diff --git a/src/images/linkedin.png b/src/images/linkedin.png new file mode 100644 index 000000000..8852ff04d Binary files /dev/null and b/src/images/linkedin.png differ diff --git a/src/images/selectedSkill.png b/src/images/selectedSkill.png new file mode 100644 index 000000000..908a0b81d Binary files /dev/null and b/src/images/selectedSkill.png differ diff --git a/src/images/selfquoteMark.gif b/src/images/selfquoteMark.gif new file mode 100644 index 000000000..07c478ad3 Binary files /dev/null and b/src/images/selfquoteMark.gif differ diff --git a/src/images/skype.png b/src/images/skype.png new file mode 100644 index 000000000..dff606027 Binary files /dev/null and b/src/images/skype.png differ diff --git a/src/images/twitter.png b/src/images/twitter.png new file mode 100644 index 000000000..d7cad3a08 Binary files /dev/null and b/src/images/twitter.png differ diff --git a/src/images/website.png b/src/images/website.png new file mode 100644 index 000000000..c69eeec97 Binary files /dev/null and b/src/images/website.png differ diff --git a/src/pages/index.js b/src/pages/index.js index 1265dc4a7..2305da667 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -1,3 +1,26 @@ import React from "react" +import Layout from '../components/layout/layout'; +import PropTypes from 'prop-types'; -export default () =>

SSW.Rules

Ready to start!

+const Index = ({ + data, + pageContext: { + breadcrumb: { crumbs }, + }, + }) => + +
+

SSW.Rules

+

Ready to start!

+
+
+ + +Index.propTypes = { + data: PropTypes.object.isRequired, + search: PropTypes.object.isRequired, + pageContext: PropTypes.object.isRequired, + location: PropTypes.object.isRequired, + }; + + export default Index; \ No newline at end of file diff --git a/src/style.css b/src/style.css new file mode 100644 index 000000000..789fbf0c2 --- /dev/null +++ b/src/style.css @@ -0,0 +1,374 @@ +/* purgecss start ignore */ + +/** + * This injects Tailwind's base styles and any base styles registered by + * plugins. + */ + +@tailwind base; +/* purgecss end ignore */ + +html { + font-family: "Helvetica", "SegoeUILight", "sans-serif" +} + +h1 { + @apply text-4xl; + @apply mb-2; + @apply text-ssw-red; +} + +h1.title { + font-size: 2em; + color: #414141; + margin-bottom: 0.1em; +} + +h2 { + @apply text-3xl; + @apply mb-2; + @apply text-ssw-red; +} + +h3 { + @apply text-2xl; + @apply mb-2; +} + +h4 { + @apply text-lg; + @apply mb-2; +} + +a, +a:link { + &:not(.unstyled) { + border-bottom: 2px dotted #9e9e9e; + + &.footer-link { + @apply text-gray-300; + font-weight: bolder; + transition: all 0.3s ease-in-out; + } + + &:hover { + @apply text-ssw-red; + border-bottom: 2px dotted #cc4141; + } + } +} + +a.gatsby-resp-image-link, +a:link.gatsby-resp-image-link { + border-bottom: none; + + &:hover { + border-bottom: none; + } +} + +a.footer-facebook { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAA4CAYAAADJnhlcAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AILBxgJEkgRLQAAAOpJREFUSMftVMENwyAMPEdRv+HZX5dgAQbqQl2GBbJHvuFbqXI/IKGUGENUqVJ6P7AOn7mTCRHMzBBARAQAA3ohdchrYwvxeIcSKQ2bMEhFAK/tA2PtRZGgGbjfhzOBWvJDRFT71ns00nyEawcXZl7SoSYpEJHJa5KkQEQmy5ZK0srMU37RlaXvE5qNO2+8AWB2Tvwp6/3B7S11yGtjC/F4hxIpDVsM37ao2t4F0j5BM/B/e6vjrc2P9b6+vaORRuvDY3ZuAbBqCMF6/wRw1TgdrPcmy5bZDV/ENDu3Arjlcn50e0uEaau/C299qrIdHcgr4wAAAABJRU5ErkJggg==') no-repeat right -14px; + padding-right: 16px; +} + +a.footer-html { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAA4CAYAAADJnhlcAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AILBxgJEkgRLQAAAOpJREFUSMftVMENwyAMPEdRv+HZX5dgAQbqQl2GBbJHvuFbqXI/IKGUGENUqVJ6P7AOn7mTCRHMzBBARAQAA3ohdchrYwvxeIcSKQ2bMEhFAK/tA2PtRZGgGbjfhzOBWvJDRFT71ns00nyEawcXZl7SoSYpEJHJa5KkQEQmy5ZK0srMU37RlaXvE5qNO2+8AWB2Tvwp6/3B7S11yGtjC/F4hxIpDVsM37ao2t4F0j5BM/B/e6vjrc2P9b6+vaORRuvDY3ZuAbBqCMF6/wRw1TgdrPcmy5bZDV/ENDu3Arjlcn50e0uEaau/C299qrIdHcgr4wAAAABJRU5ErkJggg==') no-repeat right 1px; + padding-right: 14px; +} + +a.footer-facebook:hover { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAA4CAYAAADJnhlcAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AILBxgJEkgRLQAAAOpJREFUSMftVMENwyAMPEdRv+HZX5dgAQbqQl2GBbJHvuFbqXI/IKGUGENUqVJ6P7AOn7mTCRHMzBBARAQAA3ohdchrYwvxeIcSKQ2bMEhFAK/tA2PtRZGgGbjfhzOBWvJDRFT71ns00nyEawcXZl7SoSYpEJHJa5KkQEQmy5ZK0srMU37RlaXvE5qNO2+8AWB2Tvwp6/3B7S11yGtjC/F4hxIpDVsM37ao2t4F0j5BM/B/e6vjrc2P9b6+vaORRuvDY3ZuAbBqCMF6/wRw1TgdrPcmy5bZDV/ENDu3Arjlcn50e0uEaau/C299qrIdHcgr4wAAAABJRU5ErkJggg==') no-repeat right -44px; +} + +a.footer-html:hover { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAA4CAYAAADJnhlcAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AILBxgJEkgRLQAAAOpJREFUSMftVMENwyAMPEdRv+HZX5dgAQbqQl2GBbJHvuFbqXI/IKGUGENUqVJ6P7AOn7mTCRHMzBBARAQAA3ohdchrYwvxeIcSKQ2bMEhFAK/tA2PtRZGgGbjfhzOBWvJDRFT71ns00nyEawcXZl7SoSYpEJHJa5KkQEQmy5ZK0srMU37RlaXvE5qNO2+8AWB2Tvwp6/3B7S11yGtjC/F4hxIpDVsM37ao2t4F0j5BM/B/e6vjrc2P9b6+vaORRuvDY3ZuAbBqCMF6/wRw1TgdrPcmy5bZDV/ENDu3Arjlcn50e0uEaau/C299qrIdHcgr4wAAAABJRU5ErkJggg==') no-repeat right -29px; +} + +footer { + color: #9e9e9e; + font-size: 0.75rem; +} + +ul li { + background: url(./images/bullet_square.gif) 0 7px no-repeat; + padding: 0 0 10px 15px; + line-height: 1.5em; +} + +.clear-filter { + @apply text-ssw-red; +} + +.hero-para h1 { + @apply text-2xl; + @apply mb-2; + @apply text-black; +} + +.gatsby-resp-image-wrapper { + margin-left: 0% !important; +} + +.breadcrumb-container{ + font-size: 0.8rem; + color: #5b5656; + margin-top: 1rem; +} + +.breadcrumb { + display: inline-flex; + color: "#5b5656"; + text-align: center; + flex-wrap: wrap; + + span { + min-width: 1.5rem; + } +} + +.breadcrumb a{ + &:not(.breadcrumb__link__active){ + color: #999; + border-bottom: 1px dotted #9e9e9e; + } + &.breadcrumb__link__active{ + color:black ; + text-decoration: none; + border-bottom: 0px ; + cursor: default; + pointer-events: none; + } +} + +.breadcrumb a:hover{ + &:not(.breadcrumb__link__active){ + @apply text-ssw-red; + border-bottom: 1px dotted #cc4141; + } +} + +.breadcrumb__link__active:hover{ + color:black ; +} + +.hovered { + @apply bg-ssw-red; + color: #fff; + fill: #fff; +} + +button:focus { + outline: 0; +} + +.text-ssw-red { + color: #cc4141; +} + +.bg-ssw-red { + background-color: #cc4141; +} + +.bg-ssw-grey { + background-color: rgb(238, 238, 238); +} + +.bg-ssw-dark-grey { + background-color: #CCCCCC; +} + +.bg-grey-translucent { + background-color: rgba(102, 102, 102, 0.1); +} + +.border-ssw-grey { + border-color:rgb(238, 238, 238); +} + +.flex-profile-box { + flex-grow: 0; + flex-basis: 172px; +} + +/** Custom blocks images handling **/ +.img-badge { + margin: 5px; + margin-bottom: 20px; + display: inline-block; + vertical-align: middle; + min-width: 135px; + width: auto; + max-height: 135px; + + a { + border-bottom: none !important; + } + + img { + width: auto; + max-height: 135px; + } + + figcaption { + display: none; + } + +} + +.img-badge .gatsby-resp-image-wrapper{ + margin-left: auto !important; + margin-right: auto; +} + +.img-banner figcaption { + display: none; +} + + +.img-medium { + height: auto; + max-width: 400px; +} + +.img-small { + height: auto; + max-width: 200px; +} + +.img-large .gatsby-resp-image-wrapper, +.img-medium .gatsby-resp-image-wrapper, +.img-small .gatsby-resp-image-wrapper { + border: 5px solid #eee; + border-radius: .25rem; + +} + +figure figcaption { + font-weight: 700; + margin-top: 5px; + line-height: initial; +} + +figure figcaption:before { + content: 'Figure: '; +} + +div.youtube-playlist li { + background: none; +} + +.youtube-playlist-arrows{ + display: flex; + justify-content: space-between +} + +blockquote { + font-style: italic; + padding: .5rem 1rem; + background-color: #eee; + border-left: 4px solid #cc4141; + border-radius: 0 .25rem .25rem 0; + margin: 1rem 0; +} + +blockquote p { + margin-top: .5rem; + margin-bottom: .5rem; +} + +pre { + white-space: pre-wrap; /* css-3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ + overflow-wrap: break-word; + background-color: #1b262c; + color: #fff; + border-radius: .5rem; + padding: .5rem 1rem; + word-break: break-all; +} + +.footer-link { + display: inline-block; + line-height: initial; +} + +/*GitHub Calendar Styling */ +.styles_title__HcRKb{ + display:none; +} + +.styles_calendar__1PAia{ + width: 100%; + + text { + font-size: .5rem !important; + } +} + +@media screen and (max-width: 1024px) { + img { + height: auto; + max-width: 100%; + } +} + + +.cursor-pointer { + cursor: pointer; +} + +.category:hover { + background-color: rgb(238, 238, 238); +} + +.text-ident{ + padding-left: 0.5em; + text-indent:-0.5em; +} + +@media screen and (min-width: 600px) { + .img-large, + .img-banner img, + .img-banner { + height: auto; + min-width: 600px; + } +} + +@media screen and (max-width: 600px) { + header>div.flex { + flex-direction: column; + } +} + +.main-container { + max-width: 1280px; + margin-left: auto; + margin-right: auto; +} + +/** +* This injects Tailwind's component classes and any component classes +* registered by plugins. +*/ + +@tailwind components; +/** +* This injects Tailwind's utility classes and any utility classes registered +* by plugins. +*/ + +@tailwind utilities; +/** +* Use this directive to control where Tailwind injects the responsive +* variations of each utility. +* +* If omitted, Tailwind will append these classes to the very end of +* your stylesheet by default. +*/ + +@tailwind screens; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 000000000..3da6fa0dc --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,7 @@ +module.exports = { + theme: { + extend: {}, + }, + variants: {}, + plugins: [], +};