@mjhls/mjh-framework 1.0.74 → 1.0.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5526,23 +5526,23 @@ var GroupDeck = function GroupDeck(props) {
5526
5526
  return React__default.createElement(
5527
5527
  'div',
5528
5528
  { id: 'vid-slider', className: 'col' },
5529
+ React__default.createElement(
5530
+ 'div',
5531
+ { onClick: function onClick(e) {
5532
+ return scrollSlider(e, 'prev');
5533
+ }, className: 'tile__slider-prev', style: { color: variant } },
5534
+ React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow left' })
5535
+ ),
5536
+ React__default.createElement(
5537
+ 'div',
5538
+ { onClick: function onClick(e) {
5539
+ return scrollSlider(e, 'next');
5540
+ }, className: 'tile__slider-next', style: { color: variant } },
5541
+ React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow right' })
5542
+ ),
5529
5543
  React__default.createElement(
5530
5544
  'div',
5531
5545
  { className: 'row' },
5532
- React__default.createElement(
5533
- 'div',
5534
- { onClick: function onClick(e) {
5535
- return scrollSlider(e, 'prev');
5536
- }, className: 'tile__slider-prev', style: { color: variant } },
5537
- React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow left' })
5538
- ),
5539
- React__default.createElement(
5540
- 'div',
5541
- { onClick: function onClick(e) {
5542
- return scrollSlider(e, 'next');
5543
- }, className: 'tile__slider-next', style: { color: variant } },
5544
- React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow right' })
5545
- ),
5546
5546
  React__default.createElement(
5547
5547
  'div',
5548
5548
  { className: 'row__inner' },
@@ -5634,7 +5634,207 @@ var GroupDeck = function GroupDeck(props) {
5634
5634
  React__default.createElement(
5635
5635
  'style',
5636
5636
  { jsx: true },
5637
- '\n #vid-slider * {\n box-sizing: border-box;\n }\n #vid-slider {\n position: relative;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 1rem;\n left: 1rem;\n color: white;\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow: scroll;\n width: 100%;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 1rem;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 55px 0;\n padding-bottom: 10px;\n padding-left: 3rem;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n width: 250px;\n height: 140.625px;\n margin-right: 10px;\n font-size: 20px;\n cursor: pointer;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n #vid-slider .tile__img {\n width: 250px;\n height: 140.625px;\n -o-object-fit: cover;\n object-fit: cover;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\u25B6\';\n left: 0;\n width: 100%;\n font-size: 30px;\n margin-left: 2px;\n margin-top: -23px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n #vid-slider .tile:hover .tile__details {\n opacity: 1;\n }\n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n #vid-slider .row__inner:hover {\n -webkit-transform: translate3d(-62.5px, 0, 0);\n transform: translate3d(-62.5px, 0, 0);\n }\n #vid-slider .row__inner:hover .tile {\n opacity: 0.3;\n }\n #vid-slider .row__inner:hover .tile:hover {\n -webkit-transform: scale(1.25);\n transform: scale(1.25);\n opacity: 1;\n }\n #vid-slider .tile:hover ~ .tile {\n -webkit-transform: translate3d(62px, 0, 0);\n transform: translate3d(62px, 0, 0);\n }\n #vid-slider .tile:hover .tile__info {\n opacity: 0;\n }\n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 5;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-next {\n right: 0;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding: 0;\n }\n #vid-slider .tile:last-child {\n margin-right: 2rem;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n '
5637
+ '\n #vid-slider * {\n box-sizing: border-box;\n }\n #vid-slider {\n position: relative;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 1rem;\n left: 1rem;\n color: white;\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow: scroll;\n width: 100%;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 1rem;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 55px 0;\n padding-bottom: 10px;\n padding-left: 0;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n width: 250px;\n height: 140.625px;\n margin-right: 10px;\n font-size: 20px;\n cursor: pointer;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n #vid-slider .tile__img {\n width: 250px;\n height: 140.625px;\n -o-object-fit: cover;\n object-fit: cover;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\u25B6\';\n left: 0;\n width: 100%;\n font-size: 30px;\n margin-left: 2px;\n margin-top: -23px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n #vid-slider .tile:hover .tile__details {\n opacity: 1;\n }\n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n #vid-slider .row__inner:hover {\n -webkit-transform: translate3d(-62.5px, 0, 0);\n transform: translate3d(-62.5px, 0, 0);\n }\n #vid-slider .row__inner:hover .tile {\n opacity: 0.3;\n }\n #vid-slider .row__inner:hover .tile:hover {\n -webkit-transform: scale(1.25);\n transform: scale(1.25);\n opacity: 1;\n }\n #vid-slider .tile:hover ~ .tile {\n -webkit-transform: translate3d(62px, 0, 0);\n transform: translate3d(62px, 0, 0);\n }\n #vid-slider .tile:hover .tile__info {\n opacity: 0;\n }\n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-prev{\n left: -3px;\n }\n #vid-slider .tile__slider-next {\n right: 0;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding: 0 1.2rem;\n }\n #vid-slider .tile:last-child {\n margin-right: 2rem;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n '
5638
+ )
5639
+ );
5640
+ };
5641
+
5642
+ var getYoutubeId = createCommonjsModule(function (module, exports) {
5643
+ (function (root, factory) {
5644
+ {
5645
+ module.exports = factory();
5646
+ }
5647
+ }(commonjsGlobal, function (exports) {
5648
+
5649
+ return function (url, opts) {
5650
+ if (opts == undefined) {
5651
+ opts = {fuzzy: true};
5652
+ }
5653
+
5654
+ if (/youtu\.?be/.test(url)) {
5655
+
5656
+ // Look first for known patterns
5657
+ var i;
5658
+ var patterns = [
5659
+ /youtu\.be\/([^#\&\?]{11})/, // youtu.be/<id>
5660
+ /\?v=([^#\&\?]{11})/, // ?v=<id>
5661
+ /\&v=([^#\&\?]{11})/, // &v=<id>
5662
+ /embed\/([^#\&\?]{11})/, // embed/<id>
5663
+ /\/v\/([^#\&\?]{11})/ // /v/<id>
5664
+ ];
5665
+
5666
+ // If any pattern matches, return the ID
5667
+ for (i = 0; i < patterns.length; ++i) {
5668
+ if (patterns[i].test(url)) {
5669
+ return patterns[i].exec(url)[1];
5670
+ }
5671
+ }
5672
+
5673
+ if (opts.fuzzy) {
5674
+ // If that fails, break it apart by certain characters and look
5675
+ // for the 11 character key
5676
+ var tokens = url.split(/[\/\&\?=#\.\s]/g);
5677
+ for (i = 0; i < tokens.length; ++i) {
5678
+ if (/^[^#\&\?]{11}$/.test(tokens[i])) {
5679
+ return tokens[i];
5680
+ }
5681
+ }
5682
+ }
5683
+ }
5684
+
5685
+ return null;
5686
+ };
5687
+
5688
+ }));
5689
+ });
5690
+
5691
+ /*
5692
+ GROQ query -
5693
+ accepts an array of title, URL
5694
+ `http://img.youtube.com/vi/${getYouTubeId(vid.url)}/hqdefault.jpg`
5695
+ */
5696
+ var YoutubeGroup = function YoutubeGroup(props) {
5697
+ // Props should be an array of objects containing Thumbnail, title, and URL
5698
+ var get2 = props.get2 ? '/' + props.get2 + '/' : '/view/';
5699
+
5700
+ var variant = props.dark ? 'white' : '#383838';
5701
+ function scrollSlider(e, direction) {
5702
+ var slide = e.target.parentElement;
5703
+ var scrollOffset = slide.scrollLeft;
5704
+ var viewableWidth = slide.clientWidth > 700 ? 3 * (document.querySelector('.tile').scrollWidth + 8) : document.querySelector('.tile').scrollWidth + 8;
5705
+ var scrollDirection = void 0;
5706
+ if (direction === 'next') {
5707
+ scrollDirection = scrollOffset + viewableWidth;
5708
+ }
5709
+ if (direction === 'prev') {
5710
+ scrollDirection = scrollOffset - viewableWidth;
5711
+ }
5712
+ slide.scrollTo({
5713
+ left: scrollDirection,
5714
+ behavior: 'smooth'
5715
+ });
5716
+ }
5717
+ function handleClick(url, vidIndex) {
5718
+ props.setState(url, vidIndex);
5719
+ }
5720
+ var _props$current = props.current,
5721
+ current = _props$current === undefined ? '' : _props$current;
5722
+
5723
+
5724
+ return React__default.createElement(
5725
+ 'div',
5726
+ { id: 'vid-slider', className: 'col' },
5727
+ React__default.createElement(
5728
+ 'div',
5729
+ { onClick: function onClick(e) {
5730
+ return scrollSlider(e, 'prev');
5731
+ }, className: 'tile__slider-prev', style: { color: variant } },
5732
+ React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow left' })
5733
+ ),
5734
+ React__default.createElement(
5735
+ 'div',
5736
+ { onClick: function onClick(e) {
5737
+ return scrollSlider(e, 'next');
5738
+ }, className: 'tile__slider-next', style: { color: variant } },
5739
+ React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow right' })
5740
+ ),
5741
+ React__default.createElement(
5742
+ 'div',
5743
+ { className: 'row' },
5744
+ React__default.createElement(
5745
+ 'div',
5746
+ { className: 'row__inner' },
5747
+ props.dataset && props.dataset.map(function (video, index) {
5748
+ // If there is a current prop, means this will overlay a currently playing video
5749
+ if (current !== '') {
5750
+ var url = video.url;
5751
+ var thumbnail = 'http://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
5752
+
5753
+ return React__default.createElement(
5754
+ 'div',
5755
+ { key: index, className: 'tile' },
5756
+ current && current === url ? React__default.createElement(
5757
+ 'div',
5758
+ { className: 'now-playing' },
5759
+ 'Now Playing'
5760
+ ) : '',
5761
+ React__default.createElement(
5762
+ 'a',
5763
+ { onClick: function onClick() {
5764
+ return handleClick(url, index + 1);
5765
+ } },
5766
+ React__default.createElement(
5767
+ 'div',
5768
+ { className: 'tile__media' },
5769
+ React__default.createElement('img', { className: 'tile__img', src: thumbnail, alt: '' })
5770
+ ),
5771
+ React__default.createElement(
5772
+ 'div',
5773
+ { className: 'tile__details' },
5774
+ React__default.createElement(
5775
+ 'div',
5776
+ { className: 'tile__title' },
5777
+ React__default.createElement(
5778
+ 'div',
5779
+ { style: { color: variant }, className: 'tile__title_text' },
5780
+ video.title
5781
+ )
5782
+ )
5783
+ ),
5784
+ React__default.createElement(
5785
+ 'div',
5786
+ { style: { color: variant }, className: 'tile__info' },
5787
+ video.title
5788
+ )
5789
+ )
5790
+ );
5791
+ } else {
5792
+ // slider by itself
5793
+ var _url = '' + video.link;
5794
+ var _thumbnail = 'http://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
5795
+ return React__default.createElement(
5796
+ 'div',
5797
+ { key: index, className: 'tile' },
5798
+ React__default.createElement(
5799
+ Link,
5800
+ { href: _url },
5801
+ React__default.createElement(
5802
+ 'a',
5803
+ null,
5804
+ React__default.createElement(
5805
+ 'div',
5806
+ { className: 'tile__media' },
5807
+ React__default.createElement('img', { className: 'tile__img', src: _thumbnail, alt: '' })
5808
+ ),
5809
+ React__default.createElement(
5810
+ 'div',
5811
+ { className: 'tile__details' },
5812
+ React__default.createElement(
5813
+ 'div',
5814
+ { className: 'tile__title' },
5815
+ React__default.createElement(
5816
+ 'div',
5817
+ { style: { color: variant }, className: 'tile__title_text' },
5818
+ video.title
5819
+ )
5820
+ )
5821
+ ),
5822
+ React__default.createElement(
5823
+ 'div',
5824
+ { style: { color: variant }, className: 'tile__info' },
5825
+ video.title
5826
+ )
5827
+ )
5828
+ )
5829
+ );
5830
+ }
5831
+ })
5832
+ )
5833
+ ),
5834
+ React__default.createElement(
5835
+ 'style',
5836
+ { jsx: true },
5837
+ '\n #vid-slider * {\n box-sizing: border-box;\n }\n #vid-slider {\n position: relative;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: .5rem;\n left: 1rem;\n color: white;\n background: rgba(0,0,0,.5);\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow: scroll;\n width: 100%;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 1rem;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 55px 0;\n padding-bottom: 10px;\n padding-left: 0;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n width: 250px;\n height: 140.625px;\n margin-right: 10px;\n font-size: 20px;\n cursor: pointer;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n #vid-slider .tile__img {\n width: 250px;\n height: 140.625px;\n -o-object-fit: cover;\n object-fit: cover;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\u25B6\';\n left: 0;\n width: 100%;\n font-size: 30px;\n margin-left: 2px;\n margin-top: -23px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n #vid-slider .tile:hover .tile__details {\n opacity: 1;\n }\n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n #vid-slider .row__inner:hover {\n -webkit-transform: translate3d(-62.5px, 0, 0);\n transform: translate3d(-62.5px, 0, 0);\n }\n #vid-slider .row__inner:hover .tile {\n opacity: 0.3;\n }\n #vid-slider .row__inner:hover .tile:hover {\n -webkit-transform: scale(1.25);\n transform: scale(1.25);\n opacity: 1;\n }\n #vid-slider .tile:hover ~ .tile {\n -webkit-transform: translate3d(62px, 0, 0);\n transform: translate3d(62px, 0, 0);\n }\n #vid-slider .tile:hover .tile__info {\n opacity: 0;\n }\n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-prev{\n left: -3px;\n }\n #vid-slider .tile__slider-next {\n right: 0;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding: 0 1.2rem;\n }\n #vid-slider .tile:last-child {\n margin-right: 2rem;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n '
5638
5838
  )
5639
5839
  );
5640
5840
  };
@@ -12703,55 +12903,6 @@ var Slideshow = function Slideshow(_ref) {
12703
12903
  );
12704
12904
  };
12705
12905
 
12706
- var getYoutubeId = createCommonjsModule(function (module, exports) {
12707
- (function (root, factory) {
12708
- {
12709
- module.exports = factory();
12710
- }
12711
- }(commonjsGlobal, function (exports) {
12712
-
12713
- return function (url, opts) {
12714
- if (opts == undefined) {
12715
- opts = {fuzzy: true};
12716
- }
12717
-
12718
- if (/youtu\.?be/.test(url)) {
12719
-
12720
- // Look first for known patterns
12721
- var i;
12722
- var patterns = [
12723
- /youtu\.be\/([^#\&\?]{11})/, // youtu.be/<id>
12724
- /\?v=([^#\&\?]{11})/, // ?v=<id>
12725
- /\&v=([^#\&\?]{11})/, // &v=<id>
12726
- /embed\/([^#\&\?]{11})/, // embed/<id>
12727
- /\/v\/([^#\&\?]{11})/ // /v/<id>
12728
- ];
12729
-
12730
- // If any pattern matches, return the ID
12731
- for (i = 0; i < patterns.length; ++i) {
12732
- if (patterns[i].test(url)) {
12733
- return patterns[i].exec(url)[1];
12734
- }
12735
- }
12736
-
12737
- if (opts.fuzzy) {
12738
- // If that fails, break it apart by certain characters and look
12739
- // for the 11 character key
12740
- var tokens = url.split(/[\/\&\?=#\.\s]/g);
12741
- for (i = 0; i < tokens.length; ++i) {
12742
- if (/^[^#\&\?]{11}$/.test(tokens[i])) {
12743
- return tokens[i];
12744
- }
12745
- }
12746
- }
12747
- }
12748
-
12749
- return null;
12750
- };
12751
-
12752
- }));
12753
- });
12754
-
12755
12906
  var isArray$3 = Array.isArray;
12756
12907
  var keyList = Object.keys;
12757
12908
  var hasProp = Object.prototype.hasOwnProperty;
@@ -15581,7 +15732,8 @@ var IFrame = function IFrame(_ref) {
15581
15732
  };
15582
15733
 
15583
15734
  var YouTubeGallery = function YouTubeGallery(_ref) {
15584
- var nodes = _ref.nodes;
15735
+ var nodes = _ref.nodes,
15736
+ client = _ref.client;
15585
15737
 
15586
15738
 
15587
15739
  var router$$1 = router.useRouter();
@@ -15593,13 +15745,18 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
15593
15745
  vidUrl = _useState2[0],
15594
15746
  setVidUrl = _useState2[1];
15595
15747
 
15748
+ var _useState3 = React.useState(''),
15749
+ _useState4 = slicedToArray(_useState3, 2),
15750
+ series = _useState4[0],
15751
+ setSeries = _useState4[1];
15596
15752
  // Once component mounts, set the variables
15597
15753
 
15598
15754
 
15599
15755
  React.useEffect(function () {
15600
- console.log('loaded');
15756
+
15601
15757
  params = new URL(document.location).searchParams;
15602
- seriesVid = params.get('seriesVid') || 1;
15758
+ seriesVid = params.get('vidSeries') || 1;
15759
+ setSeries(seriesVid);
15603
15760
  setVidUrl(nodes.videos['' + (seriesVid - 1)].url);
15604
15761
  }, []);
15605
15762
 
@@ -15701,18 +15858,38 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
15701
15858
  padding: '0 1rem',
15702
15859
  left: '0'
15703
15860
  } },
15704
- vidUrl && React__default.createElement(GroupDeck, { dark: true, dataset: seriesData, setState: setState, seriesVid: seriesVid, current: vidUrl })
15861
+ vidUrl && React__default.createElement(GroupDeck, { dark: true, dataset: seriesData, setState: setState, seriesVid: series, current: vidUrl })
15705
15862
  )
15706
15863
  ),
15707
15864
  React__default.createElement(
15708
15865
  'div',
15709
15866
  { className: 'vid-controls', style: { width: '100%', background: 'transparent', display: 'flex', justifyContent: 'center' } },
15710
- React__default.createElement('button', {
15711
- 'aria-label': 'Toggles video series',
15712
- id: 'vid-series-btn',
15713
- onClick: toggleSeries,
15714
- className: 'btn btn-block btn-lg btn-secondary ',
15715
- style: { borderRadius: '0' } })
15867
+ React__default.createElement(
15868
+ 'button',
15869
+ {
15870
+ 'aria-label': 'Toggles video series',
15871
+ id: 'vid-series-btn',
15872
+ onClick: toggleSeries,
15873
+ className: 'btn btn-block btn-lg btn-secondary ',
15874
+ style: { borderRadius: '0' } },
15875
+ 'View Series'
15876
+ )
15877
+ ),
15878
+ React__default.createElement(
15879
+ 'div',
15880
+ { className: 'my-5' },
15881
+ series && React__default.createElement(
15882
+ 'h3',
15883
+ null,
15884
+ 'Episode ',
15885
+ series
15886
+ ),
15887
+ nodes.videos[0] && React__default.createElement(
15888
+ 'h2',
15889
+ { className: 'mb-3' },
15890
+ nodes.videos[0].title
15891
+ ),
15892
+ nodes.videos[0].text && React__default.createElement(BlockContent, _extends({ serializers: getSerializers$1(client), blocks: nodes.videos[0].text, imageOptions: { w: 320, h: 240, fit: 'max' } }, client.config()))
15716
15893
  ),
15717
15894
  React__default.createElement(
15718
15895
  'style',
@@ -15734,7 +15911,7 @@ var getSerializers$1 = function getSerializers(client) {
15734
15911
  youtubeGallery: function youtubeGallery(_ref2) {
15735
15912
  var node = _ref2.node;
15736
15913
 
15737
- return React__default.createElement(YouTubeGallery, { nodes: node });
15914
+ return React__default.createElement(YouTubeGallery, { nodes: node, client: client });
15738
15915
  },
15739
15916
  figure: function figure(_ref3) {
15740
15917
  var node = _ref3.node;
@@ -15799,6 +15976,7 @@ exports.DeckQueue = DeckQueue;
15799
15976
  exports.ThumbnailCard = ThumbnailCard;
15800
15977
  exports.TaxonomyCard = TaxonomyCard;
15801
15978
  exports.GroupDeck = GroupDeck;
15979
+ exports.YoutubeGroup = YoutubeGroup;
15802
15980
  exports.Column1 = Column1;
15803
15981
  exports.Column2 = Column2;
15804
15982
  exports.Column3 = Column3;