From 3c4d75aa9ec95a577ddc443a60fc6744fa71736b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Pittet?= Date: Thu, 16 Mar 2023 14:40:23 -0700 Subject: [PATCH] Initial commit with ubccs theme copied from cs-ext and ai folder from cs-ext --- .ddev/config.yaml | 261 + .editorconfig | 18 + .env.example | 7 + .gitignore | 44 + .nvmrc | 1 + composer.json | 25 + composer.lock | 260 + load.environment.php | 17 + package.json | 34 + public/css/details.css | 43 + public/ia/img/banner.jpg | Bin 0 -> 371199 bytes .../ia/img/grads/awards-financial-support.jpg | Bin 0 -> 18696 bytes public/ia/img/grads/dempster-bldg.jpg | Bin 0 -> 15563 bytes ...by_martin_dee_public_affairs_1_cropped.jpg | Bin 0 -> 13410 bytes .../ia/img/grads/prospective-grads-w290.jpg | Bin 0 -> 18438 bytes public/ia/img/grads/resources-links.jpg | Bin 0 -> 28261 bytes public/ia/img/placeholder290x190-2.png | Bin 0 -> 101676 bytes public/ia/img/placeholder290x190.png | Bin 0 -> 136244 bytes public/ia/patterns/index.php | 39 + public/ia/prototype/.gitignore | 2 + public/ia/prototype/.htaccess | 8 + public/ia/prototype/css/prototype.css | 43 + public/ia/prototype/index.php | 36 + public/ia/prototype/package-lock.json | 3969 ++++++++++++ public/ia/prototype/package.json | 25 + public/ia/prototype/sass/prototype.scss | 41 + public/ia/sitemap/css/style.css | 185 + public/ia/sitemap/index.html | 694 ++ public/ia/styleguide/index.php | 24 + public/ia/templates/base.twig | 102 + public/ia/templates/includes/footer.twig | 127 + public/ia/templates/includes/header.twig | 105 + public/ia/templates/patterns.twig | 124 + public/ia/templates/patterns/blockquote.html | 10 + public/ia/templates/patterns/breadcrumb.html | 6 + public/ia/templates/patterns/button.html | 54 + public/ia/templates/patterns/cards.html | 59 + public/ia/templates/patterns/details.html | 8 + public/ia/templates/patterns/feedback.html | 27 + public/ia/templates/patterns/form.html | 92 + public/ia/templates/patterns/heading.html | 4 + .../ia/templates/patterns/inline-block.html | 17 + public/ia/templates/patterns/intro.html | 5 + .../ia/templates/patterns/landing-banner.html | 10 + .../ia/templates/patterns/landing-intro.html | 7 + .../ia/templates/patterns/list-ordered.html | 11 + .../ia/templates/patterns/list-unordered.html | 11 + public/ia/templates/patterns/pagination.html | 16 + public/ia/templates/patterns/paragraph.html | 7 + .../ia/templates/patterns/profile.html.twig | 31 + public/ia/templates/patterns/site-alert.html | 17 + public/ia/templates/prototypes/cards.twig | 85 + .../prototypes/key-landing-fluid-hero.twig | 24 + .../ia/templates/prototypes/key-landing.twig | 30 + public/ia/templates/styleguide.twig | 372 ++ public/index.php | 388 ++ public/themes/custom/ubccs/.gitignore | 2 + public/themes/custom/ubccs/css/bootstrap.css | 1076 ++++ public/themes/custom/ubccs/css/ckeditor.css | 993 +++ public/themes/custom/ubccs/css/ckeditor5.css | 834 +++ public/themes/custom/ubccs/css/layout.css | 56 + .../custom/ubccs/css/local.clf.fixes.css | 114 + public/themes/custom/ubccs/css/main.css | 3532 +++++++++++ public/themes/custom/ubccs/css/normalize.css | 309 + public/themes/custom/ubccs/css/print.css | 36 + public/themes/custom/ubccs/css/select2.css | 279 + public/themes/custom/ubccs/css/timeline.css | 28 + public/themes/custom/ubccs/img/arrow-both.svg | 1 + .../ubccs/img/computer-science-logo.png | Bin 0 -> 2598 bytes public/themes/custom/ubccs/img/correct8.svg | 1 + public/themes/custom/ubccs/img/next.svg | 1 + public/themes/custom/ubccs/img/prev.svg | 1 + public/themes/custom/ubccs/img/slick/next.svg | 3 + public/themes/custom/ubccs/img/slick/prev.svg | 3 + public/themes/custom/ubccs/img/ubc_logo.png | Bin 0 -> 4342 bytes public/themes/custom/ubccs/js/main.js | 68 + .../js/vendor/fancybox/jquery.fancybox.css | 895 +++ .../js/vendor/fancybox/jquery.fancybox.js | 5632 +++++++++++++++++ .../vendor/fancybox/jquery.fancybox.min.css | 1 + .../js/vendor/fancybox/jquery.fancybox.min.js | 13 + public/themes/custom/ubccs/package-lock.json | 1160 ++++ public/themes/custom/ubccs/package.json | 32 + .../ubccs/sass/_bootstrap-no-output.scss | 6 + public/themes/custom/ubccs/sass/_utility.scss | 103 + .../themes/custom/ubccs/sass/_variables.scss | 69 + .../custom/ubccs/sass/base/_blockquote.scss | 9 + .../themes/custom/ubccs/sass/base/_code.scss | 42 + .../custom/ubccs/sass/base/_figure.scss | 42 + .../themes/custom/ubccs/sass/base/_fixes.scss | 11 + .../themes/custom/ubccs/sass/base/_form.scss | 242 + .../themes/custom/ubccs/sass/base/_image.scss | 4 + .../themes/custom/ubccs/sass/base/_list.scss | 17 + .../themes/custom/ubccs/sass/base/_reset.scss | 21 + .../themes/custom/ubccs/sass/base/_table.scss | 49 + .../custom/ubccs/sass/base/_typography.scss | 101 + .../themes/custom/ubccs/sass/bootstrap.scss | 24 + .../themes/custom/ubccs/sass/ckeditor5.scss | 36 + .../custom/ubccs/sass/components/_admin.scss | 4 + .../custom/ubccs/sass/components/_alert.scss | 13 + .../custom/ubccs/sass/components/_align.scss | 62 + .../custom/ubccs/sass/components/_awards.scss | 14 + .../ubccs/sass/components/_back-to-top.scss | 34 + .../ubccs/sass/components/_big-quote.scss | 28 + .../ubccs/sass/components/_breadcrumbs.scss | 38 + .../custom/ubccs/sass/components/_button.scss | 267 + .../ubccs/sass/components/_calendar.scss | 15 + .../ubccs/sass/components/_caption.scss | 41 + .../custom/ubccs/sass/components/_card.scss | 120 + .../custom/ubccs/sass/components/_cart.scss | 13 + .../ubccs/sass/components/_chevron.scss | 26 + .../ubccs/sass/components/_courses.scss | 61 + .../ubccs/sass/components/_details.scss | 72 + .../sass/components/_expand-collapse.scss | 3 + .../custom/ubccs/sass/components/_faq.scss | 7 + .../custom/ubccs/sass/components/_field.scss | 41 + .../custom/ubccs/sass/components/_form.scss | 259 + .../ubccs/sass/components/_full-calendar.scss | 13 + .../ubccs/sass/components/_home-banner.scss | 65 + .../custom/ubccs/sass/components/_home.scss | 186 + .../custom/ubccs/sass/components/_image.scss | 5 + .../ubccs/sass/components/_industry.scss | 113 + .../ubccs/sass/components/_inline-block.scss | 47 + .../sass/components/_landing-banner.scss | 61 + .../ubccs/sass/components/_landing-cards.scss | 11 + .../ubccs/sass/components/_landing-intro.scss | 29 + .../ubccs/sass/components/_landing.scss | 23 + .../custom/ubccs/sass/components/_list.scss | 15 + .../custom/ubccs/sass/components/_media.scss | 19 + .../custom/ubccs/sass/components/_menu.scss | 133 + .../ubccs/sass/components/_message.scss | 10 + .../ubccs/sass/components/_mobile-menu.scss | 44 + .../custom/ubccs/sass/components/_news.scss | 45 + .../custom/ubccs/sass/components/_node.scss | 75 + .../custom/ubccs/sass/components/_page.scss | 13 + .../custom/ubccs/sass/components/_pager.scss | 162 + .../ubccs/sass/components/_permalink.scss | 8 + .../sass/components/_profile-alumni.scss | 46 + .../ubccs/sass/components/_profile.scss | 221 + .../ubccs/sass/components/_research.scss | 30 + .../ubccs/sass/components/_sidebar.scss | 6 + .../ubccs/sass/components/_site-alert.scss | 84 + .../ubccs/sass/components/_slick-slider.scss | 455 ++ .../ubccs/sass/components/_sub-menu.scss | 119 + .../custom/ubccs/sass/components/_table.scss | 29 + .../ubccs/sass/components/_tabledrag.scss | 32 + .../custom/ubccs/sass/components/_toc.scss | 18 + .../ubccs/sass/components/_typography.scss | 18 + .../custom/ubccs/sass/components/_unit.scss | 10 + .../ubccs/sass/components/_vertical-tabs.scss | 3 + .../custom/ubccs/sass/components/_views.scss | 41 + public/themes/custom/ubccs/sass/layout.scss | 76 + .../custom/ubccs/sass/local.clf.fixes.scss | 131 + public/themes/custom/ubccs/sass/main.scss | 70 + .../themes/custom/ubccs/sass/normalize.scss | 1 + public/themes/custom/ubccs/sass/print.scss | 87 + public/themes/custom/ubccs/sass/select2.scss | 286 + public/themes/custom/ubccs/sass/timeline.scss | 27 + public/themes/custom/ubccs/screenshot.png | Bin 0 -> 4529 bytes .../block--bundle--sponsor_logos.html.twig | 49 + .../block--menu-block--main-submenu.html.twig | 27 + .../block/block--system-menu-block.html.twig | 26 + .../component/landing-banner.html.twig | 14 + .../templates/component/site-alert.html.twig | 8 + .../twitter-api--tweet-list.html.twig | 20 + .../component/twitter-api--tweet.html.twig | 32 + .../content/node--alumni--teaser.html.twig | 31 + .../templates/content/node--alumni.html.twig | 59 + .../content/node--award--teaser.html.twig | 23 + .../content/node--course-section.html.twig | 71 + .../templates/content/node--course.html.twig | 82 + .../content/node--department-job.html.twig | 26 + .../templates/content/node--event.html.twig | 82 + .../content/node--faq--teaser.html.twig | 35 + .../content/node--homepage-banner.html.twig | 35 + .../templates/content/node--job.html.twig | 27 + .../content/node--landing--full.html.twig | 13 + .../content/node--news--teaser.html.twig | 27 + .../templates/content/node--news.html.twig | 23 + .../content/node--page--full.html.twig | 13 + .../content/node--schedule--teaser.html.twig | 33 + .../node--special-event--full.html.twig | 9 + .../templates/content/node--teaser.html.twig | 16 + .../ubccs/templates/content/node.html.twig | 75 + .../taxonomy-term--research-group.html.twig | 45 + .../date-recur-basic-formatter.html.twig | 37 + ...field--block-content--body--card.html.twig | 3 + .../field/field--field-card-link.html.twig | 3 + .../field/field--field-card-title.html.twig | 3 + .../field--field-landing-cards.html.twig | 29 + .../field--field-landing-intro.html.twig | 52 + ...d--node--title--technical-report.html.twig | 30 + .../templates/field/field--text.html.twig | 28 + .../ubccs/templates/field/field.html.twig | 81 + .../ubccs/templates/field/image.html.twig | 13 + .../ubccs/templates/layout/html.html.twig | 24 + .../templates/layout/page--front.html.twig | 60 + .../layout/page--node-type--landing.html.twig | 14 + .../templates/layout/page--timeline.html.twig | 14 + .../ubccs/templates/layout/page.html.twig | 250 + .../templates/navigation/breadcrumb.html.twig | 21 + .../navigation/menu--main-submenu.html.twig | 50 + .../templates/navigation/menu--main.html.twig | 53 + .../templates/navigation/pager.html.twig | 127 + .../templates/navigation/prevnext.html.twig | 29 + .../profile/profile--main--full.html.twig | 36 + .../profile--main--linked-name.html.twig | 24 + .../profile/profile--main--teaser.html.twig | 57 + .../views/views-exposed-form.html.twig | 19 + .../views/views-mini-pager.html.twig | 54 + .../views-view--research--block-1.html.twig | 91 + ...ews-view-list--research--block-1.html.twig | 47 + .../views-view-table--course-list.html.twig | 135 + .../views/views-view-table.html.twig | 120 + .../views/views-view-unformatted.html.twig | 30 + public/themes/custom/ubccs/ubccs.info.yml | 30 + public/themes/custom/ubccs/ubccs.layouts.yml | 13 + .../themes/custom/ubccs/ubccs.libraries.yml | 107 + public/themes/custom/ubccs/ubccs.theme | 100 + 218 files changed, 30041 insertions(+) create mode 100644 .ddev/config.yaml create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 .nvmrc create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 load.environment.php create mode 100644 package.json create mode 100644 public/css/details.css create mode 100644 public/ia/img/banner.jpg create mode 100644 public/ia/img/grads/awards-financial-support.jpg create mode 100644 public/ia/img/grads/dempster-bldg.jpg create mode 100644 public/ia/img/grads/poojav_viswanathan_photo_by_martin_dee_public_affairs_1_cropped.jpg create mode 100644 public/ia/img/grads/prospective-grads-w290.jpg create mode 100644 public/ia/img/grads/resources-links.jpg create mode 100644 public/ia/img/placeholder290x190-2.png create mode 100644 public/ia/img/placeholder290x190.png create mode 100644 public/ia/patterns/index.php create mode 100644 public/ia/prototype/.gitignore create mode 100644 public/ia/prototype/.htaccess create mode 100644 public/ia/prototype/css/prototype.css create mode 100644 public/ia/prototype/index.php create mode 100644 public/ia/prototype/package-lock.json create mode 100644 public/ia/prototype/package.json create mode 100644 public/ia/prototype/sass/prototype.scss create mode 100644 public/ia/sitemap/css/style.css create mode 100644 public/ia/sitemap/index.html create mode 100644 public/ia/styleguide/index.php create mode 100644 public/ia/templates/base.twig create mode 100644 public/ia/templates/includes/footer.twig create mode 100644 public/ia/templates/includes/header.twig create mode 100644 public/ia/templates/patterns.twig create mode 100644 public/ia/templates/patterns/blockquote.html create mode 100644 public/ia/templates/patterns/breadcrumb.html create mode 100644 public/ia/templates/patterns/button.html create mode 100644 public/ia/templates/patterns/cards.html create mode 100644 public/ia/templates/patterns/details.html create mode 100644 public/ia/templates/patterns/feedback.html create mode 100644 public/ia/templates/patterns/form.html create mode 100644 public/ia/templates/patterns/heading.html create mode 100644 public/ia/templates/patterns/inline-block.html create mode 100644 public/ia/templates/patterns/intro.html create mode 100644 public/ia/templates/patterns/landing-banner.html create mode 100644 public/ia/templates/patterns/landing-intro.html create mode 100644 public/ia/templates/patterns/list-ordered.html create mode 100644 public/ia/templates/patterns/list-unordered.html create mode 100644 public/ia/templates/patterns/pagination.html create mode 100644 public/ia/templates/patterns/paragraph.html create mode 100644 public/ia/templates/patterns/profile.html.twig create mode 100644 public/ia/templates/patterns/site-alert.html create mode 100644 public/ia/templates/prototypes/cards.twig create mode 100644 public/ia/templates/prototypes/key-landing-fluid-hero.twig create mode 100644 public/ia/templates/prototypes/key-landing.twig create mode 100644 public/ia/templates/styleguide.twig create mode 100644 public/index.php create mode 100644 public/themes/custom/ubccs/.gitignore create mode 100644 public/themes/custom/ubccs/css/bootstrap.css create mode 100644 public/themes/custom/ubccs/css/ckeditor.css create mode 100644 public/themes/custom/ubccs/css/ckeditor5.css create mode 100644 public/themes/custom/ubccs/css/layout.css create mode 100644 public/themes/custom/ubccs/css/local.clf.fixes.css create mode 100644 public/themes/custom/ubccs/css/main.css create mode 100644 public/themes/custom/ubccs/css/normalize.css create mode 100644 public/themes/custom/ubccs/css/print.css create mode 100644 public/themes/custom/ubccs/css/select2.css create mode 100644 public/themes/custom/ubccs/css/timeline.css create mode 100644 public/themes/custom/ubccs/img/arrow-both.svg create mode 100644 public/themes/custom/ubccs/img/computer-science-logo.png create mode 100644 public/themes/custom/ubccs/img/correct8.svg create mode 100644 public/themes/custom/ubccs/img/next.svg create mode 100644 public/themes/custom/ubccs/img/prev.svg create mode 100644 public/themes/custom/ubccs/img/slick/next.svg create mode 100644 public/themes/custom/ubccs/img/slick/prev.svg create mode 100644 public/themes/custom/ubccs/img/ubc_logo.png create mode 100644 public/themes/custom/ubccs/js/main.js create mode 100644 public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.css create mode 100644 public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.js create mode 100644 public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.css create mode 100644 public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.js create mode 100644 public/themes/custom/ubccs/package-lock.json create mode 100644 public/themes/custom/ubccs/package.json create mode 100644 public/themes/custom/ubccs/sass/_bootstrap-no-output.scss create mode 100644 public/themes/custom/ubccs/sass/_utility.scss create mode 100644 public/themes/custom/ubccs/sass/_variables.scss create mode 100644 public/themes/custom/ubccs/sass/base/_blockquote.scss create mode 100644 public/themes/custom/ubccs/sass/base/_code.scss create mode 100644 public/themes/custom/ubccs/sass/base/_figure.scss create mode 100644 public/themes/custom/ubccs/sass/base/_fixes.scss create mode 100644 public/themes/custom/ubccs/sass/base/_form.scss create mode 100644 public/themes/custom/ubccs/sass/base/_image.scss create mode 100644 public/themes/custom/ubccs/sass/base/_list.scss create mode 100644 public/themes/custom/ubccs/sass/base/_reset.scss create mode 100644 public/themes/custom/ubccs/sass/base/_table.scss create mode 100644 public/themes/custom/ubccs/sass/base/_typography.scss create mode 100644 public/themes/custom/ubccs/sass/bootstrap.scss create mode 100644 public/themes/custom/ubccs/sass/ckeditor5.scss create mode 100644 public/themes/custom/ubccs/sass/components/_admin.scss create mode 100644 public/themes/custom/ubccs/sass/components/_alert.scss create mode 100644 public/themes/custom/ubccs/sass/components/_align.scss create mode 100644 public/themes/custom/ubccs/sass/components/_awards.scss create mode 100644 public/themes/custom/ubccs/sass/components/_back-to-top.scss create mode 100644 public/themes/custom/ubccs/sass/components/_big-quote.scss create mode 100644 public/themes/custom/ubccs/sass/components/_breadcrumbs.scss create mode 100644 public/themes/custom/ubccs/sass/components/_button.scss create mode 100644 public/themes/custom/ubccs/sass/components/_calendar.scss create mode 100644 public/themes/custom/ubccs/sass/components/_caption.scss create mode 100644 public/themes/custom/ubccs/sass/components/_card.scss create mode 100644 public/themes/custom/ubccs/sass/components/_cart.scss create mode 100644 public/themes/custom/ubccs/sass/components/_chevron.scss create mode 100644 public/themes/custom/ubccs/sass/components/_courses.scss create mode 100644 public/themes/custom/ubccs/sass/components/_details.scss create mode 100644 public/themes/custom/ubccs/sass/components/_expand-collapse.scss create mode 100644 public/themes/custom/ubccs/sass/components/_faq.scss create mode 100644 public/themes/custom/ubccs/sass/components/_field.scss create mode 100644 public/themes/custom/ubccs/sass/components/_form.scss create mode 100644 public/themes/custom/ubccs/sass/components/_full-calendar.scss create mode 100644 public/themes/custom/ubccs/sass/components/_home-banner.scss create mode 100644 public/themes/custom/ubccs/sass/components/_home.scss create mode 100644 public/themes/custom/ubccs/sass/components/_image.scss create mode 100644 public/themes/custom/ubccs/sass/components/_industry.scss create mode 100644 public/themes/custom/ubccs/sass/components/_inline-block.scss create mode 100644 public/themes/custom/ubccs/sass/components/_landing-banner.scss create mode 100644 public/themes/custom/ubccs/sass/components/_landing-cards.scss create mode 100644 public/themes/custom/ubccs/sass/components/_landing-intro.scss create mode 100644 public/themes/custom/ubccs/sass/components/_landing.scss create mode 100644 public/themes/custom/ubccs/sass/components/_list.scss create mode 100644 public/themes/custom/ubccs/sass/components/_media.scss create mode 100644 public/themes/custom/ubccs/sass/components/_menu.scss create mode 100644 public/themes/custom/ubccs/sass/components/_message.scss create mode 100644 public/themes/custom/ubccs/sass/components/_mobile-menu.scss create mode 100644 public/themes/custom/ubccs/sass/components/_news.scss create mode 100644 public/themes/custom/ubccs/sass/components/_node.scss create mode 100644 public/themes/custom/ubccs/sass/components/_page.scss create mode 100644 public/themes/custom/ubccs/sass/components/_pager.scss create mode 100644 public/themes/custom/ubccs/sass/components/_permalink.scss create mode 100644 public/themes/custom/ubccs/sass/components/_profile-alumni.scss create mode 100644 public/themes/custom/ubccs/sass/components/_profile.scss create mode 100644 public/themes/custom/ubccs/sass/components/_research.scss create mode 100644 public/themes/custom/ubccs/sass/components/_sidebar.scss create mode 100644 public/themes/custom/ubccs/sass/components/_site-alert.scss create mode 100644 public/themes/custom/ubccs/sass/components/_slick-slider.scss create mode 100644 public/themes/custom/ubccs/sass/components/_sub-menu.scss create mode 100644 public/themes/custom/ubccs/sass/components/_table.scss create mode 100644 public/themes/custom/ubccs/sass/components/_tabledrag.scss create mode 100644 public/themes/custom/ubccs/sass/components/_toc.scss create mode 100644 public/themes/custom/ubccs/sass/components/_typography.scss create mode 100644 public/themes/custom/ubccs/sass/components/_unit.scss create mode 100644 public/themes/custom/ubccs/sass/components/_vertical-tabs.scss create mode 100644 public/themes/custom/ubccs/sass/components/_views.scss create mode 100644 public/themes/custom/ubccs/sass/layout.scss create mode 100644 public/themes/custom/ubccs/sass/local.clf.fixes.scss create mode 100644 public/themes/custom/ubccs/sass/main.scss create mode 100644 public/themes/custom/ubccs/sass/normalize.scss create mode 100644 public/themes/custom/ubccs/sass/print.scss create mode 100644 public/themes/custom/ubccs/sass/select2.scss create mode 100644 public/themes/custom/ubccs/sass/timeline.scss create mode 100644 public/themes/custom/ubccs/screenshot.png create mode 100755 public/themes/custom/ubccs/templates/block/block--bundle--sponsor_logos.html.twig create mode 100644 public/themes/custom/ubccs/templates/block/block--menu-block--main-submenu.html.twig create mode 100644 public/themes/custom/ubccs/templates/block/block--system-menu-block.html.twig create mode 100644 public/themes/custom/ubccs/templates/component/landing-banner.html.twig create mode 100644 public/themes/custom/ubccs/templates/component/site-alert.html.twig create mode 100644 public/themes/custom/ubccs/templates/component/twitter-api--tweet-list.html.twig create mode 100644 public/themes/custom/ubccs/templates/component/twitter-api--tweet.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--alumni--teaser.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--alumni.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--award--teaser.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--course-section.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--course.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--department-job.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--event.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--faq--teaser.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--homepage-banner.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--job.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--landing--full.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--news--teaser.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--news.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--page--full.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--schedule--teaser.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--special-event--full.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node--teaser.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/node.html.twig create mode 100644 public/themes/custom/ubccs/templates/content/taxonomy-term--research-group.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/date-recur-basic-formatter.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field--block-content--body--card.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field--field-card-link.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field--field-card-title.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field--field-landing-cards.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field--field-landing-intro.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field--node--title--technical-report.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field--text.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/field.html.twig create mode 100644 public/themes/custom/ubccs/templates/field/image.html.twig create mode 100644 public/themes/custom/ubccs/templates/layout/html.html.twig create mode 100644 public/themes/custom/ubccs/templates/layout/page--front.html.twig create mode 100644 public/themes/custom/ubccs/templates/layout/page--node-type--landing.html.twig create mode 100644 public/themes/custom/ubccs/templates/layout/page--timeline.html.twig create mode 100644 public/themes/custom/ubccs/templates/layout/page.html.twig create mode 100644 public/themes/custom/ubccs/templates/navigation/breadcrumb.html.twig create mode 100644 public/themes/custom/ubccs/templates/navigation/menu--main-submenu.html.twig create mode 100644 public/themes/custom/ubccs/templates/navigation/menu--main.html.twig create mode 100644 public/themes/custom/ubccs/templates/navigation/pager.html.twig create mode 100644 public/themes/custom/ubccs/templates/navigation/prevnext.html.twig create mode 100644 public/themes/custom/ubccs/templates/profile/profile--main--full.html.twig create mode 100644 public/themes/custom/ubccs/templates/profile/profile--main--linked-name.html.twig create mode 100644 public/themes/custom/ubccs/templates/profile/profile--main--teaser.html.twig create mode 100644 public/themes/custom/ubccs/templates/views/views-exposed-form.html.twig create mode 100644 public/themes/custom/ubccs/templates/views/views-mini-pager.html.twig create mode 100644 public/themes/custom/ubccs/templates/views/views-view--research--block-1.html.twig create mode 100644 public/themes/custom/ubccs/templates/views/views-view-list--research--block-1.html.twig create mode 100644 public/themes/custom/ubccs/templates/views/views-view-table--course-list.html.twig create mode 100644 public/themes/custom/ubccs/templates/views/views-view-table.html.twig create mode 100644 public/themes/custom/ubccs/templates/views/views-view-unformatted.html.twig create mode 100644 public/themes/custom/ubccs/ubccs.info.yml create mode 100644 public/themes/custom/ubccs/ubccs.layouts.yml create mode 100644 public/themes/custom/ubccs/ubccs.libraries.yml create mode 100644 public/themes/custom/ubccs/ubccs.theme diff --git a/.ddev/config.yaml b/.ddev/config.yaml new file mode 100644 index 0000000..843a8ed --- /dev/null +++ b/.ddev/config.yaml @@ -0,0 +1,261 @@ +name: cs-ia +type: php +docroot: public +php_version: "8.2" +webserver_type: apache-fpm +router_http_port: "80" +router_https_port: "443" +xdebug_enabled: false +additional_hostnames: [] +additional_fqdns: [] +database: + type: mysql + version: "8.0" +nfs_mount_enabled: false +mutagen_enabled: false +webimage_extra_packages: [php-bcmath, php-intl, php-ldap, php-soap, php-zip] +project_tld: test +use_dns_when_possible: true +timezone: America/Vancouver +composer_version: "2" +disable_settings_management: true +web_environment: [] +nodejs_version: "16" + +# Key features of ddev's config.yaml: + +# name: # Name of the project, automatically provides +# http://projectname.ddev.site and https://projectname.ddev.site + +# type: # drupal6/7/8, backdrop, typo3, wordpress, php + +# docroot: # Relative path to the directory containing index.php. + +# php_version: "7.4" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2" + +# You can explicitly specify the webimage but this +# is not recommended, as the images are often closely tied to ddev's' behavior, +# so this can break upgrades. + +# webimage: # nginx/php docker image. + +# database: +# type: # mysql, mariadb +# version: # database version, like "10.3" or "8.0" +# Note that mariadb_version or mysql_version from v1.18 and earlier +# will automatically be converted to this notation with just a "ddev config --auto" + +# router_http_port: # Port to be used for http (defaults to port 80) +# router_https_port: # Port for https (defaults to 443) + +# xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart" +# Note that for most people the commands +# "ddev xdebug" to enable xdebug and "ddev xdebug off" to disable it work better, +# as leaving xdebug enabled all the time is a big performance hit. + +# xhprof_enabled: false # Set to true to enable xhprof and "ddev start" or "ddev restart" +# Note that for most people the commands +# "ddev xhprof" to enable xhprof and "ddev xhprof off" to disable it work better, +# as leaving xhprof enabled all the time is a big performance hit. + +# webserver_type: nginx-fpm # or apache-fpm + +# timezone: Europe/Berlin +# This is the timezone used in the containers and by PHP; +# it can be set to any valid timezone, +# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +# For example Europe/Dublin or MST7MDT + +# composer_root: +# Relative path to the composer root directory from the project root. This is +# the directory which contains the composer.json and where all Composer related +# commands are executed. + +# composer_version: "2" +# You can set it to "" or "2" (default) for Composer v2 or "1" for Composer v1 +# to use the latest major version available at the time your container is built. +# It is also possible to use each other Composer version channel. This includes: +# - 2.2 (latest Composer LTS version) +# - stable +# - preview +# - snapshot +# Alternatively, an explicit Composer version may be specified, for example "2.2.18". +# To reinstall Composer after the image was built, run "ddev debug refresh". + +# nodejs_version: "16" +# change from the default system Node.js version to another supported version, like 12, 14, 17, 18. +# Note that you can use 'ddev nvm' or nvm inside the web container to provide nearly any +# Node.js version, including v6, etc. + +# additional_hostnames: +# - somename +# - someothername +# would provide http and https URLs for "somename.ddev.site" +# and "someothername.ddev.site". + +# additional_fqdns: +# - example.com +# - sub1.example.com +# would provide http and https URLs for "example.com" and "sub1.example.com" +# Please take care with this because it can cause great confusion. + +# upload_dir: custom/upload/dir +# would set the destination path for ddev import-files to /custom/upload/dir +# When mutagen is enabled this path is bind-mounted so that all the files +# in the upload_dir don't have to be synced into mutagen + +# working_dir: +# web: /var/www/html +# db: /home +# would set the default working directory for the web and db services. +# These values specify the destination directory for ddev ssh and the +# directory in which commands passed into ddev exec are run. + +# omit_containers: [db, dba, ddev-ssh-agent] +# Currently only these containers are supported. Some containers can also be +# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit +# the "db" container, several standard features of ddev that access the +# database container will be unusable. In the global configuration it is also +# possible to omit ddev-router, but not here. + +# nfs_mount_enabled: false +# Great performance improvement but requires host configuration first. +# See https://ddev.readthedocs.io/en/latest/users/install/performance/#nfs + +# mutagen_enabled: false +# Performance improvement using mutagen asynchronous updates. +# See https://ddev.readthedocs.io/en/latest/users/install/performance/#mutagen + +# fail_on_hook_fail: False +# Decide whether 'ddev start' should be interrupted by a failing hook + +# host_https_port: "59002" +# The host port binding for https can be explicitly specified. It is +# dynamic unless otherwise specified. +# This is not used by most people, most people use the *router* instead +# of the localhost port. + +# host_webserver_port: "59001" +# The host port binding for the ddev-webserver can be explicitly specified. It is +# dynamic unless otherwise specified. +# This is not used by most people, most people use the *router* instead +# of the localhost port. + +# host_db_port: "59002" +# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic +# unless explicitly specified. + +# phpmyadmin_port: "8036" +# phpmyadmin_https_port: "8037" +# The PHPMyAdmin ports can be changed from the default 8036 and 8037 + +# host_phpmyadmin_port: "8036" +# The phpmyadmin (dba) port is not normally bound on the host at all, instead being routed +# through ddev-router, but it can be specified and bound. + +# mailhog_port: "8025" +# mailhog_https_port: "8026" +# The MailHog ports can be changed from the default 8025 and 8026 + +# host_mailhog_port: "8025" +# The mailhog port is not normally bound on the host at all, instead being routed +# through ddev-router, but it can be bound directly to localhost if specified here. + +# webimage_extra_packages: [php7.4-tidy, php-bcmath] +# Extra Debian packages that are needed in the webimage can be added here + +# dbimage_extra_packages: [telnet,netcat] +# Extra Debian packages that are needed in the dbimage can be added here + +# use_dns_when_possible: true +# If the host has internet access and the domain configured can +# successfully be looked up, DNS will be used for hostname resolution +# instead of editing /etc/hosts +# Defaults to true + +# project_tld: ddev.site +# The top-level domain used for project URLs +# The default "ddev.site" allows DNS lookup via a wildcard +# If you prefer you can change this to "ddev.local" to preserve +# pre-v1.9 behavior. + +# ngrok_args: --basic-auth username:pass1234 +# Provide extra flags to the "ngrok http" command, see +# https://ngrok.com/docs#http or run "ngrok http -h" + +# disable_settings_management: false +# If true, ddev will not create CMS-specific settings files like +# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalConfiguration.php +# In this case the user must provide all such settings. + +# You can inject environment variables into the web container with: +# web_environment: +# - SOMEENV=somevalue +# - SOMEOTHERENV=someothervalue + +# no_project_mount: false +# (Experimental) If true, ddev will not mount the project into the web container; +# the user is responsible for mounting it manually or via a script. +# This is to enable experimentation with alternate file mounting strategies. +# For advanced users only! + +# bind_all_interfaces: false +# If true, host ports will be bound on all network interfaces, +# not just the localhost interface. This means that ports +# will be available on the local network if the host firewall +# allows it. + +# default_container_timeout: 120 +# The default time that ddev waits for all containers to become ready can be increased from +# the default 120. This helps in importing huge databases, for example. + +#web_extra_exposed_ports: +#- name: nodejs +# container_port: 3000 +# http_port: 2999 +# https_port: 3000 +#- name: something +# container_port: 4000 +# https_port: 4000 +# http_port: 3999 +# Allows a set of extra ports to be exposed via ddev-router +# The port behavior on the ddev-webserver must be arranged separately, for example +# using web_extra_daemons. +# For example, with a web app on port 3000 inside the container, this config would +# expose that web app on https://.ddev.site:9999 and http://.ddev.site:9998 +# web_extra_exposed_ports: +# - container_port: 3000 +# http_port: 9998 +# https_port: 9999 + +#web_extra_daemons: +#- name: "http-1" +# command: "/var/www/html/node_modules/.bin/http-server -p 3000" +# directory: /var/www/html +#- name: "http-2" +# command: "/var/www/html/node_modules/.bin/http-server /var/www/html/sub -p 3000" +# directory: /var/www/html + +# override_config: false +# By default, config.*.yaml files are *merged* into the configuration +# But this means that some things can't be overridden +# For example, if you have 'nfs_mount_enabled: true'' you can't override it with a merge +# and you can't erase existing hooks or all environment variables. +# However, with "override_config: true" in a particular config.*.yaml file, +# 'nfs_mount_enabled: false' can override the existing values, and +# hooks: +# post-start: [] +# or +# web_environment: [] +# or +# additional_hostnames: [] +# can have their intended affect. 'override_config' affects only behavior of the +# config.*.yaml file it exists in. + +# Many ddev commands can be extended to run tasks before or after the +# ddev command is executed, for example "post-start", "post-import-db", +# "pre-composer", "post-composer" +# See https://ddev.readthedocs.io/en/stable/users/extend/custom-commands/ for more +# information on the commands that can be extended and the tasks you can define +# for them. Example: +#hooks: diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1671c9b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..d176c51 --- /dev/null +++ b/.env.example @@ -0,0 +1,7 @@ +# This file is a "template" of which env vars need to be defined for your application +# Copy this file to .env file for development, create environment variables when deploying to production +# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration + +AC_URL='https://www.cs.ubc.ca/collab' +AC_USER='[YOUR ACCOUNT@cs.ubc.ca]' +AC_PASS='[YOUR CWL PASSWWORD]' diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..22b6e82 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +# Ignore directories generated by Composer. +/vendor/ + +# Ignore directories generated by NPM/Yarn +node_modules + +# Ignore files generated by PhpStorm +/.idea/ + +# Ignore .env files as they are personal +/.env + +# Deployer Build Directory. +/.build/ + +# Local backups. +/backups + +# Logs and databases. +*.log +*.sql +*.sqlite + +# OS generated files. +.DS_Store* +ehthumbs.db +Thumbs.db + +# Patch generated files. +*.orig +*.rej +*.bak + +# Tool generated. +.svn +.sass-cache +*.swp +*.map + +# IDE files & folders (PHPStorm, Netbeans, etc). +.idea +nbproject +*.project +.vscode diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..53d838a --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/gallium diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..45a8b54 --- /dev/null +++ b/composer.json @@ -0,0 +1,25 @@ +{ + "name": "ubc-cpsc/cs-ia", + "type": "project", + "require": { + "twig/twig": "^3.0", + "vlucas/phpdotenv": "^5.0" + }, + "require-dev": { + "roave/security-advisories": "dev-latest" + }, + "autoload": { + "files": [ + "load.environment.php" + ] + }, + "config": { + "discard-changes": true, + "platform": { + "php": "8.2" + }, + "sort-packages": true + }, + "minimum-stability": "stable", + "prefer-stable": true +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..1438fbc --- /dev/null +++ b/composer.lock @@ -0,0 +1,260 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "092d508925283b79b5639cc677431314", + "packages": [ + { + "name": "symfony/polyfill-ctype", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "twig/twig", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "a6e0510cc793912b451fd40ab983a1d28f611c15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a6e0510cc793912b451fd40ab983a1d28f611c15", + "reference": "a6e0510cc793912b451fd40ab983a1d28f611c15", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.5-dev" + } + }, + "autoload": { + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-02-08T07:49:20+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/load.environment.php b/load.environment.php new file mode 100644 index 0000000..eb5e3a0 --- /dev/null +++ b/load.environment.php @@ -0,0 +1,17 @@ +safeLoad(); diff --git a/package.json b/package.json new file mode 100644 index 0000000..1fbe0eb --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "private": true, + "scripts": { + "build:sass": "sass sass:public/css", + "autoprefixer": "postcss --no-map -u autoprefixer --autoprefixer.browsers -r public/css/*.css", + "build:css": "npm run build:sass && npm run autoprefixer", + "watch:css": "onchange 'sass/**/*.scss' -- npm run build:css" + }, + "dependencies": { + "bootstrap": "^5.0.0", + "jszip": "^3.10.1", + "normalize.css": "^8.0.0", + "prism-themes": "^1.0.0", + "prismjs": "^1.0.0" + }, + "devDependencies": { + "autoprefixer": "^10.0.0", + "onchange": "^7.0.0", + "postcss-cli": "^10.0.0", + "sass": "^1.0.0" + }, + "copyFiles": [ + { + "from": "node_modules/prismjs/dist/*", + "to": "js/vendor/fancybox" + } + ], + "copyFilesSettings": { + "whenFileExists": "overwrite" + }, + "browserslist": [ + "> 1%" + ] +} diff --git a/public/css/details.css b/public/css/details.css new file mode 100644 index 0000000..2073bda --- /dev/null +++ b/public/css/details.css @@ -0,0 +1,43 @@ +details { + /*background: #282828;*/ + margin: 1rem auto; + box-shadow: 0 .1rem 1rem -.5rem rgba(0,0,0,.4); + border-radius: 5px; + overflow: hidden; +} + +summary { + display: block; + background: #333; + color: #fff; + padding: 1rem 1rem 1rem 2.2rem; + position: relative; + cursor: pointer; +} + +summary:before { + content: ''; + border-width: .4rem; + border-style: solid; + border-color: transparent transparent transparent #fff; + position: absolute; + top: 1.3rem; + left: 1rem; + transform: rotate(0); + transform-origin: .2rem 50%; + transition: .25s transform ease; +} + +/* THE MAGIC 🧙‍♀️ */ +details[open] > summary:before { + transform: rotate(90deg); +} + + +details summary::-webkit-details-marker { + display:none; +} + +details > summary + * { + padding: 1rem; +} diff --git a/public/ia/img/banner.jpg b/public/ia/img/banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f72b6a6e473930fc07420f55a87e0ee29213e571 GIT binary patch literal 371199 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

6c=F)m%lQ2|dS2bpwXpUF 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

G0)mB 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/public/ia/img/grads/awards-financial-support.jpg b/public/ia/img/grads/awards-financial-support.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e64a1a85acef51e799935ee3e3ca5e82a49fc5f8 GIT binary patch literal 18696 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

iXbmi-EQW5|d;kdwD;Z|%1v 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 SFfEbP$G_n9ExW{ViT~N)ExFPF literal 0 HcmV?d00001 diff --git a/public/ia/img/grads/resources-links.jpg b/public/ia/img/grads/resources-links.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87aa937785248f89b31311f704111fc1f861468b GIT binary patch literal 28261 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Ʀ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 literal 0 HcmV?d00001 diff --git a/public/ia/img/placeholder290x190.png b/public/ia/img/placeholder290x190.png new file mode 100644 index 0000000000000000000000000000000000000000..adf4d6525f8c2feb9317b6855a4ab68c436351dd GIT binary patch literal 136244 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 dirname(dirname(dirname(__DIR__))) . '/private/cache', + 'autoescape' => TRUE, + 'strict_variables' => FALSE, + 'debug' => FALSE, + 'auto_reload' => TRUE, +); +$loader = new Twig_Loader_Filesystem(dirname(__DIR__) . '/templates'); +$twig = new Twig_Environment($loader, $twig_options); + +$patterns = []; +$iterator = new DirectoryIterator('../templates/patterns'); + +foreach ($iterator as $fileInfo) { + if ($fileInfo->isDot()) { + continue; + } + + $patterns[] = $fileInfo->getFilename(); +} +sort($patterns); + +echo $twig->render('patterns.twig', [ + 'patterns' => $patterns, + 'title' => 'IA Patterns - UBC CS', +]); diff --git a/public/ia/prototype/.gitignore b/public/ia/prototype/.gitignore new file mode 100644 index 0000000..8d4aaf4 --- /dev/null +++ b/public/ia/prototype/.gitignore @@ -0,0 +1,2 @@ +node_modules +*.map \ No newline at end of file diff --git a/public/ia/prototype/.htaccess b/public/ia/prototype/.htaccess new file mode 100644 index 0000000..2c5a84d --- /dev/null +++ b/public/ia/prototype/.htaccess @@ -0,0 +1,8 @@ + + RewriteEngine on + + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^ index.php [L] + + diff --git a/public/ia/prototype/css/prototype.css b/public/ia/prototype/css/prototype.css new file mode 100644 index 0000000..e96b0df --- /dev/null +++ b/public/ia/prototype/css/prototype.css @@ -0,0 +1,43 @@ +.jumbotron { + height: 455px; +} + +.jumbotron .title { + position: relative; + bottom: 60px; + left: 0; + height: 53px; + width: 100%; + padding: 12px 0 0 10px; + background: rgba(0, 0, 0, 0.6); +} + +@media (min-width: 768px) { + .jumbotron .title { + bottom: 0; + top: 220px; + height: 130px; + width: 625px; + padding: 20px 0 0 30px; + } +} + +.jumbotron .title h1 { + font-size: 18px; + color: #fff; +} + +@media (min-width: 768px) { + .jumbotron .title h1 { + font-size: 39px; + } +} + +.jumbotron--full-width { + width: 100vw; + position: relative; + left: 50%; + right: 50%; + margin-left: -50vw; + margin-right: -50vw; +} \ No newline at end of file diff --git a/public/ia/prototype/index.php b/public/ia/prototype/index.php new file mode 100644 index 0000000..89693ee --- /dev/null +++ b/public/ia/prototype/index.php @@ -0,0 +1,36 @@ + dirname(__DIR__, 3) . '/private/cache', + 'auto_reload' => TRUE, +]; + +$templates_directory = dirname(__DIR__) . '/templates'; +$loader = new FilesystemLoader($templates_directory); +$twig = new Environment($loader, $twig_options); + +$directory_name = dirname($_SERVER['SCRIPT_NAME']); + +$page = str_replace($directory_name, '', $_SERVER['REQUEST_URI']); +$page = trim($page, '/'); +$template_path = $templates_directory . '/prototypes/' . $page . '.twig'; +if (!file_exists($template_path)) { + $page = 'key-landing'; +} + +print $twig->render('prototypes/' . $page . '.twig', ['title' => 'IA Prototype - UBC CS ' . $page]); diff --git a/public/ia/prototype/package-lock.json b/public/ia/prototype/package-lock.json new file mode 100644 index 0000000..1653829 --- /dev/null +++ b/public/ia/prototype/package-lock.json @@ -0,0 +1,3969 @@ +{ + "name": "ubccs", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@blakeembrey/deque": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@blakeembrey/deque/-/deque-1.0.5.tgz", + "integrity": "sha512-6xnwtvp9DY1EINIKdTfvfeAtCYw4OqBZJhtiqkT3ivjnEfa25VQ3TsKvaFfKm8MyGIEfE95qLe+bNEt3nB0Ylg==" + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/node": { + "version": "12.12.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.16.tgz", + "integrity": "sha512-vRuMyoOr5yfNf8QWxXegOjeyjpWJxFePzHzmBOIzDIzo+rSqF94RW0PkS6y4T2+VjAWLXHWrfbIJY3E3aS7lUw==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.3.tgz", + "integrity": "sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q==", + "requires": { + "browserslist": "^4.8.0", + "caniuse-lite": "^1.0.30001012", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.23", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", + "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "~2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browserslist": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", + "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", + "requires": { + "caniuse-lite": "^1.0.30001015", + "electron-to-chromium": "^1.3.322", + "node-releases": "^1.1.42" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001015", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz", + "integrity": "sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concurrently": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-4.1.2.tgz", + "integrity": "sha512-Kim9SFrNr2jd8/0yNYqDTFALzUX1tvimmwFWxmp/D4mRI+kbqIIwE2RkBDrxS2ic25O1UgQMI5AtBqdtX3ynYg==", + "requires": { + "chalk": "^2.4.2", + "date-fns": "^1.30.1", + "lodash": "^4.17.15", + "read-pkg": "^4.0.1", + "rxjs": "^6.5.2", + "spawn-command": "^0.0.2-1", + "supports-color": "^4.5.0", + "tree-kill": "^1.2.1", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + } + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "dependency-graph": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.8.1.tgz", + "integrity": "sha512-g213uqF8fyk40W8SBjm079n3CZB4qSpCrA2ye1fLGzH/4HEgB6tzuW2CbLE7leb4t45/6h44Ud59Su1/ROTfqw==" + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "requires": { + "path-type": "^3.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-to-chromium": { + "version": "1.3.322", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", + "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "optional": true + } + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "requires": { + "globule": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "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=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime-db": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" + }, + "mime-types": { + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "requires": { + "mime-db": "1.42.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nan": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + } + } + }, + "node-releases": { + "version": "1.1.42", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.42.tgz", + "integrity": "sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==", + "requires": { + "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==" + } + } + }, + "node-sass": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz", + "integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==", + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onchange": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/onchange/-/onchange-6.1.0.tgz", + "integrity": "sha512-T0wvi3yzNd+Lut2ymJp2e6fTiob0TLrXnjqGaiK9MAFB8MYo/k/ZClx6ps7YhTtQ88dDm+hDHmtJXP1nJT5WNA==", + "requires": { + "@blakeembrey/deque": "^1.0.3", + "arrify": "^2.0.0", + "chokidar": "^3.0.0", + "cross-spawn": "^6.0.0", + "ignore": "^5.1.4", + "minimist": "^1.2.0", + "supports-color": "^7.0.0", + "tree-kill": "^1.2.0" + }, + "dependencies": { + "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" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" + }, + "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" + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "optional": true + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "requires": { + "picomatch": "^2.0.4" + } + }, + "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" + } + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", + "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "7.0.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.24.tgz", + "integrity": "sha512-Xl0XvdNWg+CblAXzNvbSOUvgJXwSjmbAKORqyw9V2AlHrm1js2gFw9y3jibBAhpKZi8b5JzJCVh/FyzPsTtgTA==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-cli": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-6.1.3.tgz", + "integrity": "sha512-eieqJU+OR1OFc/lQqMsDmROTJpoMZFvoAQ+82utBQ8/8qGMTfH9bBSPsTdsagYA8uvNzxHw2I2cNSSJkLAGhvw==", + "requires": { + "chalk": "^2.1.0", + "chokidar": "^2.0.0", + "dependency-graph": "^0.8.0", + "fs-extra": "^7.0.0", + "get-stdin": "^6.0.0", + "globby": "^9.0.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "postcss-reporter": "^6.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "yargs": "^12.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-reporter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", + "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", + "requires": { + "chalk": "^2.4.1", + "lodash": "^4.17.11", + "log-symbols": "^2.2.0", + "postcss": "^7.0.7" + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==" + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz", + "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "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": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=" + }, + "spdx-correct": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", + "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "requires": { + "readable-stream": "^2.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "tree-kill": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==" + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "requires": { + "glob": "^7.1.2" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + } + } +} diff --git a/public/ia/prototype/package.json b/public/ia/prototype/package.json new file mode 100644 index 0000000..d477e88 --- /dev/null +++ b/public/ia/prototype/package.json @@ -0,0 +1,25 @@ +{ + "name": "ubccs", + "version": "1.0.0", + "description": "UBC CS Custom Theme", + "license": "MIT", + "scripts": { + "sass": "node-sass --recursive --source-map true --output-style expanded --output css sass", + "autoprefixer": "postcss --no-map -u autoprefixer --autoprefixer.browsers -r css/*.css", + "build:css": "npm run sass && npm run autoprefixer", + "build:images": "imagemin img/* -o img", + "watch:css": "onchange 'sass/**/*.scss' -- npm run build:css", + "watch:img": "onchange 'img/**/*' -- npm run build:images", + "watch:all": "concurrently --kill-others 'npm run watch:css' 'npm run watch:img'" + }, + "dependencies": { + "autoprefixer": "^9.7.3", + "concurrently": "^4.1.1", + "node-sass": "^4.13.0", + "onchange": "^6.0.0", + "postcss-cli": "^6.1.3" + }, + "browserslist": [ + "> 1%" + ] +} diff --git a/public/ia/prototype/sass/prototype.scss b/public/ia/prototype/sass/prototype.scss new file mode 100644 index 0000000..76bd87e --- /dev/null +++ b/public/ia/prototype/sass/prototype.scss @@ -0,0 +1,41 @@ +@import '../../../themes/custom/ubccs/sass/variables'; + +.jumbotron { + height: 455px; + + .title { + position: relative; + bottom: 60px; + left: 0; + height: 53px; + width: 100%; + padding: 12px 0 0 10px; + background: rgba(0, 0, 0, 0.6); + + @media (min-width: 768px) { + bottom: 0; + top: 220px; + height: 130px; + width: 625px; + padding: 20px 0 0 30px; + } + + h1 { + font-size: 18px; + color: $white; + + @media (min-width: 768px) { + font-size: 39px; + } + } + } +} // jumbotron + +.jumbotron--full-width { + width: 100vw; + position: relative; + left: 50%; + right: 50%; + margin-left: -50vw; + margin-right: -50vw; +} diff --git a/public/ia/sitemap/css/style.css b/public/ia/sitemap/css/style.css new file mode 100644 index 0000000..c604934 --- /dev/null +++ b/public/ia/sitemap/css/style.css @@ -0,0 +1,185 @@ +body { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + padding: 40px; + font-size: 14px; + line-height: 1.4; + background: #ccc; + margin: 0; +} + +a { + color: teal; + text-decoration: none; +} + +.legend { + float: right; + width: 30%; +} +.legend__list { + display: flex; + align-items: center; + flex-direction: row; + flex-flow: wrap; +} +.legend li { + margin: .25em; + flex: 30% 0 0; + padding: 0.25em 0.5em; +} + +#orphans-menu { + display: flex; +} + +fieldset { + border: 3px solid #999; + border-radius:8px; + padding: 1em; + margin: 1em 0; + width: 100%; +} + +legend { + color: #999; + font-weight: 700; + padding: 0 .5em; + float: left; + margin-bottom: 1em; +} + +ul { + list-style: none; + padding: 0; + margin: 0.5em 0; +} +ul li { + margin: 0 .25em; +} +ul ul ul { + padding-left: 1em; +} +li a { + display: inline-block; + color: #666; + margin: .2em; + text-decoration: none; + padding: .2em .5em; + max-width: 300px; + border-radius: 3px; + position: relative; +} + +li a[data-count]::after { + content: attr(data-count); + position: absolute; + top: -1.5em; + right: -1.5em; + font-size: 9px; + background: rgba(228, 255, 26, 1); + color: #333; + min-width: 20px; + height: 20px; + line-height: 20px; + padding: 0 .2em; + text-align: center; + border-radius: 10px; + box-shadow: 1px 1px 1px rgba(0,0,0,0.1); +} + +ul#primary-menu, +ul#utility-menu, +ul#footer-menu { + display: flex; + width: 100%; +} + +.flex-3 > ul { + display: flex; +} + +ul ul ul { + display: block; +} + +ul li a { + background: #fff; + font-size: 1.3rem; +} +ul ul li a { + background: rgba(255,255,255,.8); + font-size: .9rem; +} +ul ul ul li a { + background: rgba(255,255,255,.6); + font-size: .8rem; +} +ul ul ul ul li a { + background: rgba(255,255,255,.4); + font-size: .75rem; +} +ul ul ul ul li a { + background: rgba(255,255,255,.2); +} + +.landing { + background: rgba(0, 153, 153, .5); + color: #fff; +} + +.form { + background: rgba(235, 110, 131, .5); + color: #fff; +} + +.ext { + background: rgba(232, 170, 20, .5); + color: #fff; +} + +.list { + background: rgba(255, 87, 20, .5); + color: #fff; +} +.link { + background: rgba(117, 60, 200, 0.47); + color: #fff; +} + +.multiple { + box-shadow: 3px 3px 0 rgba(150,150,150,.7), 5px 5px 0 rgba(100,100,100,.25); + background: rgba(27, 231, 255, .5); + color: #fff; +} + +.new { + background: rgba(87, 200, 60, .5); + color: #fff; +} + +.remove { + background: rgba(235, 20, 31, .5); + color: #fff; + text-decoration: line-through; +} + +.toggle { + position: absolute; + margin-left: -1em; + margin-top: 0.75em; + font-size: 10px; + color: #777; + background-color: rgba(255, 255, 255, 0.1); + display: block; + cursor: pointer; + padding: 0.25em; +} + +@media print { + * { + color: #000!important; + text-shadow: none!important; + background: 0 0!important; + box-shadow: none!important + } +} diff --git a/public/ia/sitemap/index.html b/public/ia/sitemap/index.html new file mode 100644 index 0000000..8eb8d81 --- /dev/null +++ b/public/ia/sitemap/index.html @@ -0,0 +1,694 @@ + + + + + CS Sitemap + + + + + + +
+

Legend

+
    +
  • Listing Page
  • +
  • External
  • +
  • Landing Page
  • +
  • Form
  • +
  • Multiple Pages
  • +
  • New Pages
  • +
  • Delete Pages
  • + +
+
+

UBC CS External Website

+

Preliminary Site Map — Version 2.1

+
+
+ Primary Menu + +
+ +
+ Footer Menu + +
+ +
+ Orphans + +
+ + + + + diff --git a/public/ia/styleguide/index.php b/public/ia/styleguide/index.php new file mode 100644 index 0000000..033fb23 --- /dev/null +++ b/public/ia/styleguide/index.php @@ -0,0 +1,24 @@ + dirname(__DIR__, 3) . '/private/cache', + 'auto_reload' => TRUE, +]; +$loader = new FilesystemLoader(dirname(__DIR__) . '/templates'); +$twig = new Environment($loader, $twig_options); + +print $twig->render('styleguide.twig', ['title' => 'IA Style Guide - UBC CS']); diff --git a/public/ia/templates/base.twig b/public/ia/templates/base.twig new file mode 100644 index 0000000..c86e41c --- /dev/null +++ b/public/ia/templates/base.twig @@ -0,0 +1,102 @@ + + + + + + {{ title }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {##} + + {# @todo Integrate prototype with theme's components. #} + + + + + + {% include 'includes/header.twig' %} + +
+
+
+ {% block body %} + {{ content }} + {% endblock %} +
+
+
+ + {% include 'includes/footer.twig' %} + + diff --git a/public/ia/templates/includes/footer.twig b/public/ia/templates/includes/footer.twig new file mode 100644 index 0000000..6dc2077 --- /dev/null +++ b/public/ia/templates/includes/footer.twig @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{##} diff --git a/public/ia/templates/includes/header.twig b/public/ia/templates/includes/header.twig new file mode 100644 index 0000000..e522698 --- /dev/null +++ b/public/ia/templates/includes/header.twig @@ -0,0 +1,105 @@ + + + + + + + diff --git a/public/ia/templates/patterns.twig b/public/ia/templates/patterns.twig new file mode 100644 index 0000000..815d15e --- /dev/null +++ b/public/ia/templates/patterns.twig @@ -0,0 +1,124 @@ +{% extends "base.twig" %} + +{% block body %} + + +
+
+
+

Patterns

+ + {% for pattern in patterns %} + {% set pattern_id = pattern %} +
+

{{ pattern|replace({'.html': '', '.html.twig': '', '-': ' '})|capitalize }}

+ + + +
+ {% include 'patterns/' ~ pattern %} +
+ + + +
+ +

{{ pattern }}

+
+ +
+ {% endfor %} +
+
+ + +
+{% endblock %} diff --git a/public/ia/templates/patterns/blockquote.html b/public/ia/templates/patterns/blockquote.html new file mode 100644 index 0000000..e23cd3c --- /dev/null +++ b/public/ia/templates/patterns/blockquote.html @@ -0,0 +1,10 @@ +
+

This text is quoted. A block of quoted text like this is particularly useful when presented as a pull-quote within an article of text.

+
+ +
+
+

This text is quoted. A block of quoted text like this is particularly useful when presented as a pull-quote within an article of text.

+
+
Here's a caption with a citation.
+
diff --git a/public/ia/templates/patterns/breadcrumb.html b/public/ia/templates/patterns/breadcrumb.html new file mode 100644 index 0000000..5cdce92 --- /dev/null +++ b/public/ia/templates/patterns/breadcrumb.html @@ -0,0 +1,6 @@ + diff --git a/public/ia/templates/patterns/button.html b/public/ia/templates/patterns/button.html new file mode 100644 index 0000000..7bc4d33 --- /dev/null +++ b/public/ia/templates/patterns/button.html @@ -0,0 +1,54 @@ + +
Default
+ + + + + + +
Primary color
+ + + + + + +
Secondary color
+ + + + + + +
Link
+ + + + + + +
Outline
+ + + + + + +
Danger
+ + + + + + +
Outline inverse
+
+ + + + + +
+ +
Large button
+ diff --git a/public/ia/templates/patterns/cards.html b/public/ia/templates/patterns/cards.html new file mode 100644 index 0000000..6e4877e --- /dev/null +++ b/public/ia/templates/patterns/cards.html @@ -0,0 +1,59 @@ + diff --git a/public/ia/templates/patterns/details.html b/public/ia/templates/patterns/details.html new file mode 100644 index 0000000..99fd988 --- /dev/null +++ b/public/ia/templates/patterns/details.html @@ -0,0 +1,8 @@ +
+ Item Details + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam assumenda blanditiis distinctio esse facilis illo iste iure laudantium magnam maiores obcaecati officia pariatur porro recusandae rerum, sunt temporibus vitae! Magni? +
+
+ Already Open + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias architecto consequatur culpa eos ex facilis, molestias non sequi tempore voluptas. Cumque, excepturi labore odio odit officiis porro quod rerum tempora! +
diff --git a/public/ia/templates/patterns/feedback.html b/public/ia/templates/patterns/feedback.html new file mode 100644 index 0000000..8114160 --- /dev/null +++ b/public/ia/templates/patterns/feedback.html @@ -0,0 +1,27 @@ +
+ × +

Status

+
    +
  • +

    This is a feedback message for the user.

    +
  • +
  • +

    This is another feedback message for the user.

    +
  • +
+
+ +
+ × +

Error

+

This is an error feedback message.

+
+ +
+ × +

This is an warning feedback message.

+
+ +
+

This is an info feedback message.

+
diff --git a/public/ia/templates/patterns/form.html b/public/ia/templates/patterns/form.html new file mode 100644 index 0000000..0863ce1 --- /dev/null +++ b/public/ia/templates/patterns/form.html @@ -0,0 +1,92 @@ +
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + + +
+
+ + +
+ + + + Delete
+ +
diff --git a/public/ia/templates/patterns/heading.html b/public/ia/templates/patterns/heading.html new file mode 100644 index 0000000..a78931c --- /dev/null +++ b/public/ia/templates/patterns/heading.html @@ -0,0 +1,4 @@ +

Level one heading

+

Level two heading

+

Level three heading

+

Level four heading

diff --git a/public/ia/templates/patterns/inline-block.html b/public/ia/templates/patterns/inline-block.html new file mode 100644 index 0000000..a08ee03 --- /dev/null +++ b/public/ia/templates/patterns/inline-block.html @@ -0,0 +1,17 @@ + +

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus fuga nisi non perferendis quidem soluta voluptate. Accusantium adipisci aut, dolorum explicabo ipsa ipsum molestiae numquam quas recusandae similique voluptate voluptatem?

+
+ Applying?

December 15 deadline for  MSc & PhD programs.

How to Apply

+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse expedita explicabo necessitatibus veritatis! Ad aperiam culpa, cum distinctio dolorum explicabo, fuga harum incidunt ipsa molestias neque quae quaerat quisquam reprehenderit.

+
+

Lab Calendar

+ +
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse expedita explicabo necessitatibus veritatis! Ad aperiam culpa, cum distinctio dolorum explicabo, fuga harum incidunt ipsa molestias neque quae quaerat quisquam reprehenderit.

diff --git a/public/ia/templates/patterns/intro.html b/public/ia/templates/patterns/intro.html new file mode 100644 index 0000000..e828b8a --- /dev/null +++ b/public/ia/templates/patterns/intro.html @@ -0,0 +1,5 @@ +

+ Recognized internationally for excellence in research and teaching with a conscious focus on interdisciplinary programs, + the Department encourages diversity both within its community and areas of study, and plays a leadership role in research, + teaching and outreach activities to champion the understanding and integration of Computer Science within all aspects of society. +

diff --git a/public/ia/templates/patterns/landing-banner.html b/public/ia/templates/patterns/landing-banner.html new file mode 100644 index 0000000..8866939 --- /dev/null +++ b/public/ia/templates/patterns/landing-banner.html @@ -0,0 +1,10 @@ +
+ +
+ Graduate +
+ +
+

Graduate Students

+
+
diff --git a/public/ia/templates/patterns/landing-intro.html b/public/ia/templates/patterns/landing-intro.html new file mode 100644 index 0000000..918a775 --- /dev/null +++ b/public/ia/templates/patterns/landing-intro.html @@ -0,0 +1,7 @@ +
+

+ Recognized internationally for excellence in research and teaching with a conscious focus on interdisciplinary programs, + the Department encourages diversity both within its community and areas of study, and plays a leadership role in research, + teaching and outreach activities to champion the understanding and integration of Computer Science within all aspects of society. +

+
diff --git a/public/ia/templates/patterns/list-ordered.html b/public/ia/templates/patterns/list-ordered.html new file mode 100644 index 0000000..aa33172 --- /dev/null +++ b/public/ia/templates/patterns/list-ordered.html @@ -0,0 +1,11 @@ +
    +
  1. First list item
  2. +
  3. Second item in a list of ordered items
  4. +
  5. Third item in the list +
      +
    1. First list item
    2. +
    3. Second item in a list of ordered items
    4. +
    5. Third item in the list
    6. +
    +
  6. +
diff --git a/public/ia/templates/patterns/list-unordered.html b/public/ia/templates/patterns/list-unordered.html new file mode 100644 index 0000000..9c520ac --- /dev/null +++ b/public/ia/templates/patterns/list-unordered.html @@ -0,0 +1,11 @@ +
    +
  • A list item
  • +
  • Another item in a list
  • +
  • Yet another item in this list of items +
      +
    • A list item
    • +
    • Another item in a list
    • +
    • Yet another item in this list of items
    • +
    +
  • +
diff --git a/public/ia/templates/patterns/pagination.html b/public/ia/templates/patterns/pagination.html new file mode 100644 index 0000000..6c4cb47 --- /dev/null +++ b/public/ia/templates/patterns/pagination.html @@ -0,0 +1,16 @@ + + diff --git a/public/ia/templates/patterns/paragraph.html b/public/ia/templates/patterns/paragraph.html new file mode 100644 index 0000000..d5b50d8 --- /dev/null +++ b/public/ia/templates/patterns/paragraph.html @@ -0,0 +1,7 @@ +

+ This is a paragraph of text. Some of the text may be emphasised and some it might even be + strongly emphasised. Occasionally quoted text may be found within a paragraph …and of + course a link may appear at any point in the text. The average paragraph contains five or six + sentences although some may contain as little or one or two while others carry on for anything up to ten sentences + and beyond. +

diff --git a/public/ia/templates/patterns/profile.html.twig b/public/ia/templates/patterns/profile.html.twig new file mode 100644 index 0000000..cdd784f --- /dev/null +++ b/public/ia/templates/patterns/profile.html.twig @@ -0,0 +1,31 @@ +
+
+ {% for i in 0..4 %} +
+
+
+
+
+

John Smith

+ +
+
+
+ Placeholder image +
+
+ +
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Phasellus nec iaculis mauris. @bulmaio. + #css #responsive +
+ +
+
+
+
+ {% endfor %} +
+
diff --git a/public/ia/templates/patterns/site-alert.html b/public/ia/templates/patterns/site-alert.html new file mode 100644 index 0000000..07dbad8 --- /dev/null +++ b/public/ia/templates/patterns/site-alert.html @@ -0,0 +1,17 @@ +
+ +
+ +
!
+ +
+ Coronavirus (COVID-19) and UBC’s response: UBC is + transitioning to online classes as of March 16, 2020 for the remainder + of term. Campuses remain open and all university operations continue as + normal, however UBC is piloting a remote working arrangement. Further + information and FAQs available here Read More + +
+
+ +
diff --git a/public/ia/templates/prototypes/cards.twig b/public/ia/templates/prototypes/cards.twig new file mode 100644 index 0000000..3750499 --- /dev/null +++ b/public/ia/templates/prototypes/cards.twig @@ -0,0 +1,85 @@ + + diff --git a/public/ia/templates/prototypes/key-landing-fluid-hero.twig b/public/ia/templates/prototypes/key-landing-fluid-hero.twig new file mode 100644 index 0000000..bd32d08 --- /dev/null +++ b/public/ia/templates/prototypes/key-landing-fluid-hero.twig @@ -0,0 +1,24 @@ +{% extends "base.twig" %} + +{% block body %} + + +
+
+
+ +
+

Graduate Students

+
+
+ +
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi non ex dolor. Mauris fermentum, justo non. Eget luctus ante + justo et ex. Etiam lobortis ante augue, ac tempor dolor gravida rutrum.

+
+
+ + {% include 'prototypes/cards.twig' %} + +{% endblock %} diff --git a/public/ia/templates/prototypes/key-landing.twig b/public/ia/templates/prototypes/key-landing.twig new file mode 100644 index 0000000..532b572 --- /dev/null +++ b/public/ia/templates/prototypes/key-landing.twig @@ -0,0 +1,30 @@ +{% extends "base.twig" %} + +{% block body %} + + + +
+ +
+ Graduate +
+ +
+

Graduate Students

+
+
+ +
+

+ The UBC Department of Computer Science, established in May 1968, is one of the top computer science departments in + North America. Recognized internationally for excellence in research and teaching with a conscious focus on + interdisciplinary programs, the Department encourages diversity both within its community and areas of study, and + plays a leadership role in research, teaching and outreach activities to champion the understanding and + integration of Computer Science within all aspects of society. +

+
+ + {% include 'prototypes/cards.twig' %} + +{% endblock %} diff --git a/public/ia/templates/styleguide.twig b/public/ia/templates/styleguide.twig new file mode 100644 index 0000000..2dc7abb --- /dev/null +++ b/public/ia/templates/styleguide.twig @@ -0,0 +1,372 @@ +{% extends "base.twig" %} +{% block body %} +
+ {# + Original content from https://paulrobertlloyd.com/styleguide + @todo: Replace styles with our own. + #} +
+

Style Guide

+
+

An overview of the typographic and layout styles available for content pages

+
+
+

The content on this page lies within the .node scope + [1] + .

+

Second-level heading +

+

Main page headings are h1 elements, so futher headings within this scope should start with h2, an example of which appears directly above. More than one may be used per page. Consider using an h2 unless you need a header level of less importance, or as a sub-header to an existing h2 element.

+

Third-level heading +

+

The header above is an h3 element, which may be used for any form of page-level header which falls below the h2 header in a document hierarchy.

+

Fourth-level heading +

+

The header above is an h4 element, which may be used for any form of page-level header which falls below the h3 header in a document hierarchy.

+

Grouping content +

+

Paragraphs +

+

All paragraphs are wrapped in p tags.

+

Horizontal rule +

+

The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book. The following extract from Pandora’s Star by Peter F. Hamilton shows two paragraphs that precede a scene change and the paragraph that follows it:

+

Dudley was ninety-two, in his second life, and fast approaching time for another rejuvenation. Despite his body having the physical age of a standard fifty-year-old, the prospect of a long degrading campaign within academia was one he regarded with dread. For a supposedly advanced civilization, the Intersolar Commonwealth could be appallingly backward at times, not to mention cruel.

+

+ Maybe it won’t be that bad, he told himself. The lie was comforting enough to get him through the rest of the night’s shift.

+
+

The Carlton AllLander drove Dudley home just after dawn. Like the astronomer, the vehicle was old and worn, but perfectly capable of doing its job. It had a cheap diesel engine, common enough on a semi-frontier world like Gralmond, although its drive array was a thoroughly modern photoneural processor. With its high suspension and deep-tread tyres it could plough along the dirt track to the observatory in all weather and seasons, including the metre-deep snow of Gralmond’s winters.

+

Pre-formatted text +

+

The pre element represents a block of pre-formatted text, in which structure is represented by typographic conventions rather than by elements. Such examples are an e-mail (with paragraphs indicated by blank lines, lists indicated by lines prefixed with a bullet), fragments of computer code (with structure indicated according to the conventions of that language) or displaying ASCII art. Here’s an example showing the printable characters of ASCII:

+
  ! " # $ % & ' ( ) * + , - . /
+0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+@ A B C D E F G H I J K L M N O
+P Q R S T U V W X Y Z [ \ ] ^ _
+` a b c d e f g h i j k l m n o
+p q r s t u v w x y z { | } ~
+
+

Blockquotes +

+

The blockquote element represents a section that is being quoted from another source.

+
+

Big Yellow Taxi there by Joni Mitchell, a song in which she complains that they ‘paved paradise to put up a parking lot’ – a measure which actually would have alleviated traffic congestion on the outskirts of paradise. Something which Joni singularly fails to point out, perhaps because it doesn’t quite fit in with her blinkered view of the world.

+

Nevertheless, nice song.

+
+

If you wish to add a citation, enclose it within a <figure> tag:

+
+
+

Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise. Indeed, it has been said that democracy is the worst form of government except all those other forms that have been tried from time to time.

+
+
+

Winston Churchill, in + a speech to the House of Commons + . 11th November 1947

+
+
+

Ordered list +

+

The ol element denotes an ordered list, and various numbering schemes are available through the CSS (including 1,2,3… a,b,c… i,ii,iii… and so on). Each item requires a surrounding <li> and </li> tag, to denote individual items within the list (as you may have guessed, li stands for list item).

+
    +
  1. This is an ordered list.
  2. +
  3. This is the second item, which contains a sub list
      +
    1. This is the sub list, which is also ordered.
    2. +
    3. It has two items.
    4. +
    +
  4. +
  5. This is the final item on this list.
  6. +
+

Unordered list +

+

The ul element denotes an unordered list (ie. a list of loose items that don’t require numbering, or a bulleted list). Again, each item requires a surrounding <li> and </li> tag, to denote individual items. Here is an example list showing the constituent parts of the British Isles:

+
    +
  • United Kingdom of Great Britain and Northern Ireland:
      +
    • England
    • +
    • Scotland
    • +
    • Wales
    • +
    • Northern Ireland
    • +
    +
  • +
  • Republic of Ireland
  • +
  • Isle of Man
  • +
  • Channel Islands:
      +
    • Bailiwick of Guernsey
    • +
    • Bailiwick of Jersey
    • +
    +
  • +
+

Sometimes we may want each list item to contain block elements, typically a paragraph or two:

+
    +
  • +

    The British Isles is an archipelago consisting of the two large islands of Great Britain and Ireland, and many smaller surrounding islands.

    +
  • +
  • +

    Great Britain is the largest island of the archipelago. Ireland is the second largest island of the archipelago and lies directly to the west of Great Britain.

    +
  • +
  • +

    The full list of islands in the British Isles includes over 1,000 islands, of which 51 have an area larger than 20 km2.

    +
  • +
+

Details +

+

The details element allows collapseable details under a summary

+
+ Item 1 Details + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, necessitatibus, optio. Amet atque deserunt dicta, eius hic illo magni obcaecati quam similique? Aliquam ducimus esse maxime possimus reprehenderit tempore vero? +
+
+ Item 2 Details + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam assumenda blanditiis distinctio esse facilis illo iste iure laudantium magnam maiores obcaecati officia pariatur porro recusandae rerum, sunt temporibus vitae! Magni? +
+
+ Already Open + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias architecto consequatur culpa eos ex facilis, molestias non sequi tempore voluptas. Cumque, excepturi labore odio odit officiis porro quod rerum tempora! +
+

Definition list +

+

he dl element is for another type of list called a definition list. Instead of list items, the content of a dl consists of dt (definition term) and dd (definition description) pairs. Though it may be called a “definition list”, dl can apply to other scenarios where a parent/child relationship is applicable. For example, it may be used for marking up dialogues, with each dt naming a speaker, and each dd containing his or her words.

+
+
This is a term.
+
This is the definition of that term, which both live in a dl.
+
Here is another term.
+
And it gets a definition too, which is this line.
+
+

Images +

+ +

The img element is used to show photos and graphics, for an excerpted piece of content. The following examples show a section of text with an image: + +

+

Left Align

+

+ + For images using the .align-left modifier, the content will stretch across the entire width of the page. +

+

Right Align

+

+ + For images using the .align-right modifier, the content will stretch across the entire width of the page. +

+ +
+

Figures +

+

The figure element is used to annotate illustrations, diagrams, photos, code listings or provide a citation for an excerpted piece of content. The following examples show a section of pre-formatted text, a quotation and an image:

+ + +
+ +
+

No alignment of image, with supporting caption.

+
+
+

For figures using the .align-bleed modifier, the content will stretch across the entire width of the page.

+
+ +
+

Right aligned image in figure with caption.

+
+
+
+ +
+

Left aligned image in figure with caption

+
+
+
+ +
+

Centered aligned image in figure with caption

+
+
+

For figures using the .align-pull utility, the content will be floated to the right side of the page. Note also that the classes align-start and align-end are available for floating content to the start or end of a passage of text.

+

Text-level semantics +

+

There are a number of inline HTML elements you may use anywhere within other elements.

+ +

The a element is used to hyperlink text, be that to another page, a named fragment on the current page or any other location on the web. Example:

+

+ Go to the home page or return to the top of this page.

+

Stressed emphasis +

+

The em element is used to denote text with stressed emphasis, i.e., something you’d pronounce differently. Where italicising is required for stylistic differentiation, the i element may be preferable. Example:

+

You simply must try the negitoro maki!

+

Strong importance +

+

The strong element is used to denote text with strong importance. Where bolding is used for stylistic differentiation, the b element may be preferable. Example:

+

+ Don’t stick nails in the electrical outlet.

+

Small print +

+

The small element is used to represent disclaimers, caveats, legal restrictions, or copyrights (commonly referred to as ‘small print’). It can also be used for attributions or satisfying licensing requirements. Example:

+

+ Copyright © 1922-2011 Acme Corporation. All Rights Reserved. +

+

Strikethrough +

+

The s element is used to represent content that is no longer accurate or relevant. When indicating document edits i.e., marking a span of text as having been removed from a document, use the del element instead. Example:

+

+ Recommended retail price: £3.99 per bottle +
+ Now selling for just £2.99 a bottle! +

+

Citations +

+

The cite element is used to represent the title of a work (e.g. a book, essay, poem, song, film, TV show, sculpture, painting, musical, exhibition, etc). This can be a work that is being quoted or referenced in detail (i.e. a citation), or it can just be a work that is mentioned in passing. Example:

+

+ Universal Declaration of Human Rights, United Nations, December 1948. Adopted by General Assembly resolution 217 A (III).

+

Inline quotes +

+

The q element is used for quoting text inline. Example showing nested quotations:

+

John said, I saw Lucy at lunch, she told me Mary wants you to get some ice cream on your way home. I think I will get some at Ben and Jerry’s, on Gloucester Road. +

+

Definition +

+

The dfn element is used to highlight the first use of a term. The title attribute can be used to describe the term. Example:

+

Bob’s canine mother and equine father sat him down and carefully explained that he was an allopolyploid organism.

+

Abbreviation +

+

The abbr element is used for any abbreviated text, whether it be acronym, initialism, or otherwise. Any text in the title attribute will appear when the user’s mouse hovers the abbreviation. Example abbreviations:

+

+ BBC, HTML, and Staffs. +

+

Time +

+

The time element is used to represent either a time on a 24 hour clock, or a precise date in the proleptic Gregorian calendar, optionally with a time and a time-zone offset. Example:

+

Queen Elizabeth II was proclaimed sovereign of each of the Commonwealth realms on and , after the death of her father, King George VI.

+

Code +

+

The code element is used to represent fragments of computer code. Useful for technology-oriented sites, not so useful otherwise. Example:

+

When you call the activate() method on the robotSnowman object, the eyes glow.

+

The following exampes shows the code element used in conjunction with the pre element (with the applicable syntax highlighting applied automatically):

+
console.log('Hello World!');
+

Variable +

+

The var element is used to denote a variable in a mathematical expression or programming context, but can also be used to indicate a placeholder where the contents should be replaced with your own value. Example:

+

If there are n pipes leading to the ice cream factory then I expect at least n flavours of ice cream to be available for purchase!

+

Sample output +

+

The samp element is used to represent (sample) output from a program or computing system. Useful for technology-oriented sites, not so useful otherwise. Example:

+

The computer said Too much cheese in tray two but I didn’t know what that meant.

+

Keyboard entry +

+

The kbd element is used to denote user input (typically via a keyboard, although it may also be used to represent other input methods, such as voice commands). Example:

+

To take a screenshot on your Mac, press ⌘ Cmd + ⌘ Shift + 3.

+

Superscript and subscript text +

+

The sup element represents a superscript and the sub element represents a sub. These elements must be used only to mark up typographical conventions with specific meanings, not for typographical presentation. As a guide, only use these elements if their absence would change the meaning of the content. Example:

+

The coordinate of the ith point is (x + i + + , y + i + + ). For example, the 10th point has coordinate (x10 + , y10 + ).

+

f(x, n) = log4 + x + + n + +

+

Italicised +

+

The i element is used for text in an alternate voice or mood, or otherwise offset from the normal prose. Examples include taxonomic designations, technical terms, idiomatic phrases from another language, the name of a ship or other spans of text whose typographic presentation is typically italicised. Example:

+

There is a certain je ne sais quoi in the air.

+

Emboldened +

+

The b element is used for text stylistically offset from normal prose without conveying extra importance, such as key words in a document abstract, product names in a review, or other spans of text whose typographic presentation is typically emboldened. Example:

+

You enter a small room. Your sword glows brighter. A rat scurries past the corner wall.

+

Marked or highlighted text +

+

The mark element is used to represent a run of text marked or highlighted for reference purposes. When used in a quotation it indicates a highlight not originally present but added to bring the reader’s attention to that part of the text. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its relevance to the user’s current activity. Example:

+

I also have some kittens who are visiting me these days. They’re really cute. I think they like my garden! Maybe I should adopt a kitten.

+

Edits +

+

The del element is used to represent deleted or retracted text which still must remain on the page for some reason. Meanwhile its counterpart, the ins element, is used to represent inserted text. Both del and ins have a datetime attribute which allows you to include a timestamp directly in the element. Example inserted text and usage:

+

She bought two five pairs of shoes.

+

Tabular data +

+

Tables should be used when displaying tabular data. The thead, tfoot and tbody elements enable you to group rows within each a table.

+

If you use these elements, you must use every element. They should appear in this order: thead, tfoot and tbody, so that browsers can render the foot before receiving all the data. You must use these tags within the table element.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
The Very Best EggnogServes 12Serves 24
Milk1 quart2 quart
Cinnamon Sticks12
Vanilla Bean, Split12
Cloves510
Mace1020
Egg Yolks1224
Cups Sugar1 1/2 cups3 cups
Dark Rum1 1/2 cups3 cups
Brandy1 1/2 cups3 cups
Vanilla1 tbsp2 tbsp
Light Cream1 quart2 quart
+
+
+
+
    +
  1. +

    This scope may also include footnotes. ↩︎ +

    +
  2. +
+
+
+{% endblock %} diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..ad454e2 --- /dev/null +++ b/public/index.php @@ -0,0 +1,388 @@ + getenv('AC_URL') . '/api/v1/', +//]); +//?> + +post('issue-token', [ +// 'json' => [ +// 'username' => getenv('AC_USER'), +// 'password' => getenv('AC_PASS'), +// 'client_name' => 'AC', +// 'client_vendor' => 'UBC CS', +// ], +//]); +// +//if ($response->getStatusCode() != 200) { +// throw new ErrorException('Token not issued'); +//} +//if (!str_contains($response->getHeaderLine('Content-Type'), 'application/json')) { +// throw new ErrorException('Response not json' . $response->getHeaderLine('Content-Type')); +//} +// +//$result = json_decode($response->getBody(), true); +//if (empty($result['is_ok']) || empty($result['token'])) { +// throw new ErrorException('Authentication rejected'); +//} +//$token = $result['token']; +// +//$client = new GuzzleHttp\Client([ +// 'base_uri' => getenv('AC_URL') . '/api/v1/', +// 'headers' => [ +// 'X-Angie-AuthApiToken' => $token, +// ] +//]); +// +////$response = $client->get('projects'); +//// +////$project_labels = json_decode($response->getBody()->getContents(), true); +////var_dump($project_labels); +// +// +//$time_start = microtime(true); +//$client->get('projects'); +//$client->get('projects/categories'); +//$client->get('labels/project-labels'); +//$client->get('labels/task-labels'); +//$client->get('users'); +// +//$execution_time = (microtime(true) - $time_start); +//echo '
Sync Total Execution Time: '.$execution_time.' Seconds'; +// +//$time_start = microtime(true); +// +// +//$promises = [ +// 'projects' => $client->getAsync('projects'), +// 'project-categories' => $client->getAsync('projects/categories'), +// 'project-labels' => $client->getAsync('labels/project-labels'), +// 'task-labels' => $client->getAsync('labels/task-labels'), +// 'users' => $client->getAsync('users'), +//]; +// +//// Wait for the requests to complete; throws a ConnectException +//// if any of the requests fail +////$responses = Utils::unwrap($promises); +//$responses = Utils::settle( +// Utils::unwrap($promises), +//)->wait(); +// +// +//$execution_time = (microtime(true) - $time_start); +//echo '
Async Total Execution Time: '.$execution_time.' Seconds'; +// +// +// +//foreach ($responses as $response) { +//// echo $responses['png']->getHeader('Content-Length')[0]; +//// var_dump(json_decode($response->getBody()->getContents(), true)); +//} +// +// +//// Wait for the requests to complete, even if some of them fail +////$responses = Promise\Utils::settle($promises)->wait(); +// +// +// +////$posts = json_decode($responses[0]['value']->getBody()->getContents(), true); +////$comments = json_decode($responses[1]['value']->getBody()->getContents(), true); +// +// +//die(); +//?> + +issueToken(); + +// Default expiry 10 minutes. +// https://symfony.com/doc/current/components/cache.html +$cache = new FilesystemAdapter('ac', 600, '../cache'); + +if (!($token instanceof TokenInterface)) { + print "Invalid response\n"; + die(); +} + +$client = new Client($token); + +// Collect a key/value map of project labels. +// https://developers.activecollab.com/api-documentation/v1/projects/labels.html +$project_label_map = $cache->get('project_label_map', function (ItemInterface $item) use ($client) { + $item->expiresAfter(60 * 60 * 24); + $project_labels = $client->get('/labels/project-labels')->getJson(); + return array_column($project_labels, 'name', 'id'); +}); + +// Collect a key/value map of project categories. +// https://developers.activecollab.com/api-documentation/v1/projects/categories.html +$project_category_map = $cache->get('project_category_map', function (ItemInterface $item) use ($client) { + $item->expiresAfter(60 * 60 * 24); + $project_categories = $client->get('/projects/categories')->getJson(); + return array_column($project_categories, 'name', 'id'); +}); + +// Collect a key/value map of task labels. +// https://developers.activecollab.com/api-documentation/v1/projects/elements/tasks/labels.html +$task_label_map = $cache->get('task_label_map', function (ItemInterface $item) use ($client) { + $item->expiresAfter(60 * 60 * 24); + $task_labels = $client->get('/labels/task-labels')->getJson(); + return array_column($task_labels, 'name', 'id'); +}); + +// Collect a list of all the projects. +$projects = $cache->get('projects', function (ItemInterface $item) use ($client) { + $item->expiresAfter(60 * 60 * 24); + return $client->get('projects')->getJson(); +}); + +// Collect a list of all the users. +$users = $cache->get('users', function (ItemInterface $item) use ($client) { + $item->expiresAfter(60 * 60 * 24); + return $client->get('users')->getJson(); +}); + +$user_map = array_column($users, 'display_name', 'id'); + +// Collect a key/value map of task list names. +// Collect a list of task lists per project. +$project_task_list_map = []; +$task_lists_per_project = []; +foreach ($projects as $project) { + $project_task_lists = $cache->get('projects_task_lists.' . $project['id'], function (ItemInterface $item) use ($client, $project) { + $item->expiresAfter(3600); + return $client->get('projects/' . $project['id'] . '/task-lists')->getJson(); + }); + + $project_task_list_map += array_column($project_task_lists, 'name', 'id'); + $task_lists_per_project[$project['id']] = $project_task_lists; +} + +// Subtasks +// https://developers.activecollab.com/api-documentation/v1/projects/elements/tasks/subtasks.html + + +// Tasks +// - Filter out is_trashed and is_completed +// - Link Projects +// + +?> + + + + + + AC + + + + + + + + +
+
+ Projects +setData($project_labels) +// ->attr('table', 'class', 'datatable table') +// ->column()->title('#')->value('id')->add() +// ->column()->title('Name')->value('name')->add() +// ->render(); +// +// Table::instance() +// ->setData($task_labels) +// ->attr('table', 'class', 'datatable table') +// ->column()->title('#')->value('id')->add() +// ->column()->title('Name')->value('name')->add() +// ->render(); + +// https://github.com/jupitern/table +Table::instance() + ->setData($projects) + ->attr('table', 'class', 'datatable table') + ->attr('table', 'width', '100%') + ->column()->title('Name')->value(function ($row) { + return '' . $row['name'] . ''; + })->add() + ->column()->title('Label')->value(function ($row) use ($project_label_map) { + return $project_label_map[$row['label_id']] ?? $row['label_id']; + })->add() // ->filter(array_combine($project_label_map, $project_label_map)) + ->column()->title('Category')->value(function ($row) use ($project_category_map) { + return $project_category_map[$row['category_id']] ?? $row['category_id']; + })->add() // ->filter(array_combine($project_category_map, $project_category_map)) + ->column()->title('🚀Up Next')->value(function ($row) use ($task_lists_per_project) { + $task_list_map = array_column($task_lists_per_project[$row['id']], 'name'); + $task_list_ids = array_filter($task_list_map, fn($name) => str_contains($name, 'Up Next')); + $task_list_id = key($task_list_ids); + return $task_lists_per_project[$row['id']][$task_list_id]['open_tasks'] ?? 0; + })->add() + ->column()->title('🪵Backlog')->value(function ($row) use ($task_lists_per_project) { + $task_list_map = array_column($task_lists_per_project[$row['id']], 'name'); + $task_list_ids = array_filter($task_list_map, fn($name) => str_contains($name, 'Backlog')); + $task_list_id = key($task_list_ids); + return $task_lists_per_project[$row['id']][$task_list_id]['open_tasks'] ?? 0; + })->add() + ->column()->title('👀In Review')->value(function ($row) use ($task_lists_per_project) { + $task_list_map = array_column($task_lists_per_project[$row['id']], 'name'); + $task_list_ids = array_filter($task_list_map, fn($name) => str_contains($name, 'In Review')); + $task_list_id = key($task_list_ids); + return $task_lists_per_project[$row['id']][$task_list_id]['open_tasks'] ?? 0; + })->add() + ->column()->title('🧙‍Wish/Idea')->value(function ($row) use ($task_lists_per_project) { + $task_list_map = array_column($task_lists_per_project[$row['id']], 'name'); + $task_list_ids = array_filter($task_list_map, fn($name) => str_contains($name, 'Backlog')); + $task_list_id = key($task_list_ids); + return $task_lists_per_project[$row['id']][$task_list_id]['open_tasks'] ?? 0; + })->add() + ->column()->title('Other Task Lists')->value(function ($row) use ($task_lists_per_project) { + $task_list_links = []; + $split_out_lists = [ + 'Up Next', + 'Backlog', + 'In Review', + 'Wish', + ]; + foreach ($task_lists_per_project[$row['id']] as $task_list) { + $is_split_out_list = array_filter($split_out_lists, function ($list) use ($task_list) { + return str_contains($task_list['name'], $list); + }); + if ($is_split_out_list) { + continue; + } + $task_list_links[] = '' . $task_list['name'] . ' ' . $task_list['open_tasks'] . ''; + } + return implode('', $task_list_links); + })->add() + ->column()->title('Total Tasks')->value('count_tasks')->add() + ->render(); +// echo ''; +// foreach ($data as $project) { +// echo $project['name'] ; +// } +// echo '
'; +// print_r($data); +?> + +
+ Tasks +get('projects_tasks.' . $project['id'], function (ItemInterface $item) use ($client, $project) { + $item->expiresAfter(3600); + return $client->get('projects/' . $project['id'] . '/tasks')->getJson(); + }); + + foreach ($project_tasks['tasks'] as $task) { + $task['project_id'] = $project['id']; + $task['project_name'] = $project['name']; + $tasks[] = $task; + } +} +$today_midnight = strtotime('today'); +Table::instance() + ->setData($tasks) + ->attr('table', 'class', 'datatable table') + ->attr('table', 'width', '100%') + ->column()->title('Project')->value(function ($row) { + return '' . $row['project_name'] . ''; + })->add() + ->column()->title('Task List')->value(function ($row) use ($project_task_list_map) { + return $project_task_list_map[$row['task_list_id']] ?? $row['task_list_id']; + })->add() // ->filter(array_combine($project_category_map, $project_category_map)) + ->column()->title('Name')->value(function ($row) { + return '' . $row['name'] . ''; + })->add() + ->column()->title('Labels')->value(function ($row) { + $labels = array_column($row['labels'], 'name'); + return implode(', ', $labels); + })->add() + ->column()->title('Due On')->value(function ($row) use ($today_midnight) { + if (!empty($row['due_on'])) { + $is_past = $row['due_on'] < $today_midnight; + $formatted_due_date = date('Y-m-d', $row['due_on']); + return $is_past ? '' . $formatted_due_date . '' : $formatted_due_date; + } + return ''; + })->add() + ->column()->title('High Priority')->value(function ($row) { + $is_important = $row['is_important'] ?? FALSE; + return $is_important ? 'High' : ''; + })->add() + ->column()->title('Assigned')->value(function ($row) use ($user_map) { + if (!empty($row['assignee_id'])) { + return $user_map[$row['assignee_id']]; + } + return ''; + })->add() +// ->column()->title('Label')->value(function ($row) { +// return implode(', ', $row['labels']); +// })->add() // ->filter(array_combine($project_label_map, $project_label_map)) + ->column()->title('Open Subtasks')->value('open_subtasks')->add() + ->render(); + +?> +
+ + + + + + + + + + + + + + + + + + + diff --git a/public/themes/custom/ubccs/.gitignore b/public/themes/custom/ubccs/.gitignore new file mode 100644 index 0000000..8d4aaf4 --- /dev/null +++ b/public/themes/custom/ubccs/.gitignore @@ -0,0 +1,2 @@ +node_modules +*.map \ No newline at end of file diff --git a/public/themes/custom/ubccs/css/bootstrap.css b/public/themes/custom/ubccs/css/bootstrap.css new file mode 100644 index 0000000..98d1796 --- /dev/null +++ b/public/themes/custom/ubccs/css/bootstrap.css @@ -0,0 +1,1076 @@ +.container, +.container-fluid, +.container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1200px; + } +} +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} +.no-gutters > .col, +.no-gutters > [class*=col-] { + padding-right: 0; + padding-left: 0; +} + +.col-xxl, +.col-xxl-auto, .col-xxl-12, .col-xxl-11, .col-xxl-10, .col-xxl-9, .col-xxl-8, .col-xxl-7, .col-xxl-6, .col-xxl-5, .col-xxl-4, .col-xxl-3, .col-xxl-2, .col-xxl-1, .col-xl, +.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg, +.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md, +.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm, +.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col, +.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; +} + +.row-cols-4 > * { + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; +} + +.col-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; +} + +.col-3 { + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; +} + +.col-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; +} + +.col-6 { + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; +} + +.col-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; +} + +.col-9 { + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; +} + +.col-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; +} + +.col-12 { + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + order: -1; +} + +.order-last { + order: 13; +} + +.order-0 { + order: 0; +} + +.order-1 { + order: 1; +} + +.order-2 { + order: 2; +} + +.order-3 { + order: 3; +} + +.order-4 { + order: 4; +} + +.order-5 { + order: 5; +} + +.order-6 { + order: 6; +} + +.order-7 { + order: 7; +} + +.order-8 { + order: 8; +} + +.order-9 { + order: 9; +} + +.order-10 { + order: 10; +} + +.order-11 { + order: 11; +} + +.order-12 { + order: 12; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-md-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 980px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 1500px) { + .col-xxl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xxl-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xxl-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xxl-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xxl-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xxl-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xxl-first { + order: -1; + } + .order-xxl-last { + order: 13; + } + .order-xxl-0 { + order: 0; + } + .order-xxl-1 { + order: 1; + } + .order-xxl-2 { + order: 2; + } + .order-xxl-3 { + order: 3; + } + .order-xxl-4 { + order: 4; + } + .order-xxl-5 { + order: 5; + } + .order-xxl-6 { + order: 6; + } + .order-xxl-7 { + order: 7; + } + .order-xxl-8 { + order: 8; + } + .order-xxl-9 { + order: 9; + } + .order-xxl-10 { + order: 10; + } + .order-xxl-11 { + order: 11; + } + .order-xxl-12 { + order: 12; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } +} diff --git a/public/themes/custom/ubccs/css/ckeditor.css b/public/themes/custom/ubccs/css/ckeditor.css new file mode 100644 index 0000000..3e599f9 --- /dev/null +++ b/public/themes/custom/ubccs/css/ckeditor.css @@ -0,0 +1,993 @@ +@charset "UTF-8"; +/** + * $file + * Approximate clf's style in CKEditor instances on the Drupal back-end. + */ +html { + font-size: 10px; +} + +body { + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #444; + font-size: 1.7rem; + line-height: 1.5; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: #005554; + text-rendering: auto; + font-weight: 400; + line-height: 1.2; +} + +h1 { + margin-top: 0; + margin-bottom: 0; +} + +h2 { + margin-top: 3.4rem; + margin-bottom: 1.7rem; +} + +h3, +h4, +h5, +h6 { + margin-top: 2.55rem; + margin-bottom: 1.7rem; +} + +h1 { + font-size: 3.995rem; +} + +h2 { + font-size: 2.992rem; +} + +h3 { + font-size: 2.499rem; +} + +h4 { + font-size: 1.989rem; +} + +h3, +h4 { + font-weight: 700; +} + +p { + line-height: 1.5; + margin-top: 1.7rem; + margin-bottom: 1.7rem; +} + +a { + color: #00afa4; + -webkit-text-decoration-skip: ink; + text-decoration-skip-ink: auto; + transition: color 0.5s ease-in; +} + +a:hover, +a:active { + color: #005554; +} + +hr { + display: block; + height: 2px; + border: 0; + margin: 3rem auto; + width: 40%; + padding: 0; + background-color: #9e4225; + clear: both; +} + +blockquote { + border-left: 8px solid #00afa4; + list-style-position: inside; + margin-left: 0; + padding-left: 1em; + padding-right: 2em; +} + +:not(pre) > code { + padding: 0.2em 0.4em; + border-radius: 0.3em; + white-space: normal; +} + +:not(pre) > code, +pre { + background-color: #eee; +} + +pre { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} + +code, +pre { + color: #555; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + tab-size: 4; + -webkit-hyphens: none; + hyphens: none; +} + +pre, +code, +kbd, +samp { + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; +} + +figure { + display: table; + margin: 2rem 0; +} +figure img { + display: block; +} + +figcaption { + display: table-caption; + caption-side: bottom; + max-width: none; + padding: 1rem 2rem; + font-size: 1.36rem; + line-height: 1.2; +} + +figcaption p { + margin: 0; +} + +a + figcaption, +img + figcaption { + background: #9e4225; + color: #fff; +} + +blockquote + figcaption { + color: #555; +} + +[tabindex="-1"]:focus { + outline: none; +} + +@media print { + footer { + display: none; + } +} +form { + margin: 0; + padding: 0; +} + +button { + width: auto; + overflow: visible; + -webkit-appearance: none; + -moz-appearance: none; +} + +label { + display: table; + margin: 0 0 0.25em; + padding: 0; + font-weight: bold; +} + +label[for] { + cursor: pointer; +} + +fieldset { + background-color: #f6fffe; + border: 2px solid #00afa4; + border-radius: 3px; + padding: 1em; + margin: 1em 0; + min-width: 100%; +} + +.fieldset-wrapper p { + margin-top: 0; + margin-bottom: 0; +} + +legend { + font-size: 2rem; + font-weight: 700; + padding: 0 0.25em; +} + +/** + * Limits extra long instances of select elements to the max width allowed + * to avoid breaking layouts. + */ +select { + max-width: 100%; +} + +button, +input { + font-size: 1.7rem; + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + vertical-align: baseline; +} + +input { + width: auto; +} + +button { + width: auto; + overflow: visible; +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + line-height: inherit; + margin: 0; +} + +input, +select { + vertical-align: middle; +} + +input, +textarea, +select, +input[type=text] { + -webkit-appearance: none; + appearance: none; + border: 2px solid #444; + border-radius: 0; + color: #444; + margin: 0; + max-width: 100%; + padding: 0.5rem 0.8rem; +} +input:focus, +textarea:focus, +select:focus, +input[type=text]:focus { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + transition: outline ease-in-out 0.2s; +} + +input[type=image] { + border: 0; +} + +button:hover, +input[type=image]:hover, +input[type=button]:hover, +input[type=submit]:hover { + cursor: pointer; +} + +select { + background: #fff url("../img/arrow-both.svg") no-repeat right 1.3rem center; + background-size: 1rem; + padding-right: 3rem; +} + +select[multiple] { + background-image: none; +} + +input[type=checkbox], +input[type=radio] { + padding: 0; + display: inline-block; +} + +[type=checkbox], +[type=radio] { + height: 2rem; + width: 2rem; + position: relative; + border: 0; + vertical-align: middle; +} +[type=checkbox]:focus, +[type=radio]:focus { + outline: none; +} + +[type=checkbox] + label, +[type=radio] + label { + font-weight: 400; + margin-left: 0.6rem; +} + +[type=checkbox]::before, +[type=radio]::before { + background-color: #fff; + content: " "; + display: inline-block; + text-indent: 0.15em; + vertical-align: middle; + position: absolute; + top: 0; + left: 0; + cursor: pointer; +} + +[type=checkbox]::before { + border-radius: 0.2rem; + box-shadow: 0 0 0 0.2rem #444; + height: 2rem; + line-height: 2rem; + margin-left: 1px; + margin-right: 0.6em; + width: 2rem; +} + +[type=radio]::before { + border-radius: 100%; + box-shadow: 0 0 0 0.2rem #ffffff, 0 0 0 0.4rem #444; + height: 1.4rem; + line-height: 1.4rem; + margin-left: 3px; + margin-right: 0.75em; + width: 1.4rem; +} + +[type=checkbox]:checked::before, +[type=radio]:checked::before { + background-color: #00afa4; + box-shadow: 0 0 0 0.2rem #00afa4; +} + +[type=radio]:checked::before { + box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem #00afa4; +} + +[type=checkbox]:checked::before, +[type=checkbox]:checked:disabled::before { + background-image: url("../img/correct8.svg"); + background-repeat: no-repeat; + background-position: 50%; +} + +[type=radio]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 6px; +} + +[type=checkbox]:disabled + label { + color: #d6d7d9; +} + +[type=checkbox]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 3px; +} + +[type=checkbox]:disabled::before, +[type=radio]:disabled::before { + background: #f1f1f1; + box-shadow: 0 0 0 0.2rem #999; + cursor: not-allowed; +} + +img { + max-width: 100%; + height: auto; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 1.7rem; + margin-left: 0; + padding-left: 3.4rem; +} + +li { + line-height: 1.5; +} + +table, +tbody, +td, +tfoot, +th, +thead, +tr { + border: 0; + margin: 0; + padding: 0; +} + +table { + border-collapse: collapse; + margin-bottom: 24px; +} + +caption, +th { + text-align: left; +} + +th, +td { + padding: 1rem; + border: 0 solid #d7e0e7; +} + +th { + vertical-align: bottom; + border-bottom-width: 2px; +} + +td { + vertical-align: top; + border-bottom-width: 1px; +} + +th :first-child, +td :first-child { + margin-top: 0; +} + +th :last-child, +td :last-child { + margin-bottom: 0; +} + +/** + * @file + * Alignment classes for text and block level elements. + */ +.text-align-left { + text-align: left; +} + +.text-align-right { + text-align: right; +} + +.text-align-center { + text-align: center; +} + +.text-align-justify { + text-align: justify; +} + +/** + * Alignment classes for block level elements (images, videos, blockquotes, etc.) + */ +.align-left { + float: left; +} + +.align-right { + float: right; +} + +.align-center { + margin-right: auto; + margin-left: auto; +} + +.image--left, +.image--right, +.image--center { + clear: both; + margin-top: 2rem; + margin-bottom: 2rem; +} + +.align-left, +.image--left { + float: left; + margin-right: 2rem; +} + +.align-right, +.image--right { + float: right; + margin-left: 2rem; +} + +.align-center, +.image--center { + margin-right: auto; + margin-left: auto; +} + +.button, +.image-button { + margin-left: 0; + margin-right: 0; +} + +.read-more__link, .button { + display: inline-block; + padding: 0.7rem 1.7rem; + border: 0; + border-radius: 0.2rem; + background: none; + text-decoration: none; + transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); + outline-offset: 2px; +} +.button--hover.read-more__link, .button--hover.button, .button--focus.read-more__link, .button--focus.button, .read-more__link:hover, .button:hover, .read-more__link:focus, .button:focus { + text-decoration: none; + outline: none; +} +.button--focus.read-more__link, .button--focus.button, .read-more__link:focus, .button:focus { + z-index: 10; + outline: 1px dotted #00afa4; +} +.button--active.read-more__link, .button--active.button, .read-more__link:active, .button:active { + transition: none; +} + +.field-add-more-submit.button { + font-size: 0.8em; +} + +.button.form-submit, +.button--primary { + border-color: #00afa4; + background-color: #00afa4; + color: #fff; +} +.button.form-submit.button--hover, .button.form-submit:hover, +.button--hover.button--primary, +.button--primary:hover { + background-color: #007c74; + color: #fff; + box-shadow: 0 1px 2px hsla(203deg, 10%, 10%, 0.25); +} +.button.form-submit.button--active, .button.form-submit:active, +.button--active.button--primary, +.button--primary:active { + background-color: #005554; + box-shadow: inset 0 1px 3px hsla(0deg, 0%, 0%, 0.2); +} + +.button--secondary { + border-color: #005554; + background-color: #005554; + color: #fff; +} +.button--focus.button--secondary, .button--hover.button--secondary, .button--secondary:hover, .button--secondary:focus { + background-color: #005554; + border-color: #005554; + color: #fff; +} +.button--hover.button--secondary, .button--secondary:hover { + background-color: #007c74; + box-shadow: 0 1px 2px hsla(203deg, 10%, 10%, 0.25); +} +.button--active.button--secondary, .button--secondary:active { + background-color: #003c3b; + box-shadow: inset 0 1px 3px hsla(0deg, 0%, 0%, 0.2); +} + +/** + * Overrides styling from system.theme. + */ +.button-action::before { + margin-left: -0.2em; + padding-right: 0.2em; + font-size: 0.875rem; + line-height: 16px; +} + +[dir=rtl] .button-action::before { + margin-right: -0.2em; + margin-left: 0; + padding-right: 0; + padding-left: 0.2em; +} + +/* Link actions. */ +/** + * Style a clickable/tappable element as a link. Duplicates the base style for + * the tag, plus a reset for padding, borders and background. + */ +.link { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + background: none; + text-decoration: none; + color: #00afa4; +} +.link:hover, .link:active { + text-decoration: underline; + color: #005554; +} + +/** + * We've temporarily added the danger button here, bit of a harsh reset but we + * need it. + * @todo replace with link--danger. + * See https://www.drupal.org/node/2123731 + */ +.button--danger { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + box-shadow: none; + background: none; + color: #c72100; + text-decoration: underline; +} +.button--danger.button--focus, .button--danger.button--hover, .button--danger.button--active, .button--danger:hover, .button--danger:focus, .button--danger:active { + color: #ff2a00; + text-decoration: underline; + text-shadow: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; +} +.button--danger:disabled, .button--danger.is-disabled { + color: #737373; + cursor: default; + text-decoration: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; +} + +.read-more__link, +.button--outline { + color: #00afa4; + box-shadow: inset 0 0 0 2px #00afa4; +} +.button--hover.read-more__link, .read-more__link:hover, +.button--outline.button--hover, +.button--outline:hover { + box-shadow: inset 0 0 0 2px #007c74; + color: #007c74; +} +.button--active.read-more__link, .read-more__link:active, +.button--outline.button--active, +.button--outline:active { + background-color: rgba(255, 255, 255, 0.3); + color: #005554; + box-shadow: inset 0 0 0 2px #005554; +} + +.button--inverse { + color: #fff; + box-shadow: inset 0 0 0 2px #fff; +} +.button--inverse.button--hover, .button--inverse.button--active, .button--inverse:hover, .button--inverse:active { + background-color: rgba(255, 255, 255, 0.2); + color: #fff; +} +.button--inverse.button--active, .button--inverse:active { + background-color: rgba(255, 255, 255, 0.3); +} + +.button--large { + border-radius: 0.3rem; + font-size: 2rem; + padding: 1rem 2rem; +} + +.read-more__link, +.button--small { + font-size: 1.5rem; + padding: 0.5rem 1.5rem; +} + +.button:disabled, +.button:disabled:active, +.button.is-disabled, +.button.is-disabled:active { + background-color: #ededed; + box-shadow: none; + color: #5c5c5c; + cursor: default; + text-shadow: 0 1px hsla(0deg, 0%, 100%, 0.6); +} + +.read-more { + margin-top: 2rem; +} + +.caption { + display: table; +} + +.caption > * { + display: block; + max-width: 100%; +} + +.caption > figcaption { + display: table-caption; + max-width: none; + caption-side: bottom; +} + +.media + figcaption { + background: #9e4225; + color: #fff; +} + +.caption .media .field { + line-height: 1; +} + +/* Override clf's default blockquote and pre styles when captioned. */ +.caption-pre > pre, +.caption-blockquote > blockquote { + margin: 0; +} + +.caption-blockquote > figcaption::before { + content: "— "; +} + +.caption-blockquote > figcaption { + text-align: left; +} + +[dir=rtl] .caption-blockquote > figcaption { + text-align: right; +} + +details { + padding: 0.5rem 0; + border: 0; + margin-top: 1rem; + margin-bottom: 1rem; +} + +details > .node__content { + padding-left: 1rem; + padding-right: 1rem; +} + +.details--small { + margin-top: 0.5rem; + margin-bottom: 0.5rem; + border: 0; +} +.details--small summary { + font-weight: bold; + font-size: 1.7rem; +} + +details > .details-wrapper { + padding-left: 1rem; + padding-right: 1rem; +} + +.details-wrapper { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.details-wrapper > :last-child { + margin-bottom: 1rem; +} + +details > summary { + list-style: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details summary { + font-size: 2rem; + background-repeat: no-repeat; + background-position: right 1rem top 50%; + background-size: 1.7rem 1.7rem; + color: #00afa4; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 29H35V11a3 3 0 00-6 0v18H11a3 3 0 000 6h18v18a3 3 0 006 0V35h18a3 3 0 000-6z' fill='%2300afa4'/%3E%3C/svg%3E"); + border-bottom: 1px solid #005554; + padding-right: 3rem; + padding-left: 1rem; +} + +details[open] summary { + border-bottom-width: 3px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 34H11a3 3 0 010-6h42a3 3 0 010 6z' fill='%2300afa4'/%3E%3C/svg%3E"); +} + +@media (max-width: 767.98px) { + details summary { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} +.node__header_image img { + width: 100%; + height: auto; +} + +.inline-block-left, +.inline-block-right { + margin: 0 0 1rem 0; + padding: 2rem; + background-color: #005554; + color: #fff; +} +@media (min-width: 768px) { + .inline-block-left, + .inline-block-right { + max-width: 260px; + width: 100%; + } +} +.inline-block-left h2, +.inline-block-left h3, +.inline-block-left h4, +.inline-block-left a, +.inline-block-right h2, +.inline-block-right h3, +.inline-block-right h4, +.inline-block-right a { + color: #fff; +} +.inline-block-left h2, +.inline-block-left h3, +.inline-block-left h4, +.inline-block-right h2, +.inline-block-right h3, +.inline-block-right h4 { + margin-top: 0; +} + +.inline-block-left { + margin-right: 2rem; +} +@media (min-width: 768px) { + .inline-block-left { + float: left; + clear: left; + } +} + +.inline-block-right { + margin-left: 2rem; +} +@media (min-width: 768px) { + .inline-block-right { + float: right; + clear: right; + } +} + +.media--type-logo { + display: inline-block; + vertical-align: middle; + padding-left: 2rem; +} +.media--type-logo div { + line-height: 0; +} +.media--type-logo img { + object-fit: contain; +} + +.media--type-logo:first-of-type { + padding-left: 0; +} + +.node table { + width: 100%; + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #d7e0e7; + border-right-width: 0; + border-bottom-width: 0; +} +.node td, +.node th { + border: 0 solid #d7e0e7; + border-right-width: 1px; + border-bottom-width: 1px; + padding: 0.5rem 0.8rem; + text-align: left; +} +.node thead th { + vertical-align: bottom; +} + +td.is-active { + background-color: transparent; +} + +.text-primary { + color: #9e4225; +} + +.text-secondary { + color: #005554; +} + +.text-large { + font-size: 3.4rem; +} + +.intro { + color: #cc6e20; + font-size: 2.2rem; +} + +.caption > * { + background: transparent; + padding: 0; + border: 0; +} + +.caption > figcaption { + border: 0; + padding: 1rem 2rem; + text-align: left; + font-size: 1.36rem; +} + +.caption .cke_image_resizer_wrapper + figcaption { + background: #9e4225; + color: #fff; +} + +.cke_show_borders table.cke_show_border, +.cke_show_borders table.cke_show_border > tr > td, +.cke_show_borders table.cke_show_border > tr > th, +.cke_show_borders table.cke_show_border > tbody > tr > td, +.cke_show_borders table.cke_show_border > tbody > tr > th, +.cke_show_borders table.cke_show_border > thead > tr > td, +.cke_show_borders table.cke_show_border > thead > tr > th, +.cke_show_borders table.cke_show_border > tfoot > tr > td, +.cke_show_borders table.cke_show_border > tfoot > tr > th { + border: #000 1px dotted !important; +} + +.cke_widget_element .media { + min-width: 100px; +} + +.cke_widget_drupalmedia { + display: inline-block; +} diff --git a/public/themes/custom/ubccs/css/ckeditor5.css b/public/themes/custom/ubccs/css/ckeditor5.css new file mode 100644 index 0000000..d51267e --- /dev/null +++ b/public/themes/custom/ubccs/css/ckeditor5.css @@ -0,0 +1,834 @@ +@charset "UTF-8"; +/** + * $file + * Approximate clf's style in CKEditor instances on the Drupal back-end. + */ +.ck-content { + /** + * Limits extra long instances of select elements to the max width allowed + * to avoid breaking layouts. + */ + /** + * @file + * Alignment classes for text and block level elements. + */ + /** + * Alignment classes for block level elements (images, videos, blockquotes, etc.) + */ + /** + * Overrides styling from system.theme. + */ + /* Link actions. */ + /** + * Style a clickable/tappable element as a link. Duplicates the base style for + * the tag, plus a reset for padding, borders and background. + */ + /** + * We've temporarily added the danger button here, bit of a harsh reset but we + * need it. + * @todo replace with link--danger. + * See https://www.drupal.org/node/2123731 + */ + /* Override clf's default blockquote and pre styles when captioned. */ +} +.ck-content html { + font-size: 10px; +} +.ck-content body { + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #444; + font-size: 1.1rem; + line-height: 1.5; +} +.ck-content h1, +.ck-content h2, +.ck-content h3, +.ck-content h4, +.ck-content h5, +.ck-content h6 { + color: #005554; + text-rendering: auto; + font-weight: 400; + line-height: 1.2; +} +.ck-content h1 { + margin-top: 0; + margin-bottom: 0; +} +.ck-content h2 { + margin-top: 2.2rem; + margin-bottom: 1.1rem; +} +.ck-content h3, +.ck-content h4, +.ck-content h5, +.ck-content h6 { + margin-top: 1.65rem; + margin-bottom: 1.1rem; +} +.ck-content h1 { + font-size: 2.585rem; +} +.ck-content h2 { + font-size: 1.936rem; +} +.ck-content h3 { + font-size: 1.617rem; +} +.ck-content h4 { + font-size: 1.287rem; +} +.ck-content h3, +.ck-content h4 { + font-weight: 700; +} +.ck-content p { + line-height: 1.5; + margin-top: 1.1rem; + margin-bottom: 1.1rem; +} +.ck-content a { + color: #00afa4; + -webkit-text-decoration-skip: ink; + text-decoration-skip-ink: auto; + transition: color 0.5s ease-in; +} +.ck-content a:hover, +.ck-content a:active { + color: #005554; +} +.ck-content hr { + display: block; + height: 2px; + border: 0; + margin: 3rem auto; + width: 40%; + padding: 0; + background-color: #9e4225; + clear: both; +} +.ck-content blockquote { + border-left: 8px solid #00afa4; + list-style-position: inside; + margin-left: 0; + padding-left: 1em; + padding-right: 2em; +} +.ck-content :not(pre) > code { + padding: 0.2em 0.4em; + border-radius: 0.3em; + white-space: normal; +} +.ck-content :not(pre) > code, +.ck-content pre { + background-color: #eee; +} +.ck-content pre { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +.ck-content code, +.ck-content pre { + color: #555; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + tab-size: 4; + -webkit-hyphens: none; + hyphens: none; +} +.ck-content pre, +.ck-content code, +.ck-content kbd, +.ck-content samp { + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; +} +.ck-content figure { + display: table; + margin: 2rem 0; +} +.ck-content figure img { + display: block; +} +.ck-content figcaption { + display: table-caption; + caption-side: bottom; + max-width: none; + padding: 1rem 2rem; + font-size: 0.88rem; + line-height: 1.2; +} +.ck-content figcaption p { + margin: 0; +} +.ck-content a + figcaption, +.ck-content img + figcaption { + color: #9e4225; +} +.ck-content blockquote + figcaption { + color: #555; +} +.ck-content [tabindex="-1"]:focus { + outline: none; +} +@media print { + .ck-content footer { + display: none; + } +} +.ck-content form { + margin: 0; + padding: 0; +} +.ck-content button { + width: auto; + overflow: visible; + -webkit-appearance: none; + -moz-appearance: none; +} +.ck-content label { + display: table; + margin: 0 0 0.25em; + padding: 0; + font-weight: bold; +} +.ck-content label[for] { + cursor: pointer; +} +.ck-content fieldset { + background-color: #f6fffe; + border: 2px solid #00afa4; + border-radius: 3px; + padding: 1em; + margin: 1em 0; + min-width: 100%; +} +.ck-content .fieldset-wrapper p { + margin-top: 0; + margin-bottom: 0; +} +.ck-content legend { + font-size: 2rem; + font-weight: 700; + padding: 0 0.25em; +} +.ck-content select { + max-width: 100%; +} +.ck-content button, +.ck-content input { + font-size: 1.1rem; + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + vertical-align: baseline; +} +.ck-content input { + width: auto; +} +.ck-content button { + width: auto; + overflow: visible; +} +.ck-content button, +.ck-content input, +.ck-content optgroup, +.ck-content select, +.ck-content textarea { + color: inherit; + font: inherit; + line-height: inherit; + margin: 0; +} +.ck-content input, +.ck-content select { + vertical-align: middle; +} +.ck-content input, +.ck-content textarea, +.ck-content select, +.ck-content input[type=text] { + -webkit-appearance: none; + appearance: none; + border: 2px solid #444; + border-radius: 0; + color: #444; + margin: 0; + max-width: 100%; + padding: 0.5rem 0.8rem; +} +.ck-content input:focus, +.ck-content textarea:focus, +.ck-content select:focus, +.ck-content input[type=text]:focus { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + transition: outline ease-in-out 0.2s; +} +.ck-content input[type=image] { + border: 0; +} +.ck-content button:hover, +.ck-content input[type=image]:hover, +.ck-content input[type=button]:hover, +.ck-content input[type=submit]:hover { + cursor: pointer; +} +.ck-content select { + background: #fff url("../img/arrow-both.svg") no-repeat right 1.3rem center; + background-size: 1rem; + padding-right: 3rem; +} +.ck-content select[multiple] { + background-image: none; +} +.ck-content input[type=checkbox], +.ck-content input[type=radio] { + padding: 0; + display: inline-block; +} +.ck-content [type=checkbox], +.ck-content [type=radio] { + height: 2rem; + width: 2rem; + position: relative; + border: 0; + vertical-align: middle; +} +.ck-content [type=checkbox]:focus, +.ck-content [type=radio]:focus { + outline: none; +} +.ck-content [type=checkbox] + label, +.ck-content [type=radio] + label { + font-weight: 400; + margin-left: 0.6rem; +} +.ck-content [type=checkbox]::before, +.ck-content [type=radio]::before { + background-color: #fff; + content: " "; + display: inline-block; + text-indent: 0.15em; + vertical-align: middle; + position: absolute; + top: 0; + left: 0; + cursor: pointer; +} +.ck-content [type=checkbox]::before { + border-radius: 0.2rem; + box-shadow: 0 0 0 0.2rem #444; + height: 2rem; + line-height: 2rem; + margin-left: 1px; + margin-right: 0.6em; + width: 2rem; +} +.ck-content [type=radio]::before { + border-radius: 100%; + box-shadow: 0 0 0 0.2rem #ffffff, 0 0 0 0.4rem #444; + height: 1.4rem; + line-height: 1.4rem; + margin-left: 3px; + margin-right: 0.75em; + width: 1.4rem; +} +.ck-content [type=checkbox]:checked::before, +.ck-content [type=radio]:checked::before { + background-color: #00afa4; + box-shadow: 0 0 0 0.2rem #00afa4; +} +.ck-content [type=radio]:checked::before { + box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem #00afa4; +} +.ck-content [type=checkbox]:checked::before, +.ck-content [type=checkbox]:checked:disabled::before { + background-image: url("../img/correct8.svg"); + background-repeat: no-repeat; + background-position: 50%; +} +.ck-content [type=radio]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 6px; +} +.ck-content [type=checkbox]:disabled + label { + color: #d6d7d9; +} +.ck-content [type=checkbox]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 3px; +} +.ck-content [type=checkbox]:disabled::before, +.ck-content [type=radio]:disabled::before { + background: #f1f1f1; + box-shadow: 0 0 0 0.2rem #999; + cursor: not-allowed; +} +.ck-content img { + max-width: 100%; + height: auto; +} +.ck-content ul, +.ck-content ol { + margin-top: 0; + margin-bottom: 1.1rem; + margin-left: 0; + padding-left: 2.2rem; +} +.ck-content li { + line-height: 1.5; +} +.ck-content table, +.ck-content tbody, +.ck-content td, +.ck-content tfoot, +.ck-content th, +.ck-content thead, +.ck-content tr { + border: 0; + margin: 0; + padding: 0; +} +.ck-content table { + border-collapse: collapse; + margin-bottom: 24px; +} +.ck-content caption, +.ck-content th { + text-align: left; +} +.ck-content th, +.ck-content td { + padding: 1rem; + border: 0 solid #d7e0e7; +} +.ck-content th { + vertical-align: bottom; + border-bottom-width: 2px; +} +.ck-content td { + vertical-align: top; + border-bottom-width: 1px; +} +.ck-content th :first-child, +.ck-content td :first-child { + margin-top: 0; +} +.ck-content th :last-child, +.ck-content td :last-child { + margin-bottom: 0; +} +.ck-content .text-align-left { + text-align: left; +} +.ck-content .text-align-right { + text-align: right; +} +.ck-content .text-align-center { + text-align: center; +} +.ck-content .text-align-justify { + text-align: justify; +} +.ck-content .align-left { + float: left; +} +.ck-content .align-right { + float: right; +} +.ck-content .align-center { + margin-right: auto; + margin-left: auto; +} +.ck-content .image--left, +.ck-content .image--right, +.ck-content .image--center { + clear: both; + margin-top: 2rem; + margin-bottom: 2rem; +} +.ck-content .align-left, +.ck-content .image--left { + float: left; + margin-right: 2rem; +} +.ck-content .align-right, +.ck-content .image--right { + float: right; + margin-left: 2rem; +} +.ck-content .align-center, +.ck-content .image--center { + margin-right: auto; + margin-left: auto; +} +.ck-content .button, +.ck-content .image-button { + margin-left: 0; + margin-right: 0; +} +.ck-content .read-more__link, .ck-content .button { + display: inline-block; + padding: 0.7rem 1.7rem; + border: 0; + border-radius: 0.2rem; + background: none; + text-decoration: none; + transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); + outline-offset: 2px; +} +.ck-content .button--hover.read-more__link, .ck-content .button--hover.button, .ck-content .button--focus.read-more__link, .ck-content .button--focus.button, .ck-content .read-more__link:hover, .ck-content .button:hover, .ck-content .read-more__link:focus, .ck-content .button:focus { + text-decoration: none; + outline: none; +} +.ck-content .button--focus.read-more__link, .ck-content .button--focus.button, .ck-content .read-more__link:focus, .ck-content .button:focus { + z-index: 10; + outline: 1px dotted #00afa4; +} +.ck-content .button--active.read-more__link, .ck-content .button--active.button, .ck-content .read-more__link:active, .ck-content .button:active { + transition: none; +} +.ck-content .field-add-more-submit.button { + font-size: 0.8em; +} +.ck-content .button.form-submit, +.ck-content .button--primary { + border-color: #00afa4; + background-color: #00afa4; + color: #fff; +} +.ck-content .button.form-submit.button--hover, .ck-content .button.form-submit:hover, +.ck-content .button--hover.button--primary, +.ck-content .button--primary:hover { + background-color: #007c74; + color: #fff; + box-shadow: 0 1px 2px hsla(203deg, 10%, 10%, 0.25); +} +.ck-content .button.form-submit.button--active, .ck-content .button.form-submit:active, +.ck-content .button--active.button--primary, +.ck-content .button--primary:active { + background-color: #005554; + box-shadow: inset 0 1px 3px hsla(0deg, 0%, 0%, 0.2); +} +.ck-content .button--secondary { + border-color: #005554; + background-color: #005554; + color: #fff; +} +.ck-content .button--focus.button--secondary, .ck-content .button--hover.button--secondary, .ck-content .button--secondary:hover, .ck-content .button--secondary:focus { + background-color: #005554; + border-color: #005554; + color: #fff; +} +.ck-content .button--hover.button--secondary, .ck-content .button--secondary:hover { + background-color: #007c74; + box-shadow: 0 1px 2px hsla(203deg, 10%, 10%, 0.25); +} +.ck-content .button--active.button--secondary, .ck-content .button--secondary:active { + background-color: #003c3b; + box-shadow: inset 0 1px 3px hsla(0deg, 0%, 0%, 0.2); +} +.ck-content .button-action::before { + margin-left: -0.2em; + padding-right: 0.2em; + font-size: 0.875rem; + line-height: 16px; +} +.ck-content [dir=rtl] .button-action::before { + margin-right: -0.2em; + margin-left: 0; + padding-right: 0; + padding-left: 0.2em; +} +.ck-content .link { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + background: none; + text-decoration: none; + color: #00afa4; +} +.ck-content .link:hover, .ck-content .link:active { + text-decoration: underline; + color: #005554; +} +.ck-content .button--danger { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + box-shadow: none; + background: none; + color: #c72100; + text-decoration: underline; +} +.ck-content .button--danger.button--focus, .ck-content .button--danger.button--hover, .ck-content .button--danger.button--active, .ck-content .button--danger:hover, .ck-content .button--danger:focus, .ck-content .button--danger:active { + color: #ff2a00; + text-decoration: underline; + text-shadow: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; +} +.ck-content .button--danger:disabled, .ck-content .button--danger.is-disabled { + color: #737373; + cursor: default; + text-decoration: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; +} +.ck-content .read-more__link, +.ck-content .button--outline { + color: #00afa4; + box-shadow: inset 0 0 0 2px #00afa4; +} +.ck-content .button--hover.read-more__link, .ck-content .read-more__link:hover, +.ck-content .button--outline.button--hover, +.ck-content .button--outline:hover { + box-shadow: inset 0 0 0 2px #007c74; + color: #007c74; +} +.ck-content .button--active.read-more__link, .ck-content .read-more__link:active, +.ck-content .button--outline.button--active, +.ck-content .button--outline:active { + background-color: rgba(255, 255, 255, 0.3); + color: #005554; + box-shadow: inset 0 0 0 2px #005554; +} +.ck-content .button--inverse { + color: #fff; + box-shadow: inset 0 0 0 2px #fff; +} +.ck-content .button--inverse.button--hover, .ck-content .button--inverse.button--active, .ck-content .button--inverse:hover, .ck-content .button--inverse:active { + background-color: rgba(255, 255, 255, 0.2); + color: #fff; +} +.ck-content .button--inverse.button--active, .ck-content .button--inverse:active { + background-color: rgba(255, 255, 255, 0.3); +} +.ck-content .button--large { + border-radius: 0.3rem; + font-size: 2rem; + padding: 1rem 2rem; +} +.ck-content .read-more__link, +.ck-content .button--small { + font-size: 1.5rem; + padding: 0.5rem 1.5rem; +} +.ck-content .button:disabled, +.ck-content .button:disabled:active, +.ck-content .button.is-disabled, +.ck-content .button.is-disabled:active { + background-color: #ededed; + box-shadow: none; + color: #5c5c5c; + cursor: default; + text-shadow: 0 1px hsla(0deg, 0%, 100%, 0.6); +} +.ck-content .read-more { + margin-top: 2rem; +} +.ck-content .caption { + display: table; +} +.ck-content .caption > * { + display: block; + max-width: 100%; +} +.ck-content .caption > figcaption { + display: table-caption; + max-width: none; + caption-side: bottom; +} +.ck-content .media + figcaption { + background: #9e4225; + color: #fff; +} +.ck-content .caption .media .field { + line-height: 1; +} +.ck-content .caption-pre > pre, +.ck-content .caption-blockquote > blockquote { + margin: 0; +} +.ck-content .caption-blockquote > figcaption::before { + content: "— "; +} +.ck-content .caption-blockquote > figcaption { + text-align: left; +} +.ck-content [dir=rtl] .caption-blockquote > figcaption { + text-align: right; +} +.ck-content details { + padding: 0.5rem 0; + border: 0; + margin-top: 1rem; + margin-bottom: 1rem; +} +.ck-content details > .node__content { + padding-left: 1rem; + padding-right: 1rem; +} +.ck-content .details--small { + margin-top: 0.5rem; + margin-bottom: 0.5rem; + border: 0; +} +.ck-content .details--small summary { + font-weight: bold; + font-size: 1.7rem; +} +.ck-content details > .details-wrapper { + padding-left: 1rem; + padding-right: 1rem; +} +.ck-content .details-wrapper { + margin-top: 1rem; + margin-bottom: 1rem; +} +.ck-content .details-wrapper > :last-child { + margin-bottom: 1rem; +} +.ck-content details > summary { + list-style: none; +} +.ck-content details > summary::-webkit-details-marker { + display: none; +} +.ck-content details summary { + font-size: 2rem; + background-repeat: no-repeat; + background-position: right 1rem top 50%; + background-size: 1.7rem 1.7rem; + color: #00afa4; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 29H35V11a3 3 0 00-6 0v18H11a3 3 0 000 6h18v18a3 3 0 006 0V35h18a3 3 0 000-6z' fill='%2300afa4'/%3E%3C/svg%3E"); + border-bottom: 1px solid #005554; + padding-right: 3rem; + padding-left: 1rem; +} +.ck-content details[open] summary { + border-bottom-width: 3px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 34H11a3 3 0 010-6h42a3 3 0 010 6z' fill='%2300afa4'/%3E%3C/svg%3E"); +} +@media (max-width: 767.98px) { + .ck-content details summary { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} +.ck-content .node__header_image img { + width: 100%; + height: auto; +} +.ck-content .inline-block-left, +.ck-content .inline-block-right { + margin: 0 0 1rem 0; + padding: 2rem; + background-color: #005554; + color: #fff; +} +@media (min-width: 768px) { + .ck-content .inline-block-left, + .ck-content .inline-block-right { + max-width: 260px; + width: 100%; + } +} +.ck-content .inline-block-left h2, +.ck-content .inline-block-left h3, +.ck-content .inline-block-left h4, +.ck-content .inline-block-left a, +.ck-content .inline-block-right h2, +.ck-content .inline-block-right h3, +.ck-content .inline-block-right h4, +.ck-content .inline-block-right a { + color: #fff; +} +.ck-content .inline-block-left h2, +.ck-content .inline-block-left h3, +.ck-content .inline-block-left h4, +.ck-content .inline-block-right h2, +.ck-content .inline-block-right h3, +.ck-content .inline-block-right h4 { + margin-top: 0; +} +.ck-content .inline-block-left { + margin-right: 2rem; +} +@media (min-width: 768px) { + .ck-content .inline-block-left { + float: left; + clear: left; + } +} +.ck-content .inline-block-right { + margin-left: 2rem; +} +@media (min-width: 768px) { + .ck-content .inline-block-right { + float: right; + clear: right; + } +} +.ck-content .media--type-logo { + display: inline-block; + vertical-align: middle; + padding-left: 2rem; +} +.ck-content .media--type-logo div { + line-height: 0; +} +.ck-content .media--type-logo img { + object-fit: contain; +} +.ck-content .media--type-logo:first-of-type { + padding-left: 0; +} +.ck-content .node table { + width: 100%; + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #d7e0e7; + border-right-width: 0; + border-bottom-width: 0; +} +.ck-content .node td, +.ck-content .node th { + border: 0 solid #d7e0e7; + border-right-width: 1px; + border-bottom-width: 1px; + padding: 0.5rem 0.8rem; + text-align: left; +} +.ck-content .node thead th { + vertical-align: bottom; +} +.ck-content td.is-active { + background-color: transparent; +} +.ck-content .text-primary { + color: #9e4225; +} +.ck-content .text-secondary { + color: #005554; +} +.ck-content .text-large { + font-size: 2.2rem; +} +.ck-content .intro { + color: #cc6e20; + font-size: 2.2rem; +} +.ck-content .image:not([class*=image-style-align-]) { + margin: 2rem 0; +} diff --git a/public/themes/custom/ubccs/css/layout.css b/public/themes/custom/ubccs/css/layout.css new file mode 100644 index 0000000..5f373e2 --- /dev/null +++ b/public/themes/custom/ubccs/css/layout.css @@ -0,0 +1,56 @@ +.layout-wrapper { + padding-bottom: 2rem; +} +@media (min-width: 980px) { + .layout-wrapper { + display: flex; + } + .layout-wrapper .layout-sidebar-first, + .layout-wrapper .layout-sidebar-second { + flex-grow: 0; + flex-basis: 260px; + max-width: 260px; + } + .layout-wrapper .layout-sidebar-first { + margin-right: 3%; + } + .layout-wrapper .layout-sidebar-second { + margin-left: 3%; + } + .layout-wrapper .layout-sidebar-first { + order: 1; + } + .layout-wrapper .layout-content.has-sidebar { + order: 2; + } + .layout-wrapper .layout-sidebar-second { + order: 3; + } +} +.layout-wrapper .layout-content { + flex-basis: 0; + flex-grow: 1; +} +.layout-wrapper .layout-content-full-width { + max-width: 100%; +} +.layout-wrapper .layout-content-full-width .field--name-body { + max-width: 760px; + margin: 0 auto; +} + +.layout-content.has-sidebar::after { + display: block; + content: ""; + height: 2px; + border: 0; + margin: 3rem auto; + width: 40%; + padding: 0; + background-color: #9e4225; + clear: both; +} + +.full-width-container { + background-color: #fff; +} diff --git a/public/themes/custom/ubccs/css/local.clf.fixes.css b/public/themes/custom/ubccs/css/local.clf.fixes.css new file mode 100644 index 0000000..34d7b9f --- /dev/null +++ b/public/themes/custom/ubccs/css/local.clf.fixes.css @@ -0,0 +1,114 @@ +/** + * $file + * To fix inconsistencies with the locally-hosted CLF CSS + */ +footer { + background-color: inherit; +} + +#ubc7-unit-social-icons i { + color: #fff; + background-color: #9e4225; + cursor: pointer; + font-size: 24px; + line-height: 32px; + width: 32px; + height: 32px; + text-align: center; +} + +#ubc7-unit-menu { + width: 100%; + margin: 0; +} + +#ubc7-unit-social-icons span.ext { + display: none; +} + +#ubc7-global-footer, +#ubc7-global-menu, +#ubc7-minimal-footer, +#ubc7-unit, +input, +button { + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +#ubc7-search-box input { + font-size: inherit !important; +} + +.btn, +.btn:focus, +.btn:hover, +.btn:active { + box-shadow: none; + border: 0; + color: #00afa4; + background-color: transparent; + line-height: inherit; + font-size: inherit; +} + +input, +textarea, +.uneditable-input { + width: inherit; +} + +input[type=text] { + height: auto; + line-height: inherit; +} + +#ubc7-header { + box-sizing: content-box; +} + +/* Remove the inset shadows and text shadows from the unit area */ +#ubc7-unit { + box-shadow: none; + -webkit-box-shadow: none; +} + +#ubc7-unit-name a, +#ubc7-unit-name a:hover { + text-shadow: none; +} + +ul.primary.tabs, +ul.secondary.tabs { + width: 100%; + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} + +#ubc7-unit-menu .container { + max-width: 1200px; + width: 100%; +} + +@media (min-width: 980px) and (max-width: 1499.98px) { + #ubc7-wordmark { + width: 100% !important; + border-right: #fff solid 100px; + } +} +#ubc7-global-utility button { + position: absolute; + right: 0; +} + +.ubc7-arrow.up-arrow.white { + background-position: -1207px -225px; +} + +#ubc7-global-footer { + font-size: 14px; +} + +.unit-footer-column { + margin-bottom: 2rem; +} diff --git a/public/themes/custom/ubccs/css/main.css b/public/themes/custom/ubccs/css/main.css new file mode 100644 index 0000000..915642a --- /dev/null +++ b/public/themes/custom/ubccs/css/main.css @@ -0,0 +1,3532 @@ +@charset "UTF-8"; +* { + box-sizing: border-box; +} + +body { + overflow-x: hidden; +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +html { + font-size: 10px; +} + +body { + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #444; + font-size: 1.7rem; + line-height: 1.5; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: #005554; + text-rendering: auto; + font-weight: 400; + line-height: 1.2; +} + +h1 { + margin-top: 0; + margin-bottom: 0; +} + +h2 { + margin-top: 3.4rem; + margin-bottom: 1.7rem; +} + +h3, +h4, +h5, +h6 { + margin-top: 2.55rem; + margin-bottom: 1.7rem; +} + +h1 { + font-size: 3.995rem; +} + +h2 { + font-size: 2.992rem; +} + +h3 { + font-size: 2.499rem; +} + +h4 { + font-size: 1.989rem; +} + +h3, +h4 { + font-weight: 700; +} + +p { + line-height: 1.5; + margin-top: 1.7rem; + margin-bottom: 1.7rem; +} + +a { + color: #00afa4; + -webkit-text-decoration-skip: ink; + text-decoration-skip-ink: auto; + transition: color 0.5s ease-in; +} + +a:hover, +a:active { + color: #005554; +} + +hr { + display: block; + height: 2px; + border: 0; + margin: 3rem auto; + width: 40%; + padding: 0; + background-color: #9e4225; + clear: both; +} + +blockquote { + border-left: 8px solid #00afa4; + list-style-position: inside; + margin-left: 0; + padding-left: 1em; + padding-right: 2em; +} + +:not(pre) > code { + padding: 0.2em 0.4em; + border-radius: 0.3em; + white-space: normal; +} + +:not(pre) > code, +pre { + background-color: #eee; +} + +pre { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} + +code, +pre { + color: #555; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + tab-size: 4; + -webkit-hyphens: none; + hyphens: none; +} + +pre, +code, +kbd, +samp { + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; +} + +figure { + display: table; + margin: 2rem 0; +} +figure img { + display: block; +} + +figcaption { + display: table-caption; + caption-side: bottom; + max-width: none; + padding: 1rem 2rem; + font-size: 1.36rem; + line-height: 1.2; +} + +figcaption p { + margin: 0; +} + +a + figcaption, +img + figcaption { + color: #9e4225; +} + +blockquote + figcaption { + color: #555; +} + +[tabindex="-1"]:focus { + outline: none; +} + +@media print { + footer { + display: none; + } +} +form { + margin: 0; + padding: 0; +} + +button { + width: auto; + overflow: visible; + -webkit-appearance: none; + -moz-appearance: none; +} + +label { + display: table; + margin: 0 0 0.25em; + padding: 0; + font-weight: bold; +} + +label[for] { + cursor: pointer; +} + +fieldset { + background-color: #f6fffe; + border: 2px solid #00afa4; + border-radius: 3px; + padding: 1em; + margin: 1em 0; + min-width: 100%; +} + +.fieldset-wrapper p { + margin-top: 0; + margin-bottom: 0; +} + +legend { + font-size: 2rem; + font-weight: 700; + padding: 0 0.25em; +} + +/** + * Limits extra long instances of select elements to the max width allowed + * to avoid breaking layouts. + */ +select { + max-width: 100%; +} + +button, +input { + font-size: 1.7rem; + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + vertical-align: baseline; +} + +input { + width: auto; +} + +button { + width: auto; + overflow: visible; +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + line-height: inherit; + margin: 0; +} + +input, +select { + vertical-align: middle; +} + +input, +textarea, +select, +input[type=text] { + -webkit-appearance: none; + appearance: none; + border: 2px solid #444; + border-radius: 0; + color: #444; + margin: 0; + max-width: 100%; + padding: 0.5rem 0.8rem; +} +input:focus, +textarea:focus, +select:focus, +input[type=text]:focus { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + transition: outline ease-in-out 0.2s; +} + +input[type=image] { + border: 0; +} + +button:hover, +input[type=image]:hover, +input[type=button]:hover, +input[type=submit]:hover { + cursor: pointer; +} + +select { + background: #fff url("../img/arrow-both.svg") no-repeat right 1.3rem center; + background-size: 1rem; + padding-right: 3rem; +} + +select[multiple] { + background-image: none; +} + +input[type=checkbox], +input[type=radio] { + padding: 0; + display: inline-block; +} + +[type=checkbox], +[type=radio] { + height: 2rem; + width: 2rem; + position: relative; + border: 0; + vertical-align: middle; +} +[type=checkbox]:focus, +[type=radio]:focus { + outline: none; +} + +[type=checkbox] + label, +[type=radio] + label { + font-weight: 400; + margin-left: 0.6rem; +} + +[type=checkbox]::before, +[type=radio]::before { + background-color: #fff; + content: " "; + display: inline-block; + text-indent: 0.15em; + vertical-align: middle; + position: absolute; + top: 0; + left: 0; + cursor: pointer; +} + +[type=checkbox]::before { + border-radius: 0.2rem; + box-shadow: 0 0 0 0.2rem #444; + height: 2rem; + line-height: 2rem; + margin-left: 1px; + margin-right: 0.6em; + width: 2rem; +} + +[type=radio]::before { + border-radius: 100%; + box-shadow: 0 0 0 0.2rem #ffffff, 0 0 0 0.4rem #444; + height: 1.4rem; + line-height: 1.4rem; + margin-left: 3px; + margin-right: 0.75em; + width: 1.4rem; +} + +[type=checkbox]:checked::before, +[type=radio]:checked::before { + background-color: #00afa4; + box-shadow: 0 0 0 0.2rem #00afa4; +} + +[type=radio]:checked::before { + box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem #00afa4; +} + +[type=checkbox]:checked::before, +[type=checkbox]:checked:disabled::before { + background-image: url("../img/correct8.svg"); + background-repeat: no-repeat; + background-position: 50%; +} + +[type=radio]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 6px; +} + +[type=checkbox]:disabled + label { + color: #d6d7d9; +} + +[type=checkbox]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 3px; +} + +[type=checkbox]:disabled::before, +[type=radio]:disabled::before { + background: #f1f1f1; + box-shadow: 0 0 0 0.2rem #999; + cursor: not-allowed; +} + +img { + max-width: 100%; + height: auto; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 1.7rem; + margin-left: 0; + padding-left: 3.4rem; +} + +li { + line-height: 1.5; +} + +table, +tbody, +td, +tfoot, +th, +thead, +tr { + border: 0; + margin: 0; + padding: 0; +} + +table { + border-collapse: collapse; + margin-bottom: 24px; +} + +caption, +th { + text-align: left; +} + +th, +td { + padding: 1rem; + border: 0 solid #d7e0e7; +} + +th { + vertical-align: bottom; + border-bottom-width: 2px; +} + +td { + vertical-align: top; + border-bottom-width: 1px; +} + +th :first-child, +td :first-child { + margin-top: 0; +} + +th :last-child, +td :last-child { + margin-bottom: 0; +} + +.node--type-landing .page-title::after { + display: none; +} + +.node--type-landing .views-element-container, +.node--type-landing .block { + max-width: 80ch; + margin: 0 auto; +} + +.node--type-landing .node__content + .block::before { + width: 50%; + max-width: 220px; + height: 3px; + background-color: #9e4225; + margin: 0 auto; + content: ""; + display: inline-block; +} + +.landing-banner { + position: relative; + margin-top: 0; +} +.landing-banner img { + width: 100%; + height: 100%; + display: block; +} + +@media (min-width: 980px) { + .landing-banner__image { + background-color: #4b1f12; + } + .field--name-field-landing-banner-image { + outline: 1rem #fff solid; + margin-top: 1rem; + margin-bottom: 1rem; + } +} +.landing-banner__title { + width: 100%; +} +@media (min-width: 576px) { + .landing-banner__title { + position: absolute; + left: 0; + bottom: 0; + background: rgba(34, 14, 8, 0.6); + padding: 2rem; + } +} +@media (min-width: 768px) { + .landing-banner__title { + width: 75%; + bottom: 3rem; + } +} +@media (min-width: 980px) { + .landing-banner__title { + width: 50%; + } +} +@media (max-width: 575.98px) { + .landing-banner__title h1 { + text-align: center; + } +} +@media (min-width: 576px) { + .landing-banner__title h1 { + font-weight: bold; + color: #fff; + margin: 0; + } +} + +.landing-intro { + max-width: 90rem; + width: 90%; + margin: 2rem auto; + text-align: center; +} +.landing-intro p { + font-style: italic; + font-size: 1.8rem; +} +@media (min-width: 576px) { + .landing-intro p { + font-size: 2.2rem; + } +} + +.landing-cards + .field::before { + width: 50%; + max-width: 220px; + height: 3px; + background-color: #9e4225; + margin: 3rem auto 0; + content: ""; + display: block; +} + +#admin-toolbar-search-input { + padding: 0.5rem 0.8rem; +} + +.alert p { + margin-top: 0; + margin-bottom: 0; +} + +.alert { + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} + +/** + * @file + * Alignment classes for text and block level elements. + */ +.text-align-left { + text-align: left; +} + +.text-align-right { + text-align: right; +} + +.text-align-center { + text-align: center; +} + +.text-align-justify { + text-align: justify; +} + +/** + * Alignment classes for block level elements (images, videos, blockquotes, etc.) + */ +.align-left { + float: left; +} + +.align-right { + float: right; +} + +.align-center { + margin-right: auto; + margin-left: auto; +} + +.image--left, +.image--right, +.image--center { + clear: both; + margin-top: 2rem; + margin-bottom: 2rem; +} + +.align-left, +.image--left { + float: left; + margin-right: 2rem; +} + +.align-right, +.image--right { + float: right; + margin-left: 2rem; +} + +.align-center, +.image--center { + margin-right: auto; + margin-left: auto; +} + +.views-table .views-field-field-award-date { + width: 35px; +} + +.views-table .views-field-field-award-recipient, +.views-table .views-field-field-award-organization { + width: 25%; +} + +.view-awards .views-table { + width: 100%; +} + +.big-quote { + font-family: Merriweather, Georgia, serif; + font-size: 2.5rem; + font-style: italic; + text-align: center; + padding: 3rem 4rem; + position: relative; + z-index: 0; +} +.big-quote:before { + position: absolute; + top: 0; + left: 0; + z-index: -1; + vertical-align: baseline; + content: "“"; + font-size: 20rem; + line-height: 1; + color: #eee; +} + +.breadcrumb { + padding: 0.5rem; + line-height: 1.5rem; + color: #999; + text-transform: uppercase; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.breadcrumb li { + line-height: 1.5rem; +} + +.breadcrumb li::before { + content: "/"; + display: inline-block; + margin: 0 0.5em 0; + color: #999; +} + +.breadcrumb li:first-child:before { + content: none; +} + +.breadcrumb a { + color: #00afa4; +} + +.breadcrumb .active { + color: #999; +} + +.button, +.image-button { + margin-left: 0; + margin-right: 0; +} + +.read-more__link, .button { + display: inline-block; + padding: 0.7rem 1.7rem; + border: 0; + border-radius: 0.2rem; + background: none; + text-decoration: none; + transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); + outline-offset: 2px; +} +.button--hover.read-more__link, .button--hover.button, .button--focus.read-more__link, .button--focus.button, .read-more__link:hover, .button:hover, .read-more__link:focus, .button:focus { + text-decoration: none; + outline: none; +} +.button--focus.read-more__link, .button--focus.button, .read-more__link:focus, .button:focus { + z-index: 10; + outline: 1px dotted #00afa4; +} +.button--active.read-more__link, .button--active.button, .read-more__link:active, .button:active { + transition: none; +} + +.field-add-more-submit.button { + font-size: 0.8em; +} + +.button.form-submit, +.button--primary { + border-color: #00afa4; + background-color: #00afa4; + color: #fff; +} +.button.form-submit.button--hover, .button.form-submit:hover, +.button--hover.button--primary, +.button--primary:hover { + background-color: #007c74; + color: #fff; + box-shadow: 0 1px 2px hsla(203deg, 10%, 10%, 0.25); +} +.button.form-submit.button--active, .button.form-submit:active, +.button--active.button--primary, +.button--primary:active { + background-color: #005554; + box-shadow: inset 0 1px 3px hsla(0deg, 0%, 0%, 0.2); +} + +.button--secondary { + border-color: #005554; + background-color: #005554; + color: #fff; +} +.button--focus.button--secondary, .button--hover.button--secondary, .button--secondary:hover, .button--secondary:focus { + background-color: #005554; + border-color: #005554; + color: #fff; +} +.button--hover.button--secondary, .button--secondary:hover { + background-color: #007c74; + box-shadow: 0 1px 2px hsla(203deg, 10%, 10%, 0.25); +} +.button--active.button--secondary, .button--secondary:active { + background-color: #003c3b; + box-shadow: inset 0 1px 3px hsla(0deg, 0%, 0%, 0.2); +} + +/** + * Overrides styling from system.theme. + */ +.button-action::before { + margin-left: -0.2em; + padding-right: 0.2em; + font-size: 0.875rem; + line-height: 16px; +} + +[dir=rtl] .button-action::before { + margin-right: -0.2em; + margin-left: 0; + padding-right: 0; + padding-left: 0.2em; +} + +/* Link actions. */ +/** + * Style a clickable/tappable element as a link. Duplicates the base style for + * the tag, plus a reset for padding, borders and background. + */ +.link { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + background: none; + text-decoration: none; + color: #00afa4; +} +.link:hover, .link:active { + text-decoration: underline; + color: #005554; +} + +/** + * We've temporarily added the danger button here, bit of a harsh reset but we + * need it. + * @todo replace with link--danger. + * See https://www.drupal.org/node/2123731 + */ +.button--danger { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + box-shadow: none; + background: none; + color: #c72100; + text-decoration: underline; +} +.button--danger.button--focus, .button--danger.button--hover, .button--danger.button--active, .button--danger:hover, .button--danger:focus, .button--danger:active { + color: #ff2a00; + text-decoration: underline; + text-shadow: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; +} +.button--danger:disabled, .button--danger.is-disabled { + color: #737373; + cursor: default; + text-decoration: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; +} + +.read-more__link, +.button--outline { + color: #00afa4; + box-shadow: inset 0 0 0 2px #00afa4; +} +.button--hover.read-more__link, .read-more__link:hover, +.button--outline.button--hover, +.button--outline:hover { + box-shadow: inset 0 0 0 2px #007c74; + color: #007c74; +} +.button--active.read-more__link, .read-more__link:active, +.button--outline.button--active, +.button--outline:active { + background-color: rgba(255, 255, 255, 0.3); + color: #005554; + box-shadow: inset 0 0 0 2px #005554; +} + +.button--inverse { + color: #fff; + box-shadow: inset 0 0 0 2px #fff; +} +.button--inverse.button--hover, .button--inverse.button--active, .button--inverse:hover, .button--inverse:active { + background-color: rgba(255, 255, 255, 0.2); + color: #fff; +} +.button--inverse.button--active, .button--inverse:active { + background-color: rgba(255, 255, 255, 0.3); +} + +.button--large { + border-radius: 0.3rem; + font-size: 2rem; + padding: 1rem 2rem; +} + +.read-more__link, +.button--small { + font-size: 1.5rem; + padding: 0.5rem 1.5rem; +} + +.button:disabled, +.button:disabled:active, +.button.is-disabled, +.button.is-disabled:active { + background-color: #ededed; + box-shadow: none; + color: #5c5c5c; + cursor: default; + text-shadow: 0 1px hsla(0deg, 0%, 100%, 0.6); +} + +.read-more { + margin-top: 2rem; +} + +.view-event-calendar .view-content { + clear: both; +} + +.view-event-calendar .pager ul.js-pager__items { + padding-left: 0; +} + +.view-event-calendar .pager ul.js-pager__items li.pager__item--previous { + float: left; +} + +.view-event-calendar .pager ul.js-pager__items li.pager__item--next { + float: right; +} + +.view-event-calendar .calendar-granularity a { + padding: 0 10px; +} + +.caption { + display: table; +} + +.caption > * { + display: block; + max-width: 100%; +} + +.caption > figcaption { + display: table-caption; + max-width: none; + caption-side: bottom; +} + +.media + figcaption { + background: #9e4225; + color: #fff; +} + +.caption .media .field { + line-height: 1; +} + +/* Override clf's default blockquote and pre styles when captioned. */ +.caption-pre > pre, +.caption-blockquote > blockquote { + margin: 0; +} + +.caption-blockquote > figcaption::before { + content: "— "; +} + +.caption-blockquote > figcaption { + text-align: left; +} + +[dir=rtl] .caption-blockquote > figcaption { + text-align: right; +} + +.cards { + display: flex; + flex-wrap: wrap; + justify-content: center; + width: 100%; +} + +.card-wrapper { + display: flex; + justify-content: center; + padding: 0; + width: 100%; + margin-bottom: 2rem; +} +@media (min-width: 576px) { + .card-wrapper { + width: 50%; + } +} +@media (min-width: 768px) { + .card-wrapper { + width: 33.33%; + } +} + +.card { + text-decoration: none; + color: inherit; + padding: 2rem; + max-width: 320px; + width: 100%; + border: 1px solid #999; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); + display: flex; + flex-direction: column; +} +.card:hover, .card:focus, .card:active { + background-color: #efefef; + text-decoration: none; + color: inherit; + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); + transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); +} +.card .button { + border: 2px solid transparent; +} +.card:focus .button, .card:active .button, .card:hover .button { + background-color: #fff; + border: 2px solid #00afa4; + color: #00afa4; +} +.card img { + max-width: 100%; + height: auto; +} +.card span { + display: block; +} +.card .card-title, +.card .card-text { + margin-top: 1rem; + margin-bottom: 1rem; +} +.card .card-title { + color: #00afa4; + font-size: 2rem; + font-weight: 700; + line-height: 1.3; + text-decoration: underline; + -webkit-text-decoration-skip: ink; + text-decoration-skip-ink: auto; + transition: color 0.5s ease-in; +} +.card :hover .card-title, +.card :active .card-title { + color: #005554; +} +.card .card-text { + line-height: 1.3; +} +.card .card-body { + flex: 1 0 auto; +} +.card .card-footer { + flex: 0 1 auto; + background: transparent; + border: 0 none; + margin-top: 1rem; +} + +.card-body * { + margin-bottom: 0; +} + +.cart td { + vertical-align: middle; +} + +.cart-form td .form-item, +.cart-form td .form-actions { + margin: 0; +} + +.course-section-info { + border: 1px solid #cecece; + margin: 20px auto; +} + +.course-section-info-header { + padding: 0 20px; +} + +.course-section-info table { + width: 100%; + margin-bottom: 0; +} + +.course-section-table-header { + background: #005554; + color: #fff; + text-transform: uppercase; +} + +.course-section-table-header > tr > th { + font-weight: inherit; +} + +.course-section-table-body > tr { + cursor: pointer; + white-space: nowrap; +} + +.course-section-table-body > tr.open, .course-section-table-body > tr:hover { + background: #efefef; +} + +.course-section-table-body > tr.child { + cursor: auto; + white-space: inherit; +} + +.course-section-table-body > tr.child:hover { + background: none; +} + +.course-section-info-details { + text-align: center; +} + +.open .course-section-info-toggle { + background-color: #dfe3eb; +} + +.course-ssc-link-wrapper, .course-section-ssc-link { + float: right; +} + +/* Responsive */ +@media (max-width: 979.98px) { + .course-section-info .views-field-field-course-days, + .course-section-info .views-field-field-course-end-time { + display: none; + } +} +@media (max-width: 767.98px) { + .course-section-info .views-field-field-course-term, + .course-section-info .views-field-field-course-room, + .course-section-info .views-field-field-course-instructors { + display: none; + } +} +details { + padding: 0.5rem 0; + border: 0; + margin-top: 1rem; + margin-bottom: 1rem; +} + +details > .node__content { + padding-left: 1rem; + padding-right: 1rem; +} + +.details--small { + margin-top: 0.5rem; + margin-bottom: 0.5rem; + border: 0; +} +.details--small summary { + font-weight: bold; + font-size: 1.7rem; +} + +details > .details-wrapper { + padding-left: 1rem; + padding-right: 1rem; +} + +.details-wrapper { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.details-wrapper > :last-child { + margin-bottom: 1rem; +} + +details > summary { + list-style: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details summary { + font-size: 2rem; + background-repeat: no-repeat; + background-position: right 1rem top 50%; + background-size: 1.7rem 1.7rem; + color: #00afa4; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 29H35V11a3 3 0 00-6 0v18H11a3 3 0 000 6h18v18a3 3 0 006 0V35h18a3 3 0 000-6z' fill='%2300afa4'/%3E%3C/svg%3E"); + border-bottom: 1px solid #005554; + padding-right: 3rem; + padding-left: 1rem; +} + +details[open] summary { + border-bottom-width: 3px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 34H11a3 3 0 010-6h42a3 3 0 010 6z' fill='%2300afa4'/%3E%3C/svg%3E"); +} + +@media (max-width: 767.98px) { + details summary { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} +.expand-collapse { + text-align: right; +} + +.view-faqs .view-grouping-content h2 { + font-size: 2.5rem; + font-weight: 700; +} + +.field--label-inline .field__label, +.field--label-inline .field__items { + float: none; + display: inline-block; +} + +.field--label-inline { + display: flex; + flex-wrap: wrap; +} + +.field--label-inline .field__item { + vertical-align: top; +} + +.field--label-inline .field__label, +.field--label-inline > .field__item { + padding-right: 0.5rem; +} + +.field + .field { + margin-top: 1rem; +} + +.field--label-inline .field + .field { + margin-top: 0; +} + +.field__label h2 { + margin-top: 1.7rem; +} + +.field--name-field-tags .field__items { + display: flex; +} +.field--name-field-tags .field__items .field__item { + margin: 0 5px; +} + +/** + * Form elements. + */ +.fieldgroup { + min-width: 0; + background-color: transparent; +} + +.form-item, +.form-actions { + margin: 0.75em 0; +} + +.form-type-checkbox { + padding: 0; +} + +label.error { + color: #a51b00; +} + +.form-item label.option { + text-transform: none; +} + +.form-item label.option input { + vertical-align: middle; +} + +.form-disabled label { + color: #737373; +} + +.form-disabled input.form-text, +.form-disabled input.form-tel, +.form-disabled input.form-email, +.form-disabled input.form-url, +.form-disabled input.form-search, +.form-disabled input.form-number, +.form-disabled input.form-color, +.form-disabled input.form-file, +.form-disabled textarea.form-textarea, +.form-disabled select.form-select { + border-color: #d4d4d4; + background-color: hsla(0deg, 0%, 0%, 0.08); + box-shadow: none; +} + +.form-item input.error, +.form-item textarea.error, +.form-item select.error { + border-width: 1px; + border-color: #e62600; + background-color: hsl(15deg, 75%, 97%); + box-shadow: inset 0 5px 5px -5px #b8b8b8; + color: #a51b00; +} + +.form-item textarea.error + .cke { + border-width: 1px; + border-color: #e62600; +} + +.form-item input.error:focus, +.form-item textarea.error:focus, +.form-item select.error:focus { + border-color: #e62600; + outline: 0; + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 0 8px 1px #e62600; + background-color: #fcf4f2; +} + +.form-required:after { + background-size: 7px 7px; + width: 7px; + height: 7px; +} + +.form-item--error-message { + margin-top: 0.15em; + color: #e32700; +} + +.fieldset-wrapper > .form-item--error-message { + margin-top: 0; +} + +.text-format-wrapper .form-item--error-message { + border: solid #ccc; + border-width: 0 1px; + margin: 0; + padding: 0.25em 0.666em 0; +} + +/* Filter */ +ul.tips, +div.description, +.form-item .description { + margin: 0.3rem 0 0 0; + color: #595959; + font-size: 0.95em; +} + +.form-item .description.error { + margin-top: 0; + color: #a51b00; +} + +ul.tips li { + margin: 0.25em 0 0.25em 1.5em; /* LTR */ +} + +[dir=rtl] ul.tips li { + margin: 0.25em 1.5em 0.25em 0; +} + +.form-type-radio .description, +.form-type-checkbox .description { + margin-left: 1.5em; /* LTR */ +} + +[dir=rtl] .form-type-radio .description, +[dir=rtl] .form-type-checkbox .description { + margin-left: 0; + margin-right: 1.5em; +} + +.form-text, +.form-textarea, +input[type=text] { + font-size: 1em; + line-height: normal; +} + +input.form-autocomplete, +input.form-text, +input.form-tel, +input.form-email, +input.form-url, +input.form-search, +input.form-number, +input.form-color, +input.form-file, +input.form-date, +input.form-time, +textarea.form-textarea { + height: auto; + line-height: inherit; + border-radius: 2px; + border-color: #b8b8b8; + border-top-color: #999; + background: #fcfcfa; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.125); + font-size: 1em; + color: #595959; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +select.form-select { + border-color: #b8b8b8; + border-top-color: #999; +} + +.form-text:focus, +.form-tel:focus, +.form-email:focus, +.form-url:focus, +.form-search:focus, +.form-number:focus, +.form-color:focus, +.form-file:focus, +.form-textarea:focus, +.form-date:focus, +.form-time:focus, +input[type=text]:focus { + border-color: #00afa4; + outline: 0; + background-color: #fff; +} + +input[type=text]:focus { + box-shadow: none; +} + +.confirm-parent, +.password-parent { + overflow: visible; + width: auto; +} + +.form-item-options-group-info-identifier, +.form-item-pass .description { + clear: both; +} + +/** + * Improve spacing of cancel link. + */ +#edit-cancel { + margin-left: 10px; /* LTR */ +} + +[dir=rtl] #edit-cancel { + margin-left: 0; + margin-right: 10px; +} + +/** + * Improve form element usability on narrow devices. + */ +@media (max-width: 767.98px) { + input.form-autocomplete, + input.form-text, + input.form-tel, + input.form-email, + input.form-url, + input.form-search, + input.form-number, + input.form-color, + input.form-file, + textarea.form-textarea { + width: 100%; + font-size: 1.2em; + line-height: 1.2em; + } + input.form-number { + width: auto; + } + .form-actions input, + .form-wrapper input[type=submit] { + float: none; + margin-left: 0; + margin-right: 0; + margin-top: 10px; + padding-bottom: 6px; + width: 100%; + } + .form-actions input:first-child, + .form-wrapper input[type=submit]:first-child { + margin-top: 0; + } + .password-strength { + width: 100%; + } + div.form-item div.password-suggestions { + float: none; + } + #edit-cancel { + display: block; + margin: 10px 0 0 0; + } + select { + width: 100%; + } +} +/* Exceptions */ +#diff-inline-form select, +div.filter-options select { + padding: 0; +} + +.node .fc-head-container { + padding: 0; + border: 0; +} + +.node .fc-widget-content { + padding: 0; +} + +.fc-widget-header table { + margin: 0; +} + +.container-home .media { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.view-home-page-banners { + max-width: 100%; +} + +.home__icons { + background-color: #eee; +} + +.home__cards { + margin-top: 0px; + display: flex; + flex-wrap: wrap; + justify-content: center; + width: 100%; +} + +.home__card-wrapper { + display: flex; + justify-content: center; + padding: 0; +} + +.home__card { + text-decoration: none; + color: inherit; + padding: 2rem; + width: 100%; + display: flex; + flex-direction: column; +} + +.home__card-header { + font-size: 4rem; + color: #9e4225; +} + +.home__card-title { + font-size: 2.2rem; + font-weight: 700; + line-height: 1.3; + color: #005554; + margin-top: 1rem; + margin-bottom: 1rem; + display: block; +} + +.home__card-text { + font-size: 1.4rem; +} + +.home__card-text p { + margin: 0; +} + +.home__card-text p + p { + margin-top: 1.7rem; +} + +.home__card-text .button { + margin: 0.2rem; +} + +.home__widgets { + display: flex; + flex-wrap: wrap; +} +.home__widgets .home__widgets-block h2 { + line-height: 1; +} +.home__widgets .home__widgets-block h2::after { + width: 100%; + height: 3px; + background-color: #9e4225; + margin: 0 auto; + content: ""; + display: inline-block; +} +.home__widgets .home__widgets-block .views-element-container { + flex-grow: 1; +} +.home__widgets .home__widgets-block .views-element-container .views-row:last-child .views-field-nothing { + display: none; +} +.home__widgets .views-row { + margin-bottom: 1rem; +} + +.tweets { + max-height: 650px; + overflow-y: scroll; +} + +.tweet-header { + display: flex; + align-items: flex-start; +} + +.tweet-header-info p { + font-weight: normal; + margin-top: 5px; +} + +.twitter-avator { + border-radius: 100px; + width: 48px; + margin-right: 15px; + vertical-align: middle; +} + +.tweet__wrap { + margin: auto 0; + padding: 10px 20px; + border-bottom: 2px solid #e6e6e6; + cursor: pointer; + max-width: 100%; +} +.tweet__wrap:hover, .tweet__wrap:focus, .tweet__wrap:active { + background-color: #efefef; + text-decoration: none; + color: inherit; +} + +.tweet__img-wrap { + padding-left: 60px; +} + +.tweet__footer { + display: flex; +} + +.tweet__footer svg { + color: #657786; + margin-right: 10px; +} + +.tweet__footer svg:hover { + color: #ff1493; +} + +.tweet__retweet { + display: flex; + margin-bottom: 10px; + font-size: 1.4rem; +} + +.tweet__retweet svg { + margin-right: 10px; +} + +.tweet__user { + display: flex; +} + +.tweet__text { + margin: 10px auto; +} + +.tweet__date { + color: #999; +} + +.view-twitter { + margin-top: 10px; +} + +@media screen and (max-width: 430px) { + .tweet-header { + flex-direction: column; + } + .tweet-header img { + margin-bottom: 20px; + } + .tweet-header-info p { + margin-bottom: 30px; + } + .tweet__img-wrap { + padding-left: 0; + } +} +.home-banner { + position: relative; + margin-top: 0; +} +.home-banner img { + width: 100%; + height: 100%; + display: block; +} + +@media (min-width: 980px) { + .field--name-field-home-banner-image { + outline: 1rem #fff solid; + margin-top: 1rem; + margin-bottom: 1rem; + } +} +.home-banner a { + text-decoration: none; +} + +.home-banner__title { + width: 100%; + background: #220e08; + padding: 1.5rem 2rem; +} +@media (min-width: 576px) { + .home-banner__title { + position: absolute; + left: 0; + bottom: 0; + background: rgba(34, 14, 8, 0.9); + } +} +@media (min-width: 768px) { + .home-banner__title { + width: 75%; + bottom: 3rem; + } +} +.home-banner__title .field { + color: #fff; +} +@media (max-width: 575.98px) { + .home-banner__title .field { + text-align: center; + } +} +@media (min-width: 768px) { + .home-banner__title .field { + font-size: 2.5rem; + font-weight: normal; + line-height: 1.2; + } +} +@media (min-width: 980px) { + .home-banner__title .field { + font-size: 3rem; + } +} + +.node__header_image img { + width: 100%; + height: auto; +} + +.block-sponsor-logos { + margin-bottom: 1rem; + margin-top: 1rem; +} +.block-sponsor-logos--gold, .block-sponsor-logos--silver, .block-sponsor-logos--bronze { + padding: 2rem 0; +} +.block-sponsor-logos .field__item { + padding: 1rem; +} +.block-sponsor-logos img { + object-fit: contain; +} +.block-sponsor-logos--gold, .block-sponsor-logos--silver, .block-sponsor-logos--none { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; +} +.block-sponsor-logos--gold img, .block-sponsor-logos--silver img, .block-sponsor-logos--none img { + width: 150px; + max-height: 80px; +} +.block-sponsor-logos--gold { + border: 3px solid gold; +} +.block-sponsor-logos--silver { + border: 3px solid silver; +} +.block-sponsor-logos--silver img { + width: 120px; +} +.block-sponsor-logos--bronze { + border: 3px solid #bea278; + column-gap: 20px; + column-count: auto; + column-width: 150px; +} +.block-sponsor-logos--bronze h3:first-child, +.block-sponsor-logos--bronze h4:first-child { + margin-top: 0; +} +.block-sponsor-logos--bronze p { + display: inline-block; + margin: 1rem 0; +} + +.block-sponsor-logos > div.field--name-field-logos { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-items: center; +} + +#block-60853 { + display: flex; + justify-content: center; +} + +.tag { + color: white; + font-size: 0.75em; + background-clip: padding-box; + border: 2px solid #fff; + border-radius: 0.5em; + margin-left: 0.5em; + text-transform: uppercase; + padding: 0 0.25em; +} + +.tag--undergrad { + background-color: crimson; + border-color: rgba(220, 20, 60, 0.5); +} + +.tag--grad { + background-color: lightskyblue; + border-color: rgba(135, 206, 250, 0.5); +} + +.tag--alumni { + background-color: green; + border-color: rgba(0, 128, 0, 0.5); +} + +.tag--research { + background-color: orange; + border-color: rgba(255, 165, 0, 0.5); +} + +.inline-block-left, +.inline-block-right { + margin: 0 0 1rem 0; + padding: 2rem; + background-color: #005554; + color: #fff; +} +@media (min-width: 768px) { + .inline-block-left, + .inline-block-right { + max-width: 260px; + width: 100%; + } +} +.inline-block-left h2, +.inline-block-left h3, +.inline-block-left h4, +.inline-block-left a, +.inline-block-right h2, +.inline-block-right h3, +.inline-block-right h4, +.inline-block-right a { + color: #fff; +} +.inline-block-left h2, +.inline-block-left h3, +.inline-block-left h4, +.inline-block-right h2, +.inline-block-right h3, +.inline-block-right h4 { + margin-top: 0; +} + +.inline-block-left { + margin-right: 2rem; +} +@media (min-width: 768px) { + .inline-block-left { + float: left; + clear: left; + } +} + +.inline-block-right { + margin-left: 2rem; +} +@media (min-width: 768px) { + .inline-block-right { + float: right; + clear: right; + } +} + +.media--type-logo { + display: inline-block; + vertical-align: middle; + padding-left: 2rem; +} +.media--type-logo div { + line-height: 0; +} +.media--type-logo img { + object-fit: contain; +} + +.media--type-logo:first-of-type { + padding-left: 0; +} + +.navbar .nav { + margin: 0; + padding: 0; +} + +.navbar .nav li { + margin: 0; + font-size: 1.7rem; +} + +.navbar .nav > .menu-item--active-trail > .navbar-link { + position: relative; +} + +.navbar .nav > .menu-item--active-trail > .navbar-link::before { + content: ""; + display: block; + width: 100%; + height: 3px; + background-color: #00afa4; + position: absolute; + bottom: 0; + left: 0; + z-index: 2; +} + +#ubc7-unit-menu.navigation-is-sticky { + z-index: 2; +} + +#ubc7-unit-menu .nav > li > a { + color: #005554; + padding: 1rem 1.5rem; + height: 45px !important; +} + +#ubc7-unit-menu .dropdown-menu > li > a { + color: #00afa4; +} + +#ubc7-unit-menu .dropdown:hover .dropdown-menu { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus, +#ubc7-unit-menu .nav-collapse .nav > li > a:hover { + background-color: #00afa4 !important; + transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); +} + +#ubc7-unit-menu .nav > li.active > a, +.navbar .nav > .active > a { + background: transparent; + box-shadow: none; +} + +.navbar .nav > .active > a:focus, +.navbar .nav > .active > a:hover { + background-color: #00afa4; + box-shadow: none; + color: #fff; +} + +.dropdown-menu { + border: 0; + border-radius: 3px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); + transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); +} + +.dropdown-menu:hover { + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); +} + +.dropdown-menu li { + border: 0; +} + +.dropdown-menu > li > a { + padding: 1rem 1.5rem; +} + +.menu--main .dropdown-menu .navbar-link { + font-size: 1.5rem; +} + +#ubc7-unit-menu .nav-collapse .dropdown-menu a:hover, +#ubc7-unit-menu .nav-collapse .nav > li > a:hover { + background-color: #00afa4 !important; +} + +.footer-quick-links ul { + margin: 0; + padding: 10px 0; + list-style-type: none; +} + +.footer-quick-links ul li { + display: inline; + padding: 0 10px; + border-left: 1px solid #005554; +} + +.footer-quick-links ul li:first-child, .footer-quick-links ul li.admin-page { + border-left: none; +} + +.footer-quick-links ul li.admin-page { + float: right; +} + +#ubc7-unit .utility-menu { + float: right; + height: 100%; +} +#ubc7-unit .utility-menu .btn { + background-color: #ef8843; + color: #fff; +} +@media (min-width: 1200px) { + #ubc7-unit .utility-menu .btn { + line-height: 3.6rem; + } +} + +#ubc7-unit-menu .dropdown .btn-group:hover button, +#ubc7-unit-menu .dropdown .btn-group button { + height: 45px !important; +} + +#ubc7-unit .navbar .btn-navbar:active, +#ubc7-unit .navbar .btn-navbar:hover { + box-shadow: none; +} + +#ubc7-unit-navigation .sub-menu--main li a { + color: #00afa4; +} + +#ubc7-unit .navbar .btn-navbar, +#ubc7-unit .btn { + box-shadow: none; + width: auto; + padding: 1.2rem; + margin: 0; + background: transparent; + font-size: 1.7rem; + height: 100%; +} + +@media (min-width: 980px) { + #ubc7-unit-navigation .sub-menu--main { + display: none; + } +} +@media (max-width: 979.98px) { + #ubc7-unit-navigation .menu--main { + display: none; + } +} +.news--teaser__image { + max-width: 115px; +} + +.news--teaser__image img { + border-left: 5px solid #00afa4; + margin: 0 0 2rem; +} + +@media (min-width: 576px) { + .news--teaser { + display: flex; + } + .news--teaser__image { + order: 2; + flex-shrink: 0; + } + .news--teaser__image img { + margin: 0 2rem; + } +} +.news--teaser__image a { + display: block; + line-height: 0; +} + +.news--teaser__text { + flex-grow: 1; +} + +.news--teaser__header { + margin: 0; +} + +.news--teaser__date { + color: #999; +} + +.node > :not(div, header, footer, table) { + max-width: 72rem; +} + +.node__meta { + flex-basis: 100%; +} + +.layout__region--content > .field, +.page-title { + max-width: 72rem; +} + +.node__submitted { + color: #999; + margin: 1rem 0 2rem; + font-size: 1.5rem; +} + +.node--unpublished { + position: relative; +} +.node--unpublished::before { + position: absolute; + top: 0; + right: 0; + display: block; + content: "DRAFT"; + font-size: 5rem; + opacity: 0.2; + color: #999; + transform: rotate(40deg); +} + +.node--view-mode-full { + margin-top: 2rem; +} + +.node__additional-content:before { + content: ""; + background-color: #9e4225; + height: 3px; + width: 50%; + display: block; + margin: 3rem auto; +} + +.node__ical { + font-size: 2.5rem; + text-align: right; +} + +.field--name-body h2, +.field--name-body h3, +.field--name-body h4, +.field--name-body h5 { + max-width: 50ch; +} +.field--name-body li, +.field--name-body p { + max-width: 75ch; +} + +.page-title::after { + content: ""; + display: block; + margin-top: 1rem; + margin-bottom: 1rem; + width: 250px; + height: 3px; + background-color: #9e4225; +} + +.prevnext-element.previous { + float: left; +} + +.prevnext-element.next { + float: right; +} + +.prev-next-container { + line-height: 1.5; + margin-top: 1.7rem; + margin-bottom: 1.7rem; + clear: both; +} + +/* + * DO NOT EDIT THIS FILE. + * See the following change record for more information, + * https://www.drupal.org/node/3084859 + * @preserve + */ +/** + * @file + * Styles for Claro's Pagination. + */ +:root { + /** + * Pager. + */ /* --space-m × 2 */ /* 2px */ +} + +.pager { + margin-top: 1.6rem; + margin-bottom: 1.6rem; +} + +.pager__items { + display: flex; + flex-wrap: wrap; + align-items: flex-end; + justify-content: center; + margin: 1.6rem 0; + padding: 0; + list-style: none; + text-align: center; + font-weight: bold; +} + +.pager__item { + display: inline-block; + margin: 0 0.4rem; +} + +.pager__link, +.pager__item--current { + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + min-width: 3.2rem; + height: 3.2rem; + padding-right: 0.8rem; + padding-left: 0.8rem; + color: #00afa4; + border-radius: 1.6rem; /* Pager size ÷ 2 */ + background: #fff; /* Make sure that the text is visible on dark background. */ + line-height: 1; +} + +.pager__link:hover, +.pager__link:focus, +.pager__link:active { + text-decoration: underline; +} + +.pager__link:hover, +.pager__link.is-active:hover { + color: #005554; + text-decoration: none; +} + +.pager__link--action-link { + border-radius: 0.2rem; +} + +/* Active number link. */ +.pager__link.is-active, +.pager__item--current { + text-decoration: none; + color: #fff; + border: 0.2rem solid transparent; + background: #00afa4; +} + +.pager__item--first .pager__link::before { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M2 2v12M14 2L8 8l6 6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--previous .pager__link::before { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M11 2L5 8l6 6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--next .pager__link::after { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M5 14l6-6-6-6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--last .pager__link::after { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M14 14V2M2 14l6-6-6-6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--first .pager__link::before, +.pager__item--previous .pager__link::before, +.pager__item--next .pager__link::after, +.pager__item--last .pager__link::after { + position: relative; + display: inline-block; + width: 1.6rem; + height: 1.6rem; + content: ""; + background-repeat: no-repeat; + background-position: center; +} + +.pager__item--mini { + margin-right: 0.8rem; + margin-left: 0.8rem; +} + +.pager__link--mini { + border-radius: 50%; +} + +/** + * On the mini pager, remove margins for the previous and next icons. + * Margins are not needed here as there is no accompanying text. + */ +.pager__link--mini::before { + margin-right: 0; + margin-left: 0; +} + +.pager__item-title--backwards { + margin-left: 0.8rem; +} + +.pager__item-title--forward { + margin-right: 0.8rem; +} + +@media (-ms-high-contrast: active), (forced-colors: active) { + .pager__item a:hover { + text-decoration: underline; + } +} +.profile-display { + display: flex; + flex-wrap: wrap; + margin: 0; + padding: 0; +} +.profile-display .profile-item { + list-style: none; + padding: 1rem; + margin: 0; + display: flex; + flex: 1 1 100%; +} +@media (min-width: 576px) { + .profile-display .profile-item { + flex: 1 1 50%; + } + .profile-display .profile-item:first-of-type { + flex: 1 1 100%; + } +} + +.profile--teaser { + width: 100%; + height: 100%; + position: relative; + display: flex; + justify-content: space-between; + flex-wrap: wrap; + flex-direction: column; + flex-grow: 1; + border: 1px solid #e4e4e4; + border-radius: 1rem; + padding: 3rem; +} +.profile--teaser__head { + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + margin-bottom: 2rem; + text-align: center; +} +.profile--teaser__image { + margin: auto; +} +.profile--teaser__image .image-default, +.profile--teaser__image img { + width: 150px; + height: 150px; + border-radius: 50%; +} +.profile--teaser__content { + width: 100%; + text-align: center; +} +.profile--teaser__content + div { + display: flex; + flex-direction: row; + flex-wrap: wrap; +} +.profile--teaser__content__name { + font-size: 2.4rem; +} + +.contact { + display: flex; + flex-wrap: wrap; + flex-direction: row; +} +.contact > .field + .field { + margin: 0; +} +.contact div { + flex: 1 1 50%; +} +.contact-content-job-title { + margin: 0; + font-size: 2rem; +} + +.field--label-inline .profile-people { + display: flex; + flex-wrap: wrap; + position: relative; + width: auto; +} +.field--label-inline .profile-people .field--label-inline .field__label, +.field--label-inline .profile-people .field--label-inline > .field__item:nth-child(2) { + padding: 0; +} + +.contact-content-name, +.contact-content-job-title { + font-size: 2rem; + margin: 0 0 1rem; + display: inline-block; +} + +.profile-people { + display: flex; + flex-wrap: wrap; + position: relative; + width: 100%; +} +.profile-people__content { + flex-grow: 4; + flex-shrink: 1; + flex-basis: 50%; +} +.profile-people__image { + margin: 20px; + flex: 0 0 auto; + width: auto; + max-width: none; +} +@media (min-width: 576px) { + .profile-people__image { + order: 2; + } +} +.profile-people__image .image-default, +.profile-people__image img { + width: 200px; + height: 200px; + border-radius: 50%; + padding: 1.2rem; + border: 2px solid #d7e0e7; +} + +@media (min-width: 576px) { + .profile-alumni__header { + display: flex; + flex-wrap: wrap; + position: relative; + width: 100%; + } + .profile-alumni__intro { + width: 100%; + } + .profile-alumni-image { + margin: 20px; + flex: 0 0 auto; + width: auto; + max-width: none; + order: 2; + } + .profile-alumni-image .profile-image { + margin: 0; + } + .profile-alumni-image .profile-image img { + max-width: 200px; + width: 200px; + height: 200px; + border-radius: 50%; + padding: 1.2rem; + border: 2px solid #d7e0e7; + } +} +.image-default { + display: flex; + justify-content: center; + flex-direction: column; + text-align: center; + background-color: #2f5d7c; + color: #fff; + font-size: 5rem; +} + +.profile-image img, +.profile-image .image-default { + max-width: 100px; + width: 100px; + height: 100px; + border-radius: 50%; +} + +.profile-image .image-default { + font-size: 4rem; +} + +.views-field-field-person-lname { + min-width: 20ch; +} + +.profile-alumni { + display: flex; + flex-wrap: wrap; + position: relative; + width: 100%; + margin: 2rem 0; +} + +.profile-alumni__content { + flex-grow: 4; + flex-shrink: 1; + flex-basis: 50%; +} + +.profile-alumni__image { + margin-right: 20px; + flex: 0 0 auto; + width: auto; + max-width: none; +} +.profile-alumni__image .image-default, +.profile-alumni__image img { + max-width: 100px; + width: 100px; + height: 100px; + border-radius: 50%; +} +.profile-alumni__image .image-default { + justify-content: center; + flex-direction: column; + text-align: center; + background-color: #2f5d7c; + color: #fff; + font-size: 5rem; +} + +.profile-alumni__name { + font-size: 3rem; +} + +.research-area__label { + display: flex; +} +@media (max-width: 575.98px) { + .research-area__label { + flex-direction: column; + align-items: center; + } +} + +.research-area__icon { + color: #9e4225; + display: inline-block; + margin-right: 0.5rem; + width: 4rem; + flex-shrink: 0; +} + +.research-area__icon img { + filter: invert(28%) sepia(48%) saturate(1393%) hue-rotate(338deg) brightness(96%) contrast(90%); + width: 3.5rem; +} + +.view-id-research > .view-grouping > .view-grouping-content { + padding: 0 4.5rem; +} + +.sidebar__icons { + font-size: 3rem; +} +.sidebar__icons a { + padding-right: 10px; +} + +.site-alert { + display: flex; + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} +.site-alert h1, +.site-alert h2, +.site-alert h3, +.site-alert h4, +.site-alert h5 { + color: #fff; + margin-top: 1rem; + margin-bottom: 1rem; +} +.site-alert p { + margin-top: 0; + margin-bottom: 0; +} +.site-alert a, +.site-alert h4 { + color: #fff; +} + +.site-alert-box { + color: #fff; + padding: 15px 35px 15px 15px; + margin-top: 1em; + margin-bottom: 1em; + border-width: 2px; + border-radius: 0; + display: flex; + align-items: center; + width: 100%; +} + +.site-alert-box.severity-low { + background-color: #324d6a; + border-color: #00162f; +} + +.site-alert-box.severity-medium { + background-color: #ef8843; + border-color: #d77a3c; +} + +.site-alert-box.severity-high { + background-color: #b33542; + border-color: #900f1d; +} + +.site-alert__icon { + display: block; + width: 40px; + height: 40px; + border: 2px solid #fff; + border-radius: 50%; + font-size: 150%; + text-align: center; + color: #fff; + line-height: 36px; + margin: 0 20px 0 0; + flex-shrink: 0; +} + +.site-alert__message { + flex-grow: 1; +} + +.home__slider { + max-width: 1200px; + width: 100%; + margin: 0 auto; +} + +/* Slider */ +.slick-loading .slick-list { + background: #fff url("/libraries/slick/slick/ajax-loader.gif") no-repeat center center; +} + +/* Arrows */ +.slick-prev, +.slick-next { + position: absolute; + display: block; + height: 20px; + width: 20px; + line-height: 0; + font-size: 0; + cursor: pointer; + background: transparent; + color: transparent; + top: 50%; + transform: translate(0, -50%); + padding: 0; + border: none; + outline: none; +} +.slick-prev:hover, .slick-prev:focus, +.slick-next:hover, +.slick-next:focus { + outline: none; + background: transparent; + color: transparent; +} +.slick-prev:hover:before, .slick-prev:focus:before, +.slick-next:hover:before, +.slick-next:focus:before { + opacity: 1; +} +.slick-prev.slick-disabled:before, +.slick-next.slick-disabled:before { + opacity: 0.25; +} + +.slick-prev { + left: -25px; +} +[dir=rtl] .slick-prev { + left: auto; + right: -25px; +} + +.slick-next { + right: -25px; +} +[dir=rtl] .slick-next { + left: -25px; + right: auto; +} + +/* Dots */ +.slick-dotted.slick-slider { + margin-bottom: 30px; +} + +.slick-dots { + position: absolute; + bottom: -30px; + list-style: none; + display: block; + text-align: center; + padding: 0; + margin: 0; + width: 100%; +} +.slick-dots li { + position: relative; + display: inline-block; + height: 20px; + width: 20px; + margin: 0 5px; + padding: 0; + cursor: pointer; +} +.slick-dots li button { + border: 0; + background: transparent; + display: block; + height: 20px; + width: 20px; + outline: none; + line-height: 0; + font-size: 0; + color: transparent; + padding: 5px; + cursor: pointer; +} +.slick-dots li button:hover, .slick-dots li button:focus { + outline: none; +} +.slick-dots li button:hover:before, .slick-dots li button:focus:before { + opacity: 1; +} +.slick-dots li button:before { + position: absolute; + top: 0; + left: 0; + width: 20px; + height: 20px; + font-size: 6px; + line-height: 20px; + text-align: center; + color: black; + opacity: 0.25; +} +.slick-dots li.slick-active button:before { + color: black; + opacity: 0.75; +} + +.slick-wrapper, +.slick, +.slick * { + box-sizing: border-box; +} + +.slick img { + height: auto; +} + +.slick img, +.slick iframe { + border: 0; + max-width: 100%; +} + +/* Prevents overflowing nested slides. */ +.slick, +.slick-wrapper { + max-width: 100%; + position: relative; +} + +/** + * Misc overrides core slick. + */ +.slick-initialized { + overflow: visible; +} + +.slick__slider::before, +.slick__slider::after { + display: table; + content: ""; +} + +.slick__slider::after { + clear: both; +} + +/** Draggable. */ +.draggable { + cursor: grab; +} + +.draggable:active { + cursor: grabbing; +} + +.draggable:active a, +.draggable:active .slide__caption { + cursor: grabbing; + -webkit-user-select: none; + user-select: none; +} + +/** Visibility fix for stacking slides during initialization. */ +.slick__slide { + max-width: 100%; + position: absolute; + visibility: hidden; +} + +/** Prevents collapsing container during initialization. */ +.slick__slide.slide--0 { + position: relative; +} + +.unslick .slick__slide, +.slick-initialized .slick__slide { + position: relative; + visibility: visible; +} + +/* Fix for Chrome blue outline */ +.slick__slide:focus { + outline: 0; +} + +/* Prevents collapsing slick when unslick like one item. */ +.unslick .slick__slide { + width: 100%; +} + +.slick-current { + z-index: 4; +} + +/** + * Slide layouts, adjust accordingly per actual container slide. + */ +.slide__content, +.grid__content { + position: relative; +} + +.slide__content::after { + content: ""; + display: table; + clear: both; +} + +.slide__title { + margin: 10px 0 5px; + line-height: 1.2; +} + +.slide__link { + margin: 30px auto; +} + +/* Overrides .slick-slider to make caption text selectable. */ +.slide__caption { + cursor: text; + -o-user-select: text; + -webkit-user-select: text; + user-select: text; + width: 100%; +} + +/* Only display when JS is ready. */ +.slick__arrow, +.is-loading .slide__caption { + visibility: hidden; +} + +/** Arrows are outside slick-initialized. */ +.slick--initialized .slick__arrow { + visibility: visible; +} + +.slick--main .slide__caption { + min-height: 32%; + padding: 20px 0; + z-index: 3; +} + +.slick--thumbnail .slide__caption { + padding: 5px 6px; +} + +/** + * Skins. + * Arrows contained/wrapped within slick__arrow for easy moves. + */ +/* Overrides problematic hidden arrows at core slick.css */ +.slick-prev { + left: 0; +} + +.slick-next { + right: 0; +} + +.slick__arrow { + bottom: auto; + height: 2px; + left: 0; + margin-top: -1px; + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 100%; + z-index: 2; +} + +/** Keeps decent fallback for when slick-theme.css is disabled, even if dup. */ +.slick-arrow { + border: 0; + border-radius: 50%; + font-size: 0; + height: 42px; + pointer-events: auto; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 42px; + margin: 0 1rem; +} + +.slick-arrow:active, +.slick-arrow:focus { + box-shadow: none; + outline: 0; +} + +.slick-arrow::before, +.slick-arrow::after { + pointer-events: none; +} + +/** + * Bullets. + */ +/* Makes the pointer work when bullets placed over the slide. */ +/* Overrides core > 1.3.11, otherwise thumbnails are non-clickable */ +.slick button, +.slick--thumbnail .slick__slide img { + pointer-events: auto; +} + +/* Provides decent dots if core slick-theme.css is disabled. */ +.slick-dots li { + margin-bottom: 5px; + display: inline-block; + vertical-align: top; +} + +/* Overrides too tiny bullets from core slick.css.*/ +.slick-dots li button::before { + font-size: 0.75rem; +} + +/** + * Media. + */ +/* Hide lazyloaded image when JS is off.*/ +img[data-lazy] { + display: none; +} + +.slide__media { + overflow: hidden; + position: relative; +} + +/* Center the image to reduce gap at RHS with smaller image, larger container */ +.media__image { + margin: 0 auto; +} + +/** @todo: Remove temp fix for when total <= slidesToShow at 1.6.1+. */ +/** @see https://github.com/kenwheeler/slick/issues/262 */ +.slick--less .slick-track { + margin-left: auto; + margin-right: auto; + text-align: center; +} + +.slick--less .slick-slide { + float: none; + display: inline-block; + vertical-align: top; +} + +.slick--less .draggable { + cursor: default; +} + +.slick-prev::before, +.slick-next::before { + display: inline-block; + content: ""; + background-repeat: no-repeat; + background-size: 4rem 4rem; + width: 4rem; + height: 4rem; +} + +.slick-prev::before { + background-image: url("../img/slick/prev.svg"); +} + +.slick-next::before { + background-image: url("../img/slick/next.svg"); +} + +.slick-dots li button::before { + background-color: #00afa4; + border-radius: 50%; + border: 2px solid #00afa4; + content: ""; + height: 10px; + width: 10px; + opacity: 1; +} + +.slick-dots li.slick-active button::before { + background-color: #fff; +} + +.sub-menu h3 { + font-weight: normal; +} + +.sub-menu { + margin-top: 2.7rem; +} + +.sub-menu ul { + list-style: none; + padding: 0; + margin: 0; +} + +.sub-menu .menu-item--expanded .menu-item__label { + display: flex; +} +.sub-menu .menu-item--expanded .menu-item__label > .menu-item__link { + flex: 1 1 auto; +} +.sub-menu .menu-item--expanded .menu-item__label > .menu-item__toggle { + flex: 0 0 1rem; +} + +.sub-menu .menu-item__link { + text-decoration: none; + display: block; + padding: 0.5rem 0.85rem; + transition: all 0.25s ease-in; +} +.sub-menu .menu-item__link.is-active { + color: #005554; + font-weight: 400; + position: relative; +} +.sub-menu .menu-item__link.is-active::before { + width: 50px; + height: 2px; + background-color: #005554; + position: absolute; + bottom: 0; + content: ""; +} + +.sub-menu .menu-item__label { + border-bottom: 1px solid #dff4f4; +} + +.sub-menu .menu-item--active-trail > .menu-item__label .menu-item__link { + color: #005554; + font-weight: 400; +} + +.sub-menu ul .menu-item__link { + padding-left: 1rem; +} + +.sub-menu ul ul .menu-item__link { + padding-left: 2rem; +} + +.sub-menu ul ul ul .menu-item__link { + padding-left: 3rem; +} + +.sub-menu ul ul ul ul .menu-item__link { + padding-left: 4rem; +} + +.sub-menu ul ul ul ul ul .menu-item__link { + padding-left: 5rem; +} + +.sub-menu ul ul ul ul ul ul .menu-item__link { + padding-left: 6rem; +} + +.menu-item__item { + margin: 0; +} + +.menu-item__item > ul { + display: none; +} + +.menu-item__item.menu-item--expand > ul { + display: block; +} + +.sub-menu .menu-item__toggle { + text-align: center; + min-width: 3rem; + cursor: pointer; +} + +.menu-item__toggle .chevron::after { + transition: transform 0.5s ease-in-out; +} + +.menu-item__item.menu-item--expand > .menu-item__label .chevron::after { + transform: rotate(135deg); +} + +.menu-item--active-trail > .menu-item__label .chevron::after { + border-color: #005554; +} + +.node table { + width: 100%; + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #d7e0e7; + border-right-width: 0; + border-bottom-width: 0; +} +.node td, +.node th { + border: 0 solid #d7e0e7; + border-right-width: 1px; + border-bottom-width: 1px; + padding: 0.5rem 0.8rem; + text-align: left; +} +.node thead th { + vertical-align: bottom; +} + +td.is-active { + background-color: transparent; +} + +.field-multiple-table { + width: 100%; +} +.field-multiple-table th { + text-align: left; +} + +button.link.tabledrag-toggle-weight { + font-size: 0.7em; + text-transform: uppercase; + color: #999; +} + +form .field-multiple-table .field-multiple-drag .tabledrag-handle { + padding: 7px; +} + +.field-multiple-drag { + vertical-align: middle; +} + +.draggable a.tabledrag-handle { + float: none; + display: inline-block; + margin: 0; + height: 30px; +} + +a.tabledrag-handle .handle { + width: 16px; + height: 16px; + background-position: 0 0; + padding: 0; + margin: 0; +} + +.node .toc-tree { + border: 1px solid #ccc; + padding: 2rem; + margin: 2rem 0; +} + +.toc-tree ol.none { + padding: 0; +} + +.toc-tree h3 { + margin: 0 0; +} + +.toc-tree > ol, +.toc-tree > ul { + margin: 2rem 0; +} + +.text-primary { + color: #9e4225; +} + +.text-secondary { + color: #005554; +} + +.text-large { + font-size: 3.4rem; +} + +.intro { + color: #cc6e20; + font-size: 2.2rem; +} + +#ubc7-unit { + background-color: #9e4225; +} + +body { + padding: 0; +} + +.vertical-tabs__menu-item { + margin: 0; +} + +.views-exposed-form { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + align-content: space-around; + margin-left: -1rem; + margin-right: -1rem; +} + +.views-exposed-form .form-item, +.views-exposed-form .form-actions { + margin: 1rem; +} +@media (min-width: 768px) { + .views-exposed-form .form-item, + .views-exposed-form .form-actions { + max-width: 240px; + } +} + +.views-exposed-form .form-actions { + align-self: flex-end; +} + +.views-field-view-node, +.news-image img { + margin-top: 1rem; +} + +.views-row + .views-row::before { + content: ""; + display: block; + height: 2px; + border: 0; + margin: 2rem auto; + width: 100%; + padding: 0; + background-color: #e6e6e6; +} + +.chevron::after { + border-style: solid; + border-width: 0.2em 0.2em 0 0; + content: ""; + display: inline-block; + height: 0.45em; + left: 0.15em; + position: relative; + transform: rotate(-45deg); + vertical-align: middle; + width: 0.45em; +} + +.chevron.right::after { + left: 0; + transform: rotate(45deg); +} + +.chevron.bottom::after { + transform: rotate(135deg); +} + +.chevron.left::after { + left: 0.25em; + transform: rotate(-135deg); +} + +#back-to-top { + display: none; + position: fixed; + right: 0; + bottom: 40px; + width: 40px; + z-index: 99; + transition: color 0.2s ease, background-color 0.2s ease; +} + +.back-to-top__button { + background-color: #002145; + font-weight: 400; + font-size: 0.9em; + color: #fff; + display: inline-block; + padding: 14px; + margin: 0; + cursor: pointer; + width: auto; + border: none; + text-decoration: none; + opacity: 0.75; +} +.back-to-top__button:hover { + opacity: 0.9; +} +.back-to-top__button i { + color: #fff; +} + +.permalink { + text-decoration: none; + opacity: 0.5; + color: #444; + font-size: 0.8em; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (max-width: 575.98px) { + .extend–background { + margin-left: -15px; + margin-right: -15px; + } +} +@media (min-width: 576px) { + .extend–background { + margin-right: -30000px; + margin-left: -30000px; + padding-right: 30000px; + padding-left: 30000px; + } +} + +.short-line { + width: 225px; + height: 3px; + background-color: #9e4225; + margin: 0 auto; +} + +.intro { + color: #cc6e20; + font-size: 2.2rem; +} + +.bg-base-darkest { + background-color: #005554; +} + +.p-1 { + padding: 1rem; +} + +.p-2 { + padding: 2rem; +} + +.px-1 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-2 { + padding-left: 2rem; + padding-right: 2rem; +} + +.py-1 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.py-2 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.m-1 { + margin: 1rem; +} + +.m-2 { + margin: 2rem; +} + +.mx-1 { + margin-left: 1rem; + margin-right: 1rem; +} + +.mx-2 { + margin-left: 2rem; + margin-right: 2rem; +} + +.my-1 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.my-2 { + margin-top: 2rem; + margin-bottom: 2rem; +} diff --git a/public/themes/custom/ubccs/css/normalize.css b/public/themes/custom/ubccs/css/normalize.css new file mode 100644 index 0000000..4b5950c --- /dev/null +++ b/public/themes/custom/ubccs/css/normalize.css @@ -0,0 +1,309 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document + ========================================================================== */ +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ +/** + * Remove the gray background on active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove the border on images inside links in IE 10. + */ +img { + border-style: none; +} + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type=search] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} diff --git a/public/themes/custom/ubccs/css/print.css b/public/themes/custom/ubccs/css/print.css new file mode 100644 index 0000000..ac6f8a1 --- /dev/null +++ b/public/themes/custom/ubccs/css/print.css @@ -0,0 +1,36 @@ +body, +input, +textarea, +select { + color: #000; + background: none; +} + +a:link::after { + content: ""; + padding-left: inherit; +} + +.sub-menu, +#back-to-top, +.contextual, +nav.tabs { + display: none; +} + +footer { + display: none; +} + +img { + page-break-inside: avoid; +} + +p, h2, h3 { + orphans: 3; + widows: 3; +} + +h2, h3, h4 { + page-break-after: avoid; +} diff --git a/public/themes/custom/ubccs/css/select2.css b/public/themes/custom/ubccs/css/select2.css new file mode 100644 index 0000000..259d7f4 --- /dev/null +++ b/public/themes/custom/ubccs/css/select2.css @@ -0,0 +1,279 @@ +select { + min-width: 200px; +} + +.select2-container--default .select2-dropdown { + border-radius: 0; +} + +.select2-container--default { + max-width: 100%; +} + +.select2-container--default .select2-selection--single { + background-color: #fff; + border: 2px solid #b8b8b8; + border-top-color: #999; + border-radius: 0; + height: auto; + padding: 0.5rem 0.8rem; +} + +.select2-container--default .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: inherit; +} + +.select2-container--default .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + height: 26px; + margin-right: 20px; + padding-right: 0; +} + +.select2-container--default .select2-selection--single .select2-selection__placeholder { + color: #999; +} + +.select2-container--default .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 0.5rem; + right: 0.8rem; + width: 20px; +} + +.select2-container--default .select2-selection--single .select2-selection__arrow b { + border-color: #666 transparent transparent transparent; + border-style: solid; + border-width: 7px 6px 0 6px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; +} + +.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #666 transparent; + border-width: 0 6px 7px 6px; +} + +.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear { + float: left; +} + +.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; +} + +.select2-container--default.select2-container--disabled .select2-selection--single { + background-color: #eee; + cursor: default; +} + +.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; +} + +.select2-container--default .select2-selection--multiple { + background-color: white; + border: 2px solid #b8b8b8; + border-top-color: #999; + border-radius: 0; + cursor: text; + padding-bottom: 0; + padding-right: 0; +} + +.select2-container--default .select2-selection--multiple .select2-selection__rendered { + margin: 0; + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + padding: 0.4rem; +} + +.select2-container--default .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + height: 20px; + margin-right: 10px; + margin-top: 5px; + padding: 1px; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice { + background-color: #fff; + border: 0; + outline: 1px solid #999; + border-radius: 0; + display: inline-block; + margin: 0; + padding: 0; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice::after { + display: inline-block; + content: ""; + width: 0.5rem; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice__display { + cursor: default; + padding-left: 2px; + padding-right: 5px; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + background-color: transparent; + border: none; + color: #999; + cursor: pointer; + font-weight: bold; + padding: 0 0.5rem; + position: relative; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover, +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus { + background-color: #f1f1f1; + color: #333; + outline: none; +} + +.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; +} + +.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__display { + padding-left: 5px; + padding-right: 2px; +} + +.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove { + border-left: 1px solid #b8b8b8; + border-right: none; + border-radius: 0 4px 4px 0; +} + +.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__clear { + float: left; + margin-left: 10px; + margin-right: auto; +} + +.select2-container--default.select2-container--focus .select2-selection--multiple { + border: 2px solid #00afa4; + background-color: #fff; + outline: 0; +} + +.select2-container--default.select2-container--disabled .select2-selection--multiple { + background-color: #eee; + cursor: default; +} + +.select2-container--default.select2-container--disabled .select2-selection__choice__remove { + display: none; +} + +.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, +.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, +.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.select2-container--default .select2-search--dropdown .select2-search__field { + border: 2px solid #b8b8b8; + border-top-color: #999; + margin: 0; +} + +.select2-container--default .select2-search--inline .select2-search__field { + background: transparent; + border: none; + outline: 0; + box-shadow: none; + -webkit-appearance: textfield; + height: 26px; +} + +.select2-container--default .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; +} + +.select2-container--default .select2-results__option { + margin-bottom: 0; +} + +.select2-container--default .select2-results__option .select2-results__option { + padding-left: 1em; +} + +.select2-container--default .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; +} + +.select2-container--default .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; +} + +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; +} + +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; +} + +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; +} + +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; +} + +.select2-container--default .select2-results__option--group { + padding: 0; +} + +.select2-container--default .select2-results__option--disabled { + color: #999; +} + +.select2-container--default .select2-results__option--selected { + background-color: #ddd; +} + +.select2-container--default .select2-results__option--highlighted[aria-selected], +.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { + background-color: #00afa4; + color: white; +} + +.select2-container--default .select2-results__group { + cursor: default; + display: block; + padding: 6px; +} diff --git a/public/themes/custom/ubccs/css/timeline.css b/public/themes/custom/ubccs/css/timeline.css new file mode 100644 index 0000000..f6e9570 --- /dev/null +++ b/public/themes/custom/ubccs/css/timeline.css @@ -0,0 +1,28 @@ +.tl-timeline { + z-index: 1; +} + +.tl-timegroup:nth-child(1) { + background-color: #e9e9fc !important; +} + +.tl-timegroup:nth-child(2) { + background-color: #eee !important; +} + +.tl-timegroup:nth-child(3) { + background-color: #fef !important; +} + +.tl-timegroup:nth-child(4) { + background-color: #eee; +} + +.tl-slide .tl-slide-content-container .tl-slide-content { + box-sizing: initial; +} + +.tl-text h2.tl-headline-title, +.tl-text h2.tl-headline { + color: #005554; +} diff --git a/public/themes/custom/ubccs/img/arrow-both.svg b/public/themes/custom/ubccs/img/arrow-both.svg new file mode 100644 index 0000000..30afa7d --- /dev/null +++ b/public/themes/custom/ubccs/img/arrow-both.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/themes/custom/ubccs/img/computer-science-logo.png b/public/themes/custom/ubccs/img/computer-science-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9452009066c18513b396d4d2df5f9db6ae2f4dee GIT binary patch literal 2598 zcmV+>3fc9EP)B4`-VpcoOmDQOyC6`$4moSIk- zQ|nCH#&)bjoSL?&Mtnq)CMwOtPCI=tZD;zQ+uzwacjnH8J$HA#cgtotGrxhm_q*Tk ze82B}k9+PHV1zjwj==cr+RUiQRjVU2SH2ORZu@cQ#Pavm2(wna8dvVz{ zr9-EznoZ9c#Xll{Z5Fs2i6eNz@~c{Y@E#`L$VcP2VUHd?`bNg0EzwjlH8LP|iNjmK z@sG&Sn5oqza4^UdA5!PPJeHmf9KZBm-f)xe2|2ZM1!43Zpq^J8FcMTJ91GR+Vb03e zW61|2I1{J8v{&FX(*YR+o?iAJI2I=jhtadw%{Q_mCYLntLA^sXRK9RP#<1Kqcft3h z3qOKzf34A+)!UA(MconZ2r(e;*_tMANFd;SE%ctj5WEb|gx)%2+LCR#?s8i)SN>DW zO~3V4cHilX3sCt#UY z&f`DZU28vndPc=-SK@POA1d`sDQSKa_oKB#w6f{Qu#mLn5A_6C^XiE=KY8%*CDc(0 z6sfq2__vB5UAWRh+>?u&uhDa`RA7K8MD*0^WA2DR4s_o8sv6Hc2V?=?1d@PZK)eFJ zP6SebG+-()n?!wkIcneKR~$>;8|cC@Fb9+aP$8o zfYHFy%sv0wo%@C47YXi4h#-V(g`N=O3pU=qd+*CCl+We{#sJ~uJXJ2uK|lx)0XzW= zX93fJQQDBjbtLu)e|F`^$eDGYqRc!X85jZ#Abx>6n7LztIO21;YRs?RJ|XC-vVTiL zly2D9M#^$8L<$bb#+>Y6I5`FcsqfXjc4~^`%htVbH*+Ko^puw%MMbD3tLl28G+0+ zF@k_(MD2C3r5zsroi^~vXDvLO0HNEC%sN6zB5s|t|l zy~8;M+036i2Jvq5dCYOYkQ*)o!{-QP?xvv+Pvv0sqp41mmGKumT^t#~1u<29@qAv!Lz<+fPlRjjsD2ZcH zW>bQRGFYBQ3#Nz@v{EW!#77j3R3#={&Z(_ zP{>U$Z#g6tE^j9pMv;N9axPC0Oe%Wi9hxe7bk$5mK5hiV8LCcx%5h zWK0IcSb3i&akU>vz?7QBNA2q9>?-Cjgh6^K`X_+QqivU)l$RZ|0UNF!vL);Ht}ufK zQS}d+3cxW|vsDlUvG5yUA*I^PjuI^G*)*iIADxW^y|mr=^a~reYcTP7l9>+U2__c_ zlvU5y?tE7{A7v!yLs9d-wmj+tA#3k7DCvVGb{C&8N&&)wKyOoRQNS1=7bvERr&qMR zCl4X{034m^qU_Yi_aD}x&gnpcN{k2~aGo0DX(y0xF^sJY*QV8TL{bovRLF8 zAXIUZxuW@qQw}$#6tMN=>dAwHZfn@L8NdVCyj@~FplU@Ndz;*31;OZ0E-5Z+~`oH;ihmg z4+|LNk8jxh)^GjRZ~gZ5vT;i+Kt5m<%2=Ic3^3*b!0Sr`pTtcC>_9ir4s-y8+6wqy z7vJydO*Agkt-4ME9DrTm>t;S}J$997j$WR3Xwa?}T5~Vo1-FB_*>J%(ErOb-fD5YY zdZ!>7QxVwsx>XRPT~(&tT`^qN!{+`o%mZkM;gDon1tFYDacx}}2z=ee*FD7G2+QZc zc2mUQ#%iBozgm?DH&YCoa*xUE;xOTRCW(t{fwCio{C|>{Vpug3tj!xSRIs}c;}p;#EjdZLORKL;S^oO1 z-}> zy(g)T@iN&hh$V?3FNv}kU4Tum&R%!2vKV$(ORCb_g+c{(rI!p6L*Z-{#o!&Ix=x|2 z#RD;vkzni5>#CP3n~%ik5a%g%#PYV@U@=aK`zm&@UKo=OUk?-h-^PMSb#@yuOzQb& z2SHMo%Q{r$?FLMsVsEQEN~)8~cY8d60^TjF+VXwTynJQ&A65TiUIza;V*mgE07*qo IM6N<$g0Tnm2mk;8 literal 0 HcmV?d00001 diff --git a/public/themes/custom/ubccs/img/correct8.svg b/public/themes/custom/ubccs/img/correct8.svg new file mode 100644 index 0000000..bd7b38b --- /dev/null +++ b/public/themes/custom/ubccs/img/correct8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/themes/custom/ubccs/img/next.svg b/public/themes/custom/ubccs/img/next.svg new file mode 100644 index 0000000..1ad71a7 --- /dev/null +++ b/public/themes/custom/ubccs/img/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/themes/custom/ubccs/img/prev.svg b/public/themes/custom/ubccs/img/prev.svg new file mode 100644 index 0000000..e259c98 --- /dev/null +++ b/public/themes/custom/ubccs/img/prev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/themes/custom/ubccs/img/slick/next.svg b/public/themes/custom/ubccs/img/slick/next.svg new file mode 100644 index 0000000..788e596 --- /dev/null +++ b/public/themes/custom/ubccs/img/slick/next.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/themes/custom/ubccs/img/slick/prev.svg b/public/themes/custom/ubccs/img/slick/prev.svg new file mode 100644 index 0000000..93c530c --- /dev/null +++ b/public/themes/custom/ubccs/img/slick/prev.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/themes/custom/ubccs/img/ubc_logo.png b/public/themes/custom/ubccs/img/ubc_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b7e11de2dcfbecf7d370ee060d5702bdd69c68 GIT binary patch literal 4342 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 F{sVkL4wnD` literal 0 HcmV?d00001 diff --git a/public/themes/custom/ubccs/js/main.js b/public/themes/custom/ubccs/js/main.js new file mode 100644 index 0000000..d03d51e --- /dev/null +++ b/public/themes/custom/ubccs/js/main.js @@ -0,0 +1,68 @@ + +(function ($, Drupal) { + + Drupal.behaviors.BackToTop = { + attach: function () { + var $window = $(window); + var $backToTop = $('#back-to-top'); + $backToTop.hide(); + + $window.scroll(function () { + $window.scrollTop() > 150 ? $backToTop.fadeIn(300) : $backToTop.fadeOut(300); + }); + $backToTop.find('a.ease').on('click', function (e) { + e.preventDefault(); + $('html, body').animate({scrollTop: 0}, 800); + return false; + }); + } + }; + + Drupal.behaviors.SearchFocus = { + attach: function (context) { + var checkIsVisible; + $('#ubc7-global-utility', context).on('click', 'button', function () { + clearInterval(checkIsVisible); + }); + $('#ubc7-global-utility', context).on('click', 'button[data-toggle="collapse"]', function () { + var target = $(this).data('target'); + var $searchInput = $(target).find('input[type="text"]'); + if ($searchInput.length) { + checkIsVisible = setInterval(function () { + if ($searchInput.filter(':visible').length) { + clearInterval(checkIsVisible); + $searchInput.focus(); + console.log($searchInput); + } + }, 100); + } + }); + } + }; + + Drupal.behaviors.SubMenu = { + attach: function (context) { + var $subMenu = $('.sub-menu', context); + var $toggles = $subMenu.find('.menu-item__toggle'); + $toggles.on('click', function () { + $(this).closest('li').toggleClass('menu-item--expand'); + }); + } + }; + + Drupal.behaviors.CourseInfoToggle = { + attach: function (context, settings) { + $('.course-section-table-body > tr:not(.child)', context).click(function (e) { + // Exclude links. + if (e.target.tagName === "A") { + return; + } + e.preventDefault(); + $(this).next('tr').toggle(); + $(this).toggleClass('open'); + $(this).children("td:last").children('.chevron').toggleClass('bottom'); + }); + } + }; + +} (jQuery, Drupal)); diff --git a/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.css b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.css new file mode 100644 index 0000000..16b0125 --- /dev/null +++ b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.css @@ -0,0 +1,895 @@ +body.compensate-for-scrollbar { + overflow: hidden; +} + +.fancybox-active { + height: auto; +} + +.fancybox-is-hidden { + left: -9999px; + margin: 0; + position: absolute !important; + top: -9999px; + visibility: hidden; +} + +.fancybox-container { + -webkit-backface-visibility: hidden; + height: 100%; + left: 0; + outline: none; + position: fixed; + -webkit-tap-highlight-color: transparent; + top: 0; + -ms-touch-action: manipulation; + touch-action: manipulation; + transform: translateZ(0); + width: 100%; + z-index: 99992; +} + +.fancybox-container * { + box-sizing: border-box; +} + +.fancybox-outer, +.fancybox-inner, +.fancybox-bg, +.fancybox-stage { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.fancybox-outer { + -webkit-overflow-scrolling: touch; + overflow-y: auto; +} + +.fancybox-bg { + background: rgb(30, 30, 30); + opacity: 0; + transition-duration: inherit; + transition-property: opacity; + transition-timing-function: cubic-bezier(.47, 0, .74, .71); +} + +.fancybox-is-open .fancybox-bg { + opacity: .9; + transition-timing-function: cubic-bezier(.22, .61, .36, 1); +} + +.fancybox-infobar, +.fancybox-toolbar, +.fancybox-caption, +.fancybox-navigation .fancybox-button { + direction: ltr; + opacity: 0; + position: absolute; + transition: opacity .25s ease, visibility 0s ease .25s; + visibility: hidden; + z-index: 99997; +} + +.fancybox-show-infobar .fancybox-infobar, +.fancybox-show-toolbar .fancybox-toolbar, +.fancybox-show-caption .fancybox-caption, +.fancybox-show-nav .fancybox-navigation .fancybox-button { + opacity: 1; + transition: opacity .25s ease 0s, visibility 0s ease 0s; + visibility: visible; +} + +.fancybox-infobar { + color: #ccc; + font-size: 13px; + -webkit-font-smoothing: subpixel-antialiased; + height: 44px; + left: 0; + line-height: 44px; + min-width: 44px; + mix-blend-mode: difference; + padding: 0 10px; + pointer-events: none; + top: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.fancybox-toolbar { + right: 0; + top: 0; +} + +.fancybox-stage { + direction: ltr; + overflow: visible; + transform: translateZ(0); + z-index: 99994; +} + +.fancybox-is-open .fancybox-stage { + overflow: hidden; +} + +.fancybox-slide { + -webkit-backface-visibility: hidden; + /* Using without prefix would break IE11 */ + display: none; + height: 100%; + left: 0; + outline: none; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 44px; + position: absolute; + text-align: center; + top: 0; + transition-property: transform, opacity; + white-space: normal; + width: 100%; + z-index: 99994; +} + +.fancybox-slide::before { + content: ''; + display: inline-block; + font-size: 0; + height: 100%; + vertical-align: middle; + width: 0; +} + +.fancybox-is-sliding .fancybox-slide, +.fancybox-slide--previous, +.fancybox-slide--current, +.fancybox-slide--next { + display: block; +} + +.fancybox-slide--image { + overflow: hidden; + padding: 44px 0; +} + +.fancybox-slide--image::before { + display: none; +} + +.fancybox-slide--html { + padding: 6px; +} + +.fancybox-content { + background: #fff; + display: inline-block; + margin: 0; + max-width: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 44px; + position: relative; + text-align: left; + vertical-align: middle; +} + +.fancybox-slide--image .fancybox-content { + animation-timing-function: cubic-bezier(.5, 0, .14, 1); + -webkit-backface-visibility: hidden; + background: transparent; + background-repeat: no-repeat; + background-size: 100% 100%; + left: 0; + max-width: none; + overflow: visible; + padding: 0; + position: absolute; + top: 0; + -ms-transform-origin: top left; + transform-origin: top left; + transition-property: transform, opacity; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + z-index: 99995; +} + +.fancybox-can-zoomOut .fancybox-content { + cursor: zoom-out; +} + +.fancybox-can-zoomIn .fancybox-content { + cursor: zoom-in; +} + +.fancybox-can-swipe .fancybox-content, +.fancybox-can-pan .fancybox-content { + cursor: -webkit-grab; + cursor: grab; +} + +.fancybox-is-grabbing .fancybox-content { + cursor: -webkit-grabbing; + cursor: grabbing; +} + +.fancybox-container [data-selectable='true'] { + cursor: text; +} + +.fancybox-image, +.fancybox-spaceball { + background: transparent; + border: 0; + height: 100%; + left: 0; + margin: 0; + max-height: none; + max-width: none; + padding: 0; + position: absolute; + top: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + width: 100%; +} + +.fancybox-spaceball { + z-index: 1; +} + +.fancybox-slide--video .fancybox-content, +.fancybox-slide--map .fancybox-content, +.fancybox-slide--pdf .fancybox-content, +.fancybox-slide--iframe .fancybox-content { + height: 100%; + overflow: visible; + padding: 0; + width: 100%; +} + +.fancybox-slide--video .fancybox-content { + background: #000; +} + +.fancybox-slide--map .fancybox-content { + background: #e5e3df; +} + +.fancybox-slide--iframe .fancybox-content { + background: #fff; +} + +.fancybox-video, +.fancybox-iframe { + background: transparent; + border: 0; + display: block; + height: 100%; + margin: 0; + overflow: hidden; + padding: 0; + width: 100%; +} + +/* Fix iOS */ +.fancybox-iframe { + left: 0; + position: absolute; + top: 0; +} + +.fancybox-error { + background: #fff; + cursor: default; + max-width: 400px; + padding: 40px; + width: 100%; +} + +.fancybox-error p { + color: #444; + font-size: 16px; + line-height: 20px; + margin: 0; + padding: 0; +} + +/* Buttons */ + +.fancybox-button { + background: rgba(30, 30, 30, .6); + border: 0; + border-radius: 0; + box-shadow: none; + cursor: pointer; + display: inline-block; + height: 44px; + margin: 0; + padding: 10px; + position: relative; + transition: color .2s; + vertical-align: top; + visibility: inherit; + width: 44px; +} + +.fancybox-button, +.fancybox-button:visited, +.fancybox-button:link { + color: #ccc; +} + +.fancybox-button:hover { + color: #fff; +} + +.fancybox-button:focus { + outline: none; +} + +.fancybox-button.fancybox-focus { + outline: 1px dotted; +} + +.fancybox-button[disabled], +.fancybox-button[disabled]:hover { + color: #888; + cursor: default; + outline: none; +} + +/* Fix IE11 */ +.fancybox-button div { + height: 100%; +} + +.fancybox-button svg { + display: block; + height: 100%; + overflow: visible; + position: relative; + width: 100%; +} + +.fancybox-button svg path { + fill: currentColor; + stroke-width: 0; +} + +.fancybox-button--play svg:nth-child(2), +.fancybox-button--fsenter svg:nth-child(2) { + display: none; +} + +.fancybox-button--pause svg:nth-child(1), +.fancybox-button--fsexit svg:nth-child(1) { + display: none; +} + +.fancybox-progress { + background: #ff5268; + height: 2px; + left: 0; + position: absolute; + right: 0; + top: 0; + -ms-transform: scaleX(0); + transform: scaleX(0); + -ms-transform-origin: 0; + transform-origin: 0; + transition-property: transform; + transition-timing-function: linear; + z-index: 99998; +} + +/* Close button on the top right corner of html content */ + +.fancybox-close-small { + background: transparent; + border: 0; + border-radius: 0; + color: #ccc; + cursor: pointer; + opacity: .8; + padding: 8px; + position: absolute; + right: -12px; + top: -44px; + z-index: 401; +} + +.fancybox-close-small:hover { + color: #fff; + opacity: 1; +} + +.fancybox-slide--html .fancybox-close-small { + color: currentColor; + padding: 10px; + right: 0; + top: 0; +} + +.fancybox-slide--image.fancybox-is-scaling .fancybox-content { + overflow: hidden; +} + +.fancybox-is-scaling .fancybox-close-small, +.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small { + display: none; +} + +/* Navigation arrows */ + +.fancybox-navigation .fancybox-button { + background-clip: content-box; + height: 100px; + opacity: 0; + position: absolute; + top: calc(50% - 50px); + width: 70px; +} + +.fancybox-navigation .fancybox-button div { + padding: 7px; +} + +.fancybox-navigation .fancybox-button--arrow_left { + left: 0; + left: env(safe-area-inset-left); + padding: 31px 26px 31px 6px; +} + +.fancybox-navigation .fancybox-button--arrow_right { + padding: 31px 6px 31px 26px; + right: 0; + right: env(safe-area-inset-right); +} + +/* Caption */ + +.fancybox-caption { + background: linear-gradient(to top, + rgba(0, 0, 0, .85) 0%, + rgba(0, 0, 0, .3) 50%, + rgba(0, 0, 0, .15) 65%, + rgba(0, 0, 0, .075) 75.5%, + rgba(0, 0, 0, .037) 82.85%, + rgba(0, 0, 0, .019) 88%, + rgba(0, 0, 0, 0) 100%); + bottom: 0; + color: #eee; + font-size: 14px; + font-weight: 400; + left: 0; + line-height: 1.5; + padding: 75px 44px 25px 44px; + pointer-events: none; + right: 0; + text-align: center; + z-index: 99996; +} + +@supports (padding: max(0px)) { + .fancybox-caption { + padding: 75px max(44px, env(safe-area-inset-right)) max(25px, env(safe-area-inset-bottom)) max(44px, env(safe-area-inset-left)); + } +} + +.fancybox-caption--separate { + margin-top: -50px; +} + +.fancybox-caption__body { + max-height: 50vh; + overflow: auto; + pointer-events: all; +} + +.fancybox-caption a, +.fancybox-caption a:link, +.fancybox-caption a:visited { + color: #ccc; + text-decoration: none; +} + +.fancybox-caption a:hover { + color: #fff; + text-decoration: underline; +} + +/* Loading indicator */ + +.fancybox-loading { + animation: fancybox-rotate 1s linear infinite; + background: transparent; + border: 4px solid #888; + border-bottom-color: #fff; + border-radius: 50%; + height: 50px; + left: 50%; + margin: -25px 0 0 -25px; + opacity: .7; + padding: 0; + position: absolute; + top: 50%; + width: 50px; + z-index: 99999; +} + +@keyframes fancybox-rotate { + 100% { + transform: rotate(360deg); + } +} + +/* Transition effects */ + +.fancybox-animated { + transition-timing-function: cubic-bezier(0, 0, .25, 1); +} + +/* transitionEffect: slide */ + +.fancybox-fx-slide.fancybox-slide--previous { + opacity: 0; + transform: translate3d(-100%, 0, 0); +} + +.fancybox-fx-slide.fancybox-slide--next { + opacity: 0; + transform: translate3d(100%, 0, 0); +} + +.fancybox-fx-slide.fancybox-slide--current { + opacity: 1; + transform: translate3d(0, 0, 0); +} + +/* transitionEffect: fade */ + +.fancybox-fx-fade.fancybox-slide--previous, +.fancybox-fx-fade.fancybox-slide--next { + opacity: 0; + transition-timing-function: cubic-bezier(.19, 1, .22, 1); +} + +.fancybox-fx-fade.fancybox-slide--current { + opacity: 1; +} + +/* transitionEffect: zoom-in-out */ + +.fancybox-fx-zoom-in-out.fancybox-slide--previous { + opacity: 0; + transform: scale3d(1.5, 1.5, 1.5); +} + +.fancybox-fx-zoom-in-out.fancybox-slide--next { + opacity: 0; + transform: scale3d(.5, .5, .5); +} + +.fancybox-fx-zoom-in-out.fancybox-slide--current { + opacity: 1; + transform: scale3d(1, 1, 1); +} + +/* transitionEffect: rotate */ + +.fancybox-fx-rotate.fancybox-slide--previous { + opacity: 0; + -ms-transform: rotate(-360deg); + transform: rotate(-360deg); +} + +.fancybox-fx-rotate.fancybox-slide--next { + opacity: 0; + -ms-transform: rotate(360deg); + transform: rotate(360deg); +} + +.fancybox-fx-rotate.fancybox-slide--current { + opacity: 1; + -ms-transform: rotate(0deg); + transform: rotate(0deg); +} + +/* transitionEffect: circular */ + +.fancybox-fx-circular.fancybox-slide--previous { + opacity: 0; + transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); +} + +.fancybox-fx-circular.fancybox-slide--next { + opacity: 0; + transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); +} + +.fancybox-fx-circular.fancybox-slide--current { + opacity: 1; + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); +} + +/* transitionEffect: tube */ + +.fancybox-fx-tube.fancybox-slide--previous { + transform: translate3d(-100%, 0, 0) scale(.1) skew(-10deg); +} + +.fancybox-fx-tube.fancybox-slide--next { + transform: translate3d(100%, 0, 0) scale(.1) skew(10deg); +} + +.fancybox-fx-tube.fancybox-slide--current { + transform: translate3d(0, 0, 0) scale(1); +} + +/* Styling for Small-Screen Devices */ +@media all and (max-height: 576px) { + .fancybox-slide { + padding-left: 6px; + padding-right: 6px; + } + + .fancybox-slide--image { + padding: 6px 0; + } + + .fancybox-close-small { + right: -6px; + } + + .fancybox-slide--image .fancybox-close-small { + background: #4e4e4e; + color: #f2f4f6; + height: 36px; + opacity: 1; + padding: 6px; + right: 0; + top: 0; + width: 36px; + } + + .fancybox-caption { + padding-left: 12px; + padding-right: 12px; + } + + @supports (padding: max(0px)) { + .fancybox-caption { + padding-left: max(12px, env(safe-area-inset-left)); + padding-right: max(12px, env(safe-area-inset-right)); + } + } +} +/* Share */ + +.fancybox-share { + background: #f4f4f4; + border-radius: 3px; + max-width: 90%; + padding: 30px; + text-align: center; +} + +.fancybox-share h1 { + color: #222; + font-size: 35px; + font-weight: 700; + margin: 0 0 20px 0; +} + +.fancybox-share p { + margin: 0; + padding: 0; +} + +.fancybox-share__button { + border: 0; + border-radius: 3px; + display: inline-block; + font-size: 14px; + font-weight: 700; + line-height: 40px; + margin: 0 5px 10px 5px; + min-width: 130px; + padding: 0 15px; + text-decoration: none; + transition: all .2s; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + white-space: nowrap; +} + +.fancybox-share__button:visited, +.fancybox-share__button:link { + color: #fff; +} + +.fancybox-share__button:hover { + text-decoration: none; +} + +.fancybox-share__button--fb { + background: #3b5998; +} + +.fancybox-share__button--fb:hover { + background: #344e86; +} + +.fancybox-share__button--pt { + background: #bd081d; +} + +.fancybox-share__button--pt:hover { + background: #aa0719; +} + +.fancybox-share__button--tw { + background: #1da1f2; +} + +.fancybox-share__button--tw:hover { + background: #0d95e8; +} + +.fancybox-share__button svg { + height: 25px; + margin-right: 7px; + position: relative; + top: -1px; + vertical-align: middle; + width: 25px; +} + +.fancybox-share__button svg path { + fill: #fff; +} + +.fancybox-share__input { + background: transparent; + border: 0; + border-bottom: 1px solid #d7d7d7; + border-radius: 0; + color: #5d5b5b; + font-size: 14px; + margin: 10px 0 0 0; + outline: none; + padding: 10px 15px; + width: 100%; +} +/* Thumbs */ + +.fancybox-thumbs { + background: #ddd; + bottom: 0; + display: none; + margin: 0; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + padding: 2px 2px 4px 2px; + position: absolute; + right: 0; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + top: 0; + width: 212px; + z-index: 99995; +} + +.fancybox-thumbs-x { + overflow-x: auto; + overflow-y: hidden; +} + +.fancybox-show-thumbs .fancybox-thumbs { + display: block; +} + +.fancybox-show-thumbs .fancybox-inner { + right: 212px; +} + +.fancybox-thumbs__list { + font-size: 0; + height: 100%; + list-style: none; + margin: 0; + overflow-x: hidden; + overflow-y: auto; + padding: 0; + position: absolute; + position: relative; + white-space: nowrap; + width: 100%; +} + +.fancybox-thumbs-x .fancybox-thumbs__list { + overflow: hidden; +} + +.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar { + width: 7px; +} + +.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track { + background: #fff; + border-radius: 10px; + box-shadow: inset 0 0 6px rgba(0, 0, 0, .3); +} + +.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb { + background: #2a2a2a; + border-radius: 10px; +} + +.fancybox-thumbs__list a { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + background-color: rgba(0, 0, 0, .1); + background-position: center center; + background-repeat: no-repeat; + background-size: cover; + cursor: pointer; + float: left; + height: 75px; + margin: 2px; + max-height: calc(100% - 8px); + max-width: calc(50% - 4px); + outline: none; + overflow: hidden; + padding: 0; + position: relative; + -webkit-tap-highlight-color: transparent; + width: 100px; +} + +.fancybox-thumbs__list a::before { + border: 6px solid #ff5268; + bottom: 0; + content: ''; + left: 0; + opacity: 0; + position: absolute; + right: 0; + top: 0; + transition: all .2s cubic-bezier(.25, .46, .45, .94); + z-index: 99991; +} + +.fancybox-thumbs__list a:focus::before { + opacity: .5; +} + +.fancybox-thumbs__list a.fancybox-thumbs-active::before { + opacity: 1; +} + +/* Styling for Small-Screen Devices */ +@media all and (max-width: 576px) { + .fancybox-thumbs { + width: 110px; + } + + .fancybox-show-thumbs .fancybox-inner { + right: 110px; + } + + .fancybox-thumbs__list a { + max-width: calc(100% - 10px); + } +} \ No newline at end of file diff --git a/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.js b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.js new file mode 100644 index 0000000..806b270 --- /dev/null +++ b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.js @@ -0,0 +1,5632 @@ +// ================================================== +// fancyBox v3.5.7 +// +// Licensed GPLv3 for open source use +// or fancyBox Commercial License for commercial use +// +// http://fancyapps.com/fancybox/ +// Copyright 2019 fancyApps +// +// ================================================== +(function (window, document, $, undefined) { + "use strict"; + + window.console = window.console || { + info: function (stuff) {} + }; + + // If there's no jQuery, fancyBox can't work + // ========================================= + + if (!$) { + return; + } + + // Check if fancyBox is already initialized + // ======================================== + + if ($.fn.fancybox) { + console.info("fancyBox already initialized"); + + return; + } + + // Private default settings + // ======================== + + var defaults = { + // Close existing modals + // Set this to false if you do not need to stack multiple instances + closeExisting: false, + + // Enable infinite gallery navigation + loop: false, + + // Horizontal space between slides + gutter: 50, + + // Enable keyboard navigation + keyboard: true, + + // Should allow caption to overlap the content + preventCaptionOverlap: true, + + // Should display navigation arrows at the screen edges + arrows: true, + + // Should display counter at the top left corner + infobar: true, + + // Should display close button (using `btnTpl.smallBtn` template) over the content + // Can be true, false, "auto" + // If "auto" - will be automatically enabled for "html", "inline" or "ajax" items + smallBtn: "auto", + + // Should display toolbar (buttons at the top) + // Can be true, false, "auto" + // If "auto" - will be automatically hidden if "smallBtn" is enabled + toolbar: "auto", + + // What buttons should appear in the top right corner. + // Buttons will be created using templates from `btnTpl` option + // and they will be placed into toolbar (class="fancybox-toolbar"` element) + buttons: [ + "zoom", + //"share", + "slideShow", + //"fullScreen", + //"download", + "thumbs", + "close" + ], + + // Detect "idle" time in seconds + idleTime: 3, + + // Disable right-click and use simple image protection for images + protect: false, + + // Shortcut to make content "modal" - disable keyboard navigtion, hide buttons, etc + modal: false, + + image: { + // Wait for images to load before displaying + // true - wait for image to load and then display; + // false - display thumbnail and load the full-sized image over top, + // requires predefined image dimensions (`data-width` and `data-height` attributes) + preload: false + }, + + ajax: { + // Object containing settings for ajax request + settings: { + // This helps to indicate that request comes from the modal + // Feel free to change naming + data: { + fancybox: true + } + } + }, + + iframe: { + // Iframe template + tpl: '', + + // Preload iframe before displaying it + // This allows to calculate iframe content width and height + // (note: Due to "Same Origin Policy", you can't get cross domain data). + preload: true, + + // Custom CSS styling for iframe wrapping element + // You can use this to set custom iframe dimensions + css: {}, + + // Iframe tag attributes + attr: { + scrolling: "auto" + } + }, + + // For HTML5 video only + video: { + tpl: 'download and watch with your favorite video player!' + + "", + format: "", // custom video format + autoStart: true + }, + + // Default content type if cannot be detected automatically + defaultType: "image", + + // Open/close animation type + // Possible values: + // false - disable + // "zoom" - zoom images from/to thumbnail + // "fade" + // "zoom-in-out" + // + animationEffect: "zoom", + + // Duration in ms for open/close animation + animationDuration: 366, + + // Should image change opacity while zooming + // If opacity is "auto", then opacity will be changed if image and thumbnail have different aspect ratios + zoomOpacity: "auto", + + // Transition effect between slides + // + // Possible values: + // false - disable + // "fade' + // "slide' + // "circular' + // "tube' + // "zoom-in-out' + // "rotate' + // + transitionEffect: "fade", + + // Duration in ms for transition animation + transitionDuration: 366, + + // Custom CSS class for slide element + slideClass: "", + + // Custom CSS class for layout + baseClass: "", + + // Base template for layout + baseTpl: '", + + // Loading indicator template + spinnerTpl: '
', + + // Error message template + errorTpl: '

{{ERROR}}

', + + btnTpl: { + download: '' + + '' + + "", + + zoom: '", + + close: '", + + // Arrows + arrowLeft: '", + + arrowRight: '", + + // This small close button will be appended to your html/inline/ajax content by default, + // if "smallBtn" option is not set to false + smallBtn: '" + }, + + // Container is injected into this element + parentEl: "body", + + // Hide browser vertical scrollbars; use at your own risk + hideScrollbar: true, + + // Focus handling + // ============== + + // Try to focus on the first focusable element after opening + autoFocus: true, + + // Put focus back to active element after closing + backFocus: true, + + // Do not let user to focus on element outside modal content + trapFocus: true, + + // Module specific options + // ======================= + + fullScreen: { + autoStart: false + }, + + // Set `touch: false` to disable panning/swiping + touch: { + vertical: true, // Allow to drag content vertically + momentum: true // Continue movement after releasing mouse/touch when panning + }, + + // Hash value when initializing manually, + // set `false` to disable hash change + hash: null, + + // Customize or add new media types + // Example: + /* + media : { + youtube : { + params : { + autoplay : 0 + } + } + } + */ + media: {}, + + slideShow: { + autoStart: false, + speed: 3000 + }, + + thumbs: { + autoStart: false, // Display thumbnails on opening + hideOnClose: true, // Hide thumbnail grid when closing animation starts + parentEl: ".fancybox-container", // Container is injected into this element + axis: "y" // Vertical (y) or horizontal (x) scrolling + }, + + // Use mousewheel to navigate gallery + // If 'auto' - enabled for images only + wheel: "auto", + + // Callbacks + //========== + + // See Documentation/API/Events for more information + // Example: + /* + afterShow: function( instance, current ) { + console.info( 'Clicked element:' ); + console.info( current.opts.$orig ); + } + */ + + onInit: $.noop, // When instance has been initialized + + beforeLoad: $.noop, // Before the content of a slide is being loaded + afterLoad: $.noop, // When the content of a slide is done loading + + beforeShow: $.noop, // Before open animation starts + afterShow: $.noop, // When content is done loading and animating + + beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close. + afterClose: $.noop, // After instance has been closed + + onActivate: $.noop, // When instance is brought to front + onDeactivate: $.noop, // When other instance has been activated + + // Interaction + // =========== + + // Use options below to customize taken action when user clicks or double clicks on the fancyBox area, + // each option can be string or method that returns value. + // + // Possible values: + // "close" - close instance + // "next" - move to next gallery item + // "nextOrClose" - move to next gallery item or close if gallery has only one item + // "toggleControls" - show/hide controls + // "zoom" - zoom image (if loaded) + // false - do nothing + + // Clicked on the content + clickContent: function (current, event) { + return current.type === "image" ? "zoom" : false; + }, + + // Clicked on the slide + clickSlide: "close", + + // Clicked on the background (backdrop) element; + // if you have not changed the layout, then most likely you need to use `clickSlide` option + clickOutside: "close", + + // Same as previous two, but for double click + dblclickContent: false, + dblclickSlide: false, + dblclickOutside: false, + + // Custom options when mobile device is detected + // ============================================= + + mobile: { + preventCaptionOverlap: false, + idleTime: false, + clickContent: function (current, event) { + return current.type === "image" ? "toggleControls" : false; + }, + clickSlide: function (current, event) { + return current.type === "image" ? "toggleControls" : "close"; + }, + dblclickContent: function (current, event) { + return current.type === "image" ? "zoom" : false; + }, + dblclickSlide: function (current, event) { + return current.type === "image" ? "zoom" : false; + } + }, + + // Internationalization + // ==================== + + lang: "en", + i18n: { + en: { + CLOSE: "Close", + NEXT: "Next", + PREV: "Previous", + ERROR: "The requested content cannot be loaded.
Please try again later.", + PLAY_START: "Start slideshow", + PLAY_STOP: "Pause slideshow", + FULL_SCREEN: "Full screen", + THUMBS: "Thumbnails", + DOWNLOAD: "Download", + SHARE: "Share", + ZOOM: "Zoom" + }, + de: { + CLOSE: "Schließen", + NEXT: "Weiter", + PREV: "Zurück", + ERROR: "Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.", + PLAY_START: "Diaschau starten", + PLAY_STOP: "Diaschau beenden", + FULL_SCREEN: "Vollbild", + THUMBS: "Vorschaubilder", + DOWNLOAD: "Herunterladen", + SHARE: "Teilen", + ZOOM: "Vergrößern" + } + } + }; + + // Few useful variables and methods + // ================================ + + var $W = $(window); + var $D = $(document); + + var called = 0; + + // Check if an object is a jQuery object and not a native JavaScript object + // ======================================================================== + var isQuery = function (obj) { + return obj && obj.hasOwnProperty && obj instanceof $; + }; + + // Handle multiple browsers for "requestAnimationFrame" and "cancelAnimationFrame" + // =============================================================================== + var requestAFrame = (function () { + return ( + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + // if all else fails, use setTimeout + function (callback) { + return window.setTimeout(callback, 1000 / 60); + } + ); + })(); + + var cancelAFrame = (function () { + return ( + window.cancelAnimationFrame || + window.webkitCancelAnimationFrame || + window.mozCancelAnimationFrame || + window.oCancelAnimationFrame || + function (id) { + window.clearTimeout(id); + } + ); + })(); + + // Detect the supported transition-end event property name + // ======================================================= + var transitionEnd = (function () { + var el = document.createElement("fakeelement"), + t; + + var transitions = { + transition: "transitionend", + OTransition: "oTransitionEnd", + MozTransition: "transitionend", + WebkitTransition: "webkitTransitionEnd" + }; + + for (t in transitions) { + if (el.style[t] !== undefined) { + return transitions[t]; + } + } + + return "transitionend"; + })(); + + // Force redraw on an element. + // This helps in cases where the browser doesn't redraw an updated element properly + // ================================================================================ + var forceRedraw = function ($el) { + return $el && $el.length && $el[0].offsetHeight; + }; + + // Exclude array (`buttons`) options from deep merging + // =================================================== + var mergeOpts = function (opts1, opts2) { + var rez = $.extend(true, {}, opts1, opts2); + + $.each(opts2, function (key, value) { + if ($.isArray(value)) { + rez[key] = value; + } + }); + + return rez; + }; + + // How much of an element is visible in viewport + // ============================================= + + var inViewport = function (elem) { + var elemCenter, rez; + + if (!elem || elem.ownerDocument !== document) { + return false; + } + + $(".fancybox-container").css("pointer-events", "none"); + + elemCenter = { + x: elem.getBoundingClientRect().left + elem.offsetWidth / 2, + y: elem.getBoundingClientRect().top + elem.offsetHeight / 2 + }; + + rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem; + + $(".fancybox-container").css("pointer-events", ""); + + return rez; + }; + + // Class definition + // ================ + + var FancyBox = function (content, opts, index) { + var self = this; + + self.opts = mergeOpts({ + index: index + }, $.fancybox.defaults); + + if ($.isPlainObject(opts)) { + self.opts = mergeOpts(self.opts, opts); + } + + if ($.fancybox.isMobile) { + self.opts = mergeOpts(self.opts, self.opts.mobile); + } + + self.id = self.opts.id || ++called; + + self.currIndex = parseInt(self.opts.index, 10) || 0; + self.prevIndex = null; + + self.prevPos = null; + self.currPos = 0; + + self.firstRun = true; + + // All group items + self.group = []; + + // Existing slides (for current, next and previous gallery items) + self.slides = {}; + + // Create group elements + self.addContent(content); + + if (!self.group.length) { + return; + } + + self.init(); + }; + + $.extend(FancyBox.prototype, { + // Create DOM structure + // ==================== + + init: function () { + var self = this, + firstItem = self.group[self.currIndex], + firstItemOpts = firstItem.opts, + $container, + buttonStr; + + if (firstItemOpts.closeExisting) { + $.fancybox.close(true); + } + + // Hide scrollbars + // =============== + + $("body").addClass("fancybox-active"); + + if ( + !$.fancybox.getInstance() && + firstItemOpts.hideScrollbar !== false && + !$.fancybox.isMobile && + document.body.scrollHeight > window.innerHeight + ) { + $("head").append( + '" + ); + + $("body").addClass("compensate-for-scrollbar"); + } + + // Build html markup and set references + // ==================================== + + // Build html code for buttons and insert into main template + buttonStr = ""; + + $.each(firstItemOpts.buttons, function (index, value) { + buttonStr += firstItemOpts.btnTpl[value] || ""; + }); + + // Create markup from base template, it will be initially hidden to + // avoid unnecessary work like painting while initializing is not complete + $container = $( + self.translate( + self, + firstItemOpts.baseTpl + .replace("{{buttons}}", buttonStr) + .replace("{{arrows}}", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight) + ) + ) + .attr("id", "fancybox-container-" + self.id) + .addClass(firstItemOpts.baseClass) + .data("FancyBox", self) + .appendTo(firstItemOpts.parentEl); + + // Create object holding references to jQuery wrapped nodes + self.$refs = { + container: $container + }; + + ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function (item) { + self.$refs[item] = $container.find(".fancybox-" + item); + }); + + self.trigger("onInit"); + + // Enable events, deactive previous instances + self.activate(); + + // Build slides, load and reveal content + self.jumpTo(self.currIndex); + }, + + // Simple i18n support - replaces object keys found in template + // with corresponding values + // ============================================================ + + translate: function (obj, str) { + var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en; + + return str.replace(/\{\{(\w+)\}\}/g, function (match, n) { + return arr[n] === undefined ? match : arr[n]; + }); + }, + + // Populate current group with fresh content + // Check if each object has valid type and content + // =============================================== + + addContent: function (content) { + var self = this, + items = $.makeArray(content), + thumbs; + + $.each(items, function (i, item) { + var obj = {}, + opts = {}, + $item, + type, + found, + src, + srcParts; + + // Step 1 - Make sure we have an object + // ==================================== + + if ($.isPlainObject(item)) { + // We probably have manual usage here, something like + // $.fancybox.open( [ { src : "image.jpg", type : "image" } ] ) + + obj = item; + opts = item.opts || item; + } else if ($.type(item) === "object" && $(item).length) { + // Here we probably have jQuery collection returned by some selector + $item = $(item); + + // Support attributes like `data-options='{"touch" : false}'` and `data-touch='false'` + opts = $item.data() || {}; + opts = $.extend(true, {}, opts, opts.options); + + // Here we store clicked element + opts.$orig = $item; + + obj.src = self.opts.src || opts.src || $item.attr("href"); + + // Assume that simple syntax is used, for example: + // `$.fancybox.open( $("#test"), {} );` + if (!obj.type && !obj.src) { + obj.type = "inline"; + obj.src = item; + } + } else { + // Assume we have a simple html code, for example: + // $.fancybox.open( '

Hi!

' ); + obj = { + type: "html", + src: item + "" + }; + } + + // Each gallery object has full collection of options + obj.opts = $.extend(true, {}, self.opts, opts); + + // Do not merge buttons array + if ($.isArray(opts.buttons)) { + obj.opts.buttons = opts.buttons; + } + + if ($.fancybox.isMobile && obj.opts.mobile) { + obj.opts = mergeOpts(obj.opts, obj.opts.mobile); + } + + // Step 2 - Make sure we have content type, if not - try to guess + // ============================================================== + + type = obj.type || obj.opts.type; + src = obj.src || ""; + + if (!type && src) { + if ((found = src.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))) { + type = "video"; + + if (!obj.opts.video.format) { + obj.opts.video.format = "video/" + (found[1] === "ogv" ? "ogg" : found[1]); + } + } else if (src.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)) { + type = "image"; + } else if (src.match(/\.(pdf)((\?|#).*)?$/i)) { + type = "iframe"; + obj = $.extend(true, obj, { + contentType: "pdf", + opts: { + iframe: { + preload: false + } + } + }); + } else if (src.charAt(0) === "#") { + type = "inline"; + } + } + + if (type) { + obj.type = type; + } else { + self.trigger("objectNeedsType", obj); + } + + if (!obj.contentType) { + obj.contentType = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1 ? "html" : obj.type; + } + + // Step 3 - Some adjustments + // ========================= + + obj.index = self.group.length; + + if (obj.opts.smallBtn == "auto") { + obj.opts.smallBtn = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1; + } + + if (obj.opts.toolbar === "auto") { + obj.opts.toolbar = !obj.opts.smallBtn; + } + + // Find thumbnail image, check if exists and if is in the viewport + obj.$thumb = obj.opts.$thumb || null; + + if (obj.opts.$trigger && obj.index === self.opts.index) { + obj.$thumb = obj.opts.$trigger.find("img:first"); + + if (obj.$thumb.length) { + obj.opts.$orig = obj.opts.$trigger; + } + } + + if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) { + obj.$thumb = obj.opts.$orig.find("img:first"); + } + + if (obj.$thumb && !obj.$thumb.length) { + obj.$thumb = null; + } + + obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null); + + // "caption" is a "special" option, it can be used to customize caption per gallery item + if ($.type(obj.opts.caption) === "function") { + obj.opts.caption = obj.opts.caption.apply(item, [self, obj]); + } + + if ($.type(self.opts.caption) === "function") { + obj.opts.caption = self.opts.caption.apply(item, [self, obj]); + } + + // Make sure we have caption as a string or jQuery object + if (!(obj.opts.caption instanceof $)) { + obj.opts.caption = obj.opts.caption === undefined ? "" : obj.opts.caption + ""; + } + + // Check if url contains "filter" used to filter the content + // Example: "ajax.html #something" + if (obj.type === "ajax") { + srcParts = src.split(/\s+/, 2); + + if (srcParts.length > 1) { + obj.src = srcParts.shift(); + + obj.opts.filter = srcParts.shift(); + } + } + + // Hide all buttons and disable interactivity for modal items + if (obj.opts.modal) { + obj.opts = $.extend(true, obj.opts, { + trapFocus: true, + // Remove buttons + infobar: 0, + toolbar: 0, + + smallBtn: 0, + + // Disable keyboard navigation + keyboard: 0, + + // Disable some modules + slideShow: 0, + fullScreen: 0, + thumbs: 0, + touch: 0, + + // Disable click event handlers + clickContent: false, + clickSlide: false, + clickOutside: false, + dblclickContent: false, + dblclickSlide: false, + dblclickOutside: false + }); + } + + // Step 4 - Add processed object to group + // ====================================== + + self.group.push(obj); + }); + + // Update controls if gallery is already opened + if (Object.keys(self.slides).length) { + self.updateControls(); + + // Update thumbnails, if needed + thumbs = self.Thumbs; + + if (thumbs && thumbs.isActive) { + thumbs.create(); + + thumbs.focus(); + } + } + }, + + // Attach an event handler functions for: + // - navigation buttons + // - browser scrolling, resizing; + // - focusing + // - keyboard + // - detecting inactivity + // ====================================== + + addEvents: function () { + var self = this; + + self.removeEvents(); + + // Make navigation elements clickable + // ================================== + + self.$refs.container + .on("click.fb-close", "[data-fancybox-close]", function (e) { + e.stopPropagation(); + e.preventDefault(); + + self.close(e); + }) + .on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function (e) { + e.stopPropagation(); + e.preventDefault(); + + self.previous(); + }) + .on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function (e) { + e.stopPropagation(); + e.preventDefault(); + + self.next(); + }) + .on("click.fb", "[data-fancybox-zoom]", function (e) { + // Click handler for zoom button + self[self.isScaledDown() ? "scaleToActual" : "scaleToFit"](); + }); + + // Handle page scrolling and browser resizing + // ========================================== + + $W.on("orientationchange.fb resize.fb", function (e) { + if (e && e.originalEvent && e.originalEvent.type === "resize") { + if (self.requestId) { + cancelAFrame(self.requestId); + } + + self.requestId = requestAFrame(function () { + self.update(e); + }); + } else { + if (self.current && self.current.type === "iframe") { + self.$refs.stage.hide(); + } + + setTimeout( + function () { + self.$refs.stage.show(); + + self.update(e); + }, + $.fancybox.isMobile ? 600 : 250 + ); + } + }); + + $D.on("keydown.fb", function (e) { + var instance = $.fancybox ? $.fancybox.getInstance() : null, + current = instance.current, + keycode = e.keyCode || e.which; + + // Trap keyboard focus inside of the modal + // ======================================= + + if (keycode == 9) { + if (current.opts.trapFocus) { + self.focus(e); + } + + return; + } + + // Enable keyboard navigation + // ========================== + + if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is("input,textarea,video,audio,select")) { + return; + } + + // Backspace and Esc keys + if (keycode === 8 || keycode === 27) { + e.preventDefault(); + + self.close(e); + + return; + } + + // Left arrow and Up arrow + if (keycode === 37 || keycode === 38) { + e.preventDefault(); + + self.previous(); + + return; + } + + // Righ arrow and Down arrow + if (keycode === 39 || keycode === 40) { + e.preventDefault(); + + self.next(); + + return; + } + + self.trigger("afterKeydown", e, keycode); + }); + + // Hide controls after some inactivity period + if (self.group[self.currIndex].opts.idleTime) { + self.idleSecondsCounter = 0; + + $D.on( + "mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", + function (e) { + self.idleSecondsCounter = 0; + + if (self.isIdle) { + self.showControls(); + } + + self.isIdle = false; + } + ); + + self.idleInterval = window.setInterval(function () { + self.idleSecondsCounter++; + + if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) { + self.isIdle = true; + self.idleSecondsCounter = 0; + + self.hideControls(); + } + }, 1000); + } + }, + + // Remove events added by the core + // =============================== + + removeEvents: function () { + var self = this; + + $W.off("orientationchange.fb resize.fb"); + $D.off("keydown.fb .fb-idle"); + + this.$refs.container.off(".fb-close .fb-prev .fb-next"); + + if (self.idleInterval) { + window.clearInterval(self.idleInterval); + + self.idleInterval = null; + } + }, + + // Change to previous gallery item + // =============================== + + previous: function (duration) { + return this.jumpTo(this.currPos - 1, duration); + }, + + // Change to next gallery item + // =========================== + + next: function (duration) { + return this.jumpTo(this.currPos + 1, duration); + }, + + // Switch to selected gallery item + // =============================== + + jumpTo: function (pos, duration) { + var self = this, + groupLen = self.group.length, + firstRun, + isMoved, + loop, + current, + previous, + slidePos, + stagePos, + prop, + diff; + + if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) { + return; + } + + // Should loop? + pos = parseInt(pos, 10); + loop = self.current ? self.current.opts.loop : self.opts.loop; + + if (!loop && (pos < 0 || pos >= groupLen)) { + return false; + } + + // Check if opening for the first time; this helps to speed things up + firstRun = self.firstRun = !Object.keys(self.slides).length; + + // Create slides + previous = self.current; + + self.prevIndex = self.currIndex; + self.prevPos = self.currPos; + + current = self.createSlide(pos); + + if (groupLen > 1) { + if (loop || current.index < groupLen - 1) { + self.createSlide(pos + 1); + } + + if (loop || current.index > 0) { + self.createSlide(pos - 1); + } + } + + self.current = current; + self.currIndex = current.index; + self.currPos = current.pos; + + self.trigger("beforeShow", firstRun); + + self.updateControls(); + + // Validate duration length + current.forcedDuration = undefined; + + if ($.isNumeric(duration)) { + current.forcedDuration = duration; + } else { + duration = current.opts[firstRun ? "animationDuration" : "transitionDuration"]; + } + + duration = parseInt(duration, 10); + + // Check if user has swiped the slides or if still animating + isMoved = self.isMoved(current); + + // Make sure current slide is visible + current.$slide.addClass("fancybox-slide--current"); + + // Fresh start - reveal container, current slide and start loading content + if (firstRun) { + if (current.opts.animationEffect && duration) { + self.$refs.container.css("transition-duration", duration + "ms"); + } + + self.$refs.container.addClass("fancybox-is-open").trigger("focus"); + + // Attempt to load content into slide + // This will later call `afterLoad` -> `revealContent` + self.loadSlide(current); + + self.preload("image"); + + return; + } + + // Get actual slide/stage positions (before cleaning up) + slidePos = $.fancybox.getTranslate(previous.$slide); + stagePos = $.fancybox.getTranslate(self.$refs.stage); + + // Clean up all slides + $.each(self.slides, function (index, slide) { + $.fancybox.stop(slide.$slide, true); + }); + + if (previous.pos !== current.pos) { + previous.isComplete = false; + } + + previous.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"); + + // If slides are out of place, then animate them to correct position + if (isMoved) { + // Calculate horizontal swipe distance + diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter); + + $.each(self.slides, function (index, slide) { + slide.$slide.removeClass("fancybox-animated").removeClass(function (index, className) { + return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" "); + }); + + // Make sure that each slide is in equal distance + // This is mostly needed for freshly added slides, because they are not yet positioned + var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter; + + $.fancybox.setTranslate(slide.$slide, { + top: 0, + left: leftPos - stagePos.left + diff + }); + + if (slide.pos !== current.pos) { + slide.$slide.addClass("fancybox-slide--" + (slide.pos > current.pos ? "next" : "previous")); + } + + // Redraw to make sure that transition will start + forceRedraw(slide.$slide); + + // Animate the slide + $.fancybox.animate( + slide.$slide, { + top: 0, + left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter + }, + duration, + function () { + slide.$slide + .css({ + transform: "", + opacity: "" + }) + .removeClass("fancybox-slide--next fancybox-slide--previous"); + + if (slide.pos === self.currPos) { + self.complete(); + } + } + ); + }); + } else if (duration && current.opts.transitionEffect) { + // Set transition effect for previously active slide + prop = "fancybox-animated fancybox-fx-" + current.opts.transitionEffect; + + previous.$slide.addClass("fancybox-slide--" + (previous.pos > current.pos ? "next" : "previous")); + + $.fancybox.animate( + previous.$slide, + prop, + duration, + function () { + previous.$slide.removeClass(prop).removeClass("fancybox-slide--next fancybox-slide--previous"); + }, + false + ); + } + + if (current.isLoaded) { + self.revealContent(current); + } else { + self.loadSlide(current); + } + + self.preload("image"); + }, + + // Create new "slide" element + // These are gallery items that are actually added to DOM + // ======================================================= + + createSlide: function (pos) { + var self = this, + $slide, + index; + + index = pos % self.group.length; + index = index < 0 ? self.group.length + index : index; + + if (!self.slides[pos] && self.group[index]) { + $slide = $('
').appendTo(self.$refs.stage); + + self.slides[pos] = $.extend(true, {}, self.group[index], { + pos: pos, + $slide: $slide, + isLoaded: false + }); + + self.updateSlide(self.slides[pos]); + } + + return self.slides[pos]; + }, + + // Scale image to the actual size of the image; + // x and y values should be relative to the slide + // ============================================== + + scaleToActual: function (x, y, duration) { + var self = this, + current = self.current, + $content = current.$content, + canvasWidth = $.fancybox.getTranslate(current.$slide).width, + canvasHeight = $.fancybox.getTranslate(current.$slide).height, + newImgWidth = current.width, + newImgHeight = current.height, + imgPos, + posX, + posY, + scaleX, + scaleY; + + if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) { + return; + } + + self.isAnimating = true; + + $.fancybox.stop($content); + + x = x === undefined ? canvasWidth * 0.5 : x; + y = y === undefined ? canvasHeight * 0.5 : y; + + imgPos = $.fancybox.getTranslate($content); + + imgPos.top -= $.fancybox.getTranslate(current.$slide).top; + imgPos.left -= $.fancybox.getTranslate(current.$slide).left; + + scaleX = newImgWidth / imgPos.width; + scaleY = newImgHeight / imgPos.height; + + // Get center position for original image + posX = canvasWidth * 0.5 - newImgWidth * 0.5; + posY = canvasHeight * 0.5 - newImgHeight * 0.5; + + // Make sure image does not move away from edges + if (newImgWidth > canvasWidth) { + posX = imgPos.left * scaleX - (x * scaleX - x); + + if (posX > 0) { + posX = 0; + } + + if (posX < canvasWidth - newImgWidth) { + posX = canvasWidth - newImgWidth; + } + } + + if (newImgHeight > canvasHeight) { + posY = imgPos.top * scaleY - (y * scaleY - y); + + if (posY > 0) { + posY = 0; + } + + if (posY < canvasHeight - newImgHeight) { + posY = canvasHeight - newImgHeight; + } + } + + self.updateCursor(newImgWidth, newImgHeight); + + $.fancybox.animate( + $content, { + top: posY, + left: posX, + scaleX: scaleX, + scaleY: scaleY + }, + duration || 366, + function () { + self.isAnimating = false; + } + ); + + // Stop slideshow + if (self.SlideShow && self.SlideShow.isActive) { + self.SlideShow.stop(); + } + }, + + // Scale image to fit inside parent element + // ======================================== + + scaleToFit: function (duration) { + var self = this, + current = self.current, + $content = current.$content, + end; + + if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) { + return; + } + + self.isAnimating = true; + + $.fancybox.stop($content); + + end = self.getFitPos(current); + + self.updateCursor(end.width, end.height); + + $.fancybox.animate( + $content, { + top: end.top, + left: end.left, + scaleX: end.width / $content.width(), + scaleY: end.height / $content.height() + }, + duration || 366, + function () { + self.isAnimating = false; + } + ); + }, + + // Calculate image size to fit inside viewport + // =========================================== + + getFitPos: function (slide) { + var self = this, + $content = slide.$content, + $slide = slide.$slide, + width = slide.width || slide.opts.width, + height = slide.height || slide.opts.height, + maxWidth, + maxHeight, + minRatio, + aspectRatio, + rez = {}; + + if (!slide.isLoaded || !$content || !$content.length) { + return false; + } + + maxWidth = $.fancybox.getTranslate(self.$refs.stage).width; + maxHeight = $.fancybox.getTranslate(self.$refs.stage).height; + + maxWidth -= + parseFloat($slide.css("paddingLeft")) + + parseFloat($slide.css("paddingRight")) + + parseFloat($content.css("marginLeft")) + + parseFloat($content.css("marginRight")); + + maxHeight -= + parseFloat($slide.css("paddingTop")) + + parseFloat($slide.css("paddingBottom")) + + parseFloat($content.css("marginTop")) + + parseFloat($content.css("marginBottom")); + + if (!width || !height) { + width = maxWidth; + height = maxHeight; + } + + minRatio = Math.min(1, maxWidth / width, maxHeight / height); + + width = minRatio * width; + height = minRatio * height; + + // Adjust width/height to precisely fit into container + if (width > maxWidth - 0.5) { + width = maxWidth; + } + + if (height > maxHeight - 0.5) { + height = maxHeight; + } + + if (slide.type === "image") { + rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css("paddingTop")); + rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css("paddingLeft")); + } else if (slide.contentType === "video") { + // Force aspect ratio for the video + // "I say the whole world must learn of our peaceful ways… by force!" + aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9; + + if (height > width / aspectRatio) { + height = width / aspectRatio; + } else if (width > height * aspectRatio) { + width = height * aspectRatio; + } + } + + rez.width = width; + rez.height = height; + + return rez; + }, + + // Update content size and position for all slides + // ============================================== + + update: function (e) { + var self = this; + + $.each(self.slides, function (key, slide) { + self.updateSlide(slide, e); + }); + }, + + // Update slide content position and size + // ====================================== + + updateSlide: function (slide, e) { + var self = this, + $content = slide && slide.$content, + width = slide.width || slide.opts.width, + height = slide.height || slide.opts.height, + $slide = slide.$slide; + + // First, prevent caption overlap, if needed + self.adjustCaption(slide); + + // Then resize content to fit inside the slide + if ($content && (width || height || slide.contentType === "video") && !slide.hasError) { + $.fancybox.stop($content); + + $.fancybox.setTranslate($content, self.getFitPos(slide)); + + if (slide.pos === self.currPos) { + self.isAnimating = false; + + self.updateCursor(); + } + } + + // Then some adjustments + self.adjustLayout(slide); + + if ($slide.length) { + $slide.trigger("refresh"); + + if (slide.pos === self.currPos) { + self.$refs.toolbar + .add(self.$refs.navigation.find(".fancybox-button--arrow_right")) + .toggleClass("compensate-for-scrollbar", $slide.get(0).scrollHeight > $slide.get(0).clientHeight); + } + } + + self.trigger("onUpdate", slide, e); + }, + + // Horizontally center slide + // ========================= + + centerSlide: function (duration) { + var self = this, + current = self.current, + $slide = current.$slide; + + if (self.isClosing || !current) { + return; + } + + $slide.siblings().css({ + transform: "", + opacity: "" + }); + + $slide + .parent() + .children() + .removeClass("fancybox-slide--previous fancybox-slide--next"); + + $.fancybox.animate( + $slide, { + top: 0, + left: 0, + opacity: 1 + }, + duration === undefined ? 0 : duration, + function () { + // Clean up + $slide.css({ + transform: "", + opacity: "" + }); + + if (!current.isComplete) { + self.complete(); + } + }, + false + ); + }, + + // Check if current slide is moved (swiped) + // ======================================== + + isMoved: function (slide) { + var current = slide || this.current, + slidePos, + stagePos; + + if (!current) { + return false; + } + + stagePos = $.fancybox.getTranslate(this.$refs.stage); + slidePos = $.fancybox.getTranslate(current.$slide); + + return ( + !current.$slide.hasClass("fancybox-animated") && + (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5) + ); + }, + + // Update cursor style depending if content can be zoomed + // ====================================================== + + updateCursor: function (nextWidth, nextHeight) { + var self = this, + current = self.current, + $container = self.$refs.container, + canPan, + isZoomable; + + if (!current || self.isClosing || !self.Guestures) { + return; + } + + $container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"); + + canPan = self.canPan(nextWidth, nextHeight); + + isZoomable = canPan ? true : self.isZoomable(); + + $container.toggleClass("fancybox-is-zoomable", isZoomable); + + $("[data-fancybox-zoom]").prop("disabled", !isZoomable); + + if (canPan) { + $container.addClass("fancybox-can-pan"); + } else if ( + isZoomable && + (current.opts.clickContent === "zoom" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == "zoom")) + ) { + $container.addClass("fancybox-can-zoomIn"); + } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== "video") { + $container.addClass("fancybox-can-swipe"); + } + }, + + // Check if current slide is zoomable + // ================================== + + isZoomable: function () { + var self = this, + current = self.current, + fitPos; + + // Assume that slide is zoomable if: + // - image is still loading + // - actual size of the image is smaller than available area + if (current && !self.isClosing && current.type === "image" && !current.hasError) { + if (!current.isLoaded) { + return true; + } + + fitPos = self.getFitPos(current); + + if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) { + return true; + } + } + + return false; + }, + + // Check if current image dimensions are smaller than actual + // ========================================================= + + isScaledDown: function (nextWidth, nextHeight) { + var self = this, + rez = false, + current = self.current, + $content = current.$content; + + if (nextWidth !== undefined && nextHeight !== undefined) { + rez = nextWidth < current.width && nextHeight < current.height; + } else if ($content) { + rez = $.fancybox.getTranslate($content); + rez = rez.width < current.width && rez.height < current.height; + } + + return rez; + }, + + // Check if image dimensions exceed parent element + // =============================================== + + canPan: function (nextWidth, nextHeight) { + var self = this, + current = self.current, + pos = null, + rez = false; + + if (current.type === "image" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) { + rez = self.getFitPos(current); + + if (nextWidth !== undefined && nextHeight !== undefined) { + pos = { + width: nextWidth, + height: nextHeight + }; + } else if (current.isComplete) { + pos = $.fancybox.getTranslate(current.$content); + } + + if (pos && rez) { + rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5; + } + } + + return rez; + }, + + // Load content into the slide + // =========================== + + loadSlide: function (slide) { + var self = this, + type, + $slide, + ajaxLoad; + + if (slide.isLoading || slide.isLoaded) { + return; + } + + slide.isLoading = true; + + if (self.trigger("beforeLoad", slide) === false) { + slide.isLoading = false; + + return false; + } + + type = slide.type; + $slide = slide.$slide; + + $slide + .off("refresh") + .trigger("onReset") + .addClass(slide.opts.slideClass); + + // Create content depending on the type + switch (type) { + case "image": + self.setImage(slide); + + break; + + case "iframe": + self.setIframe(slide); + + break; + + case "html": + self.setContent(slide, slide.src || slide.content); + + break; + + case "video": + self.setContent( + slide, + slide.opts.video.tpl + .replace(/\{\{src\}\}/gi, slide.src) + .replace("{{format}}", slide.opts.videoFormat || slide.opts.video.format || "") + .replace("{{poster}}", slide.thumb || "") + ); + + break; + + case "inline": + if ($(slide.src).length) { + self.setContent(slide, $(slide.src)); + } else { + self.setError(slide); + } + + break; + + case "ajax": + self.showLoading(slide); + + ajaxLoad = $.ajax( + $.extend({}, slide.opts.ajax.settings, { + url: slide.src, + success: function (data, textStatus) { + if (textStatus === "success") { + self.setContent(slide, data); + } + }, + error: function (jqXHR, textStatus) { + if (jqXHR && textStatus !== "abort") { + self.setError(slide); + } + } + }) + ); + + $slide.one("onReset", function () { + ajaxLoad.abort(); + }); + + break; + + default: + self.setError(slide); + + break; + } + + return true; + }, + + // Use thumbnail image, if possible + // ================================ + + setImage: function (slide) { + var self = this, + ghost; + + // Check if need to show loading icon + setTimeout(function () { + var $img = slide.$image; + + if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) { + self.showLoading(slide); + } + }, 50); + + //Check if image has srcset + self.checkSrcset(slide); + + // This will be wrapper containing both ghost and actual image + slide.$content = $('
') + .addClass("fancybox-is-hidden") + .appendTo(slide.$slide.addClass("fancybox-slide--image")); + + // If we have a thumbnail, we can display it while actual image is loading + // Users will not stare at black screen and actual image will appear gradually + if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) { + slide.width = slide.opts.width; + slide.height = slide.opts.height; + + ghost = document.createElement("img"); + + ghost.onerror = function () { + $(this).remove(); + + slide.$ghost = null; + }; + + ghost.onload = function () { + self.afterLoad(slide); + }; + + slide.$ghost = $(ghost) + .addClass("fancybox-image") + .appendTo(slide.$content) + .attr("src", slide.thumb); + } + + // Start loading actual image + self.setBigImage(slide); + }, + + // Check if image has srcset and get the source + // ============================================ + checkSrcset: function (slide) { + var srcset = slide.opts.srcset || slide.opts.image.srcset, + found, + temp, + pxRatio, + windowWidth; + + // If we have "srcset", then we need to find first matching "src" value. + // This is necessary, because when you set an src attribute, the browser will preload the image + // before any javascript or even CSS is applied. + if (srcset) { + pxRatio = window.devicePixelRatio || 1; + windowWidth = window.innerWidth * pxRatio; + + temp = srcset.split(",").map(function (el) { + var ret = {}; + + el.trim() + .split(/\s+/) + .forEach(function (el, i) { + var value = parseInt(el.substring(0, el.length - 1), 10); + + if (i === 0) { + return (ret.url = el); + } + + if (value) { + ret.value = value; + ret.postfix = el[el.length - 1]; + } + }); + + return ret; + }); + + // Sort by value + temp.sort(function (a, b) { + return a.value - b.value; + }); + + // Ok, now we have an array of all srcset values + for (var j = 0; j < temp.length; j++) { + var el = temp[j]; + + if ((el.postfix === "w" && el.value >= windowWidth) || (el.postfix === "x" && el.value >= pxRatio)) { + found = el; + break; + } + } + + // If not found, take the last one + if (!found && temp.length) { + found = temp[temp.length - 1]; + } + + if (found) { + slide.src = found.url; + + // If we have default width/height values, we can calculate height for matching source + if (slide.width && slide.height && found.postfix == "w") { + slide.height = (slide.width / slide.height) * found.value; + slide.width = found.value; + } + + slide.opts.srcset = srcset; + } + } + }, + + // Create full-size image + // ====================== + + setBigImage: function (slide) { + var self = this, + img = document.createElement("img"), + $img = $(img); + + slide.$image = $img + .one("error", function () { + self.setError(slide); + }) + .one("load", function () { + var sizes; + + if (!slide.$ghost) { + self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight); + + self.afterLoad(slide); + } + + if (self.isClosing) { + return; + } + + if (slide.opts.srcset) { + sizes = slide.opts.sizes; + + if (!sizes || sizes === "auto") { + sizes = + (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? "100" : Math.round((slide.width / slide.height) * 100)) + + "vw"; + } + + $img.attr("sizes", sizes).attr("srcset", slide.opts.srcset); + } + + // Hide temporary image after some delay + if (slide.$ghost) { + setTimeout(function () { + if (slide.$ghost && !self.isClosing) { + slide.$ghost.hide(); + } + }, Math.min(300, Math.max(1000, slide.height / 1600))); + } + + self.hideLoading(slide); + }) + .addClass("fancybox-image") + .attr("src", slide.src) + .appendTo(slide.$content); + + if ((img.complete || img.readyState == "complete") && $img.naturalWidth && $img.naturalHeight) { + $img.trigger("load"); + } else if (img.error) { + $img.trigger("error"); + } + }, + + // Computes the slide size from image size and maxWidth/maxHeight + // ============================================================== + + resolveImageSlideSize: function (slide, imgWidth, imgHeight) { + var maxWidth = parseInt(slide.opts.width, 10), + maxHeight = parseInt(slide.opts.height, 10); + + // Sets the default values from the image + slide.width = imgWidth; + slide.height = imgHeight; + + if (maxWidth > 0) { + slide.width = maxWidth; + slide.height = Math.floor((maxWidth * imgHeight) / imgWidth); + } + + if (maxHeight > 0) { + slide.width = Math.floor((maxHeight * imgWidth) / imgHeight); + slide.height = maxHeight; + } + }, + + // Create iframe wrapper, iframe and bindings + // ========================================== + + setIframe: function (slide) { + var self = this, + opts = slide.opts.iframe, + $slide = slide.$slide, + $iframe; + + slide.$content = $('
') + .css(opts.css) + .appendTo($slide); + + $slide.addClass("fancybox-slide--" + slide.contentType); + + slide.$iframe = $iframe = $(opts.tpl.replace(/\{rnd\}/g, new Date().getTime())) + .attr(opts.attr) + .appendTo(slide.$content); + + if (opts.preload) { + self.showLoading(slide); + + // Unfortunately, it is not always possible to determine if iframe is successfully loaded + // (due to browser security policy) + + $iframe.on("load.fb error.fb", function (e) { + this.isReady = 1; + + slide.$slide.trigger("refresh"); + + self.afterLoad(slide); + }); + + // Recalculate iframe content size + // =============================== + + $slide.on("refresh.fb", function () { + var $content = slide.$content, + frameWidth = opts.css.width, + frameHeight = opts.css.height, + $contents, + $body; + + if ($iframe[0].isReady !== 1) { + return; + } + + try { + $contents = $iframe.contents(); + $body = $contents.find("body"); + } catch (ignore) {} + + // Calculate content dimensions, if it is accessible + if ($body && $body.length && $body.children().length) { + // Avoid scrolling to top (if multiple instances) + $slide.css("overflow", "visible"); + + $content.css({ + width: "100%", + "max-width": "100%", + height: "9999px" + }); + + if (frameWidth === undefined) { + frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true))); + } + + $content.css("width", frameWidth ? frameWidth : "").css("max-width", ""); + + if (frameHeight === undefined) { + frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true))); + } + + $content.css("height", frameHeight ? frameHeight : ""); + + $slide.css("overflow", "auto"); + } + + $content.removeClass("fancybox-is-hidden"); + }); + } else { + self.afterLoad(slide); + } + + $iframe.attr("src", slide.src); + + // Remove iframe if closing or changing gallery item + $slide.one("onReset", function () { + // This helps IE not to throw errors when closing + try { + $(this) + .find("iframe") + .hide() + .unbind() + .attr("src", "//about:blank"); + } catch (ignore) {} + + $(this) + .off("refresh.fb") + .empty(); + + slide.isLoaded = false; + slide.isRevealed = false; + }); + }, + + // Wrap and append content to the slide + // ====================================== + + setContent: function (slide, content) { + var self = this; + + if (self.isClosing) { + return; + } + + self.hideLoading(slide); + + if (slide.$content) { + $.fancybox.stop(slide.$content); + } + + slide.$slide.empty(); + + // If content is a jQuery object, then it will be moved to the slide. + // The placeholder is created so we will know where to put it back. + if (isQuery(content) && content.parent().length) { + // Make sure content is not already moved to fancyBox + if (content.hasClass("fancybox-content") || content.parent().hasClass("fancybox-content")) { + content.parents(".fancybox-slide").trigger("onReset"); + } + + // Create temporary element marking original place of the content + slide.$placeholder = $("
") + .hide() + .insertAfter(content); + + // Make sure content is visible + content.css("display", "inline-block"); + } else if (!slide.hasError) { + // If content is just a plain text, try to convert it to html + if ($.type(content) === "string") { + content = $("
") + .append($.trim(content)) + .contents(); + } + + // If "filter" option is provided, then filter content + if (slide.opts.filter) { + content = $("
") + .html(content) + .find(slide.opts.filter); + } + } + + slide.$slide.one("onReset", function () { + // Pause all html5 video/audio + $(this) + .find("video,audio") + .trigger("pause"); + + // Put content back + if (slide.$placeholder) { + slide.$placeholder.after(content.removeClass("fancybox-content").hide()).remove(); + + slide.$placeholder = null; + } + + // Remove custom close button + if (slide.$smallBtn) { + slide.$smallBtn.remove(); + + slide.$smallBtn = null; + } + + // Remove content and mark slide as not loaded + if (!slide.hasError) { + $(this).empty(); + + slide.isLoaded = false; + slide.isRevealed = false; + } + }); + + $(content).appendTo(slide.$slide); + + if ($(content).is("video,audio")) { + $(content).addClass("fancybox-video"); + + $(content).wrap("
"); + + slide.contentType = "video"; + + slide.opts.width = slide.opts.width || $(content).attr("width"); + slide.opts.height = slide.opts.height || $(content).attr("height"); + } + + slide.$content = slide.$slide + .children() + .filter("div,form,main,video,audio,article,.fancybox-content") + .first(); + + slide.$content.siblings().hide(); + + // Re-check if there is a valid content + // (in some cases, ajax response can contain various elements or plain text) + if (!slide.$content.length) { + slide.$content = slide.$slide + .wrapInner("
") + .children() + .first(); + } + + slide.$content.addClass("fancybox-content"); + + slide.$slide.addClass("fancybox-slide--" + slide.contentType); + + self.afterLoad(slide); + }, + + // Display error message + // ===================== + + setError: function (slide) { + slide.hasError = true; + + slide.$slide + .trigger("onReset") + .removeClass("fancybox-slide--" + slide.contentType) + .addClass("fancybox-slide--error"); + + slide.contentType = "html"; + + this.setContent(slide, this.translate(slide, slide.opts.errorTpl)); + + if (slide.pos === this.currPos) { + this.isAnimating = false; + } + }, + + // Show loading icon inside the slide + // ================================== + + showLoading: function (slide) { + var self = this; + + slide = slide || self.current; + + if (slide && !slide.$spinner) { + slide.$spinner = $(self.translate(self, self.opts.spinnerTpl)) + .appendTo(slide.$slide) + .hide() + .fadeIn("fast"); + } + }, + + // Remove loading icon from the slide + // ================================== + + hideLoading: function (slide) { + var self = this; + + slide = slide || self.current; + + if (slide && slide.$spinner) { + slide.$spinner.stop().remove(); + + delete slide.$spinner; + } + }, + + // Adjustments after slide content has been loaded + // =============================================== + + afterLoad: function (slide) { + var self = this; + + if (self.isClosing) { + return; + } + + slide.isLoading = false; + slide.isLoaded = true; + + self.trigger("afterLoad", slide); + + self.hideLoading(slide); + + // Add small close button + if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) { + slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content); + } + + // Disable right click + if (slide.opts.protect && slide.$content && !slide.hasError) { + slide.$content.on("contextmenu.fb", function (e) { + if (e.button == 2) { + e.preventDefault(); + } + + return true; + }); + + // Add fake element on top of the image + // This makes a bit harder for user to select image + if (slide.type === "image") { + $('
').appendTo(slide.$content); + } + } + + self.adjustCaption(slide); + + self.adjustLayout(slide); + + if (slide.pos === self.currPos) { + self.updateCursor(); + } + + self.revealContent(slide); + }, + + // Prevent caption overlap, + // fix css inconsistency across browsers + // ===================================== + + adjustCaption: function (slide) { + var self = this, + current = slide || self.current, + caption = current.opts.caption, + preventOverlap = current.opts.preventCaptionOverlap, + $caption = self.$refs.caption, + $clone, + captionH = false; + + $caption.toggleClass("fancybox-caption--separate", preventOverlap); + + if (preventOverlap && caption && caption.length) { + if (current.pos !== self.currPos) { + $clone = $caption.clone().appendTo($caption.parent()); + + $clone + .children() + .eq(0) + .empty() + .html(caption); + + captionH = $clone.outerHeight(true); + + $clone.empty().remove(); + } else if (self.$caption) { + captionH = self.$caption.outerHeight(true); + } + + current.$slide.css("padding-bottom", captionH || ""); + } + }, + + // Simple hack to fix inconsistency across browsers, described here (affects Edge, too): + // https://bugzilla.mozilla.org/show_bug.cgi?id=748518 + // ==================================================================================== + + adjustLayout: function (slide) { + var self = this, + current = slide || self.current, + scrollHeight, + marginBottom, + inlinePadding, + actualPadding; + + if (current.isLoaded && current.opts.disableLayoutFix !== true) { + current.$content.css("margin-bottom", ""); + + // If we would always set margin-bottom for the content, + // then it would potentially break vertical align + if (current.$content.outerHeight() > current.$slide.height() + 0.5) { + inlinePadding = current.$slide[0].style["padding-bottom"]; + actualPadding = current.$slide.css("padding-bottom"); + + if (parseFloat(actualPadding) > 0) { + scrollHeight = current.$slide[0].scrollHeight; + + current.$slide.css("padding-bottom", 0); + + if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) { + marginBottom = actualPadding; + } + + current.$slide.css("padding-bottom", inlinePadding); + } + } + + current.$content.css("margin-bottom", marginBottom); + } + }, + + // Make content visible + // This method is called right after content has been loaded or + // user navigates gallery and transition should start + // ============================================================ + + revealContent: function (slide) { + var self = this, + $slide = slide.$slide, + end = false, + start = false, + isMoved = self.isMoved(slide), + isRevealed = slide.isRevealed, + effect, + effectClassName, + duration, + opacity; + + slide.isRevealed = true; + + effect = slide.opts[self.firstRun ? "animationEffect" : "transitionEffect"]; + duration = slide.opts[self.firstRun ? "animationDuration" : "transitionDuration"]; + + duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10); + + if (isMoved || slide.pos !== self.currPos || !duration) { + effect = false; + } + + // Check if can zoom + if (effect === "zoom") { + if (slide.pos === self.currPos && duration && slide.type === "image" && !slide.hasError && (start = self.getThumbPos(slide))) { + end = self.getFitPos(slide); + } else { + effect = "fade"; + } + } + + // Zoom animation + // ============== + if (effect === "zoom") { + self.isAnimating = true; + + end.scaleX = end.width / start.width; + end.scaleY = end.height / start.height; + + // Check if we need to animate opacity + opacity = slide.opts.zoomOpacity; + + if (opacity == "auto") { + opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1; + } + + if (opacity) { + start.opacity = 0.1; + end.opacity = 1; + } + + // Draw image at start position + $.fancybox.setTranslate(slide.$content.removeClass("fancybox-is-hidden"), start); + + forceRedraw(slide.$content); + + // Start animation + $.fancybox.animate(slide.$content, end, duration, function () { + self.isAnimating = false; + + self.complete(); + }); + + return; + } + + self.updateSlide(slide); + + // Simply show content if no effect + // ================================ + if (!effect) { + slide.$content.removeClass("fancybox-is-hidden"); + + if (!isRevealed && isMoved && slide.type === "image" && !slide.hasError) { + slide.$content.hide().fadeIn("fast"); + } + + if (slide.pos === self.currPos) { + self.complete(); + } + + return; + } + + // Prepare for CSS transiton + // ========================= + $.fancybox.stop($slide); + + //effectClassName = "fancybox-animated fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-fx-" + effect; + effectClassName = "fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + effect; + + $slide.addClass(effectClassName).removeClass("fancybox-slide--current"); //.addClass(effectClassName); + + slide.$content.removeClass("fancybox-is-hidden"); + + // Force reflow + forceRedraw($slide); + + if (slide.type !== "image") { + slide.$content.hide().show(0); + } + + $.fancybox.animate( + $slide, + "fancybox-slide--current", + duration, + function () { + $slide.removeClass(effectClassName).css({ + transform: "", + opacity: "" + }); + + if (slide.pos === self.currPos) { + self.complete(); + } + }, + true + ); + }, + + // Check if we can and have to zoom from thumbnail + //================================================ + + getThumbPos: function (slide) { + var rez = false, + $thumb = slide.$thumb, + thumbPos, + btw, + brw, + bbw, + blw; + + if (!$thumb || !inViewport($thumb[0])) { + return false; + } + + thumbPos = $.fancybox.getTranslate($thumb); + + btw = parseFloat($thumb.css("border-top-width") || 0); + brw = parseFloat($thumb.css("border-right-width") || 0); + bbw = parseFloat($thumb.css("border-bottom-width") || 0); + blw = parseFloat($thumb.css("border-left-width") || 0); + + rez = { + top: thumbPos.top + btw, + left: thumbPos.left + blw, + width: thumbPos.width - brw - blw, + height: thumbPos.height - btw - bbw, + scaleX: 1, + scaleY: 1 + }; + + return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false; + }, + + // Final adjustments after current gallery item is moved to position + // and it`s content is loaded + // ================================================================== + + complete: function () { + var self = this, + current = self.current, + slides = {}, + $el; + + if (self.isMoved() || !current.isLoaded) { + return; + } + + if (!current.isComplete) { + current.isComplete = true; + + current.$slide.siblings().trigger("onReset"); + + self.preload("inline"); + + // Trigger any CSS transiton inside the slide + forceRedraw(current.$slide); + + current.$slide.addClass("fancybox-slide--complete"); + + // Remove unnecessary slides + $.each(self.slides, function (key, slide) { + if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) { + slides[slide.pos] = slide; + } else if (slide) { + $.fancybox.stop(slide.$slide); + + slide.$slide.off().remove(); + } + }); + + self.slides = slides; + } + + self.isAnimating = false; + + self.updateCursor(); + + self.trigger("afterShow"); + + // Autoplay first html5 video/audio + if (!!current.opts.video.autoStart) { + current.$slide + .find("video,audio") + .filter(":visible:first") + .trigger("play") + .one("ended", function () { + if (Document.exitFullscreen) { + Document.exitFullscreen(); + } else if (this.webkitExitFullscreen) { + this.webkitExitFullscreen(); + } + + self.next(); + }); + } + + // Try to focus on the first focusable element + if (current.opts.autoFocus && current.contentType === "html") { + // Look for the first input with autofocus attribute + $el = current.$content.find("input[autofocus]:enabled:visible:first"); + + if ($el.length) { + $el.trigger("focus"); + } else { + self.focus(null, true); + } + } + + // Avoid jumping + current.$slide.scrollTop(0).scrollLeft(0); + }, + + // Preload next and previous slides + // ================================ + + preload: function (type) { + var self = this, + prev, + next; + + if (self.group.length < 2) { + return; + } + + next = self.slides[self.currPos + 1]; + prev = self.slides[self.currPos - 1]; + + if (prev && prev.type === type) { + self.loadSlide(prev); + } + + if (next && next.type === type) { + self.loadSlide(next); + } + }, + + // Try to find and focus on the first focusable element + // ==================================================== + + focus: function (e, firstRun) { + var self = this, + focusableStr = [ + "a[href]", + "area[href]", + 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', + "select:not([disabled]):not([aria-hidden])", + "textarea:not([disabled]):not([aria-hidden])", + "button:not([disabled]):not([aria-hidden])", + "iframe", + "object", + "embed", + "video", + "audio", + "[contenteditable]", + '[tabindex]:not([tabindex^="-"])' + ].join(","), + focusableItems, + focusedItemIndex; + + if (self.isClosing) { + return; + } + + if (e || !self.current || !self.current.isComplete) { + // Focus on any element inside fancybox + focusableItems = self.$refs.container.find("*:visible"); + } else { + // Focus inside current slide + focusableItems = self.current.$slide.find("*:visible" + (firstRun ? ":not(.fancybox-close-small)" : "")); + } + + focusableItems = focusableItems.filter(focusableStr).filter(function () { + return $(this).css("visibility") !== "hidden" && !$(this).hasClass("disabled"); + }); + + if (focusableItems.length) { + focusedItemIndex = focusableItems.index(document.activeElement); + + if (e && e.shiftKey) { + // Back tab + if (focusedItemIndex < 0 || focusedItemIndex == 0) { + e.preventDefault(); + + focusableItems.eq(focusableItems.length - 1).trigger("focus"); + } + } else { + // Outside or Forward tab + if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) { + if (e) { + e.preventDefault(); + } + + focusableItems.eq(0).trigger("focus"); + } + } + } else { + self.$refs.container.trigger("focus"); + } + }, + + // Activates current instance - brings container to the front and enables keyboard, + // notifies other instances about deactivating + // ================================================================================= + + activate: function () { + var self = this; + + // Deactivate all instances + $(".fancybox-container").each(function () { + var instance = $(this).data("FancyBox"); + + // Skip self and closing instances + if (instance && instance.id !== self.id && !instance.isClosing) { + instance.trigger("onDeactivate"); + + instance.removeEvents(); + + instance.isVisible = false; + } + }); + + self.isVisible = true; + + if (self.current || self.isIdle) { + self.update(); + + self.updateControls(); + } + + self.trigger("onActivate"); + + self.addEvents(); + }, + + // Start closing procedure + // This will start "zoom-out" animation if needed and clean everything up afterwards + // ================================================================================= + + close: function (e, d) { + var self = this, + current = self.current, + effect, + duration, + $content, + domRect, + opacity, + start, + end; + + var done = function () { + self.cleanUp(e); + }; + + if (self.isClosing) { + return false; + } + + self.isClosing = true; + + // If beforeClose callback prevents closing, make sure content is centered + if (self.trigger("beforeClose", e) === false) { + self.isClosing = false; + + requestAFrame(function () { + self.update(); + }); + + return false; + } + + // Remove all events + // If there are multiple instances, they will be set again by "activate" method + self.removeEvents(); + + $content = current.$content; + effect = current.opts.animationEffect; + duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0; + + current.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"); + + if (e !== true) { + $.fancybox.stop(current.$slide); + } else { + effect = false; + } + + // Remove other slides + current.$slide + .siblings() + .trigger("onReset") + .remove(); + + // Trigger animations + if (duration) { + self.$refs.container + .removeClass("fancybox-is-open") + .addClass("fancybox-is-closing") + .css("transition-duration", duration + "ms"); + } + + // Clean up + self.hideLoading(current); + + self.hideControls(true); + + self.updateCursor(); + + // Check if possible to zoom-out + if ( + effect === "zoom" && + !($content && duration && current.type === "image" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current))) + ) { + effect = "fade"; + } + + if (effect === "zoom") { + $.fancybox.stop($content); + + domRect = $.fancybox.getTranslate($content); + + start = { + top: domRect.top, + left: domRect.left, + scaleX: domRect.width / end.width, + scaleY: domRect.height / end.height, + width: end.width, + height: end.height + }; + + // Check if we need to animate opacity + opacity = current.opts.zoomOpacity; + + if (opacity == "auto") { + opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1; + } + + if (opacity) { + end.opacity = 0; + } + + $.fancybox.setTranslate($content, start); + + forceRedraw($content); + + $.fancybox.animate($content, end, duration, done); + + return true; + } + + if (effect && duration) { + $.fancybox.animate( + current.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"), + "fancybox-animated fancybox-fx-" + effect, + duration, + done + ); + } else { + // If skip animation + if (e === true) { + setTimeout(done, duration); + } else { + done(); + } + } + + return true; + }, + + // Final adjustments after removing the instance + // ============================================= + + cleanUp: function (e) { + var self = this, + instance, + $focus = self.current.opts.$orig, + x, + y; + + self.current.$slide.trigger("onReset"); + + self.$refs.container.empty().remove(); + + self.trigger("afterClose", e); + + // Place back focus + if (!!self.current.opts.backFocus) { + if (!$focus || !$focus.length || !$focus.is(":visible")) { + $focus = self.$trigger; + } + + if ($focus && $focus.length) { + x = window.scrollX; + y = window.scrollY; + + $focus.trigger("focus"); + + $("html, body") + .scrollTop(y) + .scrollLeft(x); + } + } + + self.current = null; + + // Check if there are other instances + instance = $.fancybox.getInstance(); + + if (instance) { + instance.activate(); + } else { + $("body").removeClass("fancybox-active compensate-for-scrollbar"); + + $("#fancybox-style-noscroll").remove(); + } + }, + + // Call callback and trigger an event + // ================================== + + trigger: function (name, slide) { + var args = Array.prototype.slice.call(arguments, 1), + self = this, + obj = slide && slide.opts ? slide : self.current, + rez; + + if (obj) { + args.unshift(obj); + } else { + obj = self; + } + + args.unshift(self); + + if ($.isFunction(obj.opts[name])) { + rez = obj.opts[name].apply(obj, args); + } + + if (rez === false) { + return rez; + } + + if (name === "afterClose" || !self.$refs) { + $D.trigger(name + ".fb", args); + } else { + self.$refs.container.trigger(name + ".fb", args); + } + }, + + // Update infobar values, navigation button states and reveal caption + // ================================================================== + + updateControls: function () { + var self = this, + current = self.current, + index = current.index, + $container = self.$refs.container, + $caption = self.$refs.caption, + caption = current.opts.caption; + + // Recalculate content dimensions + current.$slide.trigger("refresh"); + + // Set caption + if (caption && caption.length) { + self.$caption = $caption; + + $caption + .children() + .eq(0) + .html(caption); + } else { + self.$caption = null; + } + + if (!self.hasHiddenControls && !self.isIdle) { + self.showControls(); + } + + // Update info and navigation elements + $container.find("[data-fancybox-count]").html(self.group.length); + $container.find("[data-fancybox-index]").html(index + 1); + + $container.find("[data-fancybox-prev]").prop("disabled", !current.opts.loop && index <= 0); + $container.find("[data-fancybox-next]").prop("disabled", !current.opts.loop && index >= self.group.length - 1); + + if (current.type === "image") { + // Re-enable buttons; update download button source + $container + .find("[data-fancybox-zoom]") + .show() + .end() + .find("[data-fancybox-download]") + .attr("href", current.opts.image.src || current.src) + .show(); + } else if (current.opts.toolbar) { + $container.find("[data-fancybox-download],[data-fancybox-zoom]").hide(); + } + + // Make sure focus is not on disabled button/element + if ($(document.activeElement).is(":hidden,[disabled]")) { + self.$refs.container.trigger("focus"); + } + }, + + // Hide toolbar and caption + // ======================== + + hideControls: function (andCaption) { + var self = this, + arr = ["infobar", "toolbar", "nav"]; + + if (andCaption || !self.current.opts.preventCaptionOverlap) { + arr.push("caption"); + } + + this.$refs.container.removeClass( + arr + .map(function (i) { + return "fancybox-show-" + i; + }) + .join(" ") + ); + + this.hasHiddenControls = true; + }, + + showControls: function () { + var self = this, + opts = self.current ? self.current.opts : self.opts, + $container = self.$refs.container; + + self.hasHiddenControls = false; + self.idleSecondsCounter = 0; + + $container + .toggleClass("fancybox-show-toolbar", !!(opts.toolbar && opts.buttons)) + .toggleClass("fancybox-show-infobar", !!(opts.infobar && self.group.length > 1)) + .toggleClass("fancybox-show-caption", !!self.$caption) + .toggleClass("fancybox-show-nav", !!(opts.arrows && self.group.length > 1)) + .toggleClass("fancybox-is-modal", !!opts.modal); + }, + + // Toggle toolbar and caption + // ========================== + + toggleControls: function () { + if (this.hasHiddenControls) { + this.showControls(); + } else { + this.hideControls(); + } + } + }); + + $.fancybox = { + version: "3.5.7", + defaults: defaults, + + // Get current instance and execute a command. + // + // Examples of usage: + // + // $instance = $.fancybox.getInstance(); + // $.fancybox.getInstance().jumpTo( 1 ); + // $.fancybox.getInstance( 'jumpTo', 1 ); + // $.fancybox.getInstance( function() { + // console.info( this.currIndex ); + // }); + // ====================================================== + + getInstance: function (command) { + var instance = $('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"), + args = Array.prototype.slice.call(arguments, 1); + + if (instance instanceof FancyBox) { + if ($.type(command) === "string") { + instance[command].apply(instance, args); + } else if ($.type(command) === "function") { + command.apply(instance, args); + } + + return instance; + } + + return false; + }, + + // Create new instance + // =================== + + open: function (items, opts, index) { + return new FancyBox(items, opts, index); + }, + + // Close current or all instances + // ============================== + + close: function (all) { + var instance = this.getInstance(); + + if (instance) { + instance.close(); + + // Try to find and close next instance + if (all === true) { + this.close(all); + } + } + }, + + // Close all instances and unbind all events + // ========================================= + + destroy: function () { + this.close(true); + + $D.add("body").off("click.fb-start", "**"); + }, + + // Try to detect mobile devices + // ============================ + + isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), + + // Detect if 'translate3d' support is available + // ============================================ + + use3d: (function () { + var div = document.createElement("div"); + + return ( + window.getComputedStyle && + window.getComputedStyle(div) && + window.getComputedStyle(div).getPropertyValue("transform") && + !(document.documentMode && document.documentMode < 11) + ); + })(), + + // Helper function to get current visual state of an element + // returns array[ top, left, horizontal-scale, vertical-scale, opacity ] + // ===================================================================== + + getTranslate: function ($el) { + var domRect; + + if (!$el || !$el.length) { + return false; + } + + domRect = $el[0].getBoundingClientRect(); + + return { + top: domRect.top || 0, + left: domRect.left || 0, + width: domRect.width, + height: domRect.height, + opacity: parseFloat($el.css("opacity")) + }; + }, + + // Shortcut for setting "translate3d" properties for element + // Can set be used to set opacity, too + // ======================================================== + + setTranslate: function ($el, props) { + var str = "", + css = {}; + + if (!$el || !props) { + return; + } + + if (props.left !== undefined || props.top !== undefined) { + str = + (props.left === undefined ? $el.position().left : props.left) + + "px, " + + (props.top === undefined ? $el.position().top : props.top) + + "px"; + + if (this.use3d) { + str = "translate3d(" + str + ", 0px)"; + } else { + str = "translate(" + str + ")"; + } + } + + if (props.scaleX !== undefined && props.scaleY !== undefined) { + str += " scale(" + props.scaleX + ", " + props.scaleY + ")"; + } else if (props.scaleX !== undefined) { + str += " scaleX(" + props.scaleX + ")"; + } + + if (str.length) { + css.transform = str; + } + + if (props.opacity !== undefined) { + css.opacity = props.opacity; + } + + if (props.width !== undefined) { + css.width = props.width; + } + + if (props.height !== undefined) { + css.height = props.height; + } + + return $el.css(css); + }, + + // Simple CSS transition handler + // ============================= + + animate: function ($el, to, duration, callback, leaveAnimationName) { + var self = this, + from; + + if ($.isFunction(duration)) { + callback = duration; + duration = null; + } + + self.stop($el); + + from = self.getTranslate($el); + + $el.on(transitionEnd, function (e) { + // Skip events from child elements and z-index change + if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == "z-index")) { + return; + } + + self.stop($el); + + if ($.isNumeric(duration)) { + $el.css("transition-duration", ""); + } + + if ($.isPlainObject(to)) { + if (to.scaleX !== undefined && to.scaleY !== undefined) { + self.setTranslate($el, { + top: to.top, + left: to.left, + width: from.width * to.scaleX, + height: from.height * to.scaleY, + scaleX: 1, + scaleY: 1 + }); + } + } else if (leaveAnimationName !== true) { + $el.removeClass(to); + } + + if ($.isFunction(callback)) { + callback(e); + } + }); + + if ($.isNumeric(duration)) { + $el.css("transition-duration", duration + "ms"); + } + + // Start animation by changing CSS properties or class name + if ($.isPlainObject(to)) { + if (to.scaleX !== undefined && to.scaleY !== undefined) { + delete to.width; + delete to.height; + + if ($el.parent().hasClass("fancybox-slide--image")) { + $el.parent().addClass("fancybox-is-scaling"); + } + } + + $.fancybox.setTranslate($el, to); + } else { + $el.addClass(to); + } + + // Make sure that `transitionend` callback gets fired + $el.data( + "timer", + setTimeout(function () { + $el.trigger(transitionEnd); + }, duration + 33) + ); + }, + + stop: function ($el, callCallback) { + if ($el && $el.length) { + clearTimeout($el.data("timer")); + + if (callCallback) { + $el.trigger(transitionEnd); + } + + $el.off(transitionEnd).css("transition-duration", ""); + + $el.parent().removeClass("fancybox-is-scaling"); + } + } + }; + + // Default click handler for "fancyboxed" links + // ============================================ + + function _run(e, opts) { + var items = [], + index = 0, + $target, + value, + instance; + + // Avoid opening multiple times + if (e && e.isDefaultPrevented()) { + return; + } + + e.preventDefault(); + + opts = opts || {}; + + if (e && e.data) { + opts = mergeOpts(e.data.options, opts); + } + + $target = opts.$target || $(e.currentTarget).trigger("blur"); + instance = $.fancybox.getInstance(); + + if (instance && instance.$trigger && instance.$trigger.is($target)) { + return; + } + + if (opts.selector) { + items = $(opts.selector); + } else { + // Get all related items and find index for clicked one + value = $target.attr("data-fancybox") || ""; + + if (value) { + items = e.data ? e.data.items : []; + items = items.length ? items.filter('[data-fancybox="' + value + '"]') : $('[data-fancybox="' + value + '"]'); + } else { + items = [$target]; + } + } + + index = $(items).index($target); + + // Sometimes current item can not be found + if (index < 0) { + index = 0; + } + + instance = $.fancybox.open(items, opts, index); + + // Save last active element + instance.$trigger = $target; + } + + // Create a jQuery plugin + // ====================== + + $.fn.fancybox = function (options) { + var selector; + + options = options || {}; + selector = options.selector || false; + + if (selector) { + // Use body element instead of document so it executes first + $("body") + .off("click.fb-start", selector) + .on("click.fb-start", selector, { + options: options + }, _run); + } else { + this.off("click.fb-start").on( + "click.fb-start", { + items: this, + options: options + }, + _run + ); + } + + return this; + }; + + // Self initializing plugin for all elements having `data-fancybox` attribute + // ========================================================================== + + $D.on("click.fb-start", "[data-fancybox]", _run); + + // Enable "trigger elements" + // ========================= + + $D.on("click.fb-start", "[data-fancybox-trigger]", function (e) { + $('[data-fancybox="' + $(this).attr("data-fancybox-trigger") + '"]') + .eq($(this).attr("data-fancybox-index") || 0) + .trigger("click.fb-start", { + $trigger: $(this) + }); + }); + + // Track focus event for better accessibility styling + // ================================================== + (function () { + var buttonStr = ".fancybox-button", + focusStr = "fancybox-focus", + $pressed = null; + + $D.on("mousedown mouseup focus blur", buttonStr, function (e) { + switch (e.type) { + case "mousedown": + $pressed = $(this); + break; + case "mouseup": + $pressed = null; + break; + case "focusin": + $(buttonStr).removeClass(focusStr); + + if (!$(this).is($pressed) && !$(this).is("[disabled]")) { + $(this).addClass(focusStr); + } + break; + case "focusout": + $(buttonStr).removeClass(focusStr); + break; + } + }); + })(); +})(window, document, jQuery); +// ========================================================================== +// +// Media +// Adds additional media type support +// +// ========================================================================== +(function ($) { + "use strict"; + + // Object containing properties for each media type + var defaults = { + youtube: { + matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i, + params: { + autoplay: 1, + autohide: 1, + fs: 1, + rel: 0, + hd: 1, + wmode: "transparent", + enablejsapi: 1, + html5: 1 + }, + paramPlace: 8, + type: "iframe", + url: "https://www.youtube-nocookie.com/embed/$4", + thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg" + }, + + vimeo: { + matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/, + params: { + autoplay: 1, + hd: 1, + show_title: 1, + show_byline: 1, + show_portrait: 0, + fullscreen: 1 + }, + paramPlace: 3, + type: "iframe", + url: "//player.vimeo.com/video/$2" + }, + + instagram: { + matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, + type: "image", + url: "//$1/p/$2/media/?size=l" + }, + + // Examples: + // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 + // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z + // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en + // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572 + gmap_place: { + matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i, + type: "iframe", + url: function (rez) { + return ( + "//maps.google." + + rez[2] + + "/?ll=" + + (rez[9] ? rez[9] + "&z=" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\//, "&") : "") : rez[12] + "").replace(/\?/, "&") + + "&output=" + + (rez[12] && rez[12].indexOf("layer=c") > 0 ? "svembed" : "embed") + ); + } + }, + + // Examples: + // https://www.google.com/maps/search/Empire+State+Building/ + // https://www.google.com/maps/search/?api=1&query=centurylink+field + // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393 + gmap_search: { + matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i, + type: "iframe", + url: function (rez) { + return "//maps.google." + rez[2] + "/maps?q=" + rez[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"; + } + } + }; + + // Formats matching url to final form + var format = function (url, rez, params) { + if (!url) { + return; + } + + params = params || ""; + + if ($.type(params) === "object") { + params = $.param(params, true); + } + + $.each(rez, function (key, value) { + url = url.replace("$" + key, value || ""); + }); + + if (params.length) { + url += (url.indexOf("?") > 0 ? "&" : "?") + params; + } + + return url; + }; + + $(document).on("objectNeedsType.fb", function (e, instance, item) { + var url = item.src || "", + type = false, + media, + thumb, + rez, + params, + urlParams, + paramObj, + provider; + + media = $.extend(true, {}, defaults, item.opts.media); + + // Look for any matching media type + $.each(media, function (providerName, providerOpts) { + rez = url.match(providerOpts.matcher); + + if (!rez) { + return; + } + + type = providerOpts.type; + provider = providerName; + paramObj = {}; + + if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) { + urlParams = rez[providerOpts.paramPlace]; + + if (urlParams[0] == "?") { + urlParams = urlParams.substring(1); + } + + urlParams = urlParams.split("&"); + + for (var m = 0; m < urlParams.length; ++m) { + var p = urlParams[m].split("=", 2); + + if (p.length == 2) { + paramObj[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " ")); + } + } + } + + params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj); + + url = + $.type(providerOpts.url) === "function" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params); + + thumb = + $.type(providerOpts.thumb) === "function" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez); + + if (providerName === "youtube") { + url = url.replace(/&t=((\d+)m)?(\d+)s/, function (match, p1, m, s) { + return "&start=" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10)); + }); + } else if (providerName === "vimeo") { + url = url.replace("&%23", "#"); + } + + return false; + }); + + // If it is found, then change content type and update the url + + if (type) { + if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) { + item.opts.thumb = thumb; + } + + if (type === "iframe") { + item.opts = $.extend(true, item.opts, { + iframe: { + preload: false, + attr: { + scrolling: "no" + } + } + }); + } + + $.extend(item, { + type: type, + src: url, + origSrc: item.src, + contentSource: provider, + contentType: type === "image" ? "image" : provider == "gmap_place" || provider == "gmap_search" ? "map" : "video" + }); + } else if (url) { + item.type = item.opts.defaultType; + } + }); + + // Load YouTube/Video API on request to detect when video finished playing + var VideoAPILoader = { + youtube: { + src: "https://www.youtube.com/iframe_api", + class: "YT", + loading: false, + loaded: false + }, + + vimeo: { + src: "https://player.vimeo.com/api/player.js", + class: "Vimeo", + loading: false, + loaded: false + }, + + load: function (vendor) { + var _this = this, + script; + + if (this[vendor].loaded) { + setTimeout(function () { + _this.done(vendor); + }); + return; + } + + if (this[vendor].loading) { + return; + } + + this[vendor].loading = true; + + script = document.createElement("script"); + script.type = "text/javascript"; + script.src = this[vendor].src; + + if (vendor === "youtube") { + window.onYouTubeIframeAPIReady = function () { + _this[vendor].loaded = true; + _this.done(vendor); + }; + } else { + script.onload = function () { + _this[vendor].loaded = true; + _this.done(vendor); + }; + } + + document.body.appendChild(script); + }, + done: function (vendor) { + var instance, $el, player; + + if (vendor === "youtube") { + delete window.onYouTubeIframeAPIReady; + } + + instance = $.fancybox.getInstance(); + + if (instance) { + $el = instance.current.$content.find("iframe"); + + if (vendor === "youtube" && YT !== undefined && YT) { + player = new YT.Player($el.attr("id"), { + events: { + onStateChange: function (e) { + if (e.data == 0) { + instance.next(); + } + } + } + }); + } else if (vendor === "vimeo" && Vimeo !== undefined && Vimeo) { + player = new Vimeo.Player($el); + + player.on("ended", function () { + instance.next(); + }); + } + } + } + }; + + $(document).on({ + "afterShow.fb": function (e, instance, current) { + if (instance.group.length > 1 && (current.contentSource === "youtube" || current.contentSource === "vimeo")) { + VideoAPILoader.load(current.contentSource); + } + } + }); +})(jQuery); +// ========================================================================== +// +// Guestures +// Adds touch guestures, handles click and tap events +// +// ========================================================================== +(function (window, document, $) { + "use strict"; + + var requestAFrame = (function () { + return ( + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + // if all else fails, use setTimeout + function (callback) { + return window.setTimeout(callback, 1000 / 60); + } + ); + })(); + + var cancelAFrame = (function () { + return ( + window.cancelAnimationFrame || + window.webkitCancelAnimationFrame || + window.mozCancelAnimationFrame || + window.oCancelAnimationFrame || + function (id) { + window.clearTimeout(id); + } + ); + })(); + + var getPointerXY = function (e) { + var result = []; + + e = e.originalEvent || e || window.e; + e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e]; + + for (var key in e) { + if (e[key].pageX) { + result.push({ + x: e[key].pageX, + y: e[key].pageY + }); + } else if (e[key].clientX) { + result.push({ + x: e[key].clientX, + y: e[key].clientY + }); + } + } + + return result; + }; + + var distance = function (point2, point1, what) { + if (!point1 || !point2) { + return 0; + } + + if (what === "x") { + return point2.x - point1.x; + } else if (what === "y") { + return point2.y - point1.y; + } + + return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2)); + }; + + var isClickable = function ($el) { + if ( + $el.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') || + $.isFunction($el.get(0).onclick) || + $el.data("selectable") + ) { + return true; + } + + // Check for attributes like data-fancybox-next or data-fancybox-close + for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) { + if (atts[i].nodeName.substr(0, 14) === "data-fancybox-") { + return true; + } + } + + return false; + }; + + var hasScrollbars = function (el) { + var overflowY = window.getComputedStyle(el)["overflow-y"], + overflowX = window.getComputedStyle(el)["overflow-x"], + vertical = (overflowY === "scroll" || overflowY === "auto") && el.scrollHeight > el.clientHeight, + horizontal = (overflowX === "scroll" || overflowX === "auto") && el.scrollWidth > el.clientWidth; + + return vertical || horizontal; + }; + + var isScrollable = function ($el) { + var rez = false; + + while (true) { + rez = hasScrollbars($el.get(0)); + + if (rez) { + break; + } + + $el = $el.parent(); + + if (!$el.length || $el.hasClass("fancybox-stage") || $el.is("body")) { + break; + } + } + + return rez; + }; + + var Guestures = function (instance) { + var self = this; + + self.instance = instance; + + self.$bg = instance.$refs.bg; + self.$stage = instance.$refs.stage; + self.$container = instance.$refs.container; + + self.destroy(); + + self.$container.on("touchstart.fb.touch mousedown.fb.touch", $.proxy(self, "ontouchstart")); + }; + + Guestures.prototype.destroy = function () { + var self = this; + + self.$container.off(".fb.touch"); + + $(document).off(".fb.touch"); + + if (self.requestId) { + cancelAFrame(self.requestId); + self.requestId = null; + } + + if (self.tapped) { + clearTimeout(self.tapped); + self.tapped = null; + } + }; + + Guestures.prototype.ontouchstart = function (e) { + var self = this, + $target = $(e.target), + instance = self.instance, + current = instance.current, + $slide = current.$slide, + $content = current.$content, + isTouchDevice = e.type == "touchstart"; + + // Do not respond to both (touch and mouse) events + if (isTouchDevice) { + self.$container.off("mousedown.fb.touch"); + } + + // Ignore right click + if (e.originalEvent && e.originalEvent.button == 2) { + return; + } + + // Ignore taping on links, buttons, input elements + if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) { + return; + } + // Ignore clicks on the scrollbar + if (!$target.is("img") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) { + return; + } + + // Ignore clicks while zooming or closing + if (!current || instance.isAnimating || current.$slide.hasClass("fancybox-animated")) { + e.stopPropagation(); + e.preventDefault(); + + return; + } + + self.realPoints = self.startPoints = getPointerXY(e); + + if (!self.startPoints.length) { + return; + } + + // Allow other scripts to catch touch event if "touch" is set to false + if (current.touch) { + e.stopPropagation(); + } + + self.startEvent = e; + + self.canTap = true; + self.$target = $target; + self.$content = $content; + self.opts = current.opts.touch; + + self.isPanning = false; + self.isSwiping = false; + self.isZooming = false; + self.isScrolling = false; + self.canPan = instance.canPan(); + + self.startTime = new Date().getTime(); + self.distanceX = self.distanceY = self.distance = 0; + + self.canvasWidth = Math.round($slide[0].clientWidth); + self.canvasHeight = Math.round($slide[0].clientHeight); + + self.contentLastPos = null; + self.contentStartPos = $.fancybox.getTranslate(self.$content) || { + top: 0, + left: 0 + }; + self.sliderStartPos = $.fancybox.getTranslate($slide); + + // Since position will be absolute, but we need to make it relative to the stage + self.stagePos = $.fancybox.getTranslate(instance.$refs.stage); + + self.sliderStartPos.top -= self.stagePos.top; + self.sliderStartPos.left -= self.stagePos.left; + + self.contentStartPos.top -= self.stagePos.top; + self.contentStartPos.left -= self.stagePos.left; + + $(document) + .off(".fb.touch") + .on(isTouchDevice ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", $.proxy(self, "ontouchend")) + .on(isTouchDevice ? "touchmove.fb.touch" : "mousemove.fb.touch", $.proxy(self, "ontouchmove")); + + if ($.fancybox.isMobile) { + document.addEventListener("scroll", self.onscroll, true); + } + + // Skip if clicked outside the sliding area + if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) { + if ($target.is(".fancybox-image")) { + e.preventDefault(); + } + + if (!($.fancybox.isMobile && $target.parents(".fancybox-caption").length)) { + return; + } + } + + self.isScrollable = isScrollable($target) || isScrollable($target.parent()); + + // Check if element is scrollable and try to prevent default behavior (scrolling) + if (!($.fancybox.isMobile && self.isScrollable)) { + e.preventDefault(); + } + + // One finger or mouse click - swipe or pan an image + if (self.startPoints.length === 1 || current.hasError) { + if (self.canPan) { + $.fancybox.stop(self.$content); + + self.isPanning = true; + } else { + self.isSwiping = true; + } + + self.$container.addClass("fancybox-is-grabbing"); + } + + // Two fingers - zoom image + if (self.startPoints.length === 2 && current.type === "image" && (current.isLoaded || current.$ghost)) { + self.canTap = false; + self.isSwiping = false; + self.isPanning = false; + + self.isZooming = true; + + $.fancybox.stop(self.$content); + + self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft(); + self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop(); + + self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width; + self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height; + + self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]); + } + }; + + Guestures.prototype.onscroll = function (e) { + var self = this; + + self.isScrolling = true; + + document.removeEventListener("scroll", self.onscroll, true); + }; + + Guestures.prototype.ontouchmove = function (e) { + var self = this; + + // Make sure user has not released over iframe or disabled element + if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) { + self.ontouchend(e); + return; + } + + if (self.isScrolling) { + self.canTap = false; + return; + } + + self.newPoints = getPointerXY(e); + + if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) { + return; + } + + if (!(self.isSwiping && self.isSwiping === true)) { + e.preventDefault(); + } + + self.distanceX = distance(self.newPoints[0], self.startPoints[0], "x"); + self.distanceY = distance(self.newPoints[0], self.startPoints[0], "y"); + + self.distance = distance(self.newPoints[0], self.startPoints[0]); + + // Skip false ontouchmove events (Chrome) + if (self.distance > 0) { + if (self.isSwiping) { + self.onSwipe(e); + } else if (self.isPanning) { + self.onPan(); + } else if (self.isZooming) { + self.onZoom(); + } + } + }; + + Guestures.prototype.onSwipe = function (e) { + var self = this, + instance = self.instance, + swiping = self.isSwiping, + left = self.sliderStartPos.left || 0, + angle; + + // If direction is not yet determined + if (swiping === true) { + // We need at least 10px distance to correctly calculate an angle + if (Math.abs(self.distance) > 10) { + self.canTap = false; + + if (instance.group.length < 2 && self.opts.vertical) { + self.isSwiping = "y"; + } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === "auto" && $(window).width() > 800)) { + self.isSwiping = "x"; + } else { + angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI); + + self.isSwiping = angle > 45 && angle < 135 ? "y" : "x"; + } + + if (self.isSwiping === "y" && $.fancybox.isMobile && self.isScrollable) { + self.isScrolling = true; + + return; + } + + instance.isDragging = self.isSwiping; + + // Reset points to avoid jumping, because we dropped first swipes to calculate the angle + self.startPoints = self.newPoints; + + $.each(instance.slides, function (index, slide) { + var slidePos, stagePos; + + $.fancybox.stop(slide.$slide); + + slidePos = $.fancybox.getTranslate(slide.$slide); + stagePos = $.fancybox.getTranslate(instance.$refs.stage); + + slide.$slide + .css({ + transform: "", + opacity: "", + "transition-duration": "" + }) + .removeClass("fancybox-animated") + .removeClass(function (index, className) { + return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" "); + }); + + if (slide.pos === instance.current.pos) { + self.sliderStartPos.top = slidePos.top - stagePos.top; + self.sliderStartPos.left = slidePos.left - stagePos.left; + } + + $.fancybox.setTranslate(slide.$slide, { + top: slidePos.top - stagePos.top, + left: slidePos.left - stagePos.left + }); + }); + + // Stop slideshow + if (instance.SlideShow && instance.SlideShow.isActive) { + instance.SlideShow.stop(); + } + } + + return; + } + + // Sticky edges + if (swiping == "x") { + if ( + self.distanceX > 0 && + (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop)) + ) { + left = left + Math.pow(self.distanceX, 0.8); + } else if ( + self.distanceX < 0 && + (self.instance.group.length < 2 || + (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop)) + ) { + left = left - Math.pow(-self.distanceX, 0.8); + } else { + left = left + self.distanceX; + } + } + + self.sliderLastPos = { + top: swiping == "x" ? 0 : self.sliderStartPos.top + self.distanceY, + left: left + }; + + if (self.requestId) { + cancelAFrame(self.requestId); + + self.requestId = null; + } + + self.requestId = requestAFrame(function () { + if (self.sliderLastPos) { + $.each(self.instance.slides, function (index, slide) { + var pos = slide.pos - self.instance.currPos; + + $.fancybox.setTranslate(slide.$slide, { + top: self.sliderLastPos.top, + left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter + }); + }); + + self.$container.addClass("fancybox-is-sliding"); + } + }); + }; + + Guestures.prototype.onPan = function () { + var self = this; + + // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit) + if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) { + self.startPoints = self.newPoints; + return; + } + + self.canTap = false; + + self.contentLastPos = self.limitMovement(); + + if (self.requestId) { + cancelAFrame(self.requestId); + } + + self.requestId = requestAFrame(function () { + $.fancybox.setTranslate(self.$content, self.contentLastPos); + }); + }; + + // Make panning sticky to the edges + Guestures.prototype.limitMovement = function () { + var self = this; + + var canvasWidth = self.canvasWidth; + var canvasHeight = self.canvasHeight; + + var distanceX = self.distanceX; + var distanceY = self.distanceY; + + var contentStartPos = self.contentStartPos; + + var currentOffsetX = contentStartPos.left; + var currentOffsetY = contentStartPos.top; + + var currentWidth = contentStartPos.width; + var currentHeight = contentStartPos.height; + + var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY; + + if (currentWidth > canvasWidth) { + newOffsetX = currentOffsetX + distanceX; + } else { + newOffsetX = currentOffsetX; + } + + newOffsetY = currentOffsetY + distanceY; + + // Slow down proportionally to traveled distance + minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5); + minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5); + + maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5); + maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5); + + // -> + if (distanceX > 0 && newOffsetX > minTranslateX) { + newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0; + } + + // <- + if (distanceX < 0 && newOffsetX < maxTranslateX) { + newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0; + } + + // \/ + if (distanceY > 0 && newOffsetY > minTranslateY) { + newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0; + } + + // /\ + if (distanceY < 0 && newOffsetY < maxTranslateY) { + newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0; + } + + return { + top: newOffsetY, + left: newOffsetX + }; + }; + + Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) { + var self = this; + + var canvasWidth = self.canvasWidth; + var canvasHeight = self.canvasHeight; + + if (newWidth > canvasWidth) { + newOffsetX = newOffsetX > 0 ? 0 : newOffsetX; + newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX; + } else { + // Center horizontally + newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2); + } + + if (newHeight > canvasHeight) { + newOffsetY = newOffsetY > 0 ? 0 : newOffsetY; + newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY; + } else { + // Center vertically + newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2); + } + + return { + top: newOffsetY, + left: newOffsetX + }; + }; + + Guestures.prototype.onZoom = function () { + var self = this; + + // Calculate current distance between points to get pinch ratio and new width and height + var contentStartPos = self.contentStartPos; + + var currentWidth = contentStartPos.width; + var currentHeight = contentStartPos.height; + + var currentOffsetX = contentStartPos.left; + var currentOffsetY = contentStartPos.top; + + var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]); + + var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers; + + var newWidth = Math.floor(currentWidth * pinchRatio); + var newHeight = Math.floor(currentHeight * pinchRatio); + + // This is the translation due to pinch-zooming + var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX; + var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY; + + // Point between the two touches + var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft(); + var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop(); + + // And this is the translation due to translation of the centerpoint + // between the two fingers + var translateFromTranslatingX = centerPointEndX - self.centerPointStartX; + var translateFromTranslatingY = centerPointEndY - self.centerPointStartY; + + // The new offset is the old/current one plus the total translation + var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX); + var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY); + + var newPos = { + top: newOffsetY, + left: newOffsetX, + scaleX: pinchRatio, + scaleY: pinchRatio + }; + + self.canTap = false; + + self.newWidth = newWidth; + self.newHeight = newHeight; + + self.contentLastPos = newPos; + + if (self.requestId) { + cancelAFrame(self.requestId); + } + + self.requestId = requestAFrame(function () { + $.fancybox.setTranslate(self.$content, self.contentLastPos); + }); + }; + + Guestures.prototype.ontouchend = function (e) { + var self = this; + + var swiping = self.isSwiping; + var panning = self.isPanning; + var zooming = self.isZooming; + var scrolling = self.isScrolling; + + self.endPoints = getPointerXY(e); + self.dMs = Math.max(new Date().getTime() - self.startTime, 1); + + self.$container.removeClass("fancybox-is-grabbing"); + + $(document).off(".fb.touch"); + + document.removeEventListener("scroll", self.onscroll, true); + + if (self.requestId) { + cancelAFrame(self.requestId); + + self.requestId = null; + } + + self.isSwiping = false; + self.isPanning = false; + self.isZooming = false; + self.isScrolling = false; + + self.instance.isDragging = false; + + if (self.canTap) { + return self.onTap(e); + } + + self.speed = 100; + + // Speed in px/ms + self.velocityX = (self.distanceX / self.dMs) * 0.5; + self.velocityY = (self.distanceY / self.dMs) * 0.5; + + if (panning) { + self.endPanning(); + } else if (zooming) { + self.endZooming(); + } else { + self.endSwiping(swiping, scrolling); + } + + return; + }; + + Guestures.prototype.endSwiping = function (swiping, scrolling) { + var self = this, + ret = false, + len = self.instance.group.length, + distanceX = Math.abs(self.distanceX), + canAdvance = swiping == "x" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50), + speedX = 300; + + self.sliderLastPos = null; + + // Close if swiped vertically / navigate if horizontally + if (swiping == "y" && !scrolling && Math.abs(self.distanceY) > 50) { + // Continue vertical movement + $.fancybox.animate( + self.instance.current.$slide, { + top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150, + opacity: 0 + }, + 200 + ); + ret = self.instance.close(true, 250); + } else if (canAdvance && self.distanceX > 0) { + ret = self.instance.previous(speedX); + } else if (canAdvance && self.distanceX < 0) { + ret = self.instance.next(speedX); + } + + if (ret === false && (swiping == "x" || swiping == "y")) { + self.instance.centerSlide(200); + } + + self.$container.removeClass("fancybox-is-sliding"); + }; + + // Limit panning from edges + // ======================== + Guestures.prototype.endPanning = function () { + var self = this, + newOffsetX, + newOffsetY, + newPos; + + if (!self.contentLastPos) { + return; + } + + if (self.opts.momentum === false || self.dMs > 350) { + newOffsetX = self.contentLastPos.left; + newOffsetY = self.contentLastPos.top; + } else { + // Continue movement + newOffsetX = self.contentLastPos.left + self.velocityX * 500; + newOffsetY = self.contentLastPos.top + self.velocityY * 500; + } + + newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height); + + newPos.width = self.contentStartPos.width; + newPos.height = self.contentStartPos.height; + + $.fancybox.animate(self.$content, newPos, 366); + }; + + Guestures.prototype.endZooming = function () { + var self = this; + + var current = self.instance.current; + + var newOffsetX, newOffsetY, newPos, reset; + + var newWidth = self.newWidth; + var newHeight = self.newHeight; + + if (!self.contentLastPos) { + return; + } + + newOffsetX = self.contentLastPos.left; + newOffsetY = self.contentLastPos.top; + + reset = { + top: newOffsetY, + left: newOffsetX, + width: newWidth, + height: newHeight, + scaleX: 1, + scaleY: 1 + }; + + // Reset scalex/scaleY values; this helps for perfomance and does not break animation + $.fancybox.setTranslate(self.$content, reset); + + if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) { + self.instance.scaleToFit(150); + } else if (newWidth > current.width || newHeight > current.height) { + self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150); + } else { + newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight); + + $.fancybox.animate(self.$content, newPos, 150); + } + }; + + Guestures.prototype.onTap = function (e) { + var self = this; + var $target = $(e.target); + + var instance = self.instance; + var current = instance.current; + + var endPoints = (e && getPointerXY(e)) || self.startPoints; + + var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0; + var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0; + + var where; + + var process = function (prefix) { + var action = current.opts[prefix]; + + if ($.isFunction(action)) { + action = action.apply(instance, [current, e]); + } + + if (!action) { + return; + } + + switch (action) { + case "close": + instance.close(self.startEvent); + + break; + + case "toggleControls": + instance.toggleControls(); + + break; + + case "next": + instance.next(); + + break; + + case "nextOrClose": + if (instance.group.length > 1) { + instance.next(); + } else { + instance.close(self.startEvent); + } + + break; + + case "zoom": + if (current.type == "image" && (current.isLoaded || current.$ghost)) { + if (instance.canPan()) { + instance.scaleToFit(); + } else if (instance.isScaledDown()) { + instance.scaleToActual(tapX, tapY); + } else if (instance.group.length < 2) { + instance.close(self.startEvent); + } + } + + break; + } + }; + + // Ignore right click + if (e.originalEvent && e.originalEvent.button == 2) { + return; + } + + // Skip if clicked on the scrollbar + if (!$target.is("img") && tapX > $target[0].clientWidth + $target.offset().left) { + return; + } + + // Check where is clicked + if ($target.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) { + where = "Outside"; + } else if ($target.is(".fancybox-slide")) { + where = "Slide"; + } else if ( + instance.current.$content && + instance.current.$content + .find($target) + .addBack() + .filter($target).length + ) { + where = "Content"; + } else { + return; + } + + // Check if this is a double tap + if (self.tapped) { + // Stop previously created single tap + clearTimeout(self.tapped); + self.tapped = null; + + // Skip if distance between taps is too big + if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) { + return this; + } + + // OK, now we assume that this is a double-tap + process("dblclick" + where); + } else { + // Single tap will be processed if user has not clicked second time within 300ms + // or there is no need to wait for double-tap + self.tapX = tapX; + self.tapY = tapY; + + if (current.opts["dblclick" + where] && current.opts["dblclick" + where] !== current.opts["click" + where]) { + self.tapped = setTimeout(function () { + self.tapped = null; + + if (!instance.isAnimating) { + process("click" + where); + } + }, 500); + } else { + process("click" + where); + } + } + + return this; + }; + + $(document) + .on("onActivate.fb", function (e, instance) { + if (instance && !instance.Guestures) { + instance.Guestures = new Guestures(instance); + } + }) + .on("beforeClose.fb", function (e, instance) { + if (instance && instance.Guestures) { + instance.Guestures.destroy(); + } + }); +})(window, document, jQuery); +// ========================================================================== +// +// SlideShow +// Enables slideshow functionality +// +// Example of usage: +// $.fancybox.getInstance().SlideShow.start() +// +// ========================================================================== +(function (document, $) { + "use strict"; + + $.extend(true, $.fancybox.defaults, { + btnTpl: { + slideShow: '" + }, + slideShow: { + autoStart: false, + speed: 3000, + progress: true + } + }); + + var SlideShow = function (instance) { + this.instance = instance; + this.init(); + }; + + $.extend(SlideShow.prototype, { + timer: null, + isActive: false, + $button: null, + + init: function () { + var self = this, + instance = self.instance, + opts = instance.group[instance.currIndex].opts.slideShow; + + self.$button = instance.$refs.toolbar.find("[data-fancybox-play]").on("click", function () { + self.toggle(); + }); + + if (instance.group.length < 2 || !opts) { + self.$button.hide(); + } else if (opts.progress) { + self.$progress = $('
').appendTo(instance.$refs.inner); + } + }, + + set: function (force) { + var self = this, + instance = self.instance, + current = instance.current; + + // Check if reached last element + if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) { + if (self.isActive && current.contentType !== "video") { + if (self.$progress) { + $.fancybox.animate(self.$progress.show(), { + scaleX: 1 + }, current.opts.slideShow.speed); + } + + self.timer = setTimeout(function () { + if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) { + instance.jumpTo(0); + } else { + instance.next(); + } + }, current.opts.slideShow.speed); + } + } else { + self.stop(); + instance.idleSecondsCounter = 0; + instance.showControls(); + } + }, + + clear: function () { + var self = this; + + clearTimeout(self.timer); + + self.timer = null; + + if (self.$progress) { + self.$progress.removeAttr("style").hide(); + } + }, + + start: function () { + var self = this, + current = self.instance.current; + + if (current) { + self.$button + .attr("title", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP) + .removeClass("fancybox-button--play") + .addClass("fancybox-button--pause"); + + self.isActive = true; + + if (current.isComplete) { + self.set(true); + } + + self.instance.trigger("onSlideShowChange", true); + } + }, + + stop: function () { + var self = this, + current = self.instance.current; + + self.clear(); + + self.$button + .attr("title", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START) + .removeClass("fancybox-button--pause") + .addClass("fancybox-button--play"); + + self.isActive = false; + + self.instance.trigger("onSlideShowChange", false); + + if (self.$progress) { + self.$progress.removeAttr("style").hide(); + } + }, + + toggle: function () { + var self = this; + + if (self.isActive) { + self.stop(); + } else { + self.start(); + } + } + }); + + $(document).on({ + "onInit.fb": function (e, instance) { + if (instance && !instance.SlideShow) { + instance.SlideShow = new SlideShow(instance); + } + }, + + "beforeShow.fb": function (e, instance, current, firstRun) { + var SlideShow = instance && instance.SlideShow; + + if (firstRun) { + if (SlideShow && current.opts.slideShow.autoStart) { + SlideShow.start(); + } + } else if (SlideShow && SlideShow.isActive) { + SlideShow.clear(); + } + }, + + "afterShow.fb": function (e, instance, current) { + var SlideShow = instance && instance.SlideShow; + + if (SlideShow && SlideShow.isActive) { + SlideShow.set(); + } + }, + + "afterKeydown.fb": function (e, instance, current, keypress, keycode) { + var SlideShow = instance && instance.SlideShow; + + // "P" or Spacebar + if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is("button,a,input")) { + keypress.preventDefault(); + + SlideShow.toggle(); + } + }, + + "beforeClose.fb onDeactivate.fb": function (e, instance) { + var SlideShow = instance && instance.SlideShow; + + if (SlideShow) { + SlideShow.stop(); + } + } + }); + + // Page Visibility API to pause slideshow when window is not active + $(document).on("visibilitychange", function () { + var instance = $.fancybox.getInstance(), + SlideShow = instance && instance.SlideShow; + + if (SlideShow && SlideShow.isActive) { + if (document.hidden) { + SlideShow.clear(); + } else { + SlideShow.set(); + } + } + }); +})(document, jQuery); +// ========================================================================== +// +// FullScreen +// Adds fullscreen functionality +// +// ========================================================================== +(function (document, $) { + "use strict"; + + // Collection of methods supported by user browser + var fn = (function () { + var fnMap = [ + ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], + // new WebKit + [ + "webkitRequestFullscreen", + "webkitExitFullscreen", + "webkitFullscreenElement", + "webkitFullscreenEnabled", + "webkitfullscreenchange", + "webkitfullscreenerror" + ], + // old WebKit (Safari 5.1) + [ + "webkitRequestFullScreen", + "webkitCancelFullScreen", + "webkitCurrentFullScreenElement", + "webkitCancelFullScreen", + "webkitfullscreenchange", + "webkitfullscreenerror" + ], + [ + "mozRequestFullScreen", + "mozCancelFullScreen", + "mozFullScreenElement", + "mozFullScreenEnabled", + "mozfullscreenchange", + "mozfullscreenerror" + ], + ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"] + ]; + + var ret = {}; + + for (var i = 0; i < fnMap.length; i++) { + var val = fnMap[i]; + + if (val && val[1] in document) { + for (var j = 0; j < val.length; j++) { + ret[fnMap[0][j]] = val[j]; + } + + return ret; + } + } + + return false; + })(); + + if (fn) { + var FullScreen = { + request: function (elem) { + elem = elem || document.documentElement; + + elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT); + }, + exit: function () { + document[fn.exitFullscreen](); + }, + toggle: function (elem) { + elem = elem || document.documentElement; + + if (this.isFullscreen()) { + this.exit(); + } else { + this.request(elem); + } + }, + isFullscreen: function () { + return Boolean(document[fn.fullscreenElement]); + }, + enabled: function () { + return Boolean(document[fn.fullscreenEnabled]); + } + }; + + $.extend(true, $.fancybox.defaults, { + btnTpl: { + fullScreen: '" + }, + fullScreen: { + autoStart: false + } + }); + + $(document).on(fn.fullscreenchange, function () { + var isFullscreen = FullScreen.isFullscreen(), + instance = $.fancybox.getInstance(); + + if (instance) { + // If image is zooming, then force to stop and reposition properly + if (instance.current && instance.current.type === "image" && instance.isAnimating) { + instance.isAnimating = false; + + instance.update(true, true, 0); + + if (!instance.isComplete) { + instance.complete(); + } + } + + instance.trigger("onFullscreenChange", isFullscreen); + + instance.$refs.container.toggleClass("fancybox-is-fullscreen", isFullscreen); + + instance.$refs.toolbar + .find("[data-fancybox-fullscreen]") + .toggleClass("fancybox-button--fsenter", !isFullscreen) + .toggleClass("fancybox-button--fsexit", isFullscreen); + } + }); + } + + $(document).on({ + "onInit.fb": function (e, instance) { + var $container; + + if (!fn) { + instance.$refs.toolbar.find("[data-fancybox-fullscreen]").remove(); + + return; + } + + if (instance && instance.group[instance.currIndex].opts.fullScreen) { + $container = instance.$refs.container; + + $container.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function (e) { + e.stopPropagation(); + e.preventDefault(); + + FullScreen.toggle(); + }); + + if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) { + FullScreen.request(); + } + + // Expose API + instance.FullScreen = FullScreen; + } else if (instance) { + instance.$refs.toolbar.find("[data-fancybox-fullscreen]").hide(); + } + }, + + "afterKeydown.fb": function (e, instance, current, keypress, keycode) { + // "F" + if (instance && instance.FullScreen && keycode === 70) { + keypress.preventDefault(); + + instance.FullScreen.toggle(); + } + }, + + "beforeClose.fb": function (e, instance) { + if (instance && instance.FullScreen && instance.$refs.container.hasClass("fancybox-is-fullscreen")) { + FullScreen.exit(); + } + } + }); +})(document, jQuery); +// ========================================================================== +// +// Thumbs +// Displays thumbnails in a grid +// +// ========================================================================== +(function (document, $) { + "use strict"; + + var CLASS = "fancybox-thumbs", + CLASS_ACTIVE = CLASS + "-active"; + + // Make sure there are default values + $.fancybox.defaults = $.extend( + true, { + btnTpl: { + thumbs: '" + }, + thumbs: { + autoStart: false, // Display thumbnails on opening + hideOnClose: true, // Hide thumbnail grid when closing animation starts + parentEl: ".fancybox-container", // Container is injected into this element + axis: "y" // Vertical (y) or horizontal (x) scrolling + } + }, + $.fancybox.defaults + ); + + var FancyThumbs = function (instance) { + this.init(instance); + }; + + $.extend(FancyThumbs.prototype, { + $button: null, + $grid: null, + $list: null, + isVisible: false, + isActive: false, + + init: function (instance) { + var self = this, + group = instance.group, + enabled = 0; + + self.instance = instance; + self.opts = group[instance.currIndex].opts.thumbs; + + instance.Thumbs = self; + + self.$button = instance.$refs.toolbar.find("[data-fancybox-thumbs]"); + + // Enable thumbs if at least two group items have thumbnails + for (var i = 0, len = group.length; i < len; i++) { + if (group[i].thumb) { + enabled++; + } + + if (enabled > 1) { + break; + } + } + + if (enabled > 1 && !!self.opts) { + self.$button.removeAttr("style").on("click", function () { + self.toggle(); + }); + + self.isActive = true; + } else { + self.$button.hide(); + } + }, + + create: function () { + var self = this, + instance = self.instance, + parentEl = self.opts.parentEl, + list = [], + src; + + if (!self.$grid) { + // Create main element + self.$grid = $('
').appendTo( + instance.$refs.container + .find(parentEl) + .addBack() + .filter(parentEl) + ); + + // Add "click" event that performs gallery navigation + self.$grid.on("click", "a", function () { + instance.jumpTo($(this).attr("data-index")); + }); + } + + // Build the list + if (!self.$list) { + self.$list = $('
').appendTo(self.$grid); + } + + $.each(instance.group, function (i, item) { + src = item.thumb; + + if (!src && item.type === "image") { + src = item.src; + } + + list.push( + '" + ); + }); + + self.$list[0].innerHTML = list.join(""); + + if (self.opts.axis === "x") { + // Set fixed width for list element to enable horizontal scrolling + self.$list.width( + parseInt(self.$grid.css("padding-right"), 10) + + instance.group.length * + self.$list + .children() + .eq(0) + .outerWidth(true) + ); + } + }, + + focus: function (duration) { + var self = this, + $list = self.$list, + $grid = self.$grid, + thumb, + thumbPos; + + if (!self.instance.current) { + return; + } + + thumb = $list + .children() + .removeClass(CLASS_ACTIVE) + .filter('[data-index="' + self.instance.current.index + '"]') + .addClass(CLASS_ACTIVE); + + thumbPos = thumb.position(); + + // Check if need to scroll to make current thumb visible + if (self.opts.axis === "y" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) { + $list.stop().animate({ + scrollTop: $list.scrollTop() + thumbPos.top + }, + duration + ); + } else if ( + self.opts.axis === "x" && + (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth())) + ) { + $list + .parent() + .stop() + .animate({ + scrollLeft: thumbPos.left + }, + duration + ); + } + }, + + update: function () { + var that = this; + that.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible); + + if (that.isVisible) { + if (!that.$grid) { + that.create(); + } + + that.instance.trigger("onThumbsShow"); + + that.focus(0); + } else if (that.$grid) { + that.instance.trigger("onThumbsHide"); + } + + // Update content position + that.instance.update(); + }, + + hide: function () { + this.isVisible = false; + this.update(); + }, + + show: function () { + this.isVisible = true; + this.update(); + }, + + toggle: function () { + this.isVisible = !this.isVisible; + this.update(); + } + }); + + $(document).on({ + "onInit.fb": function (e, instance) { + var Thumbs; + + if (instance && !instance.Thumbs) { + Thumbs = new FancyThumbs(instance); + + if (Thumbs.isActive && Thumbs.opts.autoStart === true) { + Thumbs.show(); + } + } + }, + + "beforeShow.fb": function (e, instance, item, firstRun) { + var Thumbs = instance && instance.Thumbs; + + if (Thumbs && Thumbs.isVisible) { + Thumbs.focus(firstRun ? 0 : 250); + } + }, + + "afterKeydown.fb": function (e, instance, current, keypress, keycode) { + var Thumbs = instance && instance.Thumbs; + + // "G" + if (Thumbs && Thumbs.isActive && keycode === 71) { + keypress.preventDefault(); + + Thumbs.toggle(); + } + }, + + "beforeClose.fb": function (e, instance) { + var Thumbs = instance && instance.Thumbs; + + if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) { + Thumbs.$grid.hide(); + } + } + }); +})(document, jQuery); +//// ========================================================================== +// +// Share +// Displays simple form for sharing current url +// +// ========================================================================== +(function (document, $) { + "use strict"; + + $.extend(true, $.fancybox.defaults, { + btnTpl: { + share: '" + }, + share: { + url: function (instance, item) { + return ( + (!instance.currentHash && !(item.type === "inline" || item.type === "html") ? item.origSrc || item.src : false) || window.location + ); + }, + tpl: '
' + + "

{{SHARE}}

" + + "

" + + '' + + '' + + "Facebook" + + "" + + '' + + '' + + "Twitter" + + "" + + '' + + '' + + "Pinterest" + + "" + + "

" + + '

' + + "
" + } + }); + + function escapeHtml(string) { + var entityMap = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", + "/": "/", + "`": "`", + "=": "=" + }; + + return String(string).replace(/[&<>"'`=\/]/g, function (s) { + return entityMap[s]; + }); + } + + $(document).on("click", "[data-fancybox-share]", function () { + var instance = $.fancybox.getInstance(), + current = instance.current || null, + url, + tpl; + + if (!current) { + return; + } + + if ($.type(current.opts.share.url) === "function") { + url = current.opts.share.url.apply(current, [instance, current]); + } + + tpl = current.opts.share.tpl + .replace(/\{\{media\}\}/g, current.type === "image" ? encodeURIComponent(current.src) : "") + .replace(/\{\{url\}\}/g, encodeURIComponent(url)) + .replace(/\{\{url_raw\}\}/g, escapeHtml(url)) + .replace(/\{\{descr\}\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : ""); + + $.fancybox.open({ + src: instance.translate(instance, tpl), + type: "html", + opts: { + touch: false, + animationEffect: false, + afterLoad: function (shareInstance, shareCurrent) { + // Close self if parent instance is closing + instance.$refs.container.one("beforeClose.fb", function () { + shareInstance.close(null, 0); + }); + + // Opening links in a popup window + shareCurrent.$content.find(".fancybox-share__button").click(function () { + window.open(this.href, "Share", "width=550, height=450"); + return false; + }); + }, + mobile: { + autoFocus: false + } + } + }); + }); +})(document, jQuery); +// ========================================================================== +// +// Hash +// Enables linking to each modal +// +// ========================================================================== +(function (window, document, $) { + "use strict"; + + // Simple $.escapeSelector polyfill (for jQuery prior v3) + if (!$.escapeSelector) { + $.escapeSelector = function (sel) { + var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + var fcssescape = function (ch, asCodePoint) { + if (asCodePoint) { + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if (ch === "\0") { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }; + + return (sel + "").replace(rcssescape, fcssescape); + }; + } + + // Get info about gallery name and current index from url + function parseUrl() { + var hash = window.location.hash.substr(1), + rez = hash.split("-"), + index = rez.length > 1 && /^\+?\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1, + gallery = rez.join("-"); + + return { + hash: hash, + /* Index is starting from 1 */ + index: index < 1 ? 1 : index, + gallery: gallery + }; + } + + // Trigger click evnt on links to open new fancyBox instance + function triggerFromUrl(url) { + if (url.gallery !== "") { + // If we can find element matching 'data-fancybox' atribute, + // then triggering click event should start fancyBox + $("[data-fancybox='" + $.escapeSelector(url.gallery) + "']") + .eq(url.index - 1) + .focus() + .trigger("click.fb-start"); + } + } + + // Get gallery name from current instance + function getGalleryID(instance) { + var opts, ret; + + if (!instance) { + return false; + } + + opts = instance.current ? instance.current.opts : instance.opts; + ret = opts.hash || (opts.$orig ? opts.$orig.data("fancybox") || opts.$orig.data("fancybox-trigger") : ""); + + return ret === "" ? false : ret; + } + + // Start when DOM becomes ready + $(function () { + // Check if user has disabled this module + if ($.fancybox.defaults.hash === false) { + return; + } + + // Update hash when opening/closing fancyBox + $(document).on({ + "onInit.fb": function (e, instance) { + var url, gallery; + + if (instance.group[instance.currIndex].opts.hash === false) { + return; + } + + url = parseUrl(); + gallery = getGalleryID(instance); + + // Make sure gallery start index matches index from hash + if (gallery && url.gallery && gallery == url.gallery) { + instance.currIndex = url.index - 1; + } + }, + + "beforeShow.fb": function (e, instance, current, firstRun) { + var gallery; + + if (!current || current.opts.hash === false) { + return; + } + + // Check if need to update window hash + gallery = getGalleryID(instance); + + if (!gallery) { + return; + } + + // Variable containing last hash value set by fancyBox + // It will be used to determine if fancyBox needs to close after hash change is detected + instance.currentHash = gallery + (instance.group.length > 1 ? "-" + (current.index + 1) : ""); + + // If current hash is the same (this instance most likely is opened by hashchange), then do nothing + if (window.location.hash === "#" + instance.currentHash) { + return; + } + + if (firstRun && !instance.origHash) { + instance.origHash = window.location.hash; + } + + if (instance.hashTimer) { + clearTimeout(instance.hashTimer); + } + + // Update hash + instance.hashTimer = setTimeout(function () { + if ("replaceState" in window.history) { + window.history[firstRun ? "pushState" : "replaceState"]({}, + document.title, + window.location.pathname + window.location.search + "#" + instance.currentHash + ); + + if (firstRun) { + instance.hasCreatedHistory = true; + } + } else { + window.location.hash = instance.currentHash; + } + + instance.hashTimer = null; + }, 300); + }, + + "beforeClose.fb": function (e, instance, current) { + if (!current || current.opts.hash === false) { + return; + } + + clearTimeout(instance.hashTimer); + + // Goto previous history entry + if (instance.currentHash && instance.hasCreatedHistory) { + window.history.back(); + } else if (instance.currentHash) { + if ("replaceState" in window.history) { + window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || "")); + } else { + window.location.hash = instance.origHash; + } + } + + instance.currentHash = null; + } + }); + + // Check if need to start/close after url has changed + $(window).on("hashchange.fb", function () { + var url = parseUrl(), + fb = null; + + // Find last fancyBox instance that has "hash" + $.each( + $(".fancybox-container") + .get() + .reverse(), + function (index, value) { + var tmp = $(value).data("FancyBox"); + + if (tmp && tmp.currentHash) { + fb = tmp; + return false; + } + } + ); + + if (fb) { + // Now, compare hash values + if (fb.currentHash !== url.gallery + "-" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) { + fb.currentHash = null; + + fb.close(); + } + } else if (url.gallery !== "") { + triggerFromUrl(url); + } + }); + + // Check current hash and trigger click event on matching element to start fancyBox, if needed + setTimeout(function () { + if (!$.fancybox.getInstance()) { + triggerFromUrl(parseUrl()); + } + }, 50); + }); +})(window, document, jQuery); +// ========================================================================== +// +// Wheel +// Basic mouse weheel support for gallery navigation +// +// ========================================================================== +(function (document, $) { + "use strict"; + + var prevTime = new Date().getTime(); + + $(document).on({ + "onInit.fb": function (e, instance, current) { + instance.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function (e) { + var current = instance.current, + currTime = new Date().getTime(); + + if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === "auto" && current.type !== "image")) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + + if (current.$slide.hasClass("fancybox-animated")) { + return; + } + + e = e.originalEvent || e; + + if (currTime - prevTime < 250) { + return; + } + + prevTime = currTime; + + instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? "next" : "previous"](); + }); + } + }); +})(document, jQuery); \ No newline at end of file diff --git a/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.css b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.css new file mode 100644 index 0000000..7cc60b2 --- /dev/null +++ b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.css @@ -0,0 +1 @@ +body.compensate-for-scrollbar{overflow:hidden}.fancybox-active{height:auto}.fancybox-is-hidden{left:-9999px;margin:0;position:absolute!important;top:-9999px;visibility:hidden}.fancybox-container{-webkit-backface-visibility:hidden;height:100%;left:0;outline:none;position:fixed;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:manipulation;touch-action:manipulation;transform:translateZ(0);width:100%;z-index:99992}.fancybox-container *{box-sizing:border-box}.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-stage{bottom:0;left:0;position:absolute;right:0;top:0}.fancybox-outer{-webkit-overflow-scrolling:touch;overflow-y:auto}.fancybox-bg{background:#1e1e1e;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.9;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption,.fancybox-infobar,.fancybox-navigation .fancybox-button,.fancybox-toolbar{direction:ltr;opacity:0;position:absolute;transition:opacity .25s ease,visibility 0s ease .25s;visibility:hidden;z-index:99997}.fancybox-show-caption .fancybox-caption,.fancybox-show-infobar .fancybox-infobar,.fancybox-show-nav .fancybox-navigation .fancybox-button,.fancybox-show-toolbar .fancybox-toolbar{opacity:1;transition:opacity .25s ease 0s,visibility 0s ease 0s;visibility:visible}.fancybox-infobar{color:#ccc;font-size:13px;-webkit-font-smoothing:subpixel-antialiased;height:44px;left:0;line-height:44px;min-width:44px;mix-blend-mode:difference;padding:0 10px;pointer-events:none;top:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fancybox-toolbar{right:0;top:0}.fancybox-stage{direction:ltr;overflow:visible;transform:translateZ(0);z-index:99994}.fancybox-is-open .fancybox-stage{overflow:hidden}.fancybox-slide{-webkit-backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:absolute;text-align:center;top:0;transition-property:transform,opacity;white-space:normal;width:100%;z-index:99994}.fancybox-slide:before{content:"";display:inline-block;font-size:0;height:100%;vertical-align:middle;width:0}.fancybox-is-sliding .fancybox-slide,.fancybox-slide--current,.fancybox-slide--next,.fancybox-slide--previous{display:block}.fancybox-slide--image{overflow:hidden;padding:44px 0}.fancybox-slide--image:before{display:none}.fancybox-slide--html{padding:6px}.fancybox-content{background:#fff;display:inline-block;margin:0;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:relative;text-align:left;vertical-align:middle}.fancybox-slide--image .fancybox-content{animation-timing-function:cubic-bezier(.5,0,.14,1);-webkit-backface-visibility:hidden;background:transparent;background-repeat:no-repeat;background-size:100% 100%;left:0;max-width:none;overflow:visible;padding:0;position:absolute;top:0;transform-origin:top left;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:99995}.fancybox-can-zoomOut .fancybox-content{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-content{cursor:zoom-in}.fancybox-can-pan .fancybox-content,.fancybox-can-swipe .fancybox-content{cursor:grab}.fancybox-is-grabbing .fancybox-content{cursor:grabbing}.fancybox-container [data-selectable=true]{cursor:text}.fancybox-image,.fancybox-spaceball{background:transparent;border:0;height:100%;left:0;margin:0;max-height:none;max-width:none;padding:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.fancybox-spaceball{z-index:1}.fancybox-slide--iframe .fancybox-content,.fancybox-slide--map .fancybox-content,.fancybox-slide--pdf .fancybox-content,.fancybox-slide--video .fancybox-content{height:100%;overflow:visible;padding:0;width:100%}.fancybox-slide--video .fancybox-content{background:#000}.fancybox-slide--map .fancybox-content{background:#e5e3df}.fancybox-slide--iframe .fancybox-content{background:#fff}.fancybox-iframe,.fancybox-video{background:transparent;border:0;display:block;height:100%;margin:0;overflow:hidden;padding:0;width:100%}.fancybox-iframe{left:0;position:absolute;top:0}.fancybox-error{background:#fff;cursor:default;max-width:400px;padding:40px;width:100%}.fancybox-error p{color:#444;font-size:16px;line-height:20px;margin:0;padding:0}.fancybox-button{background:rgba(30,30,30,.6);border:0;border-radius:0;box-shadow:none;cursor:pointer;display:inline-block;height:44px;margin:0;padding:10px;position:relative;transition:color .2s;vertical-align:top;visibility:inherit;width:44px}.fancybox-button,.fancybox-button:link,.fancybox-button:visited{color:#ccc}.fancybox-button:hover{color:#fff}.fancybox-button:focus{outline:none}.fancybox-button.fancybox-focus{outline:1px dotted}.fancybox-button[disabled],.fancybox-button[disabled]:hover{color:#888;cursor:default;outline:none}.fancybox-button div{height:100%}.fancybox-button svg{display:block;height:100%;overflow:visible;position:relative;width:100%}.fancybox-button svg path{fill:currentColor;stroke-width:0}.fancybox-button--fsenter svg:nth-child(2),.fancybox-button--fsexit svg:first-child,.fancybox-button--pause svg:first-child,.fancybox-button--play svg:nth-child(2){display:none}.fancybox-progress{background:#ff5268;height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;z-index:99998}.fancybox-close-small{background:transparent;border:0;border-radius:0;color:#ccc;cursor:pointer;opacity:.8;padding:8px;position:absolute;right:-12px;top:-44px;z-index:401}.fancybox-close-small:hover{color:#fff;opacity:1}.fancybox-slide--html .fancybox-close-small{color:currentColor;padding:10px;right:0;top:0}.fancybox-slide--image.fancybox-is-scaling .fancybox-content{overflow:hidden}.fancybox-is-scaling .fancybox-close-small,.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small{display:none}.fancybox-navigation .fancybox-button{background-clip:content-box;height:100px;opacity:0;position:absolute;top:calc(50% - 50px);width:70px}.fancybox-navigation .fancybox-button div{padding:7px}.fancybox-navigation .fancybox-button--arrow_left{left:0;left:env(safe-area-inset-left);padding:31px 26px 31px 6px}.fancybox-navigation .fancybox-button--arrow_right{padding:31px 6px 31px 26px;right:0;right:env(safe-area-inset-right)}.fancybox-caption{background:linear-gradient(0deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.3) 50%,rgba(0,0,0,.15) 65%,rgba(0,0,0,.075) 75.5%,rgba(0,0,0,.037) 82.85%,rgba(0,0,0,.019) 88%,transparent);bottom:0;color:#eee;font-size:14px;font-weight:400;left:0;line-height:1.5;padding:75px 44px 25px;pointer-events:none;right:0;text-align:center;z-index:99996}@supports (padding:max(0px)){.fancybox-caption{padding:75px max(44px,env(safe-area-inset-right)) max(25px,env(safe-area-inset-bottom)) max(44px,env(safe-area-inset-left))}}.fancybox-caption--separate{margin-top:-50px}.fancybox-caption__body{max-height:50vh;overflow:auto;pointer-events:all}.fancybox-caption a,.fancybox-caption a:link,.fancybox-caption a:visited{color:#ccc;text-decoration:none}.fancybox-caption a:hover{color:#fff;text-decoration:underline}.fancybox-loading{animation:a 1s linear infinite;background:transparent;border:4px solid #888;border-bottom-color:#fff;border-radius:50%;height:50px;left:50%;margin:-25px 0 0 -25px;opacity:.7;padding:0;position:absolute;top:50%;width:50px;z-index:99999}@keyframes a{to{transform:rotate(1turn)}}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{opacity:0;transform:translate3d(-100%,0,0)}.fancybox-fx-slide.fancybox-slide--next{opacity:0;transform:translate3d(100%,0,0)}.fancybox-fx-slide.fancybox-slide--current{opacity:1;transform:translateZ(0)}.fancybox-fx-fade.fancybox-slide--next,.fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{opacity:0;transform:scale3d(1.5,1.5,1.5)}.fancybox-fx-zoom-in-out.fancybox-slide--next{opacity:0;transform:scale3d(.5,.5,.5)}.fancybox-fx-zoom-in-out.fancybox-slide--current{opacity:1;transform:scaleX(1)}.fancybox-fx-rotate.fancybox-slide--previous{opacity:0;transform:rotate(-1turn)}.fancybox-fx-rotate.fancybox-slide--next{opacity:0;transform:rotate(1turn)}.fancybox-fx-rotate.fancybox-slide--current{opacity:1;transform:rotate(0deg)}.fancybox-fx-circular.fancybox-slide--previous{opacity:0;transform:scale3d(0,0,0) translate3d(-100%,0,0)}.fancybox-fx-circular.fancybox-slide--next{opacity:0;transform:scale3d(0,0,0) translate3d(100%,0,0)}.fancybox-fx-circular.fancybox-slide--current{opacity:1;transform:scaleX(1) translateZ(0)}.fancybox-fx-tube.fancybox-slide--previous{transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{transform:translateZ(0) scale(1)}@media (max-height:576px){.fancybox-slide{padding-left:6px;padding-right:6px}.fancybox-slide--image{padding:6px 0}.fancybox-close-small{right:-6px}.fancybox-slide--image .fancybox-close-small{background:#4e4e4e;color:#f2f4f6;height:36px;opacity:1;padding:6px;right:0;top:0;width:36px}.fancybox-caption{padding-left:12px;padding-right:12px}@supports (padding:max(0px)){.fancybox-caption{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}}.fancybox-share{background:#f4f4f4;border-radius:3px;max-width:90%;padding:30px;text-align:center}.fancybox-share h1{color:#222;font-size:35px;font-weight:700;margin:0 0 20px}.fancybox-share p{margin:0;padding:0}.fancybox-share__button{border:0;border-radius:3px;display:inline-block;font-size:14px;font-weight:700;line-height:40px;margin:0 5px 10px;min-width:130px;padding:0 15px;text-decoration:none;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.fancybox-share__button:link,.fancybox-share__button:visited{color:#fff}.fancybox-share__button:hover{text-decoration:none}.fancybox-share__button--fb{background:#3b5998}.fancybox-share__button--fb:hover{background:#344e86}.fancybox-share__button--pt{background:#bd081d}.fancybox-share__button--pt:hover{background:#aa0719}.fancybox-share__button--tw{background:#1da1f2}.fancybox-share__button--tw:hover{background:#0d95e8}.fancybox-share__button svg{height:25px;margin-right:7px;position:relative;top:-1px;vertical-align:middle;width:25px}.fancybox-share__button svg path{fill:#fff}.fancybox-share__input{background:transparent;border:0;border-bottom:1px solid #d7d7d7;border-radius:0;color:#5d5b5b;font-size:14px;margin:10px 0 0;outline:none;padding:10px 15px;width:100%}.fancybox-thumbs{background:#ddd;bottom:0;display:none;margin:0;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;padding:2px 2px 4px;position:absolute;right:0;-webkit-tap-highlight-color:rgba(0,0,0,0);top:0;width:212px;z-index:99995}.fancybox-thumbs-x{overflow-x:auto;overflow-y:hidden}.fancybox-show-thumbs .fancybox-thumbs{display:block}.fancybox-show-thumbs .fancybox-inner{right:212px}.fancybox-thumbs__list{font-size:0;height:100%;list-style:none;margin:0;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;position:relative;white-space:nowrap;width:100%}.fancybox-thumbs-x .fancybox-thumbs__list{overflow:hidden}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar{width:7px}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track{background:#fff;border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}.fancybox-thumbs__list a{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:rgba(0,0,0,.1);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;float:left;height:75px;margin:2px;max-height:calc(100% - 8px);max-width:calc(50% - 4px);outline:none;overflow:hidden;padding:0;position:relative;-webkit-tap-highlight-color:transparent;width:100px}.fancybox-thumbs__list a:before{border:6px solid #ff5268;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.25,.46,.45,.94);z-index:99991}.fancybox-thumbs__list a:focus:before{opacity:.5}.fancybox-thumbs__list a.fancybox-thumbs-active:before{opacity:1}@media (max-width:576px){.fancybox-thumbs{width:110px}.fancybox-show-thumbs .fancybox-inner{right:110px}.fancybox-thumbs__list a{max-width:calc(100% - 10px)}} \ No newline at end of file diff --git a/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.js b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.js new file mode 100644 index 0000000..d5d10f6 --- /dev/null +++ b/public/themes/custom/ubccs/js/vendor/fancybox/jquery.fancybox.min.js @@ -0,0 +1,13 @@ +// ================================================== +// fancyBox v3.5.7 +// +// Licensed GPLv3 for open source use +// or fancyBox Commercial License for commercial use +// +// http://fancyapps.com/fancybox/ +// Copyright 2019 fancyApps +// +// ================================================== +!function(t,e,n,o){"use strict";function i(t,e){var o,i,a,s=[],r=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=e||{},t&&t.data&&(e=h(t.data.options,e)),o=e.$target||n(t.currentTarget).trigger("blur"),(a=n.fancybox.getInstance())&&a.$trigger&&a.$trigger.is(o)||(e.selector?s=n(e.selector):(i=o.attr("data-fancybox")||"",i?(s=t.data?t.data.items:[],s=s.length?s.filter('[data-fancybox="'+i+'"]'):n('[data-fancybox="'+i+'"]')):s=[o]),r=n(s).index(o),r<0&&(r=0),a=n.fancybox.open(s,e,r),a.$trigger=o))}if(t.console=t.console||{info:function(t){}},n){if(n.fn.fancybox)return void console.info("fancyBox already initialized");var a={closeExisting:!1,loop:!1,gutter:50,keyboard:!0,preventCaptionOverlap:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","slideShow","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'',preload:!0,css:{},attr:{scrolling:"auto"}},video:{tpl:'',format:"",autoStart:!0},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'',spinnerTpl:'
',errorTpl:'

{{ERROR}}

',btnTpl:{download:'',zoom:'',close:'',arrowLeft:'',arrowRight:'',smallBtn:''},parentEl:"body",hideScrollbar:!0,autoFocus:!0,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:3e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{preventCaptionOverlap:!1,idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded.
Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schließen",NEXT:"Weiter",PREV:"Zurück",ERROR:"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Vergrößern"}}},s=n(t),r=n(e),c=0,l=function(t){return t&&t.hasOwnProperty&&t instanceof n},d=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),u=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),f=function(){var t,n=e.createElement("fakeelement"),o={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in o)if(void 0!==n.style[t])return o[t];return"transitionend"}(),p=function(t){return t&&t.length&&t[0].offsetHeight},h=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,function(t,e){n.isArray(e)&&(o[t]=e)}),o},g=function(t){var o,i;return!(!t||t.ownerDocument!==e)&&(n(".fancybox-container").css("pointer-events","none"),o={x:t.getBoundingClientRect().left+t.offsetWidth/2,y:t.getBoundingClientRect().top+t.offsetHeight/2},i=e.elementFromPoint(o.x,o.y)===t,n(".fancybox-container").css("pointer-events",""),i)},b=function(t,e,o){var i=this;i.opts=h({index:o},n.fancybox.defaults),n.isPlainObject(e)&&(i.opts=h(i.opts,e)),n.fancybox.isMobile&&(i.opts=h(i.opts,i.opts.mobile)),i.id=i.opts.id||++c,i.currIndex=parseInt(i.opts.index,10)||0,i.prevIndex=null,i.prevPos=null,i.currPos=0,i.firstRun=!0,i.group=[],i.slides={},i.addContent(t),i.group.length&&i.init()};n.extend(b.prototype,{init:function(){var o,i,a=this,s=a.group[a.currIndex],r=s.opts;r.closeExisting&&n.fancybox.close(!0),n("body").addClass("fancybox-active"),!n.fancybox.getInstance()&&!1!==r.hideScrollbar&&!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(n("head").append('"),n("body").addClass("compensate-for-scrollbar")),i="",n.each(r.buttons,function(t,e){i+=r.btnTpl[e]||""}),o=n(a.translate(a,r.baseTpl.replace("{{buttons}}",i).replace("{{arrows}}",r.btnTpl.arrowLeft+r.btnTpl.arrowRight))).attr("id","fancybox-container-"+a.id).addClass(r.baseClass).data("FancyBox",a).appendTo(r.parentEl),a.$refs={container:o},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach(function(t){a.$refs[t]=o.find(".fancybox-"+t)}),a.trigger("onInit"),a.activate(),a.jumpTo(a.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang]||t.opts.i18n.en;return e.replace(/\{\{(\w+)\}\}/g,function(t,e){return void 0===n[e]?t:n[e]})},addContent:function(t){var e,o=this,i=n.makeArray(t);n.each(i,function(t,e){var i,a,s,r,c,l={},d={};n.isPlainObject(e)?(l=e,d=e.opts||e):"object"===n.type(e)&&n(e).length?(i=n(e),d=i.data()||{},d=n.extend(!0,{},d,d.options),d.$orig=i,l.src=o.opts.src||d.src||i.attr("href"),l.type||l.src||(l.type="inline",l.src=e)):l={type:"html",src:e+""},l.opts=n.extend(!0,{},o.opts,d),n.isArray(d.buttons)&&(l.opts.buttons=d.buttons),n.fancybox.isMobile&&l.opts.mobile&&(l.opts=h(l.opts,l.opts.mobile)),a=l.type||l.opts.type,r=l.src||"",!a&&r&&((s=r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(a="video",l.opts.video.format||(l.opts.video.format="video/"+("ogv"===s[1]?"ogg":s[1]))):r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?a="image":r.match(/\.(pdf)((\?|#).*)?$/i)?(a="iframe",l=n.extend(!0,l,{contentType:"pdf",opts:{iframe:{preload:!1}}})):"#"===r.charAt(0)&&(a="inline")),a?l.type=a:o.trigger("objectNeedsType",l),l.contentType||(l.contentType=n.inArray(l.type,["html","inline","ajax"])>-1?"html":l.type),l.index=o.group.length,"auto"==l.opts.smallBtn&&(l.opts.smallBtn=n.inArray(l.type,["html","inline","ajax"])>-1),"auto"===l.opts.toolbar&&(l.opts.toolbar=!l.opts.smallBtn),l.$thumb=l.opts.$thumb||null,l.opts.$trigger&&l.index===o.opts.index&&(l.$thumb=l.opts.$trigger.find("img:first"),l.$thumb.length&&(l.opts.$orig=l.opts.$trigger)),l.$thumb&&l.$thumb.length||!l.opts.$orig||(l.$thumb=l.opts.$orig.find("img:first")),l.$thumb&&!l.$thumb.length&&(l.$thumb=null),l.thumb=l.opts.thumb||(l.$thumb?l.$thumb[0].src:null),"function"===n.type(l.opts.caption)&&(l.opts.caption=l.opts.caption.apply(e,[o,l])),"function"===n.type(o.opts.caption)&&(l.opts.caption=o.opts.caption.apply(e,[o,l])),l.opts.caption instanceof n||(l.opts.caption=void 0===l.opts.caption?"":l.opts.caption+""),"ajax"===l.type&&(c=r.split(/\s+/,2),c.length>1&&(l.src=c.shift(),l.opts.filter=c.shift())),l.opts.modal&&(l.opts=n.extend(!0,l.opts,{trapFocus:!0,infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),o.group.push(l)}),Object.keys(o.slides).length&&(o.updateControls(),(e=o.Thumbs)&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var e=this;e.removeEvents(),e.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),e.close(t)}).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",function(t){t.stopPropagation(),t.preventDefault(),e.previous()}).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),e.next()}).on("click.fb","[data-fancybox-zoom]",function(t){e[e.isScaledDown()?"scaleToActual":"scaleToFit"]()}),s.on("orientationchange.fb resize.fb",function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?(e.requestId&&u(e.requestId),e.requestId=d(function(){e.update(t)})):(e.current&&"iframe"===e.current.type&&e.$refs.stage.hide(),setTimeout(function(){e.$refs.stage.show(),e.update(t)},n.fancybox.isMobile?600:250))}),r.on("keydown.fb",function(t){var o=n.fancybox?n.fancybox.getInstance():null,i=o.current,a=t.keyCode||t.which;if(9==a)return void(i.opts.trapFocus&&e.focus(t));if(!(!i.opts.keyboard||t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input,textarea,video,audio,select")))return 8===a||27===a?(t.preventDefault(),void e.close(t)):37===a||38===a?(t.preventDefault(),void e.previous()):39===a||40===a?(t.preventDefault(),void e.next()):void e.trigger("afterKeydown",t,a)}),e.group[e.currIndex].opts.idleTime&&(e.idleSecondsCounter=0,r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",function(t){e.idleSecondsCounter=0,e.isIdle&&e.showControls(),e.isIdle=!1}),e.idleInterval=t.setInterval(function(){++e.idleSecondsCounter>=e.group[e.currIndex].opts.idleTime&&!e.isDragging&&(e.isIdle=!0,e.idleSecondsCounter=0,e.hideControls())},1e3))},removeEvents:function(){var e=this;s.off("orientationchange.fb resize.fb"),r.off("keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var o,i,a,s,r,c,l,d,u,f=this,h=f.group.length;if(!(f.isDragging||f.isClosing||f.isAnimating&&f.firstRun)){if(t=parseInt(t,10),!(a=f.current?f.current.opts.loop:f.opts.loop)&&(t<0||t>=h))return!1;if(o=f.firstRun=!Object.keys(f.slides).length,r=f.current,f.prevIndex=f.currIndex,f.prevPos=f.currPos,s=f.createSlide(t),h>1&&((a||s.index0)&&f.createSlide(t-1)),f.current=s,f.currIndex=s.index,f.currPos=s.pos,f.trigger("beforeShow",o),f.updateControls(),s.forcedDuration=void 0,n.isNumeric(e)?s.forcedDuration=e:e=s.opts[o?"animationDuration":"transitionDuration"],e=parseInt(e,10),i=f.isMoved(s),s.$slide.addClass("fancybox-slide--current"),o)return s.opts.animationEffect&&e&&f.$refs.container.css("transition-duration",e+"ms"),f.$refs.container.addClass("fancybox-is-open").trigger("focus"),f.loadSlide(s),void f.preload("image");c=n.fancybox.getTranslate(r.$slide),l=n.fancybox.getTranslate(f.$refs.stage),n.each(f.slides,function(t,e){n.fancybox.stop(e.$slide,!0)}),r.pos!==s.pos&&(r.isComplete=!1),r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"),i?(u=c.left-(r.pos*c.width+r.pos*r.opts.gutter),n.each(f.slides,function(t,o){o.$slide.removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")});var i=o.pos*c.width+o.pos*o.opts.gutter;n.fancybox.setTranslate(o.$slide,{top:0,left:i-l.left+u}),o.pos!==s.pos&&o.$slide.addClass("fancybox-slide--"+(o.pos>s.pos?"next":"previous")),p(o.$slide),n.fancybox.animate(o.$slide,{top:0,left:(o.pos-s.pos)*c.width+(o.pos-s.pos)*o.opts.gutter},e,function(){o.$slide.css({transform:"",opacity:""}).removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===f.currPos&&f.complete()})})):e&&s.opts.transitionEffect&&(d="fancybox-animated fancybox-fx-"+s.opts.transitionEffect,r.$slide.addClass("fancybox-slide--"+(r.pos>s.pos?"next":"previous")),n.fancybox.animate(r.$slide,d,e,function(){r.$slide.removeClass(d).removeClass("fancybox-slide--next fancybox-slide--previous")},!1)),s.isLoaded?f.revealContent(s):f.loadSlide(s),f.preload("image")}},createSlide:function(t){var e,o,i=this;return o=t%i.group.length,o=o<0?i.group.length+o:o,!i.slides[t]&&i.group[o]&&(e=n('
').appendTo(i.$refs.stage),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isLoaded:!1}),i.updateSlide(i.slides[t])),i.slides[t]},scaleToActual:function(t,e,o){var i,a,s,r,c,l=this,d=l.current,u=d.$content,f=n.fancybox.getTranslate(d.$slide).width,p=n.fancybox.getTranslate(d.$slide).height,h=d.width,g=d.height;l.isAnimating||l.isMoved()||!u||"image"!=d.type||!d.isLoaded||d.hasError||(l.isAnimating=!0,n.fancybox.stop(u),t=void 0===t?.5*f:t,e=void 0===e?.5*p:e,i=n.fancybox.getTranslate(u),i.top-=n.fancybox.getTranslate(d.$slide).top,i.left-=n.fancybox.getTranslate(d.$slide).left,r=h/i.width,c=g/i.height,a=.5*f-.5*h,s=.5*p-.5*g,h>f&&(a=i.left*r-(t*r-t),a>0&&(a=0),ap&&(s=i.top*c-(e*c-e),s>0&&(s=0),se-.5&&(l=e),d>o-.5&&(d=o),"image"===t.type?(u.top=Math.floor(.5*(o-d))+parseFloat(c.css("paddingTop")),u.left=Math.floor(.5*(e-l))+parseFloat(c.css("paddingLeft"))):"video"===t.contentType&&(a=t.opts.width&&t.opts.height?l/d:t.opts.ratio||16/9,d>l/a?d=l/a:l>d*a&&(l=d*a)),u.width=l,u.height=d,u)},update:function(t){var e=this;n.each(e.slides,function(n,o){e.updateSlide(o,t)})},updateSlide:function(t,e){var o=this,i=t&&t.$content,a=t.width||t.opts.width,s=t.height||t.opts.height,r=t.$slide;o.adjustCaption(t),i&&(a||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(i),n.fancybox.setTranslate(i,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),o.adjustLayout(t),r.length&&(r.trigger("refresh"),t.pos===o.currPos&&o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar",r.get(0).scrollHeight>r.get(0).clientHeight)),o.trigger("onUpdate",t,e)},centerSlide:function(t){var e=this,o=e.current,i=o.$slide;!e.isClosing&&o&&(i.siblings().css({transform:"",opacity:""}),i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"),n.fancybox.animate(i,{top:0,left:0,opacity:1},void 0===t?0:t,function(){i.css({transform:"",opacity:""}),o.isComplete||e.complete()},!1))},isMoved:function(t){var e,o,i=t||this.current;return!!i&&(o=n.fancybox.getTranslate(this.$refs.stage),e=n.fancybox.getTranslate(i.$slide),!i.$slide.hasClass("fancybox-animated")&&(Math.abs(e.top-o.top)>.5||Math.abs(e.left-o.left)>.5))},updateCursor:function(t,e){var o,i,a=this,s=a.current,r=a.$refs.container;s&&!a.isClosing&&a.Guestures&&(r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"),o=a.canPan(t,e),i=!!o||a.isZoomable(),r.toggleClass("fancybox-is-zoomable",i),n("[data-fancybox-zoom]").prop("disabled",!i),o?r.addClass("fancybox-can-pan"):i&&("zoom"===s.opts.clickContent||n.isFunction(s.opts.clickContent)&&"zoom"==s.opts.clickContent(s))?r.addClass("fancybox-can-zoomIn"):s.opts.touch&&(s.opts.touch.vertical||a.group.length>1)&&"video"!==s.contentType&&r.addClass("fancybox-can-swipe"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if((t=e.getFitPos(n))&&(n.width>t.width||n.height>t.height))return!0}return!1},isScaledDown:function(t,e){var o=this,i=!1,a=o.current,s=a.$content;return void 0!==t&&void 0!==e?i=t1.5||Math.abs(a.height-s.height)>1.5)),s},loadSlide:function(t){var e,o,i,a=this;if(!t.isLoading&&!t.isLoaded){if(t.isLoading=!0,!1===a.trigger("beforeLoad",t))return t.isLoading=!1,!1;switch(e=t.type,o=t.$slide,o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":a.setImage(t);break;case"iframe":a.setIframe(t);break;case"html":a.setContent(t,t.src||t.content);break;case"video":a.setContent(t,t.opts.video.tpl.replace(/\{\{src\}\}/gi,t.src).replace("{{format}}",t.opts.videoFormat||t.opts.video.format||"").replace("{{poster}}",t.thumb||""));break;case"inline":n(t.src).length?a.setContent(t,n(t.src)):a.setError(t);break;case"ajax":a.showLoading(t),i=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&a.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&a.setError(t)}})),o.one("onReset",function(){i.abort()});break;default:a.setError(t)}return!0}},setImage:function(t){var o,i=this;setTimeout(function(){var e=t.$image;i.isClosing||!t.isLoading||e&&e.length&&e[0].complete||t.hasError||i.showLoading(t)},50),i.checkSrcset(t),t.$content=n('
').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")),!1!==t.opts.preload&&t.opts.width&&t.opts.height&&t.thumb&&(t.width=t.opts.width,t.height=t.opts.height,o=e.createElement("img"),o.onerror=function(){n(this).remove(),t.$ghost=null},o.onload=function(){i.afterLoad(t)},t.$ghost=n(o).addClass("fancybox-image").appendTo(t.$content).attr("src",t.thumb)),i.setBigImage(t)},checkSrcset:function(e){var n,o,i,a,s=e.opts.srcset||e.opts.image.srcset;if(s){i=t.devicePixelRatio||1,a=t.innerWidth*i,o=s.split(",").map(function(t){var e={};return t.trim().split(/\s+/).forEach(function(t,n){var o=parseInt(t.substring(0,t.length-1),10);if(0===n)return e.url=t;o&&(e.value=o,e.postfix=t[t.length-1])}),e}),o.sort(function(t,e){return t.value-e.value});for(var r=0;r=a||"x"===c.postfix&&c.value>=i){n=c;break}}!n&&o.length&&(n=o[o.length-1]),n&&(e.src=n.url,e.width&&e.height&&"w"==n.postfix&&(e.height=e.width/e.height*n.value,e.width=n.value),e.opts.srcset=s)}},setBigImage:function(t){var o=this,i=e.createElement("img"),a=n(i);t.$image=a.one("error",function(){o.setError(t)}).one("load",function(){var e;t.$ghost||(o.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),o.afterLoad(t)),o.isClosing||(t.opts.srcset&&(e=t.opts.sizes,e&&"auto"!==e||(e=(t.width/t.height>1&&s.width()/s.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),a.attr("sizes",e).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout(function(){t.$ghost&&!o.isClosing&&t.$ghost.hide()},Math.min(300,Math.max(1e3,t.height/1600))),o.hideLoading(t))}).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(i.complete||"complete"==i.readyState)&&a.naturalWidth&&a.naturalHeight?a.trigger("load"):i.error&&a.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),i=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),i>0&&(t.width=Math.floor(i*e/n),t.height=i)},setIframe:function(t){var e,o=this,i=t.opts.iframe,a=t.$slide;t.$content=n('
').css(i.css).appendTo(a),a.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(i.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(i.attr).appendTo(t.$content),i.preload?(o.showLoading(t),e.on("load.fb error.fb",function(e){this.isReady=1,t.$slide.trigger("refresh"),o.afterLoad(t)}),a.on("refresh.fb",function(){var n,o,s=t.$content,r=i.css.width,c=i.css.height;if(1===e[0].isReady){try{n=e.contents(),o=n.find("body")}catch(t){}o&&o.length&&o.children().length&&(a.css("overflow","visible"),s.css({width:"100%","max-width":"100%",height:"9999px"}),void 0===r&&(r=Math.ceil(Math.max(o[0].clientWidth,o.outerWidth(!0)))),s.css("width",r||"").css("max-width",""),void 0===c&&(c=Math.ceil(Math.max(o[0].clientHeight,o.outerHeight(!0)))),s.css("height",c||""),a.css("overflow","auto")),s.removeClass("fancybox-is-hidden")}})):o.afterLoad(t),e.attr("src",t.src),a.one("onReset",function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1,t.isRevealed=!1})},setContent:function(t,e){var o=this;o.isClosing||(o.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),l(e)&&e.parent().length?((e.hasClass("fancybox-content")||e.parent().hasClass("fancybox-content"))&&e.parents(".fancybox-slide").trigger("onReset"),t.$placeholder=n("
").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("
").append(n.trim(e)).contents()),t.opts.filter&&(e=n("
").html(e).find(t.opts.filter))),t.$slide.one("onReset",function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1,t.isRevealed=!1)}),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("
"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(),t.$content.siblings().hide(),t.$content.length||(t.$content=t.$slide.wrapInner("
").children().first()),t.$content.addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),o.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;(t=t||e.current)&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))},hideLoading:function(t){var e=this;(t=t||e.current)&&t.$spinner&&(t.$spinner.stop().remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",function(t){return 2==t.button&&t.preventDefault(),!0}),"image"===t.type&&n('
').appendTo(t.$content)),e.adjustCaption(t),e.adjustLayout(t),t.pos===e.currPos&&e.updateCursor(),e.revealContent(t))},adjustCaption:function(t){var e,n=this,o=t||n.current,i=o.opts.caption,a=o.opts.preventCaptionOverlap,s=n.$refs.caption,r=!1;s.toggleClass("fancybox-caption--separate",a),a&&i&&i.length&&(o.pos!==n.currPos?(e=s.clone().appendTo(s.parent()),e.children().eq(0).empty().html(i),r=e.outerHeight(!0),e.empty().remove()):n.$caption&&(r=n.$caption.outerHeight(!0)),o.$slide.css("padding-bottom",r||""))},adjustLayout:function(t){var e,n,o,i,a=this,s=t||a.current;s.isLoaded&&!0!==s.opts.disableLayoutFix&&(s.$content.css("margin-bottom",""),s.$content.outerHeight()>s.$slide.height()+.5&&(o=s.$slide[0].style["padding-bottom"],i=s.$slide.css("padding-bottom"),parseFloat(i)>0&&(e=s.$slide[0].scrollHeight,s.$slide.css("padding-bottom",0),Math.abs(e-s.$slide[0].scrollHeight)<1&&(n=i),s.$slide.css("padding-bottom",o))),s.$content.css("margin-bottom",n))},revealContent:function(t){var e,o,i,a,s=this,r=t.$slide,c=!1,l=!1,d=s.isMoved(t),u=t.isRevealed;return t.isRevealed=!0,e=t.opts[s.firstRun?"animationEffect":"transitionEffect"],i=t.opts[s.firstRun?"animationDuration":"transitionDuration"],i=parseInt(void 0===t.forcedDuration?i:t.forcedDuration,10),!d&&t.pos===s.currPos&&i||(e=!1),"zoom"===e&&(t.pos===s.currPos&&i&&"image"===t.type&&!t.hasError&&(l=s.getThumbPos(t))?c=s.getFitPos(t):e="fade"),"zoom"===e?(s.isAnimating=!0,c.scaleX=c.width/l.width,c.scaleY=c.height/l.height,a=t.opts.zoomOpacity,"auto"==a&&(a=Math.abs(t.width/t.height-l.width/l.height)>.1),a&&(l.opacity=.1,c.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),l),p(t.$content),void n.fancybox.animate(t.$content,c,i,function(){s.isAnimating=!1,s.complete()})):(s.updateSlide(t),e?(n.fancybox.stop(r),o="fancybox-slide--"+(t.pos>=s.prevPos?"next":"previous")+" fancybox-animated fancybox-fx-"+e,r.addClass(o).removeClass("fancybox-slide--current"),t.$content.removeClass("fancybox-is-hidden"),p(r),"image"!==t.type&&t.$content.hide().show(0),void n.fancybox.animate(r,"fancybox-slide--current",i,function(){r.removeClass(o).css({transform:"",opacity:""}),t.pos===s.currPos&&s.complete()},!0)):(t.$content.removeClass("fancybox-is-hidden"),u||!d||"image"!==t.type||t.hasError||t.$content.hide().fadeIn("fast"),void(t.pos===s.currPos&&s.complete())))},getThumbPos:function(t){var e,o,i,a,s,r=!1,c=t.$thumb;return!(!c||!g(c[0]))&&(e=n.fancybox.getTranslate(c),o=parseFloat(c.css("border-top-width")||0),i=parseFloat(c.css("border-right-width")||0),a=parseFloat(c.css("border-bottom-width")||0),s=parseFloat(c.css("border-left-width")||0),r={top:e.top+o,left:e.left+s,width:e.width-i-s,height:e.height-o-a,scaleX:1,scaleY:1},e.width>0&&e.height>0&&r)},complete:function(){var t,e=this,o=e.current,i={};!e.isMoved()&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),e.preload("inline"),p(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(e.slides,function(t,o){o.pos>=e.currPos-1&&o.pos<=e.currPos+1?i[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())}),e.slides=i),e.isAnimating=!1,e.updateCursor(),e.trigger("afterShow"),o.opts.video.autoStart&&o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended",function(){Document.exitFullscreen?Document.exitFullscreen():this.webkitExitFullscreen&&this.webkitExitFullscreen(),e.next()}),o.opts.autoFocus&&"html"===o.contentType&&(t=o.$content.find("input[autofocus]:enabled:visible:first"),t.length?t.trigger("focus"):e.focus(null,!0)),o.$slide.scrollTop(0).scrollLeft(0))},preload:function(t){var e,n,o=this;o.group.length<2||(n=o.slides[o.currPos+1],e=o.slides[o.currPos-1],e&&e.type===t&&o.loadSlide(e),n&&n.type===t&&o.loadSlide(n))},focus:function(t,o){var i,a,s=this,r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"])'].join(",");s.isClosing||(i=!t&&s.current&&s.current.isComplete?s.current.$slide.find("*:visible"+(o?":not(.fancybox-close-small)":"")):s.$refs.container.find("*:visible"),i=i.filter(r).filter(function(){return"hidden"!==n(this).css("visibility")&&!n(this).hasClass("disabled")}),i.length?(a=i.index(e.activeElement),t&&t.shiftKey?(a<0||0==a)&&(t.preventDefault(),i.eq(i.length-1).trigger("focus")):(a<0||a==i.length-1)&&(t&&t.preventDefault(),i.eq(0).trigger("focus"))):s.$refs.container.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each(function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)}),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,i,a,s,r,c,l,u=this,f=u.current,h=function(){u.cleanUp(t)};return!u.isClosing&&(u.isClosing=!0,!1===u.trigger("beforeClose",t)?(u.isClosing=!1,d(function(){u.update()}),!1):(u.removeEvents(),a=f.$content,o=f.opts.animationEffect,i=n.isNumeric(e)?e:o?f.opts.animationDuration:0,f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),!0!==t?n.fancybox.stop(f.$slide):o=!1,f.$slide.siblings().trigger("onReset").remove(),i&&u.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration",i+"ms"),u.hideLoading(f),u.hideControls(!0),u.updateCursor(),"zoom"!==o||a&&i&&"image"===f.type&&!u.isMoved()&&!f.hasError&&(l=u.getThumbPos(f))||(o="fade"),"zoom"===o?(n.fancybox.stop(a),s=n.fancybox.getTranslate(a),c={top:s.top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},r=f.opts.zoomOpacity, +"auto"==r&&(r=Math.abs(f.width/f.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(a,c),p(a),n.fancybox.animate(a,l,i,h),!0):(o&&i?n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),"fancybox-animated fancybox-fx-"+o,i,h):!0===t?setTimeout(h,i):h(),!0)))},cleanUp:function(e){var o,i,a,s=this,r=s.current.opts.$orig;s.current.$slide.trigger("onReset"),s.$refs.container.empty().remove(),s.trigger("afterClose",e),s.current.opts.backFocus&&(r&&r.length&&r.is(":visible")||(r=s.$trigger),r&&r.length&&(i=t.scrollX,a=t.scrollY,r.trigger("focus"),n("html, body").scrollTop(a).scrollLeft(i))),s.current=null,o=n.fancybox.getInstance(),o?o.activate():(n("body").removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove())},trigger:function(t,e){var o,i=Array.prototype.slice.call(arguments,1),a=this,s=e&&e.opts?e:a.current;if(s?i.unshift(s):s=a,i.unshift(a),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,i)),!1===o)return o;"afterClose"!==t&&a.$refs?a.$refs.container.trigger(t+".fb",i):r.trigger(t+".fb",i)},updateControls:function(){var t=this,o=t.current,i=o.index,a=t.$refs.container,s=t.$refs.caption,r=o.opts.caption;o.$slide.trigger("refresh"),r&&r.length?(t.$caption=s,s.children().eq(0).html(r)):t.$caption=null,t.hasHiddenControls||t.isIdle||t.showControls(),a.find("[data-fancybox-count]").html(t.group.length),a.find("[data-fancybox-index]").html(i+1),a.find("[data-fancybox-prev]").prop("disabled",!o.opts.loop&&i<=0),a.find("[data-fancybox-next]").prop("disabled",!o.opts.loop&&i>=t.group.length-1),"image"===o.type?a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",o.opts.image.src||o.src).show():o.opts.toolbar&&a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),n(e.activeElement).is(":hidden,[disabled]")&&t.$refs.container.trigger("focus")},hideControls:function(t){var e=this,n=["infobar","toolbar","nav"];!t&&e.current.opts.preventCaptionOverlap||n.push("caption"),this.$refs.container.removeClass(n.map(function(t){return"fancybox-show-"+t}).join(" ")),this.hasHiddenControls=!0},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.hasHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-caption",!!t.$caption).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal)},toggleControls:function(){this.hasHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.5.7",defaults:a,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof b&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new b(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),!0===t&&this.close(t))},destroy:function(){this.close(!0),r.add("body").off("click.fb-start","**")},isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:function(){var n=e.createElement("div");return t.getComputedStyle&&t.getComputedStyle(n)&&t.getComputedStyle(n).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)}(),getTranslate:function(t){var e;return!(!t||!t.length)&&(e=t[0].getBoundingClientRect(),{top:e.top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))})},setTranslate:function(t,e){var n="",o={};if(t&&e)return void 0===e.left&&void 0===e.top||(n=(void 0===e.left?t.position().left:e.left)+"px, "+(void 0===e.top?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),void 0!==e.scaleX&&void 0!==e.scaleY?n+=" scale("+e.scaleX+", "+e.scaleY+")":void 0!==e.scaleX&&(n+=" scaleX("+e.scaleX+")"),n.length&&(o.transform=n),void 0!==e.opacity&&(o.opacity=e.opacity),void 0!==e.width&&(o.width=e.width),void 0!==e.height&&(o.height=e.height),t.css(o)},animate:function(t,e,o,i,a){var s,r=this;n.isFunction(o)&&(i=o,o=null),r.stop(t),s=r.getTranslate(t),t.on(f,function(c){(!c||!c.originalEvent||t.is(c.originalEvent.target)&&"z-index"!=c.originalEvent.propertyName)&&(r.stop(t),n.isNumeric(o)&&t.css("transition-duration",""),n.isPlainObject(e)?void 0!==e.scaleX&&void 0!==e.scaleY&&r.setTranslate(t,{top:e.top,left:e.left,width:s.width*e.scaleX,height:s.height*e.scaleY,scaleX:1,scaleY:1}):!0!==a&&t.removeClass(e),n.isFunction(i)&&i(c))}),n.isNumeric(o)&&t.css("transition-duration",o+"ms"),n.isPlainObject(e)?(void 0!==e.scaleX&&void 0!==e.scaleY&&(delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout(function(){t.trigger(f)},o+33))},stop:function(t,e){t&&t.length&&(clearTimeout(t.data("timer")),e&&t.trigger(f),t.off(f).css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return t=t||{},e=t.selector||!1,e?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},i):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},i),this},r.on("click.fb-start","[data-fancybox]",i),r.on("click.fb-start","[data-fancybox-trigger]",function(t){n('[data-fancybox="'+n(this).attr("data-fancybox-trigger")+'"]').eq(n(this).attr("data-fancybox-index")||0).trigger("click.fb-start",{$trigger:n(this)})}),function(){var t=null;r.on("mousedown mouseup focus blur",".fancybox-button",function(e){switch(e.type){case"mousedown":t=n(this);break;case"mouseup":t=null;break;case"focusin":n(".fancybox-button").removeClass("fancybox-focus"),n(this).is(t)||n(this).is("[disabled]")||n(this).addClass("fancybox-focus");break;case"focusout":n(".fancybox-button").removeClass("fancybox-focus")}})}()}}(window,document,jQuery),function(t){"use strict";var e={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"https://www.youtube-nocookie.com/embed/$4",thumb:"https://img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}},n=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e};t(document).on("objectNeedsType.fb",function(o,i,a){var s,r,c,l,d,u,f,p=a.src||"",h=!1;s=t.extend(!0,{},e,a.opts.media),t.each(s,function(e,o){if(c=p.match(o.matcher)){if(h=o.type,f=e,u={},o.paramPlace&&c[o.paramPlace]){d=c[o.paramPlace],"?"==d[0]&&(d=d.substring(1)),d=d.split("&");for(var i=0;i1&&("youtube"===n.contentSource||"vimeo"===n.contentSource)&&o.load(n.contentSource)}})}(jQuery),function(t,e,n){"use strict";var o=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),i=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),a=function(e){var n=[];e=e.originalEvent||e||t.e,e=e.touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e];for(var o in e)e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,i=o.length;ee.clientHeight,a=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return i||a},l=function(t){for(var e=!1;;){if(e=c(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-stage")||t.is("body"))break}return e},d=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};d.prototype.destroy=function(){var t=this;t.$container.off(".fb.touch"),n(e).off(".fb.touch"),t.requestId&&(i(t.requestId),t.requestId=null),t.tapped&&(clearTimeout(t.tapped),t.tapped=null)},d.prototype.ontouchstart=function(o){var i=this,c=n(o.target),d=i.instance,u=d.current,f=u.$slide,p=u.$content,h="touchstart"==o.type;if(h&&i.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&f.length&&c.length&&!r(c)&&!r(c.parent())&&(c.is("img")||!(o.originalEvent.clientX>c[0].clientWidth+c.offset().left))){if(!u||d.isAnimating||u.$slide.hasClass("fancybox-animated"))return o.stopPropagation(),void o.preventDefault();i.realPoints=i.startPoints=a(o),i.startPoints.length&&(u.touch&&o.stopPropagation(),i.startEvent=o,i.canTap=!0,i.$target=c,i.$content=p,i.opts=u.opts.touch,i.isPanning=!1,i.isSwiping=!1,i.isZooming=!1,i.isScrolling=!1,i.canPan=d.canPan(),i.startTime=(new Date).getTime(),i.distanceX=i.distanceY=i.distance=0,i.canvasWidth=Math.round(f[0].clientWidth),i.canvasHeight=Math.round(f[0].clientHeight),i.contentLastPos=null,i.contentStartPos=n.fancybox.getTranslate(i.$content)||{top:0,left:0},i.sliderStartPos=n.fancybox.getTranslate(f),i.stagePos=n.fancybox.getTranslate(d.$refs.stage),i.sliderStartPos.top-=i.stagePos.top,i.sliderStartPos.left-=i.stagePos.left,i.contentStartPos.top-=i.stagePos.top,i.contentStartPos.left-=i.stagePos.left,n(e).off(".fb.touch").on(h?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(i,"ontouchend")).on(h?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(i,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",i.onscroll,!0),((i.opts||i.canPan)&&(c.is(i.$stage)||i.$stage.find(c).length)||(c.is(".fancybox-image")&&o.preventDefault(),n.fancybox.isMobile&&c.parents(".fancybox-caption").length))&&(i.isScrollable=l(c)||l(c.parent()),n.fancybox.isMobile&&i.isScrollable||o.preventDefault(),(1===i.startPoints.length||u.hasError)&&(i.canPan?(n.fancybox.stop(i.$content),i.isPanning=!0):i.isSwiping=!0,i.$container.addClass("fancybox-is-grabbing")),2===i.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(i.canTap=!1,i.isSwiping=!1,i.isPanning=!1,i.isZooming=!0,n.fancybox.stop(i.$content),i.centerPointStartX=.5*(i.startPoints[0].x+i.startPoints[1].x)-n(t).scrollLeft(),i.centerPointStartY=.5*(i.startPoints[0].y+i.startPoints[1].y)-n(t).scrollTop(),i.percentageOfImageAtPinchPointX=(i.centerPointStartX-i.contentStartPos.left)/i.contentStartPos.width,i.percentageOfImageAtPinchPointY=(i.centerPointStartY-i.contentStartPos.top)/i.contentStartPos.height,i.startDistanceBetweenFingers=s(i.startPoints[0],i.startPoints[1]))))}},d.prototype.onscroll=function(t){var n=this;n.isScrolling=!0,e.removeEventListener("scroll",n.onscroll,!0)},d.prototype.ontouchmove=function(t){var e=this;return void 0!==t.originalEvent.buttons&&0===t.originalEvent.buttons?void e.ontouchend(t):e.isScrolling?void(e.canTap=!1):(e.newPoints=a(t),void((e.opts||e.canPan)&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&!0===e.isSwiping||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))))},d.prototype.onSwipe=function(e){var a,s=this,r=s.instance,c=s.isSwiping,l=s.sliderStartPos.left||0;if(!0!==c)"x"==c&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?l+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?l-=Math.pow(-s.distanceX,.8):l+=s.distanceX),s.sliderLastPos={top:"x"==c?0:s.sliderStartPos.top+s.distanceY,left:l},s.requestId&&(i(s.requestId),s.requestId=null),s.requestId=o(function(){s.sliderLastPos&&(n.each(s.instance.slides,function(t,e){var o=e.pos-s.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})}),s.$container.addClass("fancybox-is-sliding"))});else if(Math.abs(s.distance)>10){if(s.canTap=!1,r.group.length<2&&s.opts.vertical?s.isSwiping="y":r.isDragging||!1===s.opts.vertical||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(a=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=a>45&&a<135?"y":"x"),"y"===s.isSwiping&&n.fancybox.isMobile&&s.isScrollable)return void(s.isScrolling=!0);r.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(r.slides,function(t,e){var o,i;n.fancybox.stop(e.$slide),o=n.fancybox.getTranslate(e.$slide),i=n.fancybox.getTranslate(r.$refs.stage),e.$slide.css({transform:"",opacity:"","transition-duration":""}).removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")}),e.pos===r.current.pos&&(s.sliderStartPos.top=o.top-i.top,s.sliderStartPos.left=o.left-i.left),n.fancybox.setTranslate(e.$slide,{top:o.top-i.top,left:o.left-i.left})}),r.SlideShow&&r.SlideShow.isActive&&r.SlideShow.stop()}},d.prototype.onPan=function(){var t=this;if(s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5))return void(t.startPoints=t.newPoints);t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&i(t.requestId),t.requestId=o(function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})},d.prototype.limitMovement=function(){var t,e,n,o,i,a,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,f=u.left,p=u.top,h=u.width,g=u.height;return i=h>r?f+l:f,a=p+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&i>t&&(i=t-1+Math.pow(-t+f+l,.8)||0),l<0&&i0&&a>e&&(a=e-1+Math.pow(-e+p+d,.8)||0),d<0&&aa?(t=t>0?0:t,t=ts?(e=e>0?0:e,e=e1&&(o.dMs>130&&s>10||s>50);o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),i=o.instance.close(!0,250)):r&&o.distanceX>0?i=o.instance.previous(300):r&&o.distanceX<0&&(i=o.instance.next(300)),!1!==i||"x"!=t&&"y"!=t||o.instance.centerSlide(200),o.$container.removeClass("fancybox-is-sliding")},d.prototype.endPanning=function(){var t,e,o,i=this;i.contentLastPos&&(!1===i.opts.momentum||i.dMs>350?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+500*i.velocityX,e=i.contentLastPos.top+500*i.velocityY),o=i.limitPosition(t,e,i.contentStartPos.width,i.contentStartPos.height),o.width=i.contentStartPos.width,o.height=i.contentStartPos.height,n.fancybox.animate(i.$content,o,366))},d.prototype.endZooming=function(){var t,e,o,i,a=this,s=a.instance.current,r=a.newWidth,c=a.newHeight;a.contentLastPos&&(t=a.contentLastPos.left,e=a.contentLastPos.top,i={top:e,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(a.$content,i),rs.width||c>s.height?a.instance.scaleToActual(a.centerPointStartX,a.centerPointStartY,150):(o=a.limitPosition(t,e,r,c),n.fancybox.animate(a.$content,o,150)))},d.prototype.onTap=function(e){var o,i=this,s=n(e.target),r=i.instance,c=r.current,l=e&&a(e)||i.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-i.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-i.stagePos.top:0,f=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(i.startEvent);break;case"toggleControls":r.toggleControls();break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(i.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(i.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(i.tapped){if(clearTimeout(i.tapped),i.tapped=null,Math.abs(d-i.tapX)>50||Math.abs(u-i.tapY)>50)return this;f("dblclick"+o)}else i.tapX=d,i.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?i.tapped=setTimeout(function(){i.tapped=null,r.isAnimating||f("click"+o)},500):f("click"+o);return this}},n(e).on("onActivate.fb",function(t,e){e&&!e.Guestures&&(e.Guestures=new d(e))}).on("beforeClose.fb",function(t,e){e&&e.Guestures&&e.Guestures.destroy()})}(window,document,jQuery),function(t,e){"use strict";e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:''},slideShow:{autoStart:!1,speed:3e3,progress:!0}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this,n=t.instance,o=n.group[n.currIndex].opts.slideShow;t.$button=n.$refs.toolbar.find("[data-fancybox-play]").on("click",function(){t.toggle()}),n.group.length<2||!o?t.$button.hide():o.progress&&(t.$progress=e('
').appendTo(n.$refs.inner))},set:function(t){var n=this,o=n.instance,i=o.current;i&&(!0===t||i.opts.loop||o.currIndex'},fullScreen:{autoStart:!1}}),e(t).on(n.fullscreenchange,function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.isAnimating=!1,n.update(!0,!0,0),n.isComplete||n.complete()),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t),n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter",!t).toggleClass("fancybox-button--fsexit",t))})}e(t).on({"onInit.fb":function(t,e){var i;if(!n)return void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();e&&e.group[e.currIndex].opts.fullScreen?(i=e.$refs.container,i.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle()}),e.opts.fullScreen&&!0===e.opts.fullScreen.autoStart&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()},"afterKeydown.fb":function(t,e,n,o,i){e&&e.FullScreen&&70===i&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}})}(document,jQuery),function(t,e){"use strict";var n="fancybox-thumbs";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:''},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var o=function(t){this.init(t)};e.extend(o.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e=this,n=t.group,o=0;e.instance=t,e.opts=n[t.currIndex].opts.thumbs,t.Thumbs=e,e.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]");for(var i=0,a=n.length;i1));i++);o>1&&e.opts?(e.$button.removeAttr("style").on("click",function(){e.toggle()}),e.isActive=!0):e.$button.hide()},create:function(){var t,o=this,i=o.instance,a=o.opts.parentEl,s=[];o.$grid||(o.$grid=e('
').appendTo(i.$refs.container.find(a).addBack().filter(a)),o.$grid.on("click","a",function(){i.jumpTo(e(this).attr("data-index"))})),o.$list||(o.$list=e('
').appendTo(o.$grid)),e.each(i.group,function(e,n){t=n.thumb,t||"image"!==n.type||(t=n.src),s.push('")}),o.$list[0].innerHTML=s.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+i.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,o=this,i=o.$list,a=o.$grid;o.instance.current&&(e=i.children().removeClass("fancybox-thumbs-active").filter('[data-index="'+o.instance.current.index+'"]').addClass("fancybox-thumbs-active"),n=e.position(),"y"===o.opts.axis&&(n.top<0||n.top>i.height()-e.outerHeight())?i.stop().animate({scrollTop:i.scrollTop()+n.top},t):"x"===o.opts.axis&&(n.lefta.scrollLeft()+(a.width()-e.outerWidth()))&&i.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new o(e),n.isActive&&!0===n.opts.autoStart&&n.show())},"beforeShow.fb":function(t,e,n,o){var i=e&&e.Thumbs;i&&i.isVisible&&i.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,i){var a=e&&e.Thumbs;a&&a.isActive&&71===i&&(o.preventDefault(),a.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&!1!==n.opts.hideOnClose&&n.$grid.hide()}})}(document,jQuery),function(t,e){"use strict";function n(t){var e={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(t).replace(/[&<>"'`=\/]/g,function(t){return e[t]})}e.extend(!0,e.fancybox.defaults,{btnTpl:{share:''},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location}, +tpl:''}}),e(t).on("click","[data-fancybox-share]",function(){var t,o,i=e.fancybox.getInstance(),a=i.current||null;a&&("function"===e.type(a.opts.share.url)&&(t=a.opts.share.url.apply(a,[i,a])),o=a.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===a.type?encodeURIComponent(a.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,n(t)).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,o),type:"html",opts:{touch:!1,animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",function(){t.close(null,0)}),e.$content.find(".fancybox-share__button").click(function(){return window.open(this.href,"Share","width=550, height=450"),!1})},mobile:{autoFocus:!1}}}))})}(document,jQuery),function(t,e,n){"use strict";function o(){var e=t.location.hash.substr(1),n=e.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,i=n.join("-");return{hash:e,index:o<1?1:o,gallery:i}}function i(t){""!==t.gallery&&n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).focus().trigger("click.fb-start")}function a(t){var e,n;return!!t&&(e=t.current?t.current.opts:t.opts,""!==(n=e.hash||(e.$orig?e.$orig.data("fancybox")||e.$orig.data("fancybox-trigger"):""))&&n)}n.escapeSelector||(n.escapeSelector=function(t){return(t+"").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t})}),n(function(){!1!==n.fancybox.defaults.hash&&(n(e).on({"onInit.fb":function(t,e){var n,i;!1!==e.group[e.currIndex].opts.hash&&(n=o(),(i=a(e))&&n.gallery&&i==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,i,s){var r;i&&!1!==i.opts.hash&&(r=a(o))&&(o.currentHash=r+(o.group.length>1?"-"+(i.index+1):""),t.location.hash!=="#"+o.currentHash&&(s&&!o.origHash&&(o.origHash=t.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout(function(){"replaceState"in t.history?(t.history[s?"pushState":"replaceState"]({},e.title,t.location.pathname+t.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):t.location.hash=o.currentHash,o.hashTimer=null},300)))},"beforeClose.fb":function(n,o,i){i&&!1!==i.opts.hash&&(clearTimeout(o.hashTimer),o.currentHash&&o.hasCreatedHistory?t.history.back():o.currentHash&&("replaceState"in t.history?t.history.replaceState({},e.title,t.location.pathname+t.location.search+(o.origHash||"")):t.location.hash=o.origHash),o.currentHash=null)}}),n(t).on("hashchange.fb",function(){var t=o(),e=null;n.each(n(".fancybox-container").get().reverse(),function(t,o){var i=n(o).data("FancyBox");if(i&&i.currentHash)return e=i,!1}),e?e.currentHash===t.gallery+"-"+t.index||1===t.index&&e.currentHash==t.gallery||(e.currentHash=null,e.close()):""!==t.gallery&&i(t)}),setTimeout(function(){n.fancybox.getInstance()||i(o())},50))})}(window,document,jQuery),function(t,e){"use strict";var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",function(t){var o=e.current,i=(new Date).getTime();e.group.length<2||!1===o.opts.wheel||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,i-n<250||(n=i,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))})}})}(document,jQuery); \ No newline at end of file diff --git a/public/themes/custom/ubccs/package-lock.json b/public/themes/custom/ubccs/package-lock.json new file mode 100644 index 0000000..d93d7dc --- /dev/null +++ b/public/themes/custom/ubccs/package-lock.json @@ -0,0 +1,1160 @@ +{ + "name": "ubccs", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@fancyapps/fancybox": "github:fancyapps/fancybox", + "bootstrap": "^4.0.0", + "normalize.css": "^8.0.0" + }, + "devDependencies": { + "autoprefixer": "^10.0.0", + "onchange": "^7.0.0", + "postcss-cli": "^10.0.0", + "sass": "^1.0.0" + } + }, + "node_modules/@blakeembrey/deque": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@blakeembrey/deque/-/deque-1.0.5.tgz", + "integrity": "sha512-6xnwtvp9DY1EINIKdTfvfeAtCYw4OqBZJhtiqkT3ivjnEfa25VQ3TsKvaFfKm8MyGIEfE95qLe+bNEt3nB0Ylg==", + "dev": true + }, + "node_modules/@blakeembrey/template": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@blakeembrey/template/-/template-1.1.0.tgz", + "integrity": "sha512-iZf+UWfL+DogJVpd/xMQyP6X6McYd6ArdYoPMiv/zlOTzeXXfQbYxBNJJBF6tThvsjLMbA8tLjkCdm9RWMFCCw==", + "dev": true + }, + "node_modules/@fancyapps/fancybox": { + "version": "3.5.7", + "resolved": "git+ssh://git@github.com/fancyapps/fancybox.git#c4fd90370f8c93336d6e36a5c6120bcabcf8675c", + "license": "GPL-3.0", + "peerDependencies": { + "jquery": ">=1.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bootstrap": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001450", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz", + "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.288", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.288.tgz", + "integrity": "sha512-8s9aJf3YiokIrR+HOQzNOGmEHFXVUQzXM/JaViVvKdCkNUjS+lEa/uT7xw3nDVG/IgfxiIwUGkwJ6AR1pTpYsQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jquery": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz", + "integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==", + "peer": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" + }, + "node_modules/onchange": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/onchange/-/onchange-7.1.0.tgz", + "integrity": "sha512-ZJcqsPiWUAUpvmnJri5TPBooqJOPmC0ttN65juhN15Q8xA+Nbg3BaxBHXQ45EistKKlKElb0edmbPWnKSBkvMg==", + "dev": true, + "dependencies": { + "@blakeembrey/deque": "^1.0.5", + "@blakeembrey/template": "^1.0.0", + "arg": "^4.1.3", + "chokidar": "^3.3.1", + "cross-spawn": "^7.0.1", + "ignore": "^5.1.4", + "tree-kill": "^1.2.2" + }, + "bin": { + "onchange": "dist/bin.js" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "peer": true, + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sass": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", + "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", + "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/public/themes/custom/ubccs/package.json b/public/themes/custom/ubccs/package.json new file mode 100644 index 0000000..d2c41e1 --- /dev/null +++ b/public/themes/custom/ubccs/package.json @@ -0,0 +1,32 @@ +{ + "private": true, + "scripts": { + "build:sass": "sass sass:css", + "autoprefixer": "postcss --no-map -u autoprefixer --autoprefixer.browsers -r css/*.css", + "build:css": "npm run build:sass && npm run autoprefixer", + "watch:css": "onchange 'sass/**/*.scss' -- npm run build:css" + }, + "dependencies": { + "@fancyapps/fancybox": "github:fancyapps/fancybox", + "bootstrap": "^4.0.0", + "normalize.css": "^8.0.0" + }, + "devDependencies": { + "autoprefixer": "^10.0.0", + "onchange": "^7.0.0", + "postcss-cli": "^10.0.0", + "sass": "^1.0.0" + }, + "copyFiles": [ + { + "from": "node_modules/@fancyapps/fancybox/dist/*", + "to": "js/vendor/fancybox" + } + ], + "copyFilesSettings": { + "whenFileExists": "overwrite" + }, + "browserslist": [ + "> 1%" + ] +} diff --git a/public/themes/custom/ubccs/sass/_bootstrap-no-output.scss b/public/themes/custom/ubccs/sass/_bootstrap-no-output.scss new file mode 100644 index 0000000..81ceaa0 --- /dev/null +++ b/public/themes/custom/ubccs/sass/_bootstrap-no-output.scss @@ -0,0 +1,6 @@ +@import 'variables'; + +// These imports have no output and are safe to import. +@import '../node_modules/bootstrap/scss/functions'; +@import '../node_modules/bootstrap/scss/variables'; +@import '../node_modules/bootstrap/scss/mixins'; diff --git a/public/themes/custom/ubccs/sass/_utility.scss b/public/themes/custom/ubccs/sass/_utility.scss new file mode 100644 index 0000000..f16855e --- /dev/null +++ b/public/themes/custom/ubccs/sass/_utility.scss @@ -0,0 +1,103 @@ +@import 'variables'; +@import 'bootstrap-no-output'; + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +// Extend backgrounds. +.extend–background { + @include media-breakpoint-only(xs) { + // Counter the container to bleed to the edge. + margin-left: -15px; + margin-right: -15px; + } + @include media-breakpoint-up(sm) { + margin-right: -30000px; + margin-left: -30000px; + padding-right: 30000px; + padding-left: 30000px; + } +} + +// @todo Make into a hr variant. +.short-line { + width: 225px; + height: 3px; + background-color: $burnt-sienna; + margin: 0 auto; +} + +.intro { + color: #cc6e20; + font-size: 2.2rem; +} + +.bg-base-darkest { + background-color: $dark-teal; +} + +// Spacing. +.p-1 { + padding: 1rem; +} + +.p-2 { + padding: 2rem; +} + +.px-1 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-2 { + padding-left: 2rem; + padding-right: 2rem; +} + +.py-1 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.py-2 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.m-1 { + margin: 1rem; +} + +.m-2 { + margin: 2rem; +} + +.mx-1 { + margin-left: 1rem; + margin-right: 1rem; +} + +.mx-2 { + margin-left: 2rem; + margin-right: 2rem; +} + +.my-1 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.my-2 { + margin-top: 2rem; + margin-bottom: 2rem; +} diff --git a/public/themes/custom/ubccs/sass/_variables.scss b/public/themes/custom/ubccs/sass/_variables.scss new file mode 100644 index 0000000..226c048 --- /dev/null +++ b/public/themes/custom/ubccs/sass/_variables.scss @@ -0,0 +1,69 @@ +// MEDIA QUERIES AND GRIDS +// ------------------------- + +$screen-md: 980px; + +// Grid. +// ------------------------- +$grid-columns: 12; +$grid-gutter-width: 30px; + +$grid-breakpoints: ( + // Extra small screen / phone + xs: 0, + // Small screen / phone + sm: 576px, + // Medium screen / tablet + md: 768px, + // Large screen / desktop + lg: 980px, + // Extra large screen / wide desktop + xl: 1200px, + // Extra Extra large screen / wide desktop + xxl: 1500px +); + +// Only max width to contain the site, otherwise full 1200px. +$container-max-widths: ( + xl: 1200px +); + +// Fonts. +// ------------------------- +$font-family-serif: Merriweather, Georgia, serif; +$font-family-sans-serif: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; +$font-family-mono: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + +$font-family: $font-family-sans-serif; + +$font-size-base: 1.7rem !default; + +// UBC Colours. +// ------------------------- +$ubc-blue: #002145; +$ubc-grey: #2f5d7c; +$ubc-light-grey: #5e869f; +$ubc-lighter-grey: #98b2c3; +$ubc-silver-grey: #c3d0d8; +$ubc-silver: #d7e0e7; +$silver: #cfcfd0; + +// Greys. +// ------------------------- +$black: #000; +$gray-darker: #222; +$gray-dark: #444; +$gray: #555; +$gray-light: #999; +$gray-lighter: #eee; +$white: #fff; + +// CS Colours. +// ------------------------- +$burnt-sienna: #9e4225; +$orange: #ef8843; +$dark-teal: #005554; +$teal: #00afa4; + +$unit-color: $burnt-sienna; // Burnt Sienna. + diff --git a/public/themes/custom/ubccs/sass/base/_blockquote.scss b/public/themes/custom/ubccs/sass/base/_blockquote.scss new file mode 100644 index 0000000..7c6b5c5 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_blockquote.scss @@ -0,0 +1,9 @@ +@import '../variables'; + +blockquote { + border-left: 8px solid $teal; + list-style-position: inside; + margin-left: 0; + padding-left: 1em; + padding-right: 2em; +} diff --git a/public/themes/custom/ubccs/sass/base/_code.scss b/public/themes/custom/ubccs/sass/base/_code.scss new file mode 100644 index 0000000..11fd8ff --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_code.scss @@ -0,0 +1,42 @@ +@import '../variables'; + +:not(pre) > code { + padding: .2em .4em; + border-radius: .3em; + white-space: normal; +} +:not(pre) > code, +pre { + background-color: $gray-lighter; +} + +pre { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +code, +pre { + color: $gray; + + //text-shadow: 0 1px rgba(0, 0, 0, 0.3); + text-align: left; + white-space: pre; + + word-spacing: normal; + word-break: normal; + word-wrap: normal; + + line-height: 1.5; + tab-size: 4; + hyphens: none; +} + +pre, +code, +kbd, +samp { + font-family: $font-family-mono; +} + diff --git a/public/themes/custom/ubccs/sass/base/_figure.scss b/public/themes/custom/ubccs/sass/base/_figure.scss new file mode 100644 index 0000000..0a34957 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_figure.scss @@ -0,0 +1,42 @@ +@import '../variables'; + + +figure { + display: table; + + margin: 2rem 0; + + img { + // Prevent line-height spacing under image and between caption. + display: block; + } +} + +figcaption { + display: table-caption; + caption-side: bottom; + max-width: none; + + padding: 1rem 2rem; + + font-size: $font-size-base * 0.8; + line-height: 1.2; +} + +figcaption p { + margin: 0; +} + +// Image captions. +a + figcaption, +img + figcaption { + color: $burnt-sienna; + // Temporary fix for AC 6542-106. + //background: $burnt-sienna; + //color: #fff; +} + +// Blockquote captions. +blockquote + figcaption { + color: $gray; +} diff --git a/public/themes/custom/ubccs/sass/base/_fixes.scss b/public/themes/custom/ubccs/sass/base/_fixes.scss new file mode 100644 index 0000000..ae170d7 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_fixes.scss @@ -0,0 +1,11 @@ +// Negative index isn't meant to be focused by the user. +// https://stackoverflow.com/questions/32911355/whats-the-tabindex-1-in-bootstrap-for +[tabindex="-1"]:focus { + outline: none; +} + +@media print { + footer { + display: none; + } +} diff --git a/public/themes/custom/ubccs/sass/base/_form.scss b/public/themes/custom/ubccs/sass/base/_form.scss new file mode 100644 index 0000000..e1d9ef1 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_form.scss @@ -0,0 +1,242 @@ +@import '../variables'; + +form { + margin: 0; + padding: 0; +} + +button { + width: auto; + overflow: visible; + -webkit-appearance: none; + -moz-appearance: none; +} + +label { + display: table; + margin: 0 0 0.25em; + padding: 0; + font-weight: bold; +} + +label[for] { + cursor: pointer; +} + +// Fieldsets. +fieldset { + background-color: lighten($teal, 64%); + border: 2px solid $teal; + border-radius: 3px; + + padding: 1em; + margin: 1em 0; + + // Fix for items pushing the width past it's parent. + min-width: 100%; +} + +.fieldset-wrapper p { + margin-top: 0; + margin-bottom: 0; +} + +legend { + font-size: 2rem; + font-weight: 700; + padding: 0 0.25em; +} + +/** + * Limits extra long instances of select elements to the max width allowed + * to avoid breaking layouts. + */ +select { + max-width: 100%; +} + +// CLF override. +button, +input { + font-size: $font-size-base; + font-family: $font-family; + vertical-align: baseline; +} + +// CLF override. +input { + width: auto; +} + +button { + width: auto; + overflow: visible; +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + line-height: inherit; + margin: 0; +} + +input, +select { + vertical-align: middle; +} + +input, +textarea, +select, +// CWL override [type="text"]. +input[type="text"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 2px solid $gray-dark; + border-radius: 0; + color: $gray-dark; + + // Avoid this because of inline blocks, let the label break the line. + // display: block; + + // CLF override. + margin: 0; + + // Ensure doesn't exceed container. + max-width: 100%; + + padding: 0.5rem 0.8rem; + + &:focus { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + transition: outline ease-in-out 0.2s; + } +} + +// Buttons +input[type="image"] { + border: 0; +} + +button, +input[type="image"], +input[type="button"], +input[type="submit"] { + &:hover { + cursor: pointer; + } +} + +select { + // Cap the width of the select fields. + // max-width: 210px; + background: #fff url("../img/arrow-both.svg") no-repeat right 1.3rem center; + background-size: 1rem; + padding-right: 3rem; +} + +select[multiple] { + background-image: none; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; + display: inline-block; +} +[type="checkbox"], +[type="radio"] { + height: 2rem; + width: 2rem; + position: relative; + border: 0; + vertical-align: middle; + + &:focus { + outline: none; + } +} + +[type="checkbox"] + label, +[type="radio"] + label { + font-weight: 400; + margin-left: 0.6rem; +} + +[type="checkbox"]::before, +[type="radio"]::before { + background-color: #fff; + content: "\a0"; + display: inline-block; + text-indent: 0.15em; + vertical-align: middle; + + position: absolute; + top: 0; + left: 0; + + cursor: pointer; +} + +[type="checkbox"]::before { + border-radius: 0.2rem; + box-shadow: 0 0 0 0.2rem $gray-dark; + height: 2rem; + line-height: 2rem; + margin-left: 1px; + margin-right: 0.6em; + width: 2rem; +} + +[type="radio"]::before { + border-radius: 100%; + box-shadow: 0 0 0 0.2rem #ffffff, 0 0 0 0.4rem $gray-dark; + height: 1.4rem; + line-height: 1.4rem; + margin-left: 3px; + margin-right: 0.75em; + width: 1.4rem; +} + +[type="checkbox"]:checked::before, +[type="radio"]:checked::before { + background-color: $teal; + box-shadow: 0 0 0 0.2rem $teal; +} + +[type="radio"]:checked::before { + box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem $teal; +} + +[type="checkbox"]:checked::before, +[type="checkbox"]:checked:disabled::before { + background-image: url("../img/correct8.svg"); + background-repeat: no-repeat; + background-position: 50%; +} + +[type="radio"]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 6px; +} + +[type="checkbox"]:disabled + label { + color: #d6d7d9; +} + +[type="checkbox"]:focus::before { + outline: 0.2rem solid rgba(82, 168, 236, 0.8); + outline-offset: 3px; +} + +[type="checkbox"]:disabled::before, +[type="radio"]:disabled::before { + background: #f1f1f1; + box-shadow: 0 0 0 0.2rem $gray-light; + cursor: not-allowed; +} diff --git a/public/themes/custom/ubccs/sass/base/_image.scss b/public/themes/custom/ubccs/sass/base/_image.scss new file mode 100644 index 0000000..c00a788 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_image.scss @@ -0,0 +1,4 @@ +img { + max-width: 100%; + height: auto; +} diff --git a/public/themes/custom/ubccs/sass/base/_list.scss b/public/themes/custom/ubccs/sass/base/_list.scss new file mode 100644 index 0000000..b2c0c37 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_list.scss @@ -0,0 +1,17 @@ +@import '../variables'; + +ul, +ol { + margin-top: 0; + margin-bottom: $font-size-base; + + // Override CLF. + margin-left: 0; + + padding-left: $font-size-base * 2; +} + +li { + // Override CLF to match default line-height. + line-height: 1.5; +} diff --git a/public/themes/custom/ubccs/sass/base/_reset.scss b/public/themes/custom/ubccs/sass/base/_reset.scss new file mode 100644 index 0000000..aade885 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_reset.scss @@ -0,0 +1,21 @@ +* { + box-sizing: border-box; +} + +body { + overflow-x: hidden; +} + +// Copy from bootstrap _reboot.scss. +// And undo these styles for placeholder links/named anchors (without href). +// It would be more straightforward to just use a[href] in previous block, but that +// causes specificity issues in many other styles that are too complex to fix. +// See https://github.com/twbs/bootstrap/issues/19402 + +a:not([href]):not([class]) { + &, + &:hover { + color: inherit; + text-decoration: none; + } +} diff --git a/public/themes/custom/ubccs/sass/base/_table.scss b/public/themes/custom/ubccs/sass/base/_table.scss new file mode 100644 index 0000000..9d4c2d8 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_table.scss @@ -0,0 +1,49 @@ +@import '../variables'; + +table, +tbody, +td, +tfoot, +th, +thead, +tr { + border: 0; + margin: 0; + padding: 0; +} + +table { + border-collapse: collapse; + margin-bottom: 24px; +} + +caption, +th { + text-align: left; +} + +th, +td { + padding: 1rem; + border: 0 solid $ubc-silver; +} + +th { + vertical-align: bottom; + border-bottom-width: 2px; +} + +td { + vertical-align: top; + border-bottom-width: 1px; +} + +// Remove spacing around headers, lists, paragraphs in tables. +th :first-child, +td :first-child { + margin-top: 0; +} +th :last-child, +td :last-child { + margin-bottom: 0; +} diff --git a/public/themes/custom/ubccs/sass/base/_typography.scss b/public/themes/custom/ubccs/sass/base/_typography.scss new file mode 100644 index 0000000..0d85503 --- /dev/null +++ b/public/themes/custom/ubccs/sass/base/_typography.scss @@ -0,0 +1,101 @@ +@import '../variables'; + +html { + font-size: 10px; +} + +body { + font-family: $font-family; + color: $gray-dark; + + // Override CLF. + font-size: $font-size-base; + + // Fix absolute line-height from CLF. + line-height: 1.5; +} + +// Heading general. +h1, +h2, +h3, +h4, +h5, +h6 { + color: $dark-teal; + + text-rendering: auto; + font-weight: 400; + line-height: 1.2; +} + +// Heading spacing. +h1 { + margin-top: 0; + margin-bottom: 0; +} + +h2 { + margin-top: $font-size-base * 2; + margin-bottom: $font-size-base; +} + +h3, +h4, +h5, +h6 { + margin-top: $font-size-base * 1.5; + margin-bottom: $font-size-base; +} + +// Heading sizes. +h1 { + font-size: $font-size-base * 2.35; +} +h2 { + font-size: $font-size-base * 1.76; +} +h3 { + font-size: $font-size-base * 1.47; +} +h4 { + font-size: $font-size-base * 1.17; +} + +// Heading weights. +h3, +h4 { + font-weight: 700; +} + +// Paragraphs. +p { + line-height: 1.5; + margin-top: $font-size-base; + margin-bottom: $font-size-base; +} + +// Links. +a { + color: $teal; + text-decoration-skip-ink: auto; + transition: color 0.5s ease-in; +} + +a:hover, +a:active { + color: $dark-teal; +} + +hr { + display: block; + height: 2px; + border: 0; + margin: 3rem auto; + width: 40%; + padding: 0; + background-color: $burnt-sienna; + + // Prevent floating on left and right. + clear: both; +} diff --git a/public/themes/custom/ubccs/sass/bootstrap.scss b/public/themes/custom/ubccs/sass/bootstrap.scss new file mode 100644 index 0000000..340d43a --- /dev/null +++ b/public/themes/custom/ubccs/sass/bootstrap.scss @@ -0,0 +1,24 @@ + + +@import 'bootstrap-no-output'; + +// Don't import all of bootstrap, only things you need when you need it. +// @import '../node_modules/bootstrap/scss/bootstrap'; + +// Don't use these, it's got too many opinions that are not shared and other CSS provides. +//@import '../node_modules/bootstrap/scss/reboot'; +//@import '../node_modules/bootstrap/scss/type'; +//@import '../node_modules/bootstrap/scss/code'; +//@import '../node_modules/bootstrap/scss/utilities'; +//@import '../node_modules/bootstrap/scss/images'; +//@import '../node_modules/bootstrap/scss/root'; + + +// Bootstrap grid. +@import '../node_modules/bootstrap/scss/grid'; + +// Bootstrap cards. +//@import '../node_modules/bootstrap/scss/card'; + +// Bootstrap jumbotron. +//@import '../node_modules/bootstrap/scss/jumbotron'; diff --git a/public/themes/custom/ubccs/sass/ckeditor5.scss b/public/themes/custom/ubccs/sass/ckeditor5.scss new file mode 100644 index 0000000..5862b71 --- /dev/null +++ b/public/themes/custom/ubccs/sass/ckeditor5.scss @@ -0,0 +1,36 @@ +/** + * $file + * Approximate clf's style in CKEditor instances on the Drupal back-end. + */ + +@import 'variables'; + +.ck-content { + // Override to fix rem issue in CKEditor 5 in Claro. + $font-size-base: 1.1rem; + + @import 'base/typography'; + @import 'base/blockquote'; + @import 'base/code'; + @import 'base/figure'; + @import 'base/fixes'; + @import 'base/form'; + @import 'base/image'; + @import 'base/list'; + @import 'base/table'; + + @import 'components/align'; + @import 'components/button'; + @import 'components/caption'; + @import 'components/details'; + @import 'components/image'; + @import 'components/inline-block'; + @import 'components/media'; + @import 'components/table'; + @import 'components/typography'; + + // Fix ckeditor5 display, margin: auto. + .image:not([class*="image-style-align-"]) { + margin: 2rem 0; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_admin.scss b/public/themes/custom/ubccs/sass/components/_admin.scss new file mode 100644 index 0000000..b3d1cef --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_admin.scss @@ -0,0 +1,4 @@ +#admin-toolbar-search-input { + // Fix toolbar. + padding: 0.5rem 0.8rem; +} diff --git a/public/themes/custom/ubccs/sass/components/_alert.scss b/public/themes/custom/ubccs/sass/components/_alert.scss new file mode 100644 index 0000000..c1120ae --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_alert.scss @@ -0,0 +1,13 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +.alert p { + margin-top: 0; + margin-bottom: 0; +} + +.alert { + max-width: map_get($container-max-widths, xl); + margin-left: auto; + margin-right: auto; +} diff --git a/public/themes/custom/ubccs/sass/components/_align.scss b/public/themes/custom/ubccs/sass/components/_align.scss new file mode 100644 index 0000000..be534a4 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_align.scss @@ -0,0 +1,62 @@ + +/** + * @file + * Alignment classes for text and block level elements. + */ + +.text-align-left { + text-align: left; +} +.text-align-right { + text-align: right; +} +.text-align-center { + text-align: center; +} +.text-align-justify { + text-align: justify; +} + +/** + * Alignment classes for block level elements (images, videos, blockquotes, etc.) + */ +.align-left { + float: left; +} +.align-right { + float: right; +} +.align-center { + //display: block; + margin-right: auto; + margin-left: auto; +} + +.image--left, +.image--right, +.image--center { + // Prevent them from stacking beside each other. + clear: both; + + // Give space away from content above and below. + margin-top: 2rem; + margin-bottom: 2rem; +} + +.align-left, +.image--left { + float: left; + margin-right: 2rem; +} + +.align-right, +.image--right { + float: right; + margin-left: 2rem; +} + +.align-center, +.image--center { + margin-right: auto; + margin-left: auto; +} diff --git a/public/themes/custom/ubccs/sass/components/_awards.scss b/public/themes/custom/ubccs/sass/components/_awards.scss new file mode 100644 index 0000000..f5d7159 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_awards.scss @@ -0,0 +1,14 @@ + +// Maintain a reasonable column width. +.views-table .views-field-field-award-date { + width: 35px; +} + +.views-table .views-field-field-award-recipient, +.views-table .views-field-field-award-organization { + width: 25%; +} + +.view-awards .views-table { + width: 100%; +} diff --git a/public/themes/custom/ubccs/sass/components/_back-to-top.scss b/public/themes/custom/ubccs/sass/components/_back-to-top.scss new file mode 100644 index 0000000..7f2543d --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_back-to-top.scss @@ -0,0 +1,34 @@ +@import '../variables'; + +#back-to-top { + display: none; + position: fixed; + right: 0; + bottom: 40px; + width: 40px; + z-index: 99; + transition: color .2s ease, background-color .2s ease; +} + +.back-to-top__button { + background-color: $ubc-blue; + font-weight: 400; + font-size: .9em; + color: #fff; + display: inline-block; + padding: 14px; + margin: 0; + cursor: pointer; + width: auto; + border: none; + text-decoration: none; + opacity: 0.75; + + &:hover { + opacity: 0.9; + } + i { + color: #fff; + } +} + diff --git a/public/themes/custom/ubccs/sass/components/_big-quote.scss b/public/themes/custom/ubccs/sass/components/_big-quote.scss new file mode 100644 index 0000000..5dd5a13 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_big-quote.scss @@ -0,0 +1,28 @@ +@import '../variables'; + +.big-quote { + font-family: $font-family-serif; + font-size: 2.5rem; + font-style: italic; + + text-align: center; + + padding: 3rem 4rem; + + position: relative; + z-index: 0; + + &:before { + position: absolute; + top: 0; + left: 0; + z-index: -1; + vertical-align: baseline; + + content: '“'; + + font-size: 20rem; + line-height: 1; + color: $gray-lighter; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_breadcrumbs.scss b/public/themes/custom/ubccs/sass/components/_breadcrumbs.scss new file mode 100644 index 0000000..f281aa1 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_breadcrumbs.scss @@ -0,0 +1,38 @@ +@import '../variables'; + +.breadcrumb { + padding: .5rem; + + line-height: 1.5rem; + + color: $gray-light; + text-transform: uppercase; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.breadcrumb li { + line-height: 1.5rem; +} + +.breadcrumb li::before { + content: '/'; + display: inline-block; + margin: 0 .5em 0; + color: $gray-light; +} + +.breadcrumb li:first-child:before { + content: none; +} + +// Override CLF. +.breadcrumb a { + color: $teal; +} + +// Override CLF. +.breadcrumb .active { + color: $gray-light; +} diff --git a/public/themes/custom/ubccs/sass/components/_button.scss b/public/themes/custom/ubccs/sass/components/_button.scss new file mode 100644 index 0000000..d32a2ff --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_button.scss @@ -0,0 +1,267 @@ +@import "../variables"; + +// Buttons. +// Not touching bootstrap .btn class buttons. + +// Classy override. +.button, +.image-button { + margin-left: 0; + margin-right: 0; +} + +%button { + display: inline-block; + padding: .7rem 1.7rem; + + border: 0; + border-radius: .2rem; + + // Override CLF. + background: none; + text-decoration: none; + + transition: all .5s cubic-bezier(0.165, 0.84, 0.44, 1); + + // Default offset. + outline-offset: 2px; + + &.button--hover, + &.button--focus, + &:hover, + &:focus { + text-decoration: none; + outline: none; + } + + &.button--focus, + &:focus { + // Prevent focus ring being covered by next siblings. + z-index: 10; + outline: 1px dotted $teal; + } + + &.button--active, + &:active { + transition: none; + } +} + +.button { + @extend %button; +} + +.field-add-more-submit.button { + font-size: .8em; +} + +.button.form-submit, +%button--primary { + border-color: $teal; + background-color: $teal; + color: #fff; + + &.button--hover, + &:hover { + background-color: darken($teal, 10%); + color: #fff; + box-shadow: 0 1px 2px hsla(203, 10%, 10%, 0.25); + } + + &.button--active, + &:active { + background-color: $dark-teal; + box-shadow: inset 0 1px 3px hsla(0, 0%, 0%, 0.2); + } +} +.button--primary { + @extend %button--primary; +} + +%button--secondary { + border-color: $dark-teal; + background-color: $dark-teal; + color: #fff; + //text-shadow: 0 1px hsla(0, 0%, 0%, 0.5); + + &.button--focus, + &.button--hover, + &:hover, + &:focus { + background-color: $dark-teal; + border-color: $dark-teal; + color: #fff; + } + + &.button--hover, + &:hover { + background-color: darken($teal, 10%); + box-shadow: 0 1px 2px hsla(203, 10%, 10%, 0.25); + } + + &.button--active, + &:active { + background-color: darken($dark-teal, 5%); + box-shadow: inset 0 1px 3px hsla(0, 0%, 0%, 0.2); + } +} + +.button--secondary { + @extend %button--secondary; +} + +/** + * Overrides styling from system.theme. + */ +.button-action::before { + margin-left: -0.2em; + padding-right: 0.2em; + font-size: 0.875rem; + line-height: 16px; +} +[dir="rtl"] .button-action::before { + margin-right: -0.2em; + margin-left: 0; + padding-right: 0; + padding-left: 0.2em; +} + +/* Link actions. */ + +/** + * Style a clickable/tappable element as a link. Duplicates the base style for + * the tag, plus a reset for padding, borders and background. + */ +.link { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + background: none; + text-decoration: none; + + color: $teal; + + &:hover, + &:active { + text-decoration: underline; + color: $dark-teal; + } +} + +/** + * We've temporarily added the danger button here, bit of a harsh reset but we + * need it. + * @todo replace with link--danger. + * See https://www.drupal.org/node/2123731 + */ +.button--danger { + display: inline; + cursor: pointer; + padding: 0; + border: 0; + box-shadow: none; + background: none; + color: #c72100; + text-decoration: underline; + + &.button--focus, + &.button--hover, + &.button--active, + &:hover, + &:focus, + &:active { + color: #ff2a00; + text-decoration: underline; + text-shadow: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; + } + + &:disabled, + &.is-disabled { + color: #737373; + cursor: default; + text-decoration: none; + padding: 0; + border: 0; + box-shadow: none; + background: none; + } +} + +%button--outline, +.button--outline { + color: $teal; + box-shadow: inset 0 0 0 2px $teal; + + &.button--hover, + &:hover { + box-shadow: inset 0 0 0 2px darken($teal, 10%); + color: darken($teal, 10%); + } + + &.button--active, + &:active { + background-color: rgba(255, 255, 255, .3); + color: $dark-teal; + box-shadow: inset 0 0 0 2px $dark-teal; + } + +} + +.button--inverse { + color: #fff; + box-shadow: inset 0 0 0 2px #fff; + + &.button--hover, + &.button--active, + &:hover, + &:active { + background-color: rgba(255, 255, 255, .2); + color: #fff; + } + + &.button--active, + &:active { + background-color: rgba(255, 255, 255, .3); + } +} + +%button--large, +.button--large { + border-radius: .3rem; + font-size: 2rem; + padding: 1rem 2rem; +} + +%button--small, +.button--small { + font-size: 1.5rem; + padding: .5rem 1.5rem; +} + +// Last to override. +.button:disabled, +.button:disabled:active, +.button.is-disabled, +.button.is-disabled:active { + background-color: #ededed; + box-shadow: none; + color: #5c5c5c; + cursor: default; + text-shadow: 0 1px hsla(0, 0%, 100%, 0.6); +} + +// Read more buttons. +.read-more { + margin-top: 2rem; +} + +.read-more__link { + @extend %button; + @extend %button--outline; + @extend %button--small; +} diff --git a/public/themes/custom/ubccs/sass/components/_calendar.scss b/public/themes/custom/ubccs/sass/components/_calendar.scss new file mode 100644 index 0000000..1fb905e --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_calendar.scss @@ -0,0 +1,15 @@ +.view-event-calendar .view-content { + clear:both; +} +.view-event-calendar .pager ul.js-pager__items { + padding-left: 0; +} +.view-event-calendar .pager ul.js-pager__items li.pager__item--previous { + float: left; +} +.view-event-calendar .pager ul.js-pager__items li.pager__item--next { + float: right; +} +.view-event-calendar .calendar-granularity a{ + padding: 0 10px; +} diff --git a/public/themes/custom/ubccs/sass/components/_caption.scss b/public/themes/custom/ubccs/sass/components/_caption.scss new file mode 100644 index 0000000..4013199 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_caption.scss @@ -0,0 +1,41 @@ + +// Caption filter: default styling for displaying image captions. +// Essentials, based on https://stackoverflow.com/a/13363408. +.caption { + display: table; +} +.caption > * { + display: block; + max-width: 100%; +} +.caption > figcaption { + display: table-caption; + max-width: none; + caption-side: bottom; +} + +// Media captions. +.media + figcaption { + background: $burnt-sienna; + color: #fff; +} + +.caption .media .field { + // Remove gap under inline elements like iframe or img. + line-height: 1; +} + +/* Override clf's default blockquote and pre styles when captioned. */ +.caption-pre > pre, +.caption-blockquote > blockquote { + margin: 0; +} +.caption-blockquote > figcaption::before { + content: "— "; +} +.caption-blockquote > figcaption { + text-align: left; +} +[dir="rtl"] .caption-blockquote > figcaption { + text-align: right; +} diff --git a/public/themes/custom/ubccs/sass/components/_card.scss b/public/themes/custom/ubccs/sass/components/_card.scss new file mode 100644 index 0000000..db008e3 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_card.scss @@ -0,0 +1,120 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +.cards { + display: flex; + flex-wrap: wrap; + justify-content: center; + + width: 100%; +} + +.card-wrapper { + display: flex; + justify-content: center; + + padding: 0; + width: 100%; + margin-bottom: 2rem; + + @include media-breakpoint-up(sm) { + width: 50%; + } + + @include media-breakpoint-up(md) { + width: 33.33%; + } +} + +.card { + text-decoration: none; + color: inherit; + + padding: 2rem; + + max-width: 320px; + width: 100%; + + border: 1px solid $gray-light; + + box-shadow: 0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24); + + // Layout. + display: flex; + flex-direction: column; + + &:hover, + &:focus, + &:active { + background-color: #efefef; + text-decoration: none; + color: inherit; + + box-shadow: 0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22); + transition: all .3s cubic-bezier(.25,.8,.25,1); + } + + .button { + border: 2px solid transparent; + } + + &:focus .button, + &:active .button, + &:hover .button { + background-color: $white; + border: 2px solid $teal; + color: $teal; + } + + img { + max-width: 100%; + height: auto; + } + + span { + display: block; + } + + .card-title, + .card-text { + margin-top: 1rem; + margin-bottom: 1rem; + } + + .card-title { + color: $teal; + font-size: 2rem; + font-weight: 700; + line-height: 1.3; + + text-decoration: underline; + text-decoration-skip-ink: auto; + transition: color 0.5s ease-in; + } + + :hover .card-title, + :active .card-title { + color: $dark-teal; + } + + .card-text { + line-height: 1.3; + } + + .card-body { + // Removed extra padding for Task-4631-106. + //padding: 0 1.25rem; + flex: 1 0 auto; + } + + .card-footer { + flex: 0 1 auto; + background: transparent; + border: 0 none; + margin-top: 1rem; + } +} + +.card-body * { + margin-bottom: 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_cart.scss b/public/themes/custom/ubccs/sass/components/_cart.scss new file mode 100644 index 0000000..d25d54b --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_cart.scss @@ -0,0 +1,13 @@ +.cart td { + vertical-align: middle; +} + +.cart-form td { + + // Too much space taken up in side a table when usually only one form element + // is visible. + .form-item, + .form-actions { + margin: 0; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_chevron.scss b/public/themes/custom/ubccs/sass/components/_chevron.scss new file mode 100644 index 0000000..67c80ee --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_chevron.scss @@ -0,0 +1,26 @@ +.chevron::after { + border-style: solid; + border-width: 0.2em 0.2em 0 0; + content: ''; + display: inline-block; + height: 0.45em; + left: 0.15em; + position: relative; + transform: rotate(-45deg); + vertical-align: middle; + width: 0.45em; +} + +.chevron.right::after { + left: 0; + transform: rotate(45deg); +} + +.chevron.bottom::after { + transform: rotate(135deg); +} + +.chevron.left::after { + left: 0.25em; + transform: rotate(-135deg); +} diff --git a/public/themes/custom/ubccs/sass/components/_courses.scss b/public/themes/custom/ubccs/sass/components/_courses.scss new file mode 100644 index 0000000..2d2ad94 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_courses.scss @@ -0,0 +1,61 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +.course-section-info { + border: 1px solid #cecece; + margin: 20px auto; +} +.course-section-info-header { + padding: 0 20px; +} +.course-section-info table { + width: 100%; + margin-bottom: 0; +} +.course-section-table-header { + background: #005554; + color: #fff; + text-transform: uppercase; +} +.course-section-table-header > tr > th { + font-weight: inherit; +} +.course-section-table-body > tr { + cursor: pointer; + white-space: nowrap; +} +.course-section-table-body > tr.open, .course-section-table-body > tr:hover { + background: #efefef; +} +.course-section-table-body > tr.child { + cursor: auto; + white-space: inherit; +} +.course-section-table-body > tr.child:hover { + background: none; +} +.course-section-info-details { + text-align: center; +} +.open .course-section-info-toggle { + background-color: #dfe3eb; + +} +.course-ssc-link-wrapper, .course-section-ssc-link { + float: right; +} + +/* Responsive */ +@include media-breakpoint-down(md) { +.course-section-info .views-field-field-course-days, +.course-section-info .views-field-field-course-end-time { + display: none; + } +} +@include media-breakpoint-down(sm) { +.course-section-info .views-field-field-course-term, +.course-section-info .views-field-field-course-room, +.course-section-info .views-field-field-course-instructors { + display: none; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_details.scss b/public/themes/custom/ubccs/sass/components/_details.scss new file mode 100644 index 0000000..0f10f2e --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_details.scss @@ -0,0 +1,72 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +details { + padding: 0.5rem 0; + border: 0; + margin-top: 1rem; + margin-bottom: 1rem; +} + +details > .node__content { + padding-left: 1rem; + padding-right: 1rem; +} + +.details--small { + margin-top: 0.5rem; + margin-bottom: 0.5rem; + border: 0; + + summary { + font-weight: bold; + font-size: 1.7rem; + } +} + +details > .details-wrapper { + padding-left: 1rem; + padding-right: 1rem; +} + +.details-wrapper { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.details-wrapper > :last-child { + margin-bottom: 1rem; +} + +details > summary { + list-style: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details summary { + font-size: 2rem; + background-repeat: no-repeat; + background-position: right 1rem top 50%; + background-size: 1.7rem 1.7rem; + color: $teal; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 29H35V11a3 3 0 00-6 0v18H11a3 3 0 000 6h18v18a3 3 0 006 0V35h18a3 3 0 000-6z' fill='%2300afa4'/%3E%3C/svg%3E"); + border-bottom: 1px solid $dark-teal; + padding-right: 3rem; + padding-left: 1rem; +} + +details[open] summary { + border-bottom-width: 3px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M53 34H11a3 3 0 010-6h42a3 3 0 010 6z' fill='%2300afa4'/%3E%3C/svg%3E"); +} + +@include media-breakpoint-down(sm) { + details summary { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_expand-collapse.scss b/public/themes/custom/ubccs/sass/components/_expand-collapse.scss new file mode 100644 index 0000000..41c040f --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_expand-collapse.scss @@ -0,0 +1,3 @@ +.expand-collapse { + text-align: right; +} diff --git a/public/themes/custom/ubccs/sass/components/_faq.scss b/public/themes/custom/ubccs/sass/components/_faq.scss new file mode 100644 index 0000000..76913b4 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_faq.scss @@ -0,0 +1,7 @@ +// @todo preferably this would be an h3 in the template with the grouping +// level context. +.view-faqs .view-grouping-content h2 { + // Treat like an h3. + font-size: 2.5rem; + font-weight: 700; +} diff --git a/public/themes/custom/ubccs/sass/components/_field.scss b/public/themes/custom/ubccs/sass/components/_field.scss new file mode 100644 index 0000000..99aa740 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_field.scss @@ -0,0 +1,41 @@ +.field--label-inline .field__label, +.field--label-inline .field__items { + // Override core. + float: none; + display: inline-block; +} + +.field--label-inline { + display: flex; + flex-wrap: wrap; +} + +.field--label-inline .field__item { + vertical-align: top; +} + +.field--label-inline .field__label, +.field--label-inline > .field__item { + padding-right: 0.5rem; +} + +.field + .field { + margin-top: 1rem; +} + +.field--label-inline .field + .field { + margin-top: 0; +} + +// Generally fields are following a clearfix class so remove the excess +// whitespace. +.field__label h2 { + margin-top: 1.7rem; +} + +.field--name-field-tags .field__items { + display: flex; + .field__item { + margin: 0 5px; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_form.scss b/public/themes/custom/ubccs/sass/components/_form.scss new file mode 100644 index 0000000..a508c3a --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_form.scss @@ -0,0 +1,259 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +/** + * Form elements. + */ + +.fieldgroup { + min-width: 0; + + // Remove background color from fieldset. + background-color: transparent; +} + +.form-item, +.form-actions { + margin: 0.75em 0; +} + +.form-type-checkbox { + padding: 0; +} + +label.error { + color: #a51b00; +} +.form-item label.option { + text-transform: none; +} +.form-item label.option input { + vertical-align: middle; +} +.form-disabled label { + color: #737373; +} +.form-disabled input.form-text, +.form-disabled input.form-tel, +.form-disabled input.form-email, +.form-disabled input.form-url, +.form-disabled input.form-search, +.form-disabled input.form-number, +.form-disabled input.form-color, +.form-disabled input.form-file, +.form-disabled textarea.form-textarea, +.form-disabled select.form-select { + border-color: #d4d4d4; + background-color: hsla(0, 0%, 0%, .08); + box-shadow: none; +} +.form-item input.error, +.form-item textarea.error, +.form-item select.error { + border-width: 1px; + border-color: #e62600; + background-color: hsla(15, 75%, 97%, 1); + box-shadow: inset 0 5px 5px -5px #b8b8b8; + color: #a51b00; +} +.form-item textarea.error + .cke { + border-width: 1px; + border-color: #e62600; +} +.form-item input.error:focus, +.form-item textarea.error:focus, +.form-item select.error:focus { + border-color: #e62600; + outline: 0; + box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 0 8px 1px #e62600; + background-color: #fcf4f2; +} +.form-required:after { + background-size: 7px 7px; + width: 7px; + height: 7px; +} +.form-item--error-message { + margin-top: 0.15em; + color: #e32700; +} +.fieldset-wrapper > .form-item--error-message { + margin-top: 0; +} +.text-format-wrapper .form-item--error-message { + border: solid #ccc; + border-width: 0 1px; + margin: 0; + padding: 0.25em 0.666em 0; +} + +/* Filter */ +ul.tips, +div.description, +.form-item .description { + margin: 0.3rem 0 0 0; + color: #595959; + font-size: 0.95em; +} +.form-item .description.error { + margin-top: 0; + color: #a51b00; +} + +ul.tips li { + margin: 0.25em 0 0.25em 1.5em; /* LTR */ +} +[dir="rtl"] ul.tips li { + margin: 0.25em 1.5em 0.25em 0; +} +.form-type-radio .description, +.form-type-checkbox .description { + margin-left: 1.5em; /* LTR */ +} +[dir="rtl"] .form-type-radio .description, +[dir="rtl"] .form-type-checkbox .description { + margin-left: 0; + margin-right: 1.5em; +} + +.form-text, +.form-textarea, + // CLF Fix. +input[type="text"] { + font-size: 1em; + line-height: normal; +} + +input.form-autocomplete, +input.form-text, +input.form-tel, +input.form-email, +input.form-url, +input.form-search, +input.form-number, +input.form-color, +input.form-file, +input.form-date, +input.form-time, +textarea.form-textarea { + // CLF Fix. + height: auto; + line-height: inherit; + + border-radius: 2px; + border-color: #b8b8b8; + border-top-color: #999; + + background: #fcfcfa; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .125); + font-size: 1em; + color: #595959; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +select.form-select { + border-color: #b8b8b8; + border-top-color: #999; +} + +.form-text:focus, +.form-tel:focus, +.form-email:focus, +.form-url:focus, +.form-search:focus, +.form-number:focus, +.form-color:focus, +.form-file:focus, +.form-textarea:focus, +.form-date:focus, +.form-time:focus, +// CLF override. +input[type="text"]:focus { + border-color: $teal; + outline: 0; + background-color: #fff; +} + +// CLF override. +input[type="text"]:focus { + box-shadow: none; +} + +.confirm-parent, +.password-parent { + overflow: visible; + width: auto; +} + +.form-item-options-group-info-identifier, +.form-item-pass .description { + clear: both; +} + +/** + * Improve spacing of cancel link. + */ +#edit-cancel { + margin-left: 10px; /* LTR */ +} +[dir="rtl"] #edit-cancel { + margin-left: 0; + margin-right: 10px; +} + +/** + * Improve form element usability on narrow devices. + */ +@include media-breakpoint-down(sm) { + input.form-autocomplete, + input.form-text, + input.form-tel, + input.form-email, + input.form-url, + input.form-search, + input.form-number, + input.form-color, + input.form-file, + textarea.form-textarea { + width: 100%; + font-size: 1.2em; + line-height: 1.2em; + } + input.form-number { + width: auto; + } + .form-actions input, + .form-wrapper input[type="submit"] { + float: none; + margin-left: 0; + margin-right: 0; + margin-top: 10px; + padding-bottom: 6px; + width: 100%; + } + .form-actions input:first-child, + .form-wrapper input[type="submit"]:first-child { + margin-top: 0; + } + + .password-strength { + width: 100%; + } + div.form-item div.password-suggestions { + float: none; + } + + #edit-cancel { + display: block; + margin: 10px 0 0 0; + } + select { + width: 100%; + } +} + +/* Exceptions */ +#diff-inline-form select, +div.filter-options select { + padding: 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_full-calendar.scss b/public/themes/custom/ubccs/sass/components/_full-calendar.scss new file mode 100644 index 0000000..bf22493 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_full-calendar.scss @@ -0,0 +1,13 @@ + +.node .fc-head-container { + padding: 0; + border: 0; +} + +.node .fc-widget-content { + padding: 0; +} + +.fc-widget-header table { + margin: 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_home-banner.scss b/public/themes/custom/ubccs/sass/components/_home-banner.scss new file mode 100644 index 0000000..9cc624d --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_home-banner.scss @@ -0,0 +1,65 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +.home-banner { + position: relative; + margin-top: 0; + + img { + width: 100%; + height: 100%; + + // Keep line-height from affecting the background. + display: block; + } +} + +@include media-breakpoint-up(lg) { + .field--name-field-home-banner-image { + outline: 1rem #fff solid; + margin-top: 1rem; + margin-bottom: 1rem; + } +} + +.home-banner a { + // Remove the underline on mobile. + text-decoration: none; +} + +.home-banner__title { + width: 100%; + + background: darken($burnt-sienna, 30%); + padding: 1.5rem 2rem; + + @include media-breakpoint-up(sm) { + position: absolute; + left: 0; + bottom: 0; + background: rgba(darken($burnt-sienna, 30%), 0.9); + } + + @include media-breakpoint-up(md) { + width: 75%; + bottom: 3rem; + } + + .field { + color: $white; + + @include media-breakpoint-only(xs) { + text-align: center; + } + + @include media-breakpoint-up(md) { + font-size: 2.5rem; + font-weight: normal; + line-height: 1.2; + } + + @include media-breakpoint-up(lg) { + font-size: 3rem; + } + } +} diff --git a/public/themes/custom/ubccs/sass/components/_home.scss b/public/themes/custom/ubccs/sass/components/_home.scss new file mode 100644 index 0000000..e4d7929 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_home.scss @@ -0,0 +1,186 @@ +@import '../variables'; + +// Embeded videos need spacing on home. +.container-home .media { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.view-home-page-banners { + max-width: 100%; +} + +.home__icons { + background-color: $gray-lighter; +} +.home__cards { + margin-top: 0px; + display: flex; + flex-wrap: wrap; + justify-content: center; + width: 100%; +} + +.home__card-wrapper { + display: flex; + justify-content: center; + padding: 0; +} + +.home__card { + text-decoration: none; + color: inherit; + padding: 2rem; + //max-width: 320px; + width: 100%; + display: flex; + flex-direction: column; +} + +.home__card-header { + font-size: 4rem; + color: $unit-color; +} + +.home__card-title { + font-size: 2.2rem; + font-weight: 700; + line-height: 1.3; + color: $dark-teal; + margin-top: 1rem; + margin-bottom: 1rem; + display: block; +} + +.home__card-text { + font-size: 1.4rem; +} + +// Remove margin on top and bottom and only leave in between. +.home__card-text p { + margin: 0; +} +.home__card-text p + p { + margin-top: 1.7rem; +} + +// Space around the card buttons. +.home__card-text .button { + margin: .2rem; +} + + +.home__widgets { + display: flex; + flex-wrap: wrap; + + .home__widgets-block { + h2 { + line-height: 1; + + &::after { + width: 100%; + height: 3px; + background-color: $unit-color; + margin: 0 auto; + content: ''; + display: inline-block; + } + } + + .views-element-container { + flex-grow: 1; + + .views-row:last-child .views-field-nothing { + display: none; + } + } + } + + .views-row { + margin-bottom: 1rem; + } +} +.tweets { + max-height: 650px; + overflow-y: scroll; +} +.tweet-header { + display: flex; + align-items: flex-start; +} +.tweet-header-info p { + font-weight:normal; + margin-top: 5px; +} + +.twitter-avator { + border-radius: 100px; + width: 48px; + margin-right: 15px; + vertical-align: middle; +} +.tweet__wrap { + margin: auto 0; + padding: 10px 20px; + border-bottom: 2px solid #e6e6e6; + cursor: pointer; + max-width: 100%; + &:hover, + &:focus, + &:active { + background-color: #efefef; + text-decoration: none; + color: inherit; + } +} +.tweet__img-wrap { + padding-left: 60px; +} + +.tweet__footer { + display: flex; +} +.tweet__footer svg { + color: #657786; + margin-right: 10px; +} +.tweet__footer svg:hover { + color: #ff1493; +} +.tweet__retweet { + display: flex; + margin-bottom: 10px; + font-size: 1.4rem; +} +.tweet__retweet svg { + margin-right: 10px; +} +.tweet__user { + display: flex; +} +.tweet__text { + margin: 10px auto; +} +.tweet__date { + color: $gray-light; +} +.view-twitter { + margin-top: 10px; +} + +@media screen and (max-width:430px){ + + .tweet-header { + flex-direction:column; + } + .tweet-header img { + margin-bottom: 20px; + } + .tweet-header-info p { + margin-bottom: 30px; + } + .tweet__img-wrap { + padding-left: 0; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_image.scss b/public/themes/custom/ubccs/sass/components/_image.scss new file mode 100644 index 0000000..9126a9a --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_image.scss @@ -0,0 +1,5 @@ + +.node__header_image img { + width: 100%; + height: auto; +} diff --git a/public/themes/custom/ubccs/sass/components/_industry.scss b/public/themes/custom/ubccs/sass/components/_industry.scss new file mode 100644 index 0000000..b9468a7 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_industry.scss @@ -0,0 +1,113 @@ + +.block-sponsor-logos { + margin-bottom: 1rem; + margin-top: 1rem; + + &--gold, + &--silver, + &--bronze { + padding: 2rem 0; + } + + .field__item { + padding: 1rem; + } + + img { + object-fit: contain; + } + + &--gold, + &--silver, + &--none { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + } + + &--gold img, + &--silver img, + &--none img { + width: 150px; + max-height: 80px; + } + + &--gold { + border: 3px solid gold; + } + + &--silver { + border: 3px solid silver; + + img { + width: 120px; + } + } + + &--bronze { + border: 3px solid lighten(#ad8a56, 10%); + + column-gap: 20px; + column-count: auto; + column-width: 150px; + + h3:first-child, + h4:first-child { + margin-top: 0; + } + + p { + display: inline-block; + margin: 1rem 0; + } + } +} + +.block-sponsor-logos > div.field--name-field-logos { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-items: center; +} + +#block-60853 { + display: flex; + justify-content: center; +} + +.tag { + color: white; + font-size: 0.75em; + + background-clip: padding-box; + + border: 2px solid #fff; + border-radius: 0.5em; + + margin-left: 0.5em; + text-transform: uppercase; + + padding: 0 0.25em; +} + +.tag--undergrad { + background-color: crimson; + border-color: rgba(crimson, 0.5); +} + +.tag--grad { + background-color: lightskyblue; + border-color: rgba(lightskyblue, 0.5); +} + +.tag--alumni { + background-color: green; + border-color: rgba(green, 0.5); +} + +.tag--research { + background-color: orange; + border-color: rgba(orange, 0.5); +} diff --git a/public/themes/custom/ubccs/sass/components/_inline-block.scss b/public/themes/custom/ubccs/sass/components/_inline-block.scss new file mode 100644 index 0000000..efab2cf --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_inline-block.scss @@ -0,0 +1,47 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +.inline-block-left, +.inline-block-right { + @include media-breakpoint-up(md) { + max-width: 260px; + width: 100%; + } + + margin: 0 0 1rem 0; + padding: 2rem; + + background-color: $dark-teal; + color: #fff; + + h2, + h3, + h4, + a { + color: #fff; + } + + h2, + h3, + h4 { + margin-top: 0; + } +} + +.inline-block-left { + @include media-breakpoint-up(md) { + float: left; + clear: left; + } + + margin-right: 2rem; +} + +.inline-block-right { + @include media-breakpoint-up(md) { + float: right; + clear: right; + } + + margin-left: 2rem; +} diff --git a/public/themes/custom/ubccs/sass/components/_landing-banner.scss b/public/themes/custom/ubccs/sass/components/_landing-banner.scss new file mode 100644 index 0000000..2f9665c --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_landing-banner.scss @@ -0,0 +1,61 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +.landing-banner { + position: relative; + margin-top: 0; + + img { + width: 100%; + height: 100%; + + // Keep line-height from affecting the background. + display: block; + } +} + +@include media-breakpoint-up(lg) { + .landing-banner__image { + background-color: darken($burnt-sienna, 20%); + } + + .field--name-field-landing-banner-image { + outline: 1rem #fff solid; + margin-top: 1rem; + margin-bottom: 1rem; + } +} + +.landing-banner__title { + width: 100%; + + @include media-breakpoint-up(sm) { + position: absolute; + left: 0; + bottom: 0; + + background: rgba(darken($burnt-sienna, 30%), 0.6); + padding: 2rem; + } + + @include media-breakpoint-up(md) { + width: 75%; + bottom: 3rem; + } + + @include media-breakpoint-up(lg) { + width: 50%; + } + + h1 { + @include media-breakpoint-only(xs) { + text-align: center; + } + + @include media-breakpoint-up(sm) { + font-weight: bold; + color: $white; + margin: 0; + } + } +} diff --git a/public/themes/custom/ubccs/sass/components/_landing-cards.scss b/public/themes/custom/ubccs/sass/components/_landing-cards.scss new file mode 100644 index 0000000..f945247 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_landing-cards.scss @@ -0,0 +1,11 @@ +@import '../variables'; +// Divider between landing cards and anything after (typically body field). +.landing-cards + .field::before { + width: 50%; + max-width: 220px; + height: 3px; + background-color: $burnt-sienna; + margin: 3rem auto 0; + content: ''; + display: block; +} diff --git a/public/themes/custom/ubccs/sass/components/_landing-intro.scss b/public/themes/custom/ubccs/sass/components/_landing-intro.scss new file mode 100644 index 0000000..e4697c1 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_landing-intro.scss @@ -0,0 +1,29 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +.landing-intro { + max-width: 90rem; + width: 90%; + margin: 2rem auto; + text-align: center; + + p { + font-style: italic; + font-size: 1.8rem; + + @include media-breakpoint-up(sm) { + font-size: 2.2rem; + } + } + + // Disable divider.card-wrapper + //&::after { + // width: 50%; + // max-width: 220px; + // height: 3px; + // background-color: $burnt-sienna; + // margin: 0 auto; + // content: ''; + // display: inline-block; + //} +} diff --git a/public/themes/custom/ubccs/sass/components/_landing.scss b/public/themes/custom/ubccs/sass/components/_landing.scss new file mode 100644 index 0000000..efc5012 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_landing.scss @@ -0,0 +1,23 @@ + +// Remove partial underline on all landing pages. +.node--type-landing .page-title::after { + display: none; +} + +.node--type-landing .views-element-container, +.node--type-landing .block { + // 80 characters per line. + max-width: 80ch; + margin: 0 auto; +} + +// Separate the node content from blocks under it. +.node--type-landing .node__content + .block::before { + width: 50%; + max-width: 220px; + height: 3px; + background-color: $burnt-sienna; + margin: 0 auto; + content: ''; + display: inline-block; +} diff --git a/public/themes/custom/ubccs/sass/components/_list.scss b/public/themes/custom/ubccs/sass/components/_list.scss new file mode 100644 index 0000000..6890a4e --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_list.scss @@ -0,0 +1,15 @@ +// Commented due to sliders and other things getting overridden +// due to selectivity. + +//.node ol, +//.node ul { +// margin-bottom: 24px; +//} +// +//.node ul li ul { +// margin: .5em 0 0; +//} +// +//.node li { +// margin-bottom: 0.5em; +//} diff --git a/public/themes/custom/ubccs/sass/components/_media.scss b/public/themes/custom/ubccs/sass/components/_media.scss new file mode 100644 index 0000000..16d8bea --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_media.scss @@ -0,0 +1,19 @@ +.media--type-logo { + display: inline-block; + vertical-align: middle; + + // Remove inline space below image. + div { + line-height: 0; + } + + padding-left: 2rem; + + img { + object-fit: contain; + } +} + +.media--type-logo:first-of-type { + padding-left: 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_menu.scss b/public/themes/custom/ubccs/sass/components/_menu.scss new file mode 100644 index 0000000..fa990e6 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_menu.scss @@ -0,0 +1,133 @@ +@import '../variables'; + +.navbar .nav { + margin: 0; + padding: 0; +} + +.navbar .nav li { + margin: 0; + font-size: $font-size-base; +} + +.navbar .nav > .menu-item--active-trail > .navbar-link { + position: relative; +} + +.navbar .nav > .menu-item--active-trail > .navbar-link::before { + content: ''; + display: block; + + width: 100%; + height: 3px; + background-color: $teal; + + position: absolute; + bottom: 0; + left: 0; + z-index: 2; +} + +// Help stay above things. +#ubc7-unit-menu.navigation-is-sticky { + z-index: 2; +} + +#ubc7-unit-menu .nav > li > a { + color: $dark-teal; + padding: 1rem 1.5rem; + // No dropdown. + height: 45px !important; +} + +#ubc7-unit-menu .dropdown-menu > li > a { + color: $teal; +} + +// Hover affect where available. +#ubc7-unit-menu .dropdown:hover .dropdown-menu { + display: block; +} + +// Menu hover CLF override. +.nav > li > a:hover, +.nav > li > a:focus, +#ubc7-unit-menu .nav-collapse .nav > li > a:hover { + background-color: $teal !important; + transition: all 0.3s cubic-bezier(.25,.8,.25,1); +} + +#ubc7-unit-menu .nav > li.active > a, +.navbar .nav > .active > a { + background: transparent; + box-shadow: none; +} + +.navbar .nav > .active > a:focus, +.navbar .nav > .active > a:hover { + background-color: $teal; + box-shadow: none; + color: #fff; +} + +// Remove border from CLF dropdowns. +.dropdown-menu { + border: 0; + border-radius: 3px; + + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); + transition: all 0.3s cubic-bezier(.25,.8,.25,1); +} +.dropdown-menu:hover { + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); +} + +.dropdown-menu li { + border: 0; +} +.dropdown-menu > li > a { + padding: 1rem 1.5rem; +} + +// Drop menu link size. +.menu--main .dropdown-menu .navbar-link { + font-size: 1.5rem; +} + +#ubc7-unit-menu .nav-collapse .dropdown-menu a:hover, +#ubc7-unit-menu .nav-collapse .nav > li > a:hover { + background-color: $teal !important; +} + +// Footer Quick Links. +.footer-quick-links ul { + margin: 0; + padding: 10px 0; + list-style-type: none; +} +.footer-quick-links ul li { + display: inline; + padding: 0 10px; + border-left: 1px solid $dark-teal; +} +.footer-quick-links ul li:first-child, .footer-quick-links ul li.admin-page { + border-left: none; +} +.footer-quick-links ul li.admin-page { + float: right; +} + +// Utility Menu. +#ubc7-unit .utility-menu { + float: right; + height: 100%; + + .btn { + background-color: $orange; + color: #fff; + + @include media-breakpoint-up(xl) { + line-height: 3.6rem; + } + } +} diff --git a/public/themes/custom/ubccs/sass/components/_message.scss b/public/themes/custom/ubccs/sass/components/_message.scss new file mode 100644 index 0000000..5a12be5 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_message.scss @@ -0,0 +1,10 @@ +.alert .close { + text-decoration: none; +} + +.alert-danger, +.alert-error { + a { + color: #fff; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_mobile-menu.scss b/public/themes/custom/ubccs/sass/components/_mobile-menu.scss new file mode 100644 index 0000000..17fc963 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_mobile-menu.scss @@ -0,0 +1,44 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +// CLF overrides. +#ubc7-unit-menu .dropdown .btn-group:hover button, +#ubc7-unit-menu .dropdown .btn-group button { + height: 45px !important; +} + +#ubc7-unit .navbar .btn-navbar:active, +#ubc7-unit .navbar .btn-navbar:hover { + box-shadow: none; +} + +#ubc7-unit-navigation .sub-menu--main li a { + color: $teal; +} + + +#ubc7-unit .navbar .btn-navbar, +#ubc7-unit .btn { + box-shadow: none; + width: auto; + padding: 1.2rem; + margin: 0; + background: transparent; + + font-size: 1.7rem; + + height: 100%; +} + +@include media-breakpoint-up(lg) { + // Hide mobile main menu. + #ubc7-unit-navigation .sub-menu--main { + display: none; + } +} +@include media-breakpoint-down(md) { + // Hide desktop main menu. + #ubc7-unit-navigation .menu--main { + display: none; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_news.scss b/public/themes/custom/ubccs/sass/components/_news.scss new file mode 100644 index 0000000..e14c30e --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_news.scss @@ -0,0 +1,45 @@ +@import '../variables'; + +// Set width to max half of the image style. +.news--teaser__image { + max-width: 115px; +} + +.news--teaser__image img { + border-left: 5px solid $teal; + margin: 0 0 2rem; +} + +@include media-breakpoint-up(sm) { + .news--teaser { + display: flex; + } + + .news--teaser__image { + order: 2; + flex-shrink: 0; + } + + .news--teaser__image img { + margin: 0 2rem; + } +} + +.news--teaser__image a { + display: block; + line-height: 0; +} + + +.news--teaser__text { + flex-grow: 1; +} + +// Remove margin from teaser header. +.news--teaser__header { + margin: 0; +} + +.news--teaser__date { + color: $gray-light; +} diff --git a/public/themes/custom/ubccs/sass/components/_node.scss b/public/themes/custom/ubccs/sass/components/_node.scss new file mode 100644 index 0000000..f2ca67f --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_node.scss @@ -0,0 +1,75 @@ +@import '../variables'; + +.node > :not(div, header, footer, table) { + // Line measure. + max-width: 72rem; +} + +.node__meta { + // Wrap if flex. + flex-basis: 100%; +} + +.layout__region--content > .field, +.page-title { + // Line measure. + max-width: 72rem; +} + +.node__submitted { + color: $gray-light; + margin: 1rem 0 2rem; + font-size: 1.5rem; +} + +.node--unpublished { + position: relative; + + &::before { + position: absolute; + top: 0; + right: 0; + + display: block; + + content: 'DRAFT'; + font-size: 5rem; + opacity: .2; + color: $gray-light; + transform: rotate(40deg); + } +} + +.node--view-mode-full { + // Push page content off the title. + margin-top: 2rem; +} + +.node__additional-content:before { + content: ''; + background-color: $burnt-sienna; + height: 3px; + width: 50%; + display: block; + margin: 3rem auto; +} + +.node__ical { + font-size: 2.5rem; + text-align: right; +} + +// Line length enforcement. +.field--name-body { + h2, + h3, + h4, + h5 { + max-width: 50ch; + } + + li, + p { + max-width: 75ch; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_page.scss b/public/themes/custom/ubccs/sass/components/_page.scss new file mode 100644 index 0000000..58d4239 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_page.scss @@ -0,0 +1,13 @@ +@import '../variables'; + +// Add partial underline on all page titles. +.page-title::after { + content: ''; + display: block; + margin-top: 1rem; + margin-bottom: 1rem; + width: 250px; + height: 3px; + background-color: $burnt-sienna; +} + diff --git a/public/themes/custom/ubccs/sass/components/_pager.scss b/public/themes/custom/ubccs/sass/components/_pager.scss new file mode 100644 index 0000000..15461e8 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_pager.scss @@ -0,0 +1,162 @@ +@import "../variables"; + +// This is for the next_prev module. +.prevnext-element.previous { + float: left; +} +.prevnext-element.next { + float: right; +} + +.prev-next-container { + line-height: 1.5; + margin-top: 1.7rem; + margin-bottom: 1.7rem; + clear: both; +} + +// Pager styles. +/* + * DO NOT EDIT THIS FILE. + * See the following change record for more information, + * https://www.drupal.org/node/3084859 + * @preserve + */ + +/** + * @file + * Styles for Claro's Pagination. + */ + +:root { + /** + * Pager. + */ /* --space-m × 2 */ /* 2px */ +} + +.pager { + margin-top: 1.6rem; + margin-bottom: 1.6rem; +} + +.pager__items { + display: flex; + flex-wrap: wrap; + align-items: flex-end; + justify-content: center; + margin: 1.6rem 0; + padding: 0; + list-style: none; + text-align: center; + font-weight: bold; +} + +.pager__item { + display: inline-block; + margin: 0 0.4rem; +} + +.pager__link, +.pager__item--current { + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + min-width: 3.2rem; + height: 3.2rem; + padding-right: 0.8rem; + padding-left: 0.8rem; + color: $teal; + border-radius: 1.6rem; /* Pager size ÷ 2 */ + background: #fff; /* Make sure that the text is visible on dark background. */ + line-height: 1; +} + +.pager__link:hover, +.pager__link:focus, +.pager__link:active { + text-decoration: underline; +} + +.pager__link:hover, +.pager__link.is-active:hover { + color: $dark-teal; + text-decoration: none; +} + +.pager__link--action-link { + border-radius: 0.2rem; +} + +/* Active number link. */ + +.pager__link.is-active, +.pager__item--current { + text-decoration: none; + color: #fff; + border: 0.2rem solid transparent; + background: $teal; +} + +.pager__item--first .pager__link::before { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M2 2v12M14 2L8 8l6 6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--previous .pager__link::before { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M11 2L5 8l6 6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--next .pager__link::after { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M5 14l6-6-6-6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--last .pager__link::after { + background-image: url("data:image/svg+xml,%3csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M14 14V2M2 14l6-6-6-6' stroke='%2300afa4' stroke-width='2'/%3e%3c/svg%3e"); +} + +.pager__item--first .pager__link::before, +.pager__item--previous .pager__link::before, +.pager__item--next .pager__link::after, +.pager__item--last .pager__link::after { + position: relative; + display: inline-block; + width: 1.6rem; + height: 1.6rem; + content: ""; + background-repeat: no-repeat; + background-position: center; +} + +.pager__item--mini { + margin-right: 0.8rem; + margin-left: 0.8rem; +} + +.pager__link--mini { + border-radius: 50%; +} + +/** + * On the mini pager, remove margins for the previous and next icons. + * Margins are not needed here as there is no accompanying text. + */ + +.pager__link--mini::before { + margin-right: 0; + margin-left: 0; +} + +.pager__item-title--backwards { + margin-left: 0.8rem; +} + +.pager__item-title--forward { + margin-right: 0.8rem; +} + + +@media (-ms-high-contrast: active), (forced-colors: active) { + .pager__item a:hover { + text-decoration: underline; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_permalink.scss b/public/themes/custom/ubccs/sass/components/_permalink.scss new file mode 100644 index 0000000..cb25eab --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_permalink.scss @@ -0,0 +1,8 @@ +@import '../variables'; + +.permalink { + text-decoration: none; + opacity: .5; + color: $gray-dark; + font-size: 0.8em; +} diff --git a/public/themes/custom/ubccs/sass/components/_profile-alumni.scss b/public/themes/custom/ubccs/sass/components/_profile-alumni.scss new file mode 100644 index 0000000..3a7826d --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_profile-alumni.scss @@ -0,0 +1,46 @@ +@import '../variables'; + +.profile-alumni { + display: flex; + flex-wrap: wrap; + + position: relative; + + width: 100%; + margin: 2rem 0; +} + +.profile-alumni__content { + flex-grow: 4; + flex-shrink: 1; + flex-basis: 50%; +} + +.profile-alumni__image { + margin-right: 20px; + flex: 0 0 auto; + width: auto; + max-width: none; + + .image-default, + img { + max-width: 100px; + width: 100px; + height: 100px; + border-radius: 50%; + } + + .image-default { + justify-content: center; + flex-direction: column; + text-align: center; + + background-color: $ubc-grey; + color: $white; + font-size: 5rem; + } +} + +.profile-alumni__name { + font-size: 3rem; +} diff --git a/public/themes/custom/ubccs/sass/components/_profile.scss b/public/themes/custom/ubccs/sass/components/_profile.scss new file mode 100644 index 0000000..f9efc85 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_profile.scss @@ -0,0 +1,221 @@ +@import '../variables'; +@import "../bootstrap-no-output"; + +.profile-display { + display: flex; + flex-wrap: wrap; + margin: 0; + padding: 0; + + .profile-item { + list-style: none; + padding: 1rem; + margin: 0; + display: flex; + flex: 1 1 100%; + } + + @include media-breakpoint-up(sm) { + .profile-item { + flex: 1 1 50%; + + &:first-of-type { + flex: 1 1 100%; + } + } + } +} + +.profile--teaser { + width: 100%; + height: 100%; + position: relative; + + display: flex; + + justify-content: space-between; + flex-wrap: wrap; + flex-direction: column; + flex-grow: 1; + + border: 1px solid #e4e4e4; + border-radius: 1rem; + padding: 3rem; + + &__head { + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + + margin-bottom: 2rem; + text-align: center; + } + + &__image { + margin: auto; + + .image-default, + img { + width: 150px; + height: 150px; + border-radius: 50%; + } + } + + &__content { + width: 100%; + text-align: center; + + & + div { + display: flex; + flex-direction: row; + flex-wrap: wrap; + } + } + + &__content__name { + font-size: 2.4rem; + } +} + +.contact { + display: flex; + flex-wrap: wrap; + flex-direction: row; + + & > .field + .field { + margin: 0; + } + + div { + flex: 1 1 50%; + } + + &-content { + &-job-title { + margin: 0; + font-size: 2rem; + } + } +} + +.field--label-inline { + .profile-people { + display: flex; + flex-wrap: wrap; + position: relative; + width: auto; + + .field--label-inline .field__label, + .field--label-inline > .field__item:nth-child(2) { + padding: 0; + } + } +} + +.contact-content-name, +.contact-content-job-title { + font-size: 2rem; + margin: 0 0 1rem; + display: inline-block; +} + +// Profile Page. +.profile-people { + display: flex; + flex-wrap: wrap; + position: relative; + + width: 100%; + + &__content { + flex-grow: 4; + flex-shrink: 1; + flex-basis: 50%; + } + + &__image { + margin: 20px; + flex: 0 0 auto; + width: auto; + max-width: none; + + @include media-breakpoint-up(sm) { + order: 2; + } + + .image-default, + img { + width: 200px; + height: 200px; + border-radius: 50%; + + padding: 1.2rem; + border: 2px solid $ubc-silver; + } + } +} + +@include media-breakpoint-up(sm) { + .profile-alumni__header { + display: flex; + flex-wrap: wrap; + position: relative; + width: 100%; + } + + .profile-alumni__intro { + width: 100%; + } + .profile-alumni-image { + margin: 20px; + flex: 0 0 auto; + width: auto; + max-width: none; + + order: 2; + .profile-image{ + margin: 0; + } + .profile-image img { + max-width: 200px; + width: 200px; + height: 200px; + border-radius: 50%; + + padding: 1.2rem; + border: 2px solid $ubc-silver; + } + } +} + +.image-default { + display: flex; + justify-content: center; + flex-direction: column; + text-align: center; + + background-color: $ubc-grey; + color: $white; + font-size: 5rem; +} + +// People Listing profile images. +.profile-image img, +.profile-image .image-default { + // Combat default responsive image max-width. + max-width: 100px; + width: 100px; + height: 100px; + border-radius: 50%; +} + +.profile-image .image-default { + font-size: 4rem; +} + +// People Page column min-width +.views-field-field-person-lname { + min-width: 20ch; +} diff --git a/public/themes/custom/ubccs/sass/components/_research.scss b/public/themes/custom/ubccs/sass/components/_research.scss new file mode 100644 index 0000000..a6f1c43 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_research.scss @@ -0,0 +1,30 @@ +@import '../variables'; + +.research-area__label { + display: flex; + + @include media-breakpoint-down(xs) { + flex-direction: column; + align-items: center; + } +} + +.research-area__icon { + color: $burnt-sienna; + display: inline-block; + margin-right: .5rem; + width: 4rem; + flex-shrink: 0; +} + +// Generated for $burnt-sienna https://codepen.io/sosuke/pen/Pjoqqp for SVGs. +.research-area__icon img { + filter: invert(28%) sepia(48%) saturate(1393%) hue-rotate(338deg) brightness(96%) contrast(90%); + width: 3.5rem; +} + +@include media-breakpoint-up(xs) { + .view-id-research > .view-grouping > .view-grouping-content { + padding: 0 4.5rem; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_sidebar.scss b/public/themes/custom/ubccs/sass/components/_sidebar.scss new file mode 100644 index 0000000..fe9a8d0 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_sidebar.scss @@ -0,0 +1,6 @@ +.sidebar__icons { + font-size: 3rem; + a { + padding-right: 10px; + } +} diff --git a/public/themes/custom/ubccs/sass/components/_site-alert.scss b/public/themes/custom/ubccs/sass/components/_site-alert.scss new file mode 100644 index 0000000..5e165c9 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_site-alert.scss @@ -0,0 +1,84 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + +$unit-warning: #ef8843; +$unit-danger: #b33542; +$unit-info: #324d6a; +$unit-success: #95be4f; + +.site-alert { + // Tricks the margin in side not to push things at the top. + display: flex; + + max-width: map_get($container-max-widths, xl); + margin-left: auto; + margin-right: auto; + + h1, + h2, + h3, + h4, + h5 { + color: #fff; + margin-top: 1rem; + margin-bottom: 1rem; + } + p { + margin-top: 0; + margin-bottom: 0; + } + + a, + h4 { + color: #fff; + } +} + +.site-alert-box { + color: #fff; + padding: 15px 35px 15px 15px; + margin-top: 1em; + margin-bottom: 1em; + border-width: 2px; + border-radius: 0; + display: flex; + align-items: center; + width: 100%; +} + +.site-alert-box.severity-low { + background-color: $unit-info; + border-color: #00162f; +} + +.site-alert-box.severity-medium { + background-color: $unit-warning; + border-color: #d77a3c; +} + +.site-alert-box.severity-high { + background-color: $unit-danger; + border-color: #900f1d; +} + +.site-alert__icon { + display: block; + width: 40px; + height: 40px; + + border: 2px solid #fff; + border-radius: 50%; + + font-size: 150%; + text-align: center; + color: #fff; + line-height: calc(40px - 4px); + + margin: 0 20px 0 0; + + flex-shrink: 0; +} + +.site-alert__message { + flex-grow: 1; +} diff --git a/public/themes/custom/ubccs/sass/components/_slick-slider.scss b/public/themes/custom/ubccs/sass/components/_slick-slider.scss new file mode 100644 index 0000000..e9196c6 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_slick-slider.scss @@ -0,0 +1,455 @@ +@charset "UTF-8"; + +@import '../variables'; +@import '../bootstrap-no-output'; + +.home__slider { + max-width: map_get($container-max-widths, xl); + width: 100%; + margin: 0 auto; +} + +// Copied and modified from /libraries/slick/slick/slick-slider.scss + +// Default Variables + +// Slick icon entity codes outputs the following +// "\2190" outputs ascii character "←" +// "\2192" outputs ascii character "→" +// "\2022" outputs ascii character "•" + +$slick-font-path: "/libraries/slick/slick/fonts/" !default; +$slick-font-family: "slick" !default; +$slick-loader-path: "/libraries/slick/slick/" !default; +$slick-arrow-color: white !default; +$slick-dot-color: black !default; +$slick-dot-color-active: $slick-dot-color !default; +$slick-prev-character: "\2190" !default; +$slick-next-character: "\2192" !default; +$slick-dot-character: "\2022" !default; +$slick-dot-size: 6px !default; +$slick-opacity-default: 0.75 !default; +$slick-opacity-on-hover: 1 !default; +$slick-opacity-not-active: 0.25 !default; + +@function slick-image-url($url) { + @return url($slick-loader-path + $url); +} + +@function slick-font-url($url) { + @return url($slick-font-path + $url); +} + +/* Slider */ +.slick-loading .slick-list { + background: #fff slick-image-url("ajax-loader.gif") no-repeat center center; +} + +///* Icons */ +//@if $slick-font-family == "slick" { +// @font-face { +// font-family: "slick"; +// src: slick-font-url("slick.eot"); +// src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg"); +// font-weight: normal; +// font-style: normal; +// } +//} + +/* Arrows */ + +.slick-prev, +.slick-next { + position: absolute; + display: block; + height: 20px; + width: 20px; + line-height: 0; + font-size: 0; + cursor: pointer; + background: transparent; + color: transparent; + top: 50%; + transform: translate(0, -50%); + padding: 0; + border: none; + outline: none; + &:hover, &:focus { + outline: none; + background: transparent; + color: transparent; + &:before { + opacity: $slick-opacity-on-hover; + } + } + &.slick-disabled:before { + opacity: $slick-opacity-not-active; + } +} + +.slick-prev { + left: -25px; + [dir="rtl"] & { + left: auto; + right: -25px; + } +} + +.slick-next { + right: -25px; + [dir="rtl"] & { + left: -25px; + right: auto; + } +} + +/* Dots */ + +.slick-dotted.slick-slider { + margin-bottom: 30px; +} + +.slick-dots { + position: absolute; + bottom: -30px; + list-style: none; + display: block; + text-align: center; + padding: 0; + margin: 0; + width: 100%; + li { + position: relative; + display: inline-block; + height: 20px; + width: 20px; + margin: 0 5px; + padding: 0; + cursor: pointer; + button { + border: 0; + background: transparent; + display: block; + height: 20px; + width: 20px; + outline: none; + line-height: 0; + font-size: 0; + color: transparent; + padding: 5px; + cursor: pointer; + &:hover, + &:focus { + outline: none; + &:before { + opacity: $slick-opacity-on-hover; + } + } + &:before { + position: absolute; + top: 0; + left: 0; + width: 20px; + height: 20px; + font-size: $slick-dot-size; + line-height: 20px; + text-align: center; + color: $slick-dot-color; + opacity: $slick-opacity-not-active; + } + } + &.slick-active button:before { + color: $slick-dot-color-active; + opacity: $slick-opacity-default; + } + } +} + +.slick-wrapper, +.slick, +.slick * { + box-sizing: border-box; +} + +.slick img { + height: auto; +} + +.slick img, +.slick iframe { + border: 0; + max-width: 100%; +} + +/* Prevents overflowing nested slides. */ +.slick, +.slick-wrapper { + max-width: 100%; + position: relative; +} + +/** + * Misc overrides core slick. + */ +.slick-initialized { + overflow: visible; +} + +.slick__slider::before, +.slick__slider::after { + display: table; + content: ''; +} + +.slick__slider::after { + clear: both; +} + +/** Draggable. */ +.draggable { + cursor: grab; +} + +.draggable:active { + cursor: grabbing; +} + +.draggable:active a, +.draggable:active .slide__caption { + cursor: grabbing; + user-select: none; +} + +/** Visibility fix for stacking slides during initialization. */ +.slick__slide { + max-width: 100%; + position: absolute; + visibility: hidden; +} + +/** Prevents collapsing container during initialization. */ +.slick__slide.slide--0 { + position: relative; +} + +.unslick .slick__slide, +.slick-initialized .slick__slide { + position: relative; + visibility: visible; +} + +/* Fix for Chrome blue outline */ +.slick__slide:focus { + outline: 0; +} + +/* Prevents collapsing slick when unslick like one item. */ +.unslick .slick__slide { + width: 100%; +} + +.slick-current { + z-index: 4; +} + +/** + * Slide layouts, adjust accordingly per actual container slide. + */ +.slide__content, +.grid__content { + position: relative; +} + +.slide__content::after { + content: ""; + display: table; + clear: both; +} + +.slide__title { + margin: 10px 0 5px; + line-height: 1.2; +} + +.slide__link { + margin: 30px auto; +} + +/* Overrides .slick-slider to make caption text selectable. */ +.slide__caption { + cursor: text; + -moz-user-select: text; + -ms-user-select: text; + -o-user-select: text; + -webkit-user-select: text; + user-select: text; + width: 100%; +} + +/* Only display when JS is ready. */ +.slick__arrow, +.is-loading .slide__caption { + visibility: hidden; +} + +/** Arrows are outside slick-initialized. */ +.slick--initialized .slick__arrow { + visibility: visible; +} + +.slick--main .slide__caption { + min-height: 32%; + padding: 20px 0; + z-index: 3; +} + +.slick--thumbnail .slide__caption { + padding: 5px 6px; +} + +/** + * Skins. + * Arrows contained/wrapped within slick__arrow for easy moves. + */ +/* Overrides problematic hidden arrows at core slick.css */ +.slick-prev { + left: 0; +} + +.slick-next { + right: 0; +} + +.slick__arrow { + bottom: auto; + height: 2px; + left: 0; + margin-top: -1px; + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 100%; + z-index: 2; +} + +/** Keeps decent fallback for when slick-theme.css is disabled, even if dup. */ +.slick-arrow { + border: 0; + border-radius: 50%; + font-size: 0; + height: 42px; + pointer-events: auto; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 42px; + margin: 0 1rem; +} + +.slick-arrow:active, +.slick-arrow:focus { + box-shadow: none; + outline: 0; +} + +.slick-arrow::before, +.slick-arrow::after { + pointer-events: none; +} + +/** + * Bullets. + */ +/* Makes the pointer work when bullets placed over the slide. */ +/* Overrides core > 1.3.11, otherwise thumbnails are non-clickable */ +.slick button, +.slick--thumbnail .slick__slide img { + pointer-events: auto; +} + +/* Provides decent dots if core slick-theme.css is disabled. */ +.slick-dots li { + margin-bottom: 5px; + display: inline-block; + vertical-align: top; +} + +/* Overrides too tiny bullets from core slick.css.*/ +.slick-dots li button::before { + font-size: 0.75rem; +} + +/** + * Media. + */ +/* Hide lazyloaded image when JS is off.*/ +img[data-lazy] { + display: none; +} + +.slide__media { + overflow: hidden; + position: relative; +} + +/* Center the image to reduce gap at RHS with smaller image, larger container */ +.media__image { + margin: 0 auto; +} + +/** @todo: Remove temp fix for when total <= slidesToShow at 1.6.1+. */ +/** @see https://github.com/kenwheeler/slick/issues/262 */ +.slick--less .slick-track { + margin-left: auto; + margin-right: auto; + text-align: center; +} + +.slick--less .slick-slide { + float: none; + display: inline-block; + vertical-align: top; +} + +.slick--less .draggable { + cursor: default; +} + +// +// Overrides. +// + +.slick-prev, +.slick-next { + &::before { + display: inline-block; + content: ""; + background-repeat: no-repeat; + background-size: 4rem 4rem; + width: 4rem; + height: 4rem; + } +} + +.slick-prev::before { + background-image: url('../img/slick/prev.svg'); +} + +.slick-next::before { + background-image: url('../img/slick/next.svg'); +} + +.slick-dots li button::before { + background-color: $teal; + border-radius: 50%; + border: 2px solid $teal; + content: ''; + height: 10px; + width: 10px; + opacity: 1; +} + +.slick-dots li.slick-active button::before { + background-color: #fff; +} diff --git a/public/themes/custom/ubccs/sass/components/_sub-menu.scss b/public/themes/custom/ubccs/sass/components/_sub-menu.scss new file mode 100644 index 0000000..90aa5bc --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_sub-menu.scss @@ -0,0 +1,119 @@ + +.sub-menu h3 { + font-weight: normal; +} + +.sub-menu { + // Push off the top same as the h1. + margin-top: 2.7rem; +} + +.sub-menu ul { + list-style: none; + padding: 0; + margin: 0; +} + +.sub-menu .menu-item--expanded .menu-item__label { + display: flex; + + & > .menu-item__link { + flex: 1 1 auto; + } + & > .menu-item__toggle { + flex: 0 0 1rem; + } +} + +.sub-menu .menu-item__link { + text-decoration: none; + display: block; + + padding: .5rem .85rem; + + transition: all .25s ease-in; + + &.is-active { + color: $dark-teal; + + // Not bold to reduce the text-width jump, may need to be normal. + font-weight: 400; + + position: relative; + + &::before { + width: 50px; + height: 2px; + + background-color: $dark-teal; + position: absolute; + bottom: 0; + content: ''; + } + } +} + +.sub-menu .menu-item__label { + border-bottom: 1px solid lighten(desaturate($dark-teal, 50%), 75%); +} + +.sub-menu .menu-item--active-trail > .menu-item__label .menu-item__link { + color: $dark-teal; + + // Not bold to reduce the text-width jump, may need to be normal. + font-weight: 400; +} + +// Indentation of sub links. +.sub-menu ul .menu-item__link { + padding-left: 1rem; +} + +.sub-menu ul ul .menu-item__link { + padding-left: 2rem; +} + +.sub-menu ul ul ul .menu-item__link { + padding-left: 3rem; +} + +.sub-menu ul ul ul ul .menu-item__link { + padding-left: 4rem; +} + +.sub-menu ul ul ul ul ul .menu-item__link { + padding-left: 5rem; +} + +.sub-menu ul ul ul ul ul ul .menu-item__link { + padding-left: 6rem; +} + +.menu-item__item { + margin: 0; +} + +// Toggle. +.menu-item__item > ul { + display: none; +} +.menu-item__item.menu-item--expand > ul { + display: block; +} + +.sub-menu .menu-item__toggle { + text-align: center; + min-width: 3rem; + cursor: pointer; +} + +.menu-item__toggle .chevron::after { + transition: transform .5s ease-in-out; +} +.menu-item__item.menu-item--expand > .menu-item__label .chevron::after { + transform: rotate(135deg); +} + +.menu-item--active-trail > .menu-item__label .chevron::after { + border-color: $dark-teal; +} diff --git a/public/themes/custom/ubccs/sass/components/_table.scss b/public/themes/custom/ubccs/sass/components/_table.scss new file mode 100644 index 0000000..e084f2b --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_table.scss @@ -0,0 +1,29 @@ + +.node { + table { + width: 100%; + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; + border: 1px solid $ubc-silver; + border-right-width: 0; + border-bottom-width: 0; + } + + td, + th { + border: 0 solid $ubc-silver; + border-right-width: 1px; + border-bottom-width: 1px; + padding: .5rem .8rem; + text-align: left; + } + thead th { + vertical-align: bottom; + } +} + +// Override tablesort. +td.is-active { + background-color: transparent; +} diff --git a/public/themes/custom/ubccs/sass/components/_tabledrag.scss b/public/themes/custom/ubccs/sass/components/_tabledrag.scss new file mode 100644 index 0000000..a2b9a83 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_tabledrag.scss @@ -0,0 +1,32 @@ +.field-multiple-table { + width: 100%; + th { + text-align: left; + } +} + +button.link.tabledrag-toggle-weight { + font-size: .7em; + text-transform: uppercase; + color: #999; +} + +form .field-multiple-table .field-multiple-drag .tabledrag-handle { + padding: 7px; +} +.field-multiple-drag { + vertical-align: middle; +} +.draggable a.tabledrag-handle { + float: none; + display: inline-block; + margin: 0; + height: 30px; +} +a.tabledrag-handle .handle { + width: 16px; + height: 16px; + background-position: 0 0; + padding: 0; + margin: 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_toc.scss b/public/themes/custom/ubccs/sass/components/_toc.scss new file mode 100644 index 0000000..4c35e4e --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_toc.scss @@ -0,0 +1,18 @@ +// Table of Contents Filter. + +.node .toc-tree { + border: 1px solid #ccc; + padding: 2rem; + margin: 2rem 0; +} + +.toc-tree ol.none { + padding: 0 +} +.toc-tree h3 { + margin: 0 0; +} +.toc-tree > ol, +.toc-tree > ul { + margin: 2rem 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_typography.scss b/public/themes/custom/ubccs/sass/components/_typography.scss new file mode 100644 index 0000000..da6c331 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_typography.scss @@ -0,0 +1,18 @@ +@import '../variables'; + +.text-primary { + color: $unit-color; +} + +.text-secondary { + color: $dark-teal; +} + +.text-large { + font-size: $font-size-base * 2; +} + +.intro { + color: #cc6e20; + font-size: 2.2rem; +} diff --git a/public/themes/custom/ubccs/sass/components/_unit.scss b/public/themes/custom/ubccs/sass/components/_unit.scss new file mode 100644 index 0000000..3b408a4 --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_unit.scss @@ -0,0 +1,10 @@ +@import '../variables'; + +// UNIT COLOURS +#ubc7-unit { + background-color: $unit-color; +} +// override clf +body { + padding: 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_vertical-tabs.scss b/public/themes/custom/ubccs/sass/components/_vertical-tabs.scss new file mode 100644 index 0000000..24d732a --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_vertical-tabs.scss @@ -0,0 +1,3 @@ +.vertical-tabs__menu-item { + margin: 0; +} diff --git a/public/themes/custom/ubccs/sass/components/_views.scss b/public/themes/custom/ubccs/sass/components/_views.scss new file mode 100644 index 0000000..bb2153f --- /dev/null +++ b/public/themes/custom/ubccs/sass/components/_views.scss @@ -0,0 +1,41 @@ +@import '../variables'; +@import '../bootstrap-no-output'; + + +.views-exposed-form { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + align-content: space-around; + margin-left: -1rem; + margin-right: -1rem; +} + +.views-exposed-form .form-item, +.views-exposed-form .form-actions { + margin: 1rem; + // Prevent long fields from breaking multiple lines. + @include media-breakpoint-up(md) { + max-width: 240px; + } +} + +.views-exposed-form .form-actions { + align-self: flex-end; +} + +.views-field-view-node, +.news-image img { + margin-top: 1rem; +} + +.views-row + .views-row::before { + content: ""; + display: block; + height: 2px; + border: 0; + margin: 2rem auto; + width: 100%; + padding: 0; + background-color: #e6e6e6; +} diff --git a/public/themes/custom/ubccs/sass/layout.scss b/public/themes/custom/ubccs/sass/layout.scss new file mode 100644 index 0000000..5606e70 --- /dev/null +++ b/public/themes/custom/ubccs/sass/layout.scss @@ -0,0 +1,76 @@ +@import 'variables'; +@import 'bootstrap-no-output'; + +.layout-wrapper { + // Bottom spacing (could get us into trouble if you want things flush. + padding-bottom: 2rem; + + @include media-breakpoint-up(lg) { + display: flex; + + .layout-sidebar-first, + .layout-sidebar-second { + flex-grow: 0; + flex-basis: 260px; + max-width: 260px; + } + + .layout-sidebar-first { + margin-right: 3%; + } + + .layout-sidebar-second { + margin-left: 3%; + } + + // Positioning. + .layout-sidebar-first { + order: 1; + } + + .layout-content.has-sidebar { + order: 2; + } + + .layout-sidebar-second { + order: 3; + } + } + + .layout-content { + flex-basis: 0; + flex-grow: 1; + + // This can prove problematic on landing pages, let's see. + // Remove + //max-width: 760px; + //margin: 0 auto; + } + + .layout-content-full-width { + max-width: 100%; + + .field--name-body { + max-width: 760px; + margin: 0 auto; + } + } +} + +// Divider at bottom of all pages to avoid editor from manually adding it in +// content. +.layout-content.has-sidebar::after { + display: block; + content: ''; + height: 2px; + border: 0; + margin: 3rem auto; + width: 40%; + padding: 0; + background-color: $burnt-sienna; + clear: both; +} + +.full-width-container { + background-color: #fff; +} diff --git a/public/themes/custom/ubccs/sass/local.clf.fixes.scss b/public/themes/custom/ubccs/sass/local.clf.fixes.scss new file mode 100644 index 0000000..33e30c5 --- /dev/null +++ b/public/themes/custom/ubccs/sass/local.clf.fixes.scss @@ -0,0 +1,131 @@ +@import 'variables'; +@import 'bootstrap-no-output'; + +/** + * $file + * To fix inconsistencies with the locally-hosted CLF CSS + */ + +footer { + background-color: inherit; +} + +#ubc7-unit-social-icons i { + color: #fff; + background-color: $unit-color; + cursor: pointer; + font-size: 24px; + line-height: 32px; + width: 32px; + height: 32px; + text-align: center; +} + +// Overrides to make nav consistent after sticky trigger +#ubc7-unit-menu { + width: 100%; + margin: 0; //set margin to zero so width is not offset. +} + +// Hide external link. +#ubc7-unit-social-icons span.ext { + display: none; +} + +// Use the same font everywhere. +#ubc7-global-footer, +#ubc7-global-menu, +#ubc7-minimal-footer, +#ubc7-unit, +input, +button { + font-family: $font-family; +} + +#ubc7-search-box input { + font-size: inherit !important; +} + +.btn, +.btn:focus, +.btn:hover, +.btn:active { + box-shadow: none; + border: 0; + color: $teal; + background-color: transparent; + + line-height: inherit; + font-size: inherit; +} + +// Undo the forced width of 206px in the CLF. +input, +textarea, +.uneditable-input { + width: inherit; +} + +input[type="text"] { + height: auto; + line-height: inherit; +} + +#ubc7-header { + box-sizing: content-box; +} +/* Remove the inset shadows and text shadows from the unit area */ +#ubc7-unit { + box-shadow: none; + -webkit-box-shadow: none; +} + +#ubc7-unit-name a, +#ubc7-unit-name a:hover { + text-shadow: none; +} + +// +ul.primary.tabs, +ul.secondary.tabs { + width: 100%; + max-width: map_get($container-max-widths, xl); + margin-left: auto; + margin-right: auto; +} + +#ubc7-unit-menu .container { + max-width: map_get($container-max-widths, xl); + width: 100%; +} + +.non-clf .container { + max-width: map_get($container-max-widths, xxl); +} + +// Cover sprites. +@include media-breakpoint-between(lg, xl) { + #ubc7-wordmark { + width: 100% !important; + border-right: #fff solid 100px; + } +} + +#ubc7-global-utility button { + position: absolute; + right: 0; +} + +// Get the white up arrow. +.ubc7-arrow.up-arrow.white { + background-position: -1207px -225px; +} + +#ubc7-global-footer { + // Match CLF sizes by setting container. + font-size: 14px; +} + +.unit-footer-column { + margin-bottom: 2rem; +} diff --git a/public/themes/custom/ubccs/sass/main.scss b/public/themes/custom/ubccs/sass/main.scss new file mode 100644 index 0000000..87626e8 --- /dev/null +++ b/public/themes/custom/ubccs/sass/main.scss @@ -0,0 +1,70 @@ +@import 'variables'; + +@import 'base/reset'; + +@import 'base/typography'; +@import 'base/blockquote'; +@import 'base/code'; +@import 'base/figure'; +@import 'base/fixes'; +@import 'base/form'; +@import 'base/image'; +@import 'base/list'; +@import 'base/table'; + +@import 'components/landing'; +@import 'components/landing-banner'; +@import 'components/landing-intro'; +@import 'components/landing-cards'; + +@import 'components/admin'; +@import 'components/alert'; +@import 'components/align'; +@import 'components/awards'; +@import 'components/big-quote'; +@import 'components/breadcrumbs'; +@import 'components/button'; +@import 'components/calendar'; +@import 'components/caption'; +@import 'components/card'; +@import 'components/cart'; +@import 'components/courses'; +@import 'components/details'; +@import 'components/expand-collapse'; +@import 'components/faq'; +@import 'components/field'; +@import 'components/form'; +@import 'components/full-calendar'; +@import 'components/home'; +@import 'components/home-banner'; +@import 'components/image'; +@import 'components/industry'; +@import 'components/inline-block'; +@import 'components/list'; +@import 'components/media'; +@import 'components/menu'; +@import 'components/mobile-menu'; +@import 'components/news'; +@import 'components/node'; +@import 'components/page'; +@import 'components/pager'; +@import 'components/profile'; +@import 'components/profile-alumni'; +@import 'components/research'; +@import 'components/sidebar'; +@import 'components/site-alert'; +@import 'components/slick-slider'; +@import 'components/sub-menu'; +@import 'components/table'; +@import 'components/tabledrag'; +@import 'components/toc'; +@import 'components/typography'; +@import 'components/unit'; +@import 'components/vertical-tabs'; +@import 'components/views'; + +@import 'components/chevron'; +@import 'components/back-to-top'; +@import 'components/permalink'; + +@import 'utility'; diff --git a/public/themes/custom/ubccs/sass/normalize.scss b/public/themes/custom/ubccs/sass/normalize.scss new file mode 100644 index 0000000..e900d75 --- /dev/null +++ b/public/themes/custom/ubccs/sass/normalize.scss @@ -0,0 +1 @@ +@use '../node_modules/normalize.css/normalize.css'; diff --git a/public/themes/custom/ubccs/sass/print.scss b/public/themes/custom/ubccs/sass/print.scss new file mode 100644 index 0000000..306be65 --- /dev/null +++ b/public/themes/custom/ubccs/sass/print.scss @@ -0,0 +1,87 @@ + +///* ---------- General Layout ---------- */ + +body, +input, +textarea, +select { + color: #000; + background: none; +} + +// CLF override. +a:link::after { + content: ""; + padding-left: inherit; +} + +//body.two-sidebars, +//body.sidebar-first, +//body.sidebar-second, +//body { +// width: 640px; +//} +//#sidebar-first, +//#sidebar-second, +//.navigation, +//#toolbar, +//#footer-wrapper, + +// Hide navigation components. +.sub-menu, +#back-to-top, +.contextual, +nav.tabs { + display: none; +} + +// Hide footers. +footer { + display: none; +} + +//.one-sidebar #content, +//.two-sidebars #content { +// width: 100%; +//} + +//* { +// background: transparent !important; +// color: #444 !important; +// text-shadow: none; +//} +//a, +//a:visited { +// color: #444 !important; +// text-decoration: underline; +//} +//a:after { +// content: " (" attr(href) ")"; +//} +//abbr:after { +// content: " (" attr(title) ")"; +//} +// +//pre, blockquote { +// border: 1px solid #999; +// page-break-inside: avoid; +//} +//.content table th, +//.content table td { +// border-color: #333; +//} + +img { + page-break-inside: avoid; +} + + +// Typography. +p, h2, h3 { + orphans: 3; + widows: 3; +} + +h2, h3, h4 { + page-break-after: avoid; +} diff --git a/public/themes/custom/ubccs/sass/select2.scss b/public/themes/custom/ubccs/sass/select2.scss new file mode 100644 index 0000000..9ae346e --- /dev/null +++ b/public/themes/custom/ubccs/sass/select2.scss @@ -0,0 +1,286 @@ +@import "variables"; + +select { + min-width: 200px; +} + +.select2-container--default .select2-dropdown { + border-radius: 0; +} + +.select2-container--default { + //margin: 0.4rem 0; + + // Ensure doesn't exceed container. + max-width: 100%; +} + +.select2-container--default .select2-selection--single { + background-color: #fff; + border: 2px solid #b8b8b8; + border-top-color: #999; + border-radius: 0; + height: auto; + padding: 0.5rem 0.8rem; + +} +.select2-container--default .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: inherit; +} + +.select2-container--default .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + height: 26px; + margin-right: 20px; + padding-right: 0; +} +.select2-container--default .select2-selection--single .select2-selection__placeholder { + color: #999; +} +.select2-container--default .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 0.5rem; + right: 0.8rem; + + width: 20px; +} +.select2-container--default .select2-selection--single .select2-selection__arrow b { + border-color: #666 transparent transparent transparent; + border-style: solid; + border-width: 7px 6px 0 6px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; +} +.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #666 transparent; + border-width: 0 6px 7px 6px; +} + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; +} + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; +} + +.select2-container--default.select2-container--disabled .select2-selection--single { + background-color: #eee; + cursor: default; +} +.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; +} + + +.select2-container--default .select2-selection--multiple { + background-color: white; + border: 2px solid #b8b8b8; + border-top-color: #999; + + border-radius: 0; + cursor: text; + + padding-bottom: 0; + padding-right: 0; +} + +.select2-container--default .select2-selection--multiple .select2-selection__rendered { + margin: 0; + + // Flex. + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + padding: 0.4rem; +} + +.select2-container--default .select2-selection--multiple .select2-selection__rendered li { + // Override li styles from base/list. + //margin: 0; +} + +.select2-container--default .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + height: 20px; + margin-right: 10px; + margin-top: 5px; + padding: 1px; +} +.select2-container--default .select2-selection--multiple .select2-selection__choice { + background-color: #fff; + border: 0; + outline: 1px solid $gray-light; + border-radius: 0; + display: inline-block; + margin: 0; + padding: 0; +} +.select2-container--default .select2-selection--multiple .select2-selection__choice::after { + display: inline-block; + content: ""; + width: 0.5rem; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice__display { + cursor: default; + padding-left: 2px; + padding-right: 5px; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + background-color: transparent; + border: none; + //border-right: 1px solid $gray-dark; + //border-top-left-radius: 4px; + //border-bottom-left-radius: 4px; + color: #999; + cursor: pointer; + //font-size: 1.5rem; + font-weight: bold; + padding: 0 0.5rem; + position: relative; +} +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover, +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus { + background-color: #f1f1f1; + color: #333; + outline: none; +} + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; +} + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display { + padding-left: 5px; + padding-right: 2px; +} + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + border-left: 1px solid #b8b8b8; + + border-right: none; + border-radius: 0 4px 4px 0; +} + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear { + float: left; + margin-left: 10px; + margin-right: auto; +} + +.select2-container--default.select2-container--focus .select2-selection--multiple { + border: 2px solid $teal; + background-color: #fff; + + outline: 0; +} + +.select2-container--default.select2-container--disabled .select2-selection--multiple { + background-color: #eee; + cursor: default; +} + +.select2-container--default.select2-container--disabled .select2-selection__choice__remove { + display: none; +} + +.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, +.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, +.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.select2-container--default .select2-search--dropdown .select2-search__field { + border: 2px solid #b8b8b8; + border-top-color: #999; + margin: 0; +} +.select2-container--default .select2-search--inline .select2-search__field { + background: transparent; + border: none; + outline: 0; + box-shadow: none; + -webkit-appearance: textfield; + //margin: 0.5rem 0.8rem; + // Override default. + height: 26px; +} + +.select2-container--default .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; +} +.select2-container--default .select2-results__option { + margin-bottom: 0; +} +.select2-container--default .select2-results__option .select2-results__option { + padding-left: 1em; +} +.select2-container--default .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; +} +.select2-container--default .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; +} +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; +} +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; +} +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; +} +.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; +} + +.select2-container--default .select2-results__option--group { + padding: 0; +} + +.select2-container--default .select2-results__option--disabled { + color: #999; +} + +.select2-container--default .select2-results__option--selected { + background-color: #ddd; +} + +.select2-container--default .select2-results__option--highlighted[aria-selected], +.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { + background-color: $teal; + color: white; +} + +.select2-container--default .select2-results__group { + cursor: default; + display: block; + padding: 6px; +} diff --git a/public/themes/custom/ubccs/sass/timeline.scss b/public/themes/custom/ubccs/sass/timeline.scss new file mode 100644 index 0000000..ced0dce --- /dev/null +++ b/public/themes/custom/ubccs/sass/timeline.scss @@ -0,0 +1,27 @@ +@import "variables"; + +.tl-timeline { + z-index: 1; +} + +.tl-timegroup:nth-child(1) { + background-color: #e9e9fc !important; +} +.tl-timegroup:nth-child(2) { + background-color: #eee !important; +} +.tl-timegroup:nth-child(3) { + background-color: #fef !important; +} +.tl-timegroup:nth-child(4) { + background-color: #eee; +} + +.tl-slide .tl-slide-content-container .tl-slide-content { + box-sizing: initial; +} + +.tl-text h2.tl-headline-title, +.tl-text h2.tl-headline { + color: $dark-teal; +} diff --git a/public/themes/custom/ubccs/screenshot.png b/public/themes/custom/ubccs/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..eb53a63d18bda9587a9d325c36bd8bb488c593fe GIT binary patch literal 4529 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 S>&VWZD8@K*Y^A>2um1&0IF$PU literal 0 HcmV?d00001 diff --git a/public/themes/custom/ubccs/templates/block/block--bundle--sponsor_logos.html.twig b/public/themes/custom/ubccs/templates/block/block--bundle--sponsor_logos.html.twig new file mode 100755 index 0000000..4d99065 --- /dev/null +++ b/public/themes/custom/ubccs/templates/block/block--bundle--sponsor_logos.html.twig @@ -0,0 +1,49 @@ +{# +/** + * @file + * Theme override to display a block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - module: The module that provided this block plugin. + * - cache: The cache settings. + * - Block plugin specific settings will also be stored here. + * - block - The full block entity. + * - label_hidden: The hidden block title value if the block was + * configured to hide the title ('label' is empty in this case). + * - module: The module that generated the block. + * - delta: An ID for the block, unique within each module. + * - region: The block region embedding the current block. + * - content: The content of this block. + * - attributes: array of HTML attributes populated by modules, intended to + * be added to the main container tag of this template. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_block() + */ +#} +{% + set classes = [ + 'block', + 'block-' ~ configuration.provider|clean_class, + 'block-sponsor-logos', + 'block-sponsor-logos--' ~ (content['#block_content'].field_tier.value ? content['#block_content'].field_tier.value|clean_class : 'none') + ] +%} + + {{ title_prefix }} + {{ title_suffix }} + {% block content %} + {{ content|without('field_tier') }} + {% endblock %} +
diff --git a/public/themes/custom/ubccs/templates/block/block--menu-block--main-submenu.html.twig b/public/themes/custom/ubccs/templates/block/block--menu-block--main-submenu.html.twig new file mode 100644 index 0000000..8435679 --- /dev/null +++ b/public/themes/custom/ubccs/templates/block/block--menu-block--main-submenu.html.twig @@ -0,0 +1,27 @@ +{# +/** + * @file + * Theme override for a menu block. + */ +#} +{% +set classes = [ + 'sub-menu', + 'sub-menu--' ~ derivative_plugin_id|clean_class, +] +%} +{# Label. If not displayed, we still provide it for screen readers. #} +{% if not configuration.label_display %} + {% set title_attributes = title_attributes.addClass('visually-hidden') %} +{% endif %} + +{% set heading_id = attributes.id ~ '-menu'|clean_id %} + diff --git a/public/themes/custom/ubccs/templates/block/block--system-menu-block.html.twig b/public/themes/custom/ubccs/templates/block/block--system-menu-block.html.twig new file mode 100644 index 0000000..a974eb0 --- /dev/null +++ b/public/themes/custom/ubccs/templates/block/block--system-menu-block.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override for a menu block. + */ +#} +{% +set classes = [ + 'menu--' ~ derivative_plugin_id|clean_class, +] +%} +{# Label. If not displayed, we still provide it for screen readers. #} +{% if not configuration.label_display %} + {% set title_attributes = title_attributes.addClass('visually-hidden') %} +{% endif %} + +{% set heading_id = attributes.id ~ '-menu'|clean_id %} + diff --git a/public/themes/custom/ubccs/templates/component/landing-banner.html.twig b/public/themes/custom/ubccs/templates/component/landing-banner.html.twig new file mode 100644 index 0000000..bac1bb4 --- /dev/null +++ b/public/themes/custom/ubccs/templates/component/landing-banner.html.twig @@ -0,0 +1,14 @@ +{% if content %} + + {% if content.image %} + + {{ content.image }} +
+ {% endif %} + {% if content.title %} + + {{ content.title }} +
+ {% endif %} +
+{% endif %} diff --git a/public/themes/custom/ubccs/templates/component/site-alert.html.twig b/public/themes/custom/ubccs/templates/component/site-alert.html.twig new file mode 100644 index 0000000..13cc7f1 --- /dev/null +++ b/public/themes/custom/ubccs/templates/component/site-alert.html.twig @@ -0,0 +1,8 @@ +
+ +
!
+ +
+ {{ alert.message }} +
+
diff --git a/public/themes/custom/ubccs/templates/component/twitter-api--tweet-list.html.twig b/public/themes/custom/ubccs/templates/component/twitter-api--tweet-list.html.twig new file mode 100644 index 0000000..647e2f7 --- /dev/null +++ b/public/themes/custom/ubccs/templates/component/twitter-api--tweet-list.html.twig @@ -0,0 +1,20 @@ +{#

+ Tweets by @{{ twitter_user.screen_name }} +

#} +
+ {{ tweets }} +
+ + + diff --git a/public/themes/custom/ubccs/templates/component/twitter-api--tweet.html.twig b/public/themes/custom/ubccs/templates/component/twitter-api--tweet.html.twig new file mode 100644 index 0000000..fc3b478 --- /dev/null +++ b/public/themes/custom/ubccs/templates/component/twitter-api--tweet.html.twig @@ -0,0 +1,32 @@ +
+
+ {% if tweet.retweet.text != '' %} + + + {{ tweet.retweet.text }} + + {% endif %} + {% if tweet.screen_name != 'UBC_CS' %} + + {% endif %} +
+
{{ text }}
+
{{ image }}
+
+ +
+ +
+
+
+ diff --git a/public/themes/custom/ubccs/templates/content/node--alumni--teaser.html.twig b/public/themes/custom/ubccs/templates/content/node--alumni--teaser.html.twig new file mode 100644 index 0000000..a58ec2c --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--alumni--teaser.html.twig @@ -0,0 +1,31 @@ +{# +/** + * @file + * Theme override to display a node teaser. + */ +#} + + {{ title_suffix.contextual_links }} +
+
+ {% if content.field_node_image_vertical %} + {{ content.field_node_image_vertical }} + {% else %} +
+ {% set alumni_name_split = node.getTitle()|split(' ') %} + {{ alumni_name_split[0][:1]|upper }}{{ alumni_name_split[1][:1]|upper }} +
+ {% endif %} +
+ +
+ + {{ label }} +
+ {{ content|without('field_node_image_vertical') }} + +
+
+
diff --git a/public/themes/custom/ubccs/templates/content/node--alumni.html.twig b/public/themes/custom/ubccs/templates/content/node--alumni.html.twig new file mode 100644 index 0000000..8f7a5f7 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--alumni.html.twig @@ -0,0 +1,59 @@ +{% extends "node.html.twig" %} + {% block header %} +
+ {% if content.field_header_image %} + {{ content.field_header_image }} + {% endif %} + + {{ title_prefix }} + {% if page %} + + {{ label }} + + {% else %} + + {{ label }} + + {% endif %} + {{ title_suffix }} + + {% if content.field_subtitle|render %} +
+

{{ content.field_subtitle }}

+
+ {% endif %} + + {% if display_submitted and page %} +
+ + Posted on: {{ node.getCreatedTime()|format_date('custom', 'F j, Y') }} + {{ metadata }} +
+ + {% endif %} + + + + {% endblock %} + +{% block node_content %} + + + {{ content|without('links', 'field_subtitle', 'field_node_image_vertical') }} +
+ + + {% if content.field_node_image_vertical %} +
+
+ {{ content.field_node_image_vertical }} +
+
+ {% endif %} + + +{% endblock %} + +{% block node_meta %} +{# Moved to header block. #} +{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--award--teaser.html.twig b/public/themes/custom/ubccs/templates/content/node--award--teaser.html.twig new file mode 100644 index 0000000..75753e1 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--award--teaser.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override to display a node teaser. + */ +#} +{% extends "node.html.twig" %} +{% block header %} + {{ title_prefix }} +
+
+ +
+
+
+ +
+ {{ title_suffix }} +{% endblock %} +{% block node_content %}{% endblock %} +{% block node_links %}{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--course-section.html.twig b/public/themes/custom/ubccs/templates/content/node--course-section.html.twig new file mode 100644 index 0000000..585c56e --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--course-section.html.twig @@ -0,0 +1,71 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + view_mode != 'full' and node.isPromoted() ? 'node--promoted', + view_mode != 'full' and node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} + + {% block header %} +
+ {{ title_prefix }} + {% if page %} + + {{ label|render|striptags|replace({'_': ' '}) }} + + {% endif %} + {{ title_suffix }} +
+ {% endblock %} + + {% block node_meta %} + {% if display_submitted and page %} +
+ {# {{ author_picture }} #} + + {{ node.getCreatedTime()|format_date('custom', 'F j, Y') }} + {% trans %}by {{ author_name }}{% endtrans %} + {{ metadata }} + +
+ {% endif %} + {% endblock %} + + {% block pre_content_custom_views %}{% endblock %} + + {% block node_content %} + + {% if show_course_schedule %} + {# Add autogenerated course section link #} + {% set dept_course = node.field_course_pid.value|split('_') %} + {% set dept = dept_course.0 %} + {% set course = dept_course.1 %} + {% set section = node.field_course_section.value %} + {% set session = node.field_course_year.value[-1:1] %} + {% set year = node.field_course_year.value[:-1] %} + + {% endif %} + {{ content|without('links', 'field_header_image') }} + + {% endblock %} + + {% block post_content_custom_views %}{% endblock %} + + {% block node_links %} + {% if content.links %} + + {% endif %} + {% endblock %} + + diff --git a/public/themes/custom/ubccs/templates/content/node--course.html.twig b/public/themes/custom/ubccs/templates/content/node--course.html.twig new file mode 100644 index 0000000..7eea21f --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--course.html.twig @@ -0,0 +1,82 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + view_mode != 'full' and node.isPromoted() ? 'node--promoted', + view_mode != 'full' and node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} + + {% block header %} + {% if not is_front %} +
+ {% if content.field_header_image %} + {{ content.field_header_image }} + {% endif %} + + {{ title_prefix }} + {% if page %} + + {{ label }} + + {% else %} + + {{ label }} + + {% endif %} + {{ title_suffix }} +
+ {% endif %} + {% endblock %} + + {% block node_meta %} + {% if display_submitted and page %} +
+ {# {{ author_picture }} #} + + {{ node.getCreatedTime()|format_date('custom', 'F j, Y') }} + {% trans %}by {{ author_name }}{% endtrans %} + {{ metadata }} + +
+ {% endif %} + {% endblock %} + + {% block pre_content_custom_views %}{% endblock %} + + {% block node_content %} + + {{ content|without('links', 'field_header_image') }} + {% if show_course_schedule %} + {# Add autogenerated course section link #} + {% set dept_course = node.field_course_number.value|split(' ') %} + {% set dept = dept_course.0 %} + {% set course = dept_course.1 %} + {% set section = node.field_course_section.value %} + {% set session = node.field_course_year.value[-1:1] %} + {% set year = node.field_course_year.value[:-1] %} + UBC Course Schedule + {% endif %} + + + {% endblock %} + + {% block post_content_custom_views %}{% endblock %} + + {% block node_links %} + {% if content.links %} + + {% endif %} + {% endblock %} + + diff --git a/public/themes/custom/ubccs/templates/content/node--department-job.html.twig b/public/themes/custom/ubccs/templates/content/node--department-job.html.twig new file mode 100644 index 0000000..96a98e3 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--department-job.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% extends "node.html.twig" %} + +{% block node_meta %} +{% if display_submitted and page %} +
+ {# {{ author_picture }} #} + + {{ node.getCreatedTime()|format_date('custom', 'F j, Y') }} + {{ metadata }} + +
+{% endif %} + +{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--event.html.twig b/public/themes/custom/ubccs/templates/content/node--event.html.twig new file mode 100644 index 0000000..a02a165 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--event.html.twig @@ -0,0 +1,82 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + view_mode != 'full' and node.isPromoted() ? 'node--promoted', + view_mode != 'full' and node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} + + {% block header %} + {% if not is_front %} +
+ {% if content.field_header_image %} + {{ content.field_header_image }} + {% endif %} + + {{ title_prefix }} + {% if page %} + + {{ label }} + + {% else %} + + {{ label }} + + {% endif %} + {{ title_suffix }} +
+ {% endif %} + {% endblock %} + + {% block node_meta %} + {% if display_submitted and page %} +
+ {# {{ author_picture }} #} + + {{ node.getCreatedTime()|format_date('custom', 'F j, Y') }} + {% trans %}by {{ author_name }}{% endtrans %} + {{ metadata }} + +
+ {% endif %} + + {% endblock %} + + {% block pre_content_custom_views %}{% endblock %} + + {% block node_content %} + + {{ content|without('links', 'field_header_image', 'schedule') }} + {{ content.schedule }} +
+   +
+ + {% endblock %} + + {% block post_content_custom_views %}{% endblock %} + + {% block node_links %} + {% if content.links %} + + {% endif %} + {% endblock %} + + diff --git a/public/themes/custom/ubccs/templates/content/node--faq--teaser.html.twig b/public/themes/custom/ubccs/templates/content/node--faq--teaser.html.twig new file mode 100644 index 0000000..f44c587 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--faq--teaser.html.twig @@ -0,0 +1,35 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + view_mode != 'full' and node.isPromoted() ? 'node--promoted', + view_mode != 'full' and node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, +] +%} + + + + {{ title_prefix }} + {{ label }} + {{ title_suffix }} + + + + {{ content|without('links') }} + + + {% if content.links %} + + {% endif %} + + diff --git a/public/themes/custom/ubccs/templates/content/node--homepage-banner.html.twig b/public/themes/custom/ubccs/templates/content/node--homepage-banner.html.twig new file mode 100644 index 0000000..d7752c6 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--homepage-banner.html.twig @@ -0,0 +1,35 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +
+{% if node.field_home_banner_learn_more.uri %} + + {% if content.field_home_banner_img %} +
+ {{ content.field_home_banner_img }} +
+ {% endif %} + {% if content.field_home_banner_head %} +
+ {{ content.field_home_banner_head }} + {{ content.body }} +
+ {% endif %} +
+{% else %} + {% if content.field_home_banner_img %} +
+ {{ content.field_home_banner_img }} +
+ {% endif %} + {% if content.field_home_banner_head %} +
+ {{ content.field_home_banner_head }} + {{ content.body }} +
+ {% endif %} +{% endif %} +
diff --git a/public/themes/custom/ubccs/templates/content/node--job.html.twig b/public/themes/custom/ubccs/templates/content/node--job.html.twig new file mode 100644 index 0000000..e01a599 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--job.html.twig @@ -0,0 +1,27 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% extends "node.html.twig" %} + +{% block node_meta %} + {% if display_submitted and page %} +
+ {# {{ author_picture }} #} + + {{ node.getCreatedTime()|format_date('custom', 'F j, Y') }} + {% trans %}by {{ author_name }}{% endtrans %} + {{ metadata }} + +
+ {% endif %} + +{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--landing--full.html.twig b/public/themes/custom/ubccs/templates/content/node--landing--full.html.twig new file mode 100644 index 0000000..bc0062d --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--landing--full.html.twig @@ -0,0 +1,13 @@ +{# + Generic Layout for all landing page content-type, which includes + the conditions and injects ext.twig files +#} +{% extends "node.html.twig" %} + +{% block pre_content_custom_views %} + {{ pre_content_custom_blocks }} +{% endblock %} + +{% block post_content_custom_views %} + {{ post_content_custom_blocks }} +{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--news--teaser.html.twig b/public/themes/custom/ubccs/templates/content/node--news--teaser.html.twig new file mode 100644 index 0000000..7b7babd --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--news--teaser.html.twig @@ -0,0 +1,27 @@ +{# +/** + * @file + * Theme override to display a node teaser. + */ +#} +{% extends "node.html.twig" %} +{% block header %} + {{ title_prefix }} + {{ title_suffix }} +{% endblock %} +{% block node_content %} +
+
+ {% if content.field_thumbnail|render %} + {{ content.field_thumbnail }} + {% else %} + {{ content.field_header_image }} + {% endif %} +
+
+

{{ label }}

+
+
{{ content.body }}
+
+
+{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--news.html.twig b/public/themes/custom/ubccs/templates/content/node--news.html.twig new file mode 100644 index 0000000..e2223dc --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--news.html.twig @@ -0,0 +1,23 @@ +{% extends "node.html.twig" %} +{% block node_meta %} + {% if display_submitted and page %} + {% set text = content.body|render|striptags %} + {% set read_time = (text|split(' ')|length / 250)|round(0,'ceil') %} +
+ {# {{ author_picture }} #} + + {{ node.getCreatedTime()|format_date('month_day_year') }} + {% trans %}by {{ author_name }}{% endtrans %} + | {{ read_time }} min{% if read_time > 1 %}s{% endif %} read + {{ metadata }} + +
+ +{% endif %} +{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--page--full.html.twig b/public/themes/custom/ubccs/templates/content/node--page--full.html.twig new file mode 100644 index 0000000..6cf699c --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--page--full.html.twig @@ -0,0 +1,13 @@ +{# + Generic Layout for all page content-type, which includes + the conditions and injects ext.twig files +#} +{% extends "node.html.twig" %} + +{% block pre_content_custom_views %} + {{ pre_content_custom_blocks }} +{% endblock %} + +{% block post_content_custom_views %} + {{ post_content_custom_blocks }} +{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--schedule--teaser.html.twig b/public/themes/custom/ubccs/templates/content/node--schedule--teaser.html.twig new file mode 100644 index 0000000..09a2a10 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--schedule--teaser.html.twig @@ -0,0 +1,33 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + view_mode != 'full' and node.isPromoted() ? 'node--promoted', + view_mode != 'full' and node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} + + {% block header %} +
+ {{ title_prefix }} + + {{ label }} + + {{ title_suffix }} +
+ {% endblock %} + + {% block node_content %} + + {{ content|without('body', 'field_event', 'field_speaker_affiliation') }} + + {% endblock %} + diff --git a/public/themes/custom/ubccs/templates/content/node--special-event--full.html.twig b/public/themes/custom/ubccs/templates/content/node--special-event--full.html.twig new file mode 100644 index 0000000..88cda0e --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--special-event--full.html.twig @@ -0,0 +1,9 @@ +{% extends "node.html.twig" %} + +{% block pre_content_custom_views %} + {{ pre_content_custom_blocks }} +{% endblock %} + +{% block post_content_custom_views %} + {{ post_content_custom_blocks }} +{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node--teaser.html.twig b/public/themes/custom/ubccs/templates/content/node--teaser.html.twig new file mode 100644 index 0000000..3a68b1b --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node--teaser.html.twig @@ -0,0 +1,16 @@ +{# +/** + * @file + * Theme override to display a node teaser. + */ +#} +{% extends "node.html.twig" %} +{% block header %} +
+ {{ title_prefix }} + + {{ label }} + + {{ title_suffix }} +
+{% endblock %} diff --git a/public/themes/custom/ubccs/templates/content/node.html.twig b/public/themes/custom/ubccs/templates/content/node.html.twig new file mode 100644 index 0000000..d581443 --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/node.html.twig @@ -0,0 +1,75 @@ +{# +/** + * @file + * Theme override to display a node. + */ +#} +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + view_mode != 'full' and node.isPromoted() ? 'node--promoted', + view_mode != 'full' and node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} + + {% block header %} + {% if not is_front %} +
+ {% if content.field_header_image %} + {{ content.field_header_image }} + {% endif %} + + {{ title_prefix }} + {% if page %} + + {{ label }} + + {% else %} + + {{ label }} + + {% endif %} + {{ title_suffix }} +
+ {% endif %} + {% endblock %} + + {% block node_meta %} + {% if display_submitted and page %} +
+ {# {{ author_picture }} #} + + {{ node.getCreatedTime()|format_date('custom', 'F j, Y') }} + {% trans %}by {{ author_name }}{% endtrans %} + {{ metadata }} + +
+ {% endif %} + {% endblock %} + + {% block pre_content_custom_views %}{% endblock %} + + {% block node_content %} + + {{ content|without('links', 'prevnext_previous', 'prevnext_next', 'field_header_image') }} + +
+ {{ content.prevnext_previous }} + {{ content.prevnext_next }} +
+ {% endblock %} + + {% block post_content_custom_views %}{% endblock %} + + {% block node_links %} + {% if content.links %} + + {% endif %} + {% endblock %} + + diff --git a/public/themes/custom/ubccs/templates/content/taxonomy-term--research-group.html.twig b/public/themes/custom/ubccs/templates/content/taxonomy-term--research-group.html.twig new file mode 100644 index 0000000..ebcc05e --- /dev/null +++ b/public/themes/custom/ubccs/templates/content/taxonomy-term--research-group.html.twig @@ -0,0 +1,45 @@ +{# +/** + * @file + * Theme override to display a taxonomy term. + * + * Available variables: + * - url: URL of the current term. + * - name: Name of the current term. + * - content: Items for the content of the term (fields and description). + * Use 'content' to print them all, or print a subset such as + * 'content.description'. Use the following code to exclude the + * printing of a given child element: + * @code + * {{ content|without('description') }} + * @endcode + * - attributes: HTML attributes for the wrapper. + * - page: Flag for the full page state. + * - term: The taxonomy term entity, including: + * - id: The ID of the taxonomy term. + * - bundle: Machine name of the current vocabulary. + * - view_mode: View mode, e.g. 'full', 'teaser', etc. + * + * @see template_preprocess_taxonomy_term() + */ +#} +{% + set classes = [ + 'taxonomy-term', + 'vocabulary-' ~ term.bundle|clean_class, + ] +%} + + {{ title_prefix }} + {% if not page %} +

+ + {{ term.label }} + +

+ {% endif %} + {{ title_suffix }} +
+ {{ content }} +
+ diff --git a/public/themes/custom/ubccs/templates/field/date-recur-basic-formatter.html.twig b/public/themes/custom/ubccs/templates/field/date-recur-basic-formatter.html.twig new file mode 100644 index 0000000..e6a9f5b --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/date-recur-basic-formatter.html.twig @@ -0,0 +1,37 @@ +{# +/** + * @file + * Default theme implementation to display a recurring dates field. + * + * Available variables: + * - date: shows first start, and end date if available, whether or not the + * field is a rule. + * - interpretation: The human readable repeat rule. + * - occurrences: The occurrences, if value is recurring. Individual occurrences + * can be printed as a whole, or properties of each occurrences can be + * accessed: + * - occurrence: print all properties + * - start_date: the start date. + * - end_date: the end date. + * - separator: the date separator. + * - is_recurring: Whether the field value is recurring. + * + * @ingroup themeable + */ +#} +{% if date and not is_recurring %} +
{{ date }}
+{% endif %} + +{% if interpretation -%} +
Repeats {{ interpretation }}
+{% endif %} + +{% if is_recurring and occurrences|length > 0 %} +

Upcoming Dates

+
    + {% for item in occurrences %} +
  • {{ item }}
  • + {% endfor %} +
+{% endif %} diff --git a/public/themes/custom/ubccs/templates/field/field--block-content--body--card.html.twig b/public/themes/custom/ubccs/templates/field/field--block-content--body--card.html.twig new file mode 100644 index 0000000..445e38d --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field--block-content--body--card.html.twig @@ -0,0 +1,3 @@ +{% for item in items %} +
{{ item.content }}
+{% endfor %} diff --git a/public/themes/custom/ubccs/templates/field/field--field-card-link.html.twig b/public/themes/custom/ubccs/templates/field/field--field-card-link.html.twig new file mode 100644 index 0000000..79e0d69 --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field--field-card-link.html.twig @@ -0,0 +1,3 @@ +{% for item in items %} + {{- item.content -}} +{% endfor %} diff --git a/public/themes/custom/ubccs/templates/field/field--field-card-title.html.twig b/public/themes/custom/ubccs/templates/field/field--field-card-title.html.twig new file mode 100644 index 0000000..c25f543 --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field--field-card-title.html.twig @@ -0,0 +1,3 @@ +{% for item in items %} +
{{ item.content }}
+{% endfor %} diff --git a/public/themes/custom/ubccs/templates/field/field--field-landing-cards.html.twig b/public/themes/custom/ubccs/templates/field/field--field-landing-cards.html.twig new file mode 100644 index 0000000..fe31562 --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field--field-landing-cards.html.twig @@ -0,0 +1,29 @@ +{% set classes = 'cards' %} +{% + set title_classes = [ + 'field__label', + label_display == 'visually_hidden' ? 'visually-hidden', +] +%} +{% if items %} +
+
+ {% if not label_hidden %} + {{ label }}
+ {% endif %} + + + {% for item in items %} + {% set url = item.content.field_card_link['#object'].field_card_link.0.getUrl() %} + {% if item.content and url %} + + + {{ item.content|without('field_card_link') }} + +
+ {% endif %} + {% endfor %} + + + +{% endif %} diff --git a/public/themes/custom/ubccs/templates/field/field--field-landing-intro.html.twig b/public/themes/custom/ubccs/templates/field/field--field-landing-intro.html.twig new file mode 100644 index 0000000..7e1ab45 --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field--field-landing-intro.html.twig @@ -0,0 +1,52 @@ +{# +/** + * @file + * Theme override for a field. + * + * To override output, copy the "field.html.twig" from the templates directory + * to your theme's directory and customize it, just like customizing other + * Drupal templates such as page.html.twig or node.html.twig. + * + * Instead of overriding the theming for all fields, you can also just override + * theming for a subset of fields using + * @link themeable Theme hook suggestions. @endlink For example, + * here are some theme hook suggestions that can be used for a field_foo field + * on an article node type: + * - field--node--field-foo--article.html.twig + * - field--node--field-foo.html.twig + * - field--node--article.html.twig + * - field--field-foo.html.twig + * - field--text-with-summary.html.twig + * - field.html.twig + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - multiple: TRUE if a field can contain multiple items. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item's content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * + * @see template_preprocess_field() + */ +#} +{% set classes = 'landing-intro' %} + +{% if multiple %} + + {% for item in items %} +

{{ item.content }}

+ {% endfor %} + +{% else %} + {% for item in items %} +

{{ item.content }}

+ {% endfor %} +{% endif %} diff --git a/public/themes/custom/ubccs/templates/field/field--node--title--technical-report.html.twig b/public/themes/custom/ubccs/templates/field/field--node--title--technical-report.html.twig new file mode 100644 index 0000000..248a628 --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field--node--title--technical-report.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * Default theme implementation for the node title field. + * + * This is an override of field.html.twig for the node title field. See that + * template for documentation about its details and overrides. + * + * Available variables: + * - attributes: HTML attributes for the containing span element. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see field.html.twig + * + * @ingroup themeable + */ +#} +
+ + {%- for item in items -%} + {{ item.content }} + {%- endfor -%} + +
diff --git a/public/themes/custom/ubccs/templates/field/field--text.html.twig b/public/themes/custom/ubccs/templates/field/field--text.html.twig new file mode 100644 index 0000000..7cfea86 --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field--text.html.twig @@ -0,0 +1,28 @@ +{% extends "field.html.twig" %} +{# +/** + * @file + * Default theme implementation for a text field. + * + * A 'clearfix' class is added, because 'text' fields have a 'format' property + * that allows a Text Format to be associated with the entered text, which then + * applies filtering on output. A common use case is to align images to the left + * or right, and without this 'clearfix' class, such aligned images may be + * rendered outside of the 'text' field formatter's boundaries, and hence + * overlap with other fields. By setting the 'clearfix' class on all 'text' + * fields, we prevent that. + * + * @see https://www.drupal.org/node/2358529 + * + * A 'text-formatted' class is added to assist with default styling of base + * elements such as paragraphs and lists that may not have classes assigned to + * them. This allows user entered content to have default styling without + * interfering with the styles of other UI components such as system generated + * lists or other dynamic content. + * + * @see https://www.drupal.org/node/2539860 + * + * @ingroup themeable + */ +#} +{% set attributes = attributes.addClass('text-formatted') %} diff --git a/public/themes/custom/ubccs/templates/field/field.html.twig b/public/themes/custom/ubccs/templates/field/field.html.twig new file mode 100644 index 0000000..05bf89c --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/field.html.twig @@ -0,0 +1,81 @@ +{# +/** + * @file + * Theme override for a field. + * + * To override output, copy the "field.html.twig" from the templates directory + * to your theme's directory and customize it, just like customizing other + * Drupal templates such as page.html.twig or node.html.twig. + * + * Instead of overriding the theming for all fields, you can also just override + * theming for a subset of fields using + * @link themeable Theme hook suggestions. @endlink For example, + * here are some theme hook suggestions that can be used for a field_foo field + * on an article node type: + * - field--node--field-foo--article.html.twig + * - field--node--field-foo.html.twig + * - field--node--article.html.twig + * - field--field-foo.html.twig + * - field--text-with-summary.html.twig + * - field.html.twig + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - multiple: TRUE if a field can contain multiple items. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item's content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * + * @see template_preprocess_field() + */ +#} +{% + set classes = [ + 'field', + 'field--name-' ~ field_name|clean_class, + 'field--type-' ~ field_type|clean_class, + 'field--label-' ~ label_display, +] +%} +{% + set title_classes = [ + 'field__label', + label_display == 'visually_hidden' ? 'visually-hidden', +] +%} +{% spaceless %} +{% if label_hidden %} + {% if multiple %} + + {% for item in items %} + {{ item.content }} + {% endfor %} + + {% else %} + {% for item in items %} + {{ item.content }} + {% endfor %} + {% endif %} +{% else %} + + {{ label }} + {% if multiple %} +
+ {% endif %} + {% for item in items %} + {{ item.content }}
+ {% endfor %} + {% if multiple %} + + {% endif %} + +{% endif %} +{% endspaceless %} diff --git a/public/themes/custom/ubccs/templates/field/image.html.twig b/public/themes/custom/ubccs/templates/field/image.html.twig new file mode 100644 index 0000000..b342eee --- /dev/null +++ b/public/themes/custom/ubccs/templates/field/image.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override of an image. + * + * Available variables: + * - attributes: HTML attributes for the img tag. + * - style_name: (optional) The name of the image style applied. + * + * @see template_preprocess_image() + */ +#} + diff --git a/public/themes/custom/ubccs/templates/layout/html.html.twig b/public/themes/custom/ubccs/templates/layout/html.html.twig new file mode 100644 index 0000000..ecd7c6a --- /dev/null +++ b/public/themes/custom/ubccs/templates/layout/html.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Theme override for the basic structure of a single Drupal page. + */ +#} + + + + + {{ head_title|safe_join(' | ') }} + + + + + + + + {{ page_top }} + {{ page }} + {{ page_bottom }} + + + diff --git a/public/themes/custom/ubccs/templates/layout/page--front.html.twig b/public/themes/custom/ubccs/templates/layout/page--front.html.twig new file mode 100644 index 0000000..f2fc8c2 --- /dev/null +++ b/public/themes/custom/ubccs/templates/layout/page--front.html.twig @@ -0,0 +1,60 @@ +{# +/** + * @file + * Homepage template. + */ +#} +{% extends "page.html.twig" %} + +{% block layout_content %} +
+
+ {{ drupal_view('home_page_banners', 'block_1') }} +
+ + {{ page.content.ubccs_content }} + +
+
+
+ {{ cs_homepage_card('60775') }} +
+
+ {{ cs_homepage_card('60776') }} +
+
+ {{ cs_homepage_card('60777') }} +
+
+
+ +
+
+{# +
+

Events

+ {{ drupal_view('event_listings', 'block_3') }} + More Events  +
+#} + +
+

News

+ {{ drupal_view('news', 'block_2') }} + +
+ +
+ +
+
+
+
+{% endblock %} diff --git a/public/themes/custom/ubccs/templates/layout/page--node-type--landing.html.twig b/public/themes/custom/ubccs/templates/layout/page--node-type--landing.html.twig new file mode 100644 index 0000000..e5c14b5 --- /dev/null +++ b/public/themes/custom/ubccs/templates/layout/page--node-type--landing.html.twig @@ -0,0 +1,14 @@ +{# +/** + * @file + * Timeline template. + */ +#} +{% extends "page.html.twig" %} + +{% block layout_content %} +
+ {# Let the node template deal with the title. #} + {{ node ? page.content|without('ubccs_page_title') : page.content }} +
+{% endblock %} diff --git a/public/themes/custom/ubccs/templates/layout/page--timeline.html.twig b/public/themes/custom/ubccs/templates/layout/page--timeline.html.twig new file mode 100644 index 0000000..e5c14b5 --- /dev/null +++ b/public/themes/custom/ubccs/templates/layout/page--timeline.html.twig @@ -0,0 +1,14 @@ +{# +/** + * @file + * Timeline template. + */ +#} +{% extends "page.html.twig" %} + +{% block layout_content %} +
+ {# Let the node template deal with the title. #} + {{ node ? page.content|without('ubccs_page_title') : page.content }} +
+{% endblock %} diff --git a/public/themes/custom/ubccs/templates/layout/page.html.twig b/public/themes/custom/ubccs/templates/layout/page.html.twig new file mode 100644 index 0000000..236e234 --- /dev/null +++ b/public/themes/custom/ubccs/templates/layout/page.html.twig @@ -0,0 +1,250 @@ +{# +/** + * @file + * Theme override to display a single page. + */ +#} +{% set maincontent_attributes = create_attribute() %} +{% set sidebarfirst_attributes = create_attribute() %} +{% set sidebarsecond_attributes = create_attribute() %} + +
+ +
+
+ +
+
+
+ + + + + + + + + + +
+ {{ page.breadcrumb }} + + {% if page.featured %} + + {% endif %} + +
+ {% if page.highlighted %} +
{{ page.highlighted }}
+ {% endif %} + +
+ {{ page.header }} +
+ +
+ + {% block layout_content %} +
+ {# Let the node template deal with the title. #} + {{ node ? page.content|without('ubccs_page_title') : page.content }} +
+ + {% if page.sidebar_first %} + + {% endif %} + + {% if page.sidebar_second %} + + {% endif %} + + {% endblock %} +
+ + {% if page.footer %} +
+ {{ page.footer }} +
+ {% endif %} + +
+
+ + + +{% if page.prefooter %} + +{% endif %} + +
+
+
+ + + + + +
+
+ + + + + +
+ + diff --git a/public/themes/custom/ubccs/templates/navigation/breadcrumb.html.twig b/public/themes/custom/ubccs/templates/navigation/breadcrumb.html.twig new file mode 100644 index 0000000..68a870b --- /dev/null +++ b/public/themes/custom/ubccs/templates/navigation/breadcrumb.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for a breadcrumb trail. + */ +#} +{% if breadcrumb %} + +{% endif %} diff --git a/public/themes/custom/ubccs/templates/navigation/menu--main-submenu.html.twig b/public/themes/custom/ubccs/templates/navigation/menu--main-submenu.html.twig new file mode 100644 index 0000000..5a6482d --- /dev/null +++ b/public/themes/custom/ubccs/templates/navigation/menu--main-submenu.html.twig @@ -0,0 +1,50 @@ +{# +/** + * @file + * Default theme implementation to display a menu. + */ +#} +{% import _self as menus %} + +{# + We call a macro which calls itself to render the full tree. + @see http://twig.sensiolabs.org/doc/tags/macro.html + + 1. We use menu_name (see above) to create a CSS class name from it. + See https://www.drupal.org/node/2649076 +#} +{{ menus.menu_links(items, attributes, 0, menu_name) }} {# 1. #} +{% set menu_name_class = menu_name|clean_class %} + +{% macro menu_links(items, attributes, menu_level, menu_name_class) %} {# 1. #} + {% import _self as menus %} + + {% if items %} + + {% for item in items %} + {% + set item_classes = [ + item.is_expanded ? 'menu-item--expanded', + item.is_collapsed ? 'menu-item--collapsed', + item.in_active_trail ? 'menu-item--active-trail', + item.is_expanded and item.in_active_trail ? 'menu-item--expand', + ] + %} + + + {% if item.below %} + {{ menus.menu_links(item.below, attributes, menu_level + 1, menu_name_class) }} + {% endif %} + + {% endfor %} + + {% endif %} +{% endmacro %} diff --git a/public/themes/custom/ubccs/templates/navigation/menu--main.html.twig b/public/themes/custom/ubccs/templates/navigation/menu--main.html.twig new file mode 100644 index 0000000..c16b6c0 --- /dev/null +++ b/public/themes/custom/ubccs/templates/navigation/menu--main.html.twig @@ -0,0 +1,53 @@ +{# +/** + * @file + * Default theme implementation to display a menu. + * + * Available variables: + * - menu_name: The machine name of the menu. + * - items: A nested list of menu items. Each menu item contains: + * - attributes: HTML attributes for the menu item. + * - below: The menu item child items. + * - title: The menu link title. + * - url: The menu link url, instance of \Drupal\Core\Url + * - localized_options: Menu link localized options. + * + * @ingroup themeable + */ +#} +{% import _self as menus %} +{# + We call a macro which calls itself to render the full tree. + @see http://twig.sensiolabs.org/doc/tags/macro.html +#} +{{ menus.menu_links(items, attributes, 0) }} + +{% macro menu_links(items, attributes, menu_level) %} + {% import _self as menus %} + {% if items %} + + {% for item in items %} + {% + set classes = [ + item.is_expanded ? 'menu-item--expanded', + item.is_expanded ? 'dropdown', + item.is_collapsed ? 'menu-item--collapsed', + item.in_active_trail ? 'menu-item--active-trail', + item.in_active_trail ? 'active', + ] + %} + {% if menu_level == 0 and item.is_expanded %} + + {{ link(item.title, item.url, item.attributes.addClass('navbar-link')) }} + {% else %} + + {{ link(item.title, item.url, {'class': ['navbar-link']}) }} + {% endif %} + {% if item.below %} + {{ menus.menu_links(item.below, attributes.removeClass('nav', 'navbar-nav'), menu_level + 1) }} + {% endif %} + + {% endfor %} + + {% endif %} +{% endmacro %} diff --git a/public/themes/custom/ubccs/templates/navigation/pager.html.twig b/public/themes/custom/ubccs/templates/navigation/pager.html.twig new file mode 100644 index 0000000..e91a3ff --- /dev/null +++ b/public/themes/custom/ubccs/templates/navigation/pager.html.twig @@ -0,0 +1,127 @@ +{# +/** + * @file + * Theme override to display a pager. + * + * Available variables: + * - heading_id: Pagination heading ID. + * - items: List of pager items. + * The list is keyed by the following elements: + * - first: Item for the first page; not present on the first page of results. + * - previous: Item for the previous page; not present on the first page + * of results. + * - next: Item for the next page; not present on the last page of results. + * - last: Item for the last page; not present on the last page of results. + * - pages: List of pages, keyed by page number. + * Sub-sub elements: + * items.first, items.previous, items.next, items.last, and each item inside + * items.pages contain the following elements: + * - href: URL with appropriate query parameters for the item. + * - attributes: A keyed list of HTML attributes for the item. + * - text: The visible text used for the item link, such as "‹ Previous" + * or "Next ›". + * - current: The page number of the current page. + * - ellipses: If there are more pages than the quantity allows, then an + * ellipsis before or after the listed pages may be present. + * - previous: Present if the currently visible list of pages does not start + * at the first page. + * - next: Present if the visible list of pages ends before the last page. + * + * @see template_preprocess_pager() + * + * @todo review all uses of the replace() filter below in + * https://www.drupal.org/node/3053707 as the behavior it addresses will + * likely change when that issue is completed. + */ +#} +{% if items %} + +{% endif %} diff --git a/public/themes/custom/ubccs/templates/navigation/prevnext.html.twig b/public/themes/custom/ubccs/templates/navigation/prevnext.html.twig new file mode 100644 index 0000000..af0e354 --- /dev/null +++ b/public/themes/custom/ubccs/templates/navigation/prevnext.html.twig @@ -0,0 +1,29 @@ +{# +/** + * @file prevnext.html.twig + * Default theme implementation to the prevnext indicator. + * + * Available variables: + * - direction: "previous" or "next" + * - text: The translated text for "Previous" or "Next" + * - nid: The node NID of the destination link + * - url: A formatted absolute URL for the path /node/$nid + * - void: A flag indicating wether this element should be completelly skipped. TRUE means there is no available $nid. + * + */ +#} + +{% if not void %} + + +{% endif %} diff --git a/public/themes/custom/ubccs/templates/profile/profile--main--full.html.twig b/public/themes/custom/ubccs/templates/profile/profile--main--full.html.twig new file mode 100644 index 0000000..8824810 --- /dev/null +++ b/public/themes/custom/ubccs/templates/profile/profile--main--full.html.twig @@ -0,0 +1,36 @@ +{# +/** + * @file + * + * Default theme implementation for profiles. + * + * Available variables: + * - content: Items for the content of the profile. + * Use 'content' to print them all, or print a subset such as + * 'content.title'. Use the following code to exclude the + * printing of a given child element: + * @code + * {{ content|without('title') }} + * @endcode + * - attributes: HTML attributes for the wrapper. + * - profile: The profile object. + * - url: The profile URL, if available. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @ingroup themeable + */ +#} + + {{ title_suffix.contextual_links }} +
+
+ {{ content.field_person_img }} +
+
+ {{ content|without('field_person_img') }} +
+
+ {{ cv_profile }} + {{ post_content_custom_blocks }} + diff --git a/public/themes/custom/ubccs/templates/profile/profile--main--linked-name.html.twig b/public/themes/custom/ubccs/templates/profile/profile--main--linked-name.html.twig new file mode 100644 index 0000000..e26a69f --- /dev/null +++ b/public/themes/custom/ubccs/templates/profile/profile--main--linked-name.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * + * Default theme implementation for profiles. + * + * Available variables: + * - content: Items for the content of the profile. + * Use 'content' to print them all, or print a subset such as + * 'content.title'. Use the following code to exclude the + * printing of a given child element: + * @code + * {{ content|without('title') }} + * @endcode + * - attributes: HTML attributes for the wrapper. + * - profile: The profile object. + * - url: The profile URL, if available. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @ingroup themeable + */ +#} +{{ content }} diff --git a/public/themes/custom/ubccs/templates/profile/profile--main--teaser.html.twig b/public/themes/custom/ubccs/templates/profile/profile--main--teaser.html.twig new file mode 100644 index 0000000..0c03120 --- /dev/null +++ b/public/themes/custom/ubccs/templates/profile/profile--main--teaser.html.twig @@ -0,0 +1,57 @@ +{# +/** + * @file + * + * Default theme implementation for profiles. + * + * Available variables: + * - content: Items for the content of the profile. + * Use 'content' to print them all, or print a subset such as + * 'content.title'. Use the following code to exclude the + * printing of a given child element: + * @code + * {{ content|without('title') }} + * @endcode + * - attributes: HTML attributes for the wrapper. + * - profile: The profile object. + * - url: The profile URL, if available. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @ingroup themeable + */ +#} + + {{ title_suffix.contextual_links }} +
+
+ {% if profile.field_person_img.value %} + {{ content.field_person_img }} + {% else %} +
+ {{ profile.field_person_fname.value[:1]|upper }}{{ profile.field_person_lname.value[:1]|upper }} +
+ {% endif %} +
+
+
+ +
+ {{ profile.field_person_job_title.value }} +
+ + + +
+ diff --git a/public/themes/custom/ubccs/templates/views/views-exposed-form.html.twig b/public/themes/custom/ubccs/templates/views/views-exposed-form.html.twig new file mode 100644 index 0000000..edccd0d --- /dev/null +++ b/public/themes/custom/ubccs/templates/views/views-exposed-form.html.twig @@ -0,0 +1,19 @@ +{# +/** + * @file + * Theme override for a views exposed form. + * + * Available variables: + * - form: A render element representing the form. + * + * @see template_preprocess_views_exposed_form() + */ +#} +{% if q is not empty %} + {# + This ensures that, if clean URLs are off, the 'q' is added first, + as a hidden form element, so that it shows up first in the POST URL. + #} +{{ q }} +{% endif %} +{{ form }} diff --git a/public/themes/custom/ubccs/templates/views/views-mini-pager.html.twig b/public/themes/custom/ubccs/templates/views/views-mini-pager.html.twig new file mode 100644 index 0000000..c84eb71 --- /dev/null +++ b/public/themes/custom/ubccs/templates/views/views-mini-pager.html.twig @@ -0,0 +1,54 @@ +{# +/** + * @file + * Theme override for a views mini-pager. + * + * Available variables: + * - heading_id: Pagination heading ID. + * - items: List of pager items. + * + * @see template_preprocess_views_mini_pager() + */ +#} +{% + set pager_action_classes = [ + 'pager__link', + 'pager__link--mini', + 'pager__link--action-link' + ] +%} +{% if items.previous or items.next %} + + {{ 'Pagination'|t }} + + {% if items.previous %} + {% apply spaceless %} +
  • + + {{ 'Previous page'|t }} + +
  • + {% endapply %} + {% endif %} + + {% if items.current %} +
  • + + {{ 'Current page'|t }} + + {{ items.current }} +
  • + {% endif %} + + {% if items.next %} + {% apply spaceless %} +
  • + + {{ 'Next page'|t }} + +
  • + {% endapply %} + {% endif %} + + +{% endif %} diff --git a/public/themes/custom/ubccs/templates/views/views-view--research--block-1.html.twig b/public/themes/custom/ubccs/templates/views/views-view--research--block-1.html.twig new file mode 100644 index 0000000..aded520 --- /dev/null +++ b/public/themes/custom/ubccs/templates/views/views-view--research--block-1.html.twig @@ -0,0 +1,91 @@ +{# +/** + * @file + * Default theme implementation for main view template. + * + * Available variables: + * - attributes: Remaining HTML attributes for the element. + * - css_name: A CSS-safe version of the view name. + * - css_class: The user-specified classes names, if any. + * - header: The optional header. + * - footer: The optional footer. + * - rows: The results of the view query, if any. + * - empty: The content to display if there are no rows. + * - pager: The optional pager next/prev links to display. + * - exposed: Exposed widget form/info to display. + * - feed_icons: Optional feed icons to display. + * - more: An optional link to the next page of results. + * - title: Title of the view, only used when displaying in the admin preview. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the view title. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the view title. + * - attachment_before: An optional attachment view to be displayed before the + * view content. + * - attachment_after: An optional attachment view to be displayed after the + * view content. + * - dom_id: Unique id for every view being printed to give unique class for + * Javascript. + * + * @see template_preprocess_views_view() + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'view', + 'view-' ~ id|clean_class, + 'view-id-' ~ id, + 'view-display-id-' ~ display_id, + dom_id ? 'js-view-dom-id-' ~ dom_id, +] +%} + +
    + + +
    + + {{ title_prefix }} + {{ title }} + {{ title_suffix }} + + {% if header %} +
    + {{ header }} +
    + {% endif %} + + {{ exposed }} + {{ attachment_before }} + + {% if rows -%} + {{ rows }} + {% elseif empty -%} + {{ empty }} + {% endif %} + {{ pager }} + + {{ attachment_after }} + {{ more }} + + {% if footer %} +
    + {{ footer }} +
    + {% endif %} + + {{ feed_icons }} + + + diff --git a/public/themes/custom/ubccs/templates/views/views-view-list--research--block-1.html.twig b/public/themes/custom/ubccs/templates/views/views-view-list--research--block-1.html.twig new file mode 100644 index 0000000..918a0ae --- /dev/null +++ b/public/themes/custom/ubccs/templates/views/views-view-list--research--block-1.html.twig @@ -0,0 +1,47 @@ +{# +/** + * @file + * Default theme implementation for a view template to display a list of rows. + * + * Available variables: + * - attributes: HTML attributes for the container. + * - rows: A list of rows for this list. + * - attributes: The row's HTML attributes. + * - content: The row's contents. + * - title: The title of this group of rows. May be empty. + * - list: @todo. + * - type: Starting tag will be either a ul or ol. + * - attributes: HTML attributes for the list element. + * + * @see template_preprocess_views_view_list() + * + * @ingroup themeable + */ +#} + + {% if title %} +

    {{ title }}

    + {% endif %} + +
    + +
    + <{{ list.type }}{{ list.attributes }}> + + {% for row in rows %} + + {{- row.content -}} + + {% endfor %} + + +
    +
    + diff --git a/public/themes/custom/ubccs/templates/views/views-view-table--course-list.html.twig b/public/themes/custom/ubccs/templates/views/views-view-table--course-list.html.twig new file mode 100644 index 0000000..d1d4dfb --- /dev/null +++ b/public/themes/custom/ubccs/templates/views/views-view-table--course-list.html.twig @@ -0,0 +1,135 @@ +{# +/** + * @file + * Theme override for displaying a view as a table. + * + * Available variables: + * - attributes: Remaining HTML attributes for the element. + * - class: HTML classes that can be used to style contextually through CSS. + * - title : The title of this group of rows. + * - header: The table header columns. + * - attributes: Remaining HTML attributes for the element. + * - content: HTML classes to apply to each header cell, indexed by + * the header's key. + * - default_classes: A flag indicating whether default classes should be + * used. + * - caption_needed: Is the caption tag needed. + * - caption: The caption for this table. + * - accessibility_description: Extended description for the table details. + * - accessibility_summary: Summary for the table details. + * - rows: Table row items. Rows are keyed by row number. + * - attributes: HTML classes to apply to each row. + * - columns: Row column items. Columns are keyed by column number. + * - attributes: HTML classes to apply to each column. + * - content: The column content. + * - default_classes: A flag indicating whether default classes should be + * used. + * - responsive: A flag indicating whether table is responsive. + * - sticky: A flag indicating whether table header is sticky. + * - summary_element: A render array with table summary information (if any). + * + * @see template_preprocess_views_view_table() + */ +#} +{% + set classes = [ + 'views-table', + 'views-view-table', + 'cols-' ~ header|length, + responsive ? 'responsive-enabled', + sticky ? 'sticky-enabled', + ] +%} +
    + {% endif %} + + + {% if header %} + + + {% for key, column in header %} + {% if column.default_classes %} + {% + set column_classes = [ + 'views-field', + 'views-field-' ~ fields[key], + ] + %} + {% endif %} + + {%- if column.wrapper_element -%} + <{{ column.wrapper_element }}> + {%- if column.url -%} + {{ column.content }}{{ column.sort_indicator }} + {%- else -%} + {{ column.content }}{{ column.sort_indicator }} + {%- endif -%} + + {%- else -%} + {%- if column.url -%} + {{ column.content }}{{ column.sort_indicator }} + {%- else -%} + {{- column.content }}{{ column.sort_indicator }} + {%- endif -%} + {%- endif -%} + + {% endfor %} + + Details + + + + {% endif %} + + {% for i, row in rows %} + + {% for key, column in row.columns %} + {% if column.default_classes %} + {% + set column_classes = [ + 'views-field' + ] + %} + {% for field in column.fields %} + {% set column_classes = column_classes|merge(['views-field-' ~ field]) %} + {% endfor %} + {% endif %} + + {%- if column.wrapper_element -%} + <{{ column.wrapper_element }}> + {% for content in column.content %} + {{ content.separator }}{{ content.field_output }} + {% endfor %} + + {%- else -%} + {% for content in column.content %} + {{- content.separator }}{{ content.field_output -}} + {% endfor %} + {%- endif %} + + {% endfor %} + + + + + + {% endfor %} + +
    + {% if caption %} + {{ caption }} + {% else %} + {{ title }} + {% endif %} + {% if (summary_element is not empty) %} + {{ summary_element }} + {% endif %} +
    +
    diff --git a/public/themes/custom/ubccs/templates/views/views-view-table.html.twig b/public/themes/custom/ubccs/templates/views/views-view-table.html.twig new file mode 100644 index 0000000..aeeae92 --- /dev/null +++ b/public/themes/custom/ubccs/templates/views/views-view-table.html.twig @@ -0,0 +1,120 @@ +{# +/** + * @file + * Theme override for displaying a view as a table. + * + * Available variables: + * - attributes: Remaining HTML attributes for the element. + * - class: HTML classes that can be used to style contextually through CSS. + * - title : The title of this group of rows. + * - header: The table header columns. + * - attributes: Remaining HTML attributes for the element. + * - content: HTML classes to apply to each header cell, indexed by + * the header's key. + * - default_classes: A flag indicating whether default classes should be + * used. + * - caption_needed: Is the caption tag needed. + * - caption: The caption for this table. + * - accessibility_description: Extended description for the table details. + * - accessibility_summary: Summary for the table details. + * - rows: Table row items. Rows are keyed by row number. + * - attributes: HTML classes to apply to each row. + * - columns: Row column items. Columns are keyed by column number. + * - attributes: HTML classes to apply to each column. + * - content: The column content. + * - default_classes: A flag indicating whether default classes should be + * used. + * - responsive: A flag indicating whether table is responsive. + * - sticky: A flag indicating whether table header is sticky. + * - summary_element: A render array with table summary information (if any). + * + * @see template_preprocess_views_view_table() + */ +#} +{% + set classes = [ + 'views-table', + 'views-view-table', + 'cols-' ~ header|length, + responsive ? 'responsive-enabled', + sticky ? 'sticky-enabled', + ] +%} + + {% if caption_needed %} + + {% if caption %} +

    {{ caption }}

    + {% else %} + {{ title }} + {% endif %} + {% if (summary_element is not empty) %} + {{ summary_element }} + {% endif %} + + {% endif %} + {% if header %} + + + {% for key, column in header %} + {% if column.default_classes %} + {% + set column_classes = [ + 'views-field', + 'views-field-' ~ fields[key], + ] + %} + {% endif %} + + {%- if column.wrapper_element -%} + <{{ column.wrapper_element }}> + {%- if column.url -%} + {{ column.content }}{{ column.sort_indicator }} + {%- else -%} + {{ column.content }}{{ column.sort_indicator }} + {%- endif -%} + + {%- else -%} + {%- if column.url -%} + {{ column.content }}{{ column.sort_indicator }} + {%- else -%} + {{- column.content }}{{ column.sort_indicator }} + {%- endif -%} + {%- endif -%} + + {% endfor %} + + + {% endif %} + + {% for row in rows %} + + {% for key, column in row.columns %} + {% if column.default_classes %} + {% + set column_classes = [ + 'views-field' + ] + %} + {% for field in column.fields %} + {% set column_classes = column_classes|merge(['views-field-' ~ field]) %} + {% endfor %} + {% endif %} + + {%- if column.wrapper_element -%} + <{{ column.wrapper_element }}> + {% for content in column.content %} + {{ content.separator }}{{ content.field_output }} + {% endfor %} + + {%- else -%} + {% for content in column.content %} + {{- content.separator }}{{ content.field_output -}} + {% endfor %} + {%- endif %} + + {% endfor %} + + {% endfor %} + + diff --git a/public/themes/custom/ubccs/templates/views/views-view-unformatted.html.twig b/public/themes/custom/ubccs/templates/views/views-view-unformatted.html.twig new file mode 100644 index 0000000..486f734 --- /dev/null +++ b/public/themes/custom/ubccs/templates/views/views-view-unformatted.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * Theme override to display a view of unformatted rows. + * + * Available variables: + * - title: The title of this group of rows. May be empty. + * - rows: A list of the view's row items. + * - attributes: The row's HTML attributes. + * - content: The row's content. + * - view: The view object. + * - default_row_class: A flag indicating whether default classes should be + * used on rows. + * + * @see template_preprocess_views_view_unformatted() + */ +#} +{% if title %} +

    {{ title }}

    +{% endif %} +{% for row in rows %} + {% + set row_classes = [ + default_row_class ? 'views-row', + ] + %} + + {{- row.content -}} + +{% endfor %} diff --git a/public/themes/custom/ubccs/ubccs.info.yml b/public/themes/custom/ubccs/ubccs.info.yml new file mode 100644 index 0000000..e003076 --- /dev/null +++ b/public/themes/custom/ubccs/ubccs.info.yml @@ -0,0 +1,30 @@ +name: UBC CS +type: theme +description: This is a responsive UBC CLF (Common Look and Feel) theme, developed by UBC IT Web Services Department. The CLF is developed, managed and distributed by UBC Communications & Marketing. To find out more about the CLF, requirements and possible customizations please see brand.ubc.ca/clf.

    For more information, support or to report an issue with this theme, please contact UBC IT Web Services. +package: UBC +core_version_requirement: ^8 || ^9 +base theme: galactus + +libraries: + - ubccs/global + - ubccs/bootstrap + - ubccs/fancybox +# - ubccs/font + - ubccs/fontawesome.svg.base + - ubccs/fontawesome.svg.solid + - ubccs/fontawesome.svg.brands + +libraries-override: + # Replace with a newer version of normalize, fixes details elements. + core/normalize: false + # Replaced in components/_caption.scss. + filter/caption: false + # Replaced in core and stable align.module.css with components/_align.scss. + system/base: + css: + component: + css/components/align.module.css: false + /core/themes/stable/css/system/components/align.module.css: false + +ckeditor5-stylesheets: + - css/ckeditor5.css diff --git a/public/themes/custom/ubccs/ubccs.layouts.yml b/public/themes/custom/ubccs/ubccs.layouts.yml new file mode 100644 index 0000000..69a8c47 --- /dev/null +++ b/public/themes/custom/ubccs/ubccs.layouts.yml @@ -0,0 +1,13 @@ +landing_banner: + label: 'Landing Banner' + category: 'UBC CS' + template: templates/component/landing-banner + default_region: image + icon_map: + - [image] + - [title] + regions: + image: + label: Image + title: + label: Title diff --git a/public/themes/custom/ubccs/ubccs.libraries.yml b/public/themes/custom/ubccs/ubccs.libraries.yml new file mode 100644 index 0000000..17df682 --- /dev/null +++ b/public/themes/custom/ubccs/ubccs.libraries.yml @@ -0,0 +1,107 @@ +# Global Styles. +global: + css: + base: + css/normalize.css: { weight: -20 } + component: + /core/themes/classy/css/components/action-links.css: { weight: -10 } + /core/themes/classy/css/components/breadcrumb.css: { weight: -10 } + /core/themes/classy/css/components/button.css: { weight: -10 } + /core/themes/classy/css/components/collapse-processed.css: { weight: -10 } + /core/themes/classy/css/components/container-inline.css: { weight: -10 } + /core/themes/classy/css/components/details.css: { weight: -10 } + /core/themes/classy/css/components/exposed-filters.css: { weight: -10 } + /core/themes/classy/css/components/field.css: { weight: -10 } + /core/themes/classy/css/components/form.css: { weight: -10 } + /core/themes/classy/css/components/icons.css: { weight: -10 } + /core/themes/classy/css/components/inline-form.css: { weight: -10 } + /core/themes/classy/css/components/item-list.css: { weight: -10 } + /core/themes/classy/css/components/link.css: { weight: -10 } + /core/themes/classy/css/components/links.css: { weight: -10 } + /core/themes/classy/css/components/menu.css: { weight: -10 } + /core/themes/classy/css/components/more-link.css: { weight: -10 } +# /core/themes/classy/css/components/pager.css: false + /core/themes/classy/css/components/tabledrag.css: { weight: -10 } + /core/themes/classy/css/components/tableselect.css: { weight: -10 } + /core/themes/classy/css/components/tablesort.css: { weight: -10 } + /core/themes/classy/css/components/tabs.css: { weight: -10 } + /core/themes/classy/css/components/textarea.css: { weight: -10 } + /core/themes/classy/css/components/ui-dialog.css: { weight: -10 } + css/select2.css: {} + theme: + css/local.clf.fixes.css: {} + css/main.css: {} + css/layout.css: {} + css/timeline.css: {} + css/print.css: { media: print } + js: + js/main.js: {} + +# Fancybox. +fancybox: + css: + theme: + js/vendor/fancybox/jquery.fancybox.css: {} + js: + js/vendor/fancybox/jquery.fancybox.js: {} + +# Bootstrap Styles. +bootstrap: + css: + theme: + css/bootstrap.css: { weight: -9 } + +font: + remote: https://fonts.google.com + license: + name: Apache License, Version 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0 + gpl-compatible: false + css: + base: + 'https://fonts.googleapis.com/css2?family=Merriweather:ital@0;1&family=Open+Sans:ital,wght@0,400;0,700;1,400&display=swap': + type: external + weight: -20 + +# Fontawesome JS. +fontawesome.svg.base: + version: 5.13.1 + license: + url: https://fontawesome.com/license + gpl-compatible: false + header: true + js: + /libraries/fontawesome/js/fontawesome.min.js: { minified: true } + +fontawesome.svg.regular: + version: 5.13.1 + license: + url: https://fontawesome.com/license + gpl-compatible: false + header: true + js: + /libraries/fontawesome/js/regular.min.js: { minified: true } + dependencies: + - ubccs/fontawesome.svg.base + +fontawesome.svg.solid: + version: 5.13.1 + license: + url: https://fontawesome.com/license + gpl-compatible: false + header: true + js: + /libraries/fontawesome/js/solid.min.js: { minified: true } + dependencies: + - ubccs/fontawesome.svg.base + +fontawesome.svg.brands: + version: 5.13.1 + license: + url: https://fontawesome.com/license + gpl-compatible: false + header: true + js: + /libraries/fontawesome/js/brands.min.js: { minified: true } + dependencies: + - ubccs/fontawesome.svg.base diff --git a/public/themes/custom/ubccs/ubccs.theme b/public/themes/custom/ubccs/ubccs.theme new file mode 100644 index 0000000..c47c419 --- /dev/null +++ b/public/themes/custom/ubccs/ubccs.theme @@ -0,0 +1,100 @@ +getStorage('node'); + $schedule = $storage->loadByProperties(['field_event' => $variables['node']->ID()]); + + if (!empty($schedule)) { + $schedule = reset($schedule); + + /** @var \Drupal\Core\Entity\EntityViewBuilderInterface $render_controller */ + $render_controller = \Drupal::entityTypeManager()->getViewBuilder('node'); + // Inject the rendered content directly into variable twig can handle. + $variables['content']['schedule'] = $render_controller->view($schedule, 'teaser'); + } + +} + +/** + * Adjust styling of fields. + */ +function ubccs_preprocess_field(&$variables) { + // Customize only on profile pages. + if ($variables['entity_type'] != 'profile') { + return; + } + + $element = $variables['element']; + if (isset($element['#field_name'])) { + // Change labels to H2. + $fields_label_transform = [ + 'field_person_cv', + 'field_computing_keywords', + 'field_person_interests', + 'field_selected_publications', + 'field_research_interests', + 'field_research_groups', + ]; + if (in_array($element['#field_name'], $fields_label_transform)) { + $variables['label'] = ['#markup' => '

    ' . $variables['label'] . '

    ']; + } + + if ($element['#field_name'] == 'field_person_job_title') { + $variables['items'][0]['content']['#prefix'] = '

    '; + $variables['items'][0]['content']['#suffix'] = '

    '; + } + + } +} + +/** + * Implements hook_theme_suggestions_HOOK_alter(). + */ +function ubccs_theme_suggestions_node_alter(array &$suggestions, array $variables) { + $new_suggestions = []; + + // Order the view_mode more specific than the bundle. + $node = $variables['elements']['#node']; + $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_'); + $new_suggestions[] = 'node__' . $node->bundle(); + $new_suggestions[] = 'node__' . $sanitized_view_mode; + $new_suggestions[] = 'node__' . $node->bundle() . '__' . $sanitized_view_mode; + $new_suggestions[] = 'node__' . $node->id() . '__' . $sanitized_view_mode; + $new_suggestions[] = 'node__' . $node->id(); + + $suggestions = array_diff($suggestions, $new_suggestions); + $suggestions = array_merge($new_suggestions, $suggestions); +} + +/** + * + */ +function ubccs_theme_suggestions_block_alter(array &$suggestions, array $variables) { + // Block suggestions for custom block bundles. + if (isset($variables['elements']['content']['#block_content'])) { + array_splice($suggestions, 1, 0, 'block__bundle__' . $variables['elements']['content']['#block_content']->bundle()); + } +} + +/** + * + */ +function ubccs_preprocess_html(&$variables) { + $current_uri = \Drupal::request()->getRequestUri(); + if (strpos($current_uri, 'reading-room/') !== FALSE) { + // Children pages of the reading room page. + $variables['head_title'] = 'ICICS/Computer Science Reading Room: ' . $variables['head_title']['title']; + } +}