]> _ Git - physioassist-wordpress.git/commitdiff
Wait #3470 @6.5
authorstephen@cubedesigners.com <stephen@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 17 Mar 2020 20:35:14 +0000 (20:35 +0000)
committerstephen@cubedesigners.com <stephen@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 17 Mar 2020 20:35:14 +0000 (20:35 +0000)
wp-content/mu-plugins/physioassist/src/Elementor/Widgets/ProfileGrid.php
wp-content/themes/physioassist/package.json
wp-content/themes/physioassist/resources/assets/images/icons/close-rounded.svg [new file with mode: 0644]
wp-content/themes/physioassist/resources/assets/scripts/profile-grid.js
wp-content/themes/physioassist/resources/assets/styles/main.styl
wp-content/themes/physioassist/resources/assets/styles/widgets/profile-carousel.styl [new file with mode: 0644]
wp-content/themes/physioassist/resources/views/widgets/profile-carousel.blade.php [new file with mode: 0644]
wp-content/themes/physioassist/resources/views/widgets/profile-grid.blade.php
wp-content/themes/physioassist/yarn.lock

index 1d3a52d2e89a5517e519cd3e331eb512a2637082..35a39ea781bcac28a9d4edfbb63f3c1fbc30f63e 100644 (file)
@@ -67,6 +67,21 @@ class ProfileGrid extends Widget_Base {
             ]
         );
 
+        $this->add_control(
+            'type',
+            [
+                'label' => __('Display Type', 'cube'),
+                'type' => Controls_Manager::SELECT,
+                'options' => [
+                    'grid' => __( 'Grid', 'cube' ),
+                    'carousel' => __( 'Carousel', 'cube' ),
+                ],
+                'default' => 'grid',
+                'render_type' => 'template', // Make editor re-render when this changes
+                'prefix_class' => 'profile-grid-type-',
+            ]
+        );
+
         $this->add_control(
             'items',
             [
@@ -131,6 +146,9 @@ class ProfileGrid extends Widget_Base {
                 'return_value' => 'truncate-text',
                 'prefix_class' => '',
                 'render_type' => 'template', // Make editor re-render when this changes
+                'condition' => [
+                    'type' => 'grid'
+                ]
             ]
         );
 
@@ -158,12 +176,16 @@ class ProfileGrid extends Widget_Base {
      */
     protected function render() {
 
+        $ID = $this->get_id();
+        $display_type = $this->get_settings('type');
         $items = $this->get_settings('items');
         $truncate_lines = $this->get_settings('truncate_lines');
 
-        $html = \App\template('widgets/profile-grid', compact('items', 'truncate_lines'));
-
-        echo '<div class="profile-grid">'. $html .'</div>';
+        if ($display_type == 'carousel') {
+            echo \App\template('widgets/profile-carousel', compact('items', 'ID'));
+        } else {
+            echo \App\template('widgets/profile-grid', compact('items', 'truncate_lines'));
+        }
     }
 
     /**
@@ -174,6 +196,10 @@ class ProfileGrid extends Widget_Base {
      * @since 1.0.0
      * @access protected
      */
+
+    /* ### Disabled because now there are two different templates (grid + carousel)
+           and it would be too messy to have live JS templates too
+
     protected function _content_template() {
         ?>
         <div class="profile-grid">
@@ -218,4 +244,6 @@ class ProfileGrid extends Widget_Base {
         <?php
     }
 
+    */
+
 }
index 160ecbe32c2a6541eb6c18ea3c64cc9cf85464ad..74b8b5e0407f1d76ec93f5b760e4a88b03c49bba 100644 (file)
@@ -84,6 +84,7 @@
     "imagemin-mozjpeg": "~7.0.0",
     "imagemin-webpack-plugin": "~2.0.0",
     "import-glob": "~1.5",
+    "lity": "^2.4.0",
     "lodash.debounce": "^4.0.8",
     "lodash.throttle": "^4.1.1",
     "lost": "^8.2.0",
diff --git a/wp-content/themes/physioassist/resources/assets/images/icons/close-rounded.svg b/wp-content/themes/physioassist/resources/assets/images/icons/close-rounded.svg
new file mode 100644 (file)
index 0000000..52fbb80
--- /dev/null
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="70" height="70" viewBox="0 0 70 70">
+  <defs>
+    <style>
+      .close-bg {
+        fill: #f7f8fc;
+      }
+
+      .close-x {
+        fill: #20548c;
+        fill-rule: evenodd;
+      }
+    </style>
+  </defs>
+  <circle class="close-bg" cx="35" cy="35" r="35"/>
+  <path class="close-x" d="M32.161,34.795L45.339,21.617l3.294,3.294L35.455,38.089Z"/>
+  <path class="close-x" d="M35.455,31.867L48.633,45.045l-3.294,3.294L32.161,35.161Z"/>
+  <path class="close-x" d="M38.62,35.174L25.443,48.352l-3.294-3.294L35.326,31.88Z"/>
+  <path class="close-x" d="M35.326,38.1L22.148,24.924l3.294-3.294L38.62,34.807Z"/>
+</svg>
index 6d3dab22be5e216f96cb3da5539cdc72c382ac7b..3d0e5c9b7347460fe3582a1441ccc81f8e321fe5 100644 (file)
@@ -1,4 +1,5 @@
 import trunk8 from 'trunk8'; // eslint-disable-line
+import lity from 'lity'; // eslint-disable-line
 import debounce from 'lodash.debounce';
 
 var text_selector = '.profile-grid-body',
@@ -18,15 +19,25 @@ var text_selector = '.profile-grid-body',
     elementorFrontend.hooks.addAction('frontend/element_ready/cube-profile-grid.default', function ($scope) {
 
       // Only run on blocks that have this setting activated
-      if (!$scope.hasClass('truncate-text')) {
-        return;
+      if ($scope.hasClass('truncate-text')) {
+        initTruncateText();
+      }
+
+      // Trigger carousel if it exists
+      if ($scope.hasClass('profile-grid-type-carousel')) {
+        $scope.find('.profile-carousel').slick(); // Note: settings come from data-attribute in HTML
       }
 
-      truncateText();
 
     });
   });
 
+})(jQuery);
+
+function initTruncateText() {
+
+  truncateText();
+
   $(document).ready(function() {
     setTimeout(truncateText, 500); // Just in case it doesn't fire the first time for some reason...
   });
@@ -49,8 +60,7 @@ var text_selector = '.profile-grid-body',
     event.preventDefault();
   });
 
-
-})(jQuery);
+}
 
 function truncateText() {
 
index bbb835fd7f823969b4be80c768b9ef74eadb21ef..cb54c20aaf159958a4aae6012b1e98f3bcc25577 100644 (file)
@@ -3,6 +3,7 @@
 
 /** Import everything from autoload */
 // @import "autoload/**/*"
+@import '~lity/dist/lity.css'
 
 @import 'common/reset'
 @import 'common/utilities'
diff --git a/wp-content/themes/physioassist/resources/assets/styles/widgets/profile-carousel.styl b/wp-content/themes/physioassist/resources/assets/styles/widgets/profile-carousel.styl
new file mode 100644 (file)
index 0000000..9899e03
--- /dev/null
@@ -0,0 +1,87 @@
+.profile-carousel
+
+  &-item
+    cursor: pointer
+    text-align: center
+    margin: 0 20px
+
+  &-image
+    display: block
+    width: 100%
+    max-width: 195px
+    margin: 0 auto 1.75em
+    background-size: cover
+    background-position: center
+    background-repeat: no-repeat
+    border-radius: 50%
+
+    .profile-carousel-item:focus &
+      border: 2px solid $colors.headings
+
+    &-sizer
+      padding-bottom: 100% // Make a square
+
+  &-title
+    color: $colors.headings
+    font-size: 18px
+    font-weight: 600
+    text-transform: uppercase
+    margin-bottom: 0.25em
+    line-height: 1.3
+
+  &-subtitle
+    color: $colors.sub-headings
+    font-size: 14px
+    font-weight: 300
+
+  &-body
+    color: $colors.text
+    font-size: 16px
+    
+  &-lightbox
+    horizontal-spacing(5vw)
+    vertical-spacing(3vw)
+    background-color: #fff
+    width: 100vw
+    max-width: 800px
+    max-height: 90vh !important // Gives 5% top and bottom gap
+    overflow-y: auto // Scroll internally if content is too tall for screen
+    text-align: center
+
+
+//=== Lity Lightbox customisations
+.lity-close
+  position: absolute
+  top: 16px !important
+  right: 20px
+  width: 70px
+  height: @width
+  opacity: 1
+  transform: scale(1)
+  transform-origin: center
+  transition: all 0.3s ease
+  transition-delay: 0.15s // Slight delay to give content box time to grow enough
+
+  // Hide while loading and closing
+  .lity-loading &,
+  .lity-closed &
+    opacity: 0
+    transform: scale(0.8)
+
+  // When lightbox is closing there's no transition or delay
+  // because we want the button to disappear immediately so
+  // we don't get a weird overlap with shrinking content box
+  .lity-closed &
+    transition-duration: 0s
+    transition-delay: 0s
+
+  &:after
+    content: ''
+    position: absolute
+    top: 0
+    left: 0
+    width: 100%
+    height: 100%
+    background: url('../images/icons/close-rounded.svg') center no-repeat
+    background-size: contain
+    z-index: 10
diff --git a/wp-content/themes/physioassist/resources/views/widgets/profile-carousel.blade.php b/wp-content/themes/physioassist/resources/views/widgets/profile-carousel.blade.php
new file mode 100644 (file)
index 0000000..4b5f5ac
--- /dev/null
@@ -0,0 +1,70 @@
+{{--PROFILE CAROUSEL--}}
+@php
+  $settings = [
+    'slidesToShow' => 4,
+    'slidesToScroll' => 1,
+    'dots' => count($items) > 4, // Only show dots when there are enough items
+    'infinite' => true,
+    'responsive' => [
+      [
+        'breakpoint' => 1300,
+        'settings' => [
+          'slidesToShow' => 3
+        ]
+      ],
+      [
+        'breakpoint' => 850,
+        'settings' => [
+          'slidesToShow' => 2
+        ]
+      ],
+      [
+        'breakpoint' => 650,
+        'settings' => [
+          'slidesToShow' => 1
+        ]
+      ],
+    ]
+  ];
+
+  $slick = json_encode($settings);
+
+@endphp
+
+<div class="profile-carousel elementor-slick-slider" data-slick="{{ $slick }}">
+
+  @foreach ($items as $index => $item)
+
+    @php
+      $lightbox_ID = 'lightbox_'. $ID .'_'. $index; // Unique ID for lightbox content
+    @endphp
+
+    <a href="#{{ $lightbox_ID }}" data-lity class="profile-carousel-item slick-slide">
+
+      <div class="profile-carousel-image" style="background-image:url('{{ wp_get_attachment_image_url($item['image']['id'], 'post-thumbnail') }}')">
+        <div class="profile-carousel-image-sizer"></div>
+      </div>
+
+      <h3 class="profile-carousel-title">{!! str_replace('-', '&#8209;', $item['title']) /* make hyphens non-breaking */ !!}</h3>
+
+      @if ($item['subtitle'])
+        <h4 class="profile-carousel-subtitle">{{ $item['subtitle'] }}</h4>
+      @endif
+
+      {{-- Lightbox Content --}}
+      <div id="{{ $lightbox_ID }}" class="lity-hide profile-carousel-lightbox">
+
+        <div class="profile-carousel-image" style="background-image:url('{{ wp_get_attachment_image_url($item['image']['id'], 'post-thumbnail') }}')">
+          <div class="profile-carousel-image-sizer"></div>
+        </div>
+
+        <h3 class="profile-carousel-title">{{ $item['title'] }}</h3>
+
+        {!! $item['body'] !!}
+      </div>
+
+    </a>  {{-- .profile-carousel-item --}}
+
+  @endforeach
+
+</div>
index 4a5a4a51b3a5bc9ab77dd167509dc66d154a19da..4d4e41963a7c6396768947fb486849f4fd0b8c52 100644 (file)
@@ -1,41 +1,41 @@
-@foreach ($items as $item)
+<div class="profile-grid">
 
-  <div class="profile-grid-item">
-    @image($item['image']['id'], 'full', ['class' => 'profile-grid-image'])
+  @foreach ($items as $item)
 
-    <div class="profile-grid-text">
+    <div class="profile-grid-item">
+      @image($item['image']['id'], 'full', ['class' => 'profile-grid-image'])
 
-      <h3 class="profile-grid-title">{{ $item['title'] }}</h3>
+      <div class="profile-grid-text">
 
-      @if ($item['subtitle'])
-        <h4 class="profile-grid-subtitle">{{ $item['subtitle'] }}</h4>
-      @endif
+        <h3 class="profile-grid-title">{{ $item['title'] }}</h3>
 
-      <div class="profile-grid-body"
-           data-truncate-lines="{{ $truncate_lines }}"
-           data-read-more="<?php _ex('Read more', 'Profile grid read more link text', 'cube') ?>"
-           data-read-less="<?php _ex('Read less', 'Profile grid read less link text', 'cube') ?>"
-      >
-        {!! $item['body'] !!}
-      </div>
+        @if ($item['subtitle'])
+          <h4 class="profile-grid-subtitle">{{ $item['subtitle'] }}</h4>
+        @endif
 
-      @if (!empty($item['cta_text']) && !empty($item['cta_link']['url']))
-        <a href="{{ $item['cta_link']['url'] }}"
-           class="profile-grid-cta arrow-link"
-           @if ($item['cta_link']['is_external'])
-            target="_blank" rel="noopener"
-           @endif
+        <div class="profile-grid-body"
+             data-truncate-lines="{{ $truncate_lines }}"
+             data-read-more="<?php _ex('Read more', 'Profile grid read more link text', 'cube') ?>"
+             data-read-less="<?php _ex('Read less', 'Profile grid read less link text', 'cube') ?>"
         >
-          @svg('arrow')
-          {{ $item['cta_text'] }}
-        </a>
-      @endif
+          {!! $item['body'] !!}
+        </div>
+
+        @if (!empty($item['cta_text']) && !empty($item['cta_link']['url']))
+          <a href="{{ $item['cta_link']['url'] }}"
+             class="profile-grid-cta arrow-link"
+             @if ($item['cta_link']['is_external'])
+              target="_blank" rel="noopener"
+             @endif
+          >
+            @svg('arrow')
+            {{ $item['cta_text'] }}
+          </a>
+        @endif
 
+      </div>
     </div>
-  </div>
 
-@endforeach
+  @endforeach
 
-{{--<pre>--}}
-  {{--@php(print_r($items))--}}
-{{--</pre>--}}
+</div>
index ed3460327f4a4409a9ab415c523ab4a76c311910..763b9a81e0dc1677d1b269586c22a6114e2b9464 100644 (file)
@@ -2178,7 +2178,7 @@ debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9, debug@~2.6
   dependencies:
     ms "2.0.0"
 
-debug@^3.0.0, debug@^3.1.0, debug@^3.2.6:
+debug@^3.0.0, debug@^3.1.0:
   version "3.2.6"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
   integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -2414,11 +2414,6 @@ destroy@~1.0.4:
   resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
   integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
 
-detect-libc@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
-  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
 dev-ip@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0"
@@ -3585,13 +3580,6 @@ fs-extra@3.0.1:
     jsonfile "^3.0.0"
     universalify "^0.1.0"
 
-fs-minipass@^1.2.5:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
-  integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
-  dependencies:
-    minipass "^2.6.0"
-
 fs-write-stream-atomic@^1.0.8:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
@@ -4231,7 +4219,7 @@ https-browserify@^1.0.0:
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
   integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
 
-iconv-lite@^0.4.17, iconv-lite@^0.4.4:
+iconv-lite@^0.4.17:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -4260,13 +4248,6 @@ iferr@^0.1.5:
   resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
   integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 
-ignore-walk@^3.0.1:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
-  integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
-  dependencies:
-    minimatch "^3.0.4"
-
 ignore@^3.3.3, ignore@^3.3.5:
   version "3.3.10"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -5197,6 +5178,11 @@ limiter@^1.0.5:
   resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2"
   integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==
 
+lity@^2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/lity/-/lity-2.4.0.tgz#af7eb0c33efe3b21c31ab22848e608eca432e819"
+  integrity sha512-6sj/IjJ6bDWdWcvo15r12erzVkVQFx8xA5dWT3WjuJxCns8o7PEkDAjfTjaoy6wbR2KDxAfxBWqY9YNnpAUWPQ==
+
 load-json-file@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -5887,21 +5873,6 @@ minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
   integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
 
-minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
-  version "2.9.0"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
-  integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
-  dependencies:
-    safe-buffer "^5.1.2"
-    yallist "^3.0.0"
-
-minizlib@^1.2.1:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
-  integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
-  dependencies:
-    minipass "^2.9.0"
-
 mississippi@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@@ -6026,15 +5997,6 @@ natural-compare@^1.4.0:
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
 
-needle@^2.2.1:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
-  integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
-  dependencies:
-    debug "^3.2.6"
-    iconv-lite "^0.4.4"
-    sax "^1.2.4"
-
 negotiator@0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -6102,22 +6064,6 @@ node-libs-browser@^2.0.0, node-libs-browser@^2.2.1:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-pre-gyp@*:
-  version "0.14.0"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
-  integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
-  dependencies:
-    detect-libc "^1.0.2"
-    mkdirp "^0.5.1"
-    needle "^2.2.1"
-    nopt "^4.0.1"
-    npm-packlist "^1.1.6"
-    npmlog "^4.0.2"
-    rc "^1.2.7"
-    rimraf "^2.6.1"
-    semver "^5.3.0"
-    tar "^4.4.2"
-
 node-releases@^1.1.44:
   version "1.1.45"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2"
@@ -6162,14 +6108,6 @@ node-status-codes@^1.0.0:
   dependencies:
     abbrev "1"
 
-nopt@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
-  integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
-  dependencies:
-    abbrev "1"
-    osenv "^0.1.4"
-
 normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -6217,13 +6155,6 @@ normalize-url@^3.0.0:
   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
   integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
 
-npm-bundled@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
-  integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
-  dependencies:
-    npm-normalize-package-bin "^1.0.1"
-
 npm-conf@^1.1.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
@@ -6232,19 +6163,6 @@ npm-conf@^1.1.0:
     config-chain "^1.1.11"
     pify "^3.0.0"
 
-npm-normalize-package-bin@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
-  integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
-
-npm-packlist@^1.1.6:
-  version "1.4.7"
-  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848"
-  integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==
-  dependencies:
-    ignore-walk "^3.0.1"
-    npm-bundled "^1.0.1"
-
 npm-run-path@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -6252,7 +6170,7 @@ npm-run-path@^2.0.0:
   dependencies:
     path-key "^2.0.0"
 
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
+"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
   integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -6497,7 +6415,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
   integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 
-osenv@0, osenv@^0.1.4:
+osenv@0:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
   integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
@@ -7683,7 +7601,7 @@ range-parser@^1.0.3, range-parser@~1.2.0:
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
   integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
 
-rc@^1.1.2, rc@^1.2.7:
+rc@^1.1.2:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
   integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -8270,7 +8188,7 @@ sass-loader@~6.0:
     neo-async "^2.5.0"
     pify "^3.0.0"
 
-sax@^1.2.4, sax@~1.2.1, sax@~1.2.4:
+sax@~1.2.1, sax@~1.2.4:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
   integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -9204,19 +9122,6 @@ tar@^2.0.0:
     fstream "^1.0.12"
     inherits "2"
 
-tar@^4.4.2:
-  version "4.4.13"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
-  integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
-  dependencies:
-    chownr "^1.1.1"
-    fs-minipass "^1.2.5"
-    minipass "^2.8.6"
-    minizlib "^1.2.1"
-    mkdirp "^0.5.0"
-    safe-buffer "^5.1.2"
-    yallist "^3.0.3"
-
 temp-dir@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
@@ -10231,7 +10136,7 @@ yallist@^2.1.2:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
   integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
+yallist@^3.0.2:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==