@mjhls/mjh-framework 1.0.322 → 1.0.324
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/README.md +1 -1
- package/dist/cjs/{ADInfeed-a7a5e9f3.js → ADInfeed-b042a194.js} +1 -1
- package/dist/cjs/{AdSlot-fef815e9.js → AdSlot-c5bff604.js} +3 -3
- package/dist/cjs/DeckContent.js +8 -9
- package/dist/cjs/DeckQueue.js +4 -5
- package/dist/cjs/{Dfp-f5e04360.js → Dfp-9ede68c7.js} +2 -3
- package/dist/cjs/{Figure-36e6957e.js → Figure-a47ec3a7.js} +2 -3
- package/dist/cjs/{GridContent-98e9ab78.js → GridContent-139bbe70.js} +5 -5
- package/dist/cjs/GridContent.js +9 -10
- package/dist/cjs/GroupDeck.js +119 -21
- package/dist/cjs/MasterDeck.js +5 -6
- package/dist/cjs/{Normal-ead4243d.js → Normal-e7423a52.js} +3 -3
- package/dist/cjs/QueueDeckExpanded.js +7 -8
- package/dist/cjs/TemplateNormal.js +6 -7
- package/dist/cjs/{Ustream-3a3c56b8.js → Ustream-f5f53782.js} +1 -1
- package/dist/cjs/Ustream.js +3 -4
- package/dist/cjs/VideoSeriesListing.js +6 -4
- package/dist/cjs/YoutubeGroup.js +244 -4
- package/dist/cjs/index.js +20 -20
- package/dist/cjs/{inherits-be59e8ae.js → inherits-37d5840f.js} +1 -1
- package/dist/cjs/{main-753fb093.js → main-987c23c6.js} +1 -1
- package/dist/cjs/{promise-e50b2d19.js → promise-3b44b2a3.js} +4 -5
- package/dist/cjs/{slicedToArray-bed4d943.js → slicedToArray-879ab2fb.js} +3 -4
- package/dist/cjs/smoothscroll-95231a70.js +488 -0
- package/dist/cjs/{toConsumableArray-18281c61.js → toConsumableArray-34b5e9a7.js} +3 -4
- package/dist/cjs/{web.dom.iterable-0998bdc3.js → web.dom.iterable-8b02d65e.js} +34 -0
- package/dist/esm/{ADInfeed-2aaf8622.js → ADInfeed-aadcfc25.js} +1 -1
- package/dist/esm/{AdSlot-028b040f.js → AdSlot-8946358f.js} +3 -3
- package/dist/esm/DeckContent.js +8 -9
- package/dist/esm/DeckQueue.js +4 -5
- package/dist/esm/{Dfp-f518314c.js → Dfp-9293acfb.js} +2 -3
- package/dist/esm/{Figure-af6a1f2d.js → Figure-584ac0c8.js} +2 -3
- package/dist/esm/{GridContent-dd8fe8d1.js → GridContent-ceb53300.js} +5 -5
- package/dist/esm/GridContent.js +9 -10
- package/dist/esm/GroupDeck.js +120 -22
- package/dist/esm/MasterDeck.js +5 -6
- package/dist/esm/{Normal-252dd706.js → Normal-ff7a10ab.js} +3 -3
- package/dist/esm/QueueDeckExpanded.js +7 -8
- package/dist/esm/TemplateNormal.js +6 -7
- package/dist/esm/{Ustream-c153a835.js → Ustream-d8cc3cbd.js} +1 -1
- package/dist/esm/Ustream.js +3 -4
- package/dist/esm/VideoSeriesListing.js +5 -3
- package/dist/esm/YoutubeGroup.js +244 -3
- package/dist/esm/index.js +18 -19
- package/dist/esm/{inherits-9d26445c.js → inherits-cb536901.js} +1 -1
- package/dist/esm/{main-d550db5e.js → main-cb86f95d.js} +1 -1
- package/dist/esm/{promise-8fc46e97.js → promise-86cb8313.js} +2 -3
- package/dist/esm/{slicedToArray-d1db3163.js → slicedToArray-a47a84a4.js} +1 -2
- package/dist/esm/smoothscroll-4b699764.js +485 -0
- package/dist/esm/{toConsumableArray-a096ca06.js → toConsumableArray-2718dc16.js} +2 -3
- package/dist/esm/{web.dom.iterable-3be50d6c.js → web.dom.iterable-7e9bebf9.js} +34 -2
- package/package.json +1 -1
- package/dist/cjs/YoutubeGroup-24ec8af9.js +0 -693
- package/dist/cjs/core.get-iterator-method-e049ca4a.js +0 -39
- package/dist/esm/YoutubeGroup-13d88f43.js +0 -687
- package/dist/esm/core.get-iterator-method-31c1fb1a.js +0 -36
|
@@ -1,687 +0,0 @@
|
|
|
1
|
-
import { c as createCommonjsModule, a as commonjsGlobal } from './_commonjsHelpers-0c4b6f40.js';
|
|
2
|
-
import React__default, { useRef, useEffect } from 'react';
|
|
3
|
-
import 'next/link';
|
|
4
|
-
import { L as LazyLoad } from './index-5f9f807a.js';
|
|
5
|
-
|
|
6
|
-
var getYoutubeId = createCommonjsModule(function (module, exports) {
|
|
7
|
-
(function (root, factory) {
|
|
8
|
-
{
|
|
9
|
-
module.exports = factory();
|
|
10
|
-
}
|
|
11
|
-
}(commonjsGlobal, function (exports) {
|
|
12
|
-
|
|
13
|
-
return function (url, opts) {
|
|
14
|
-
if (opts == undefined) {
|
|
15
|
-
opts = {fuzzy: true};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
if (/youtu\.?be/.test(url)) {
|
|
19
|
-
|
|
20
|
-
// Look first for known patterns
|
|
21
|
-
var i;
|
|
22
|
-
var patterns = [
|
|
23
|
-
/youtu\.be\/([^#\&\?]{11})/, // youtu.be/<id>
|
|
24
|
-
/\?v=([^#\&\?]{11})/, // ?v=<id>
|
|
25
|
-
/\&v=([^#\&\?]{11})/, // &v=<id>
|
|
26
|
-
/embed\/([^#\&\?]{11})/, // embed/<id>
|
|
27
|
-
/\/v\/([^#\&\?]{11})/ // /v/<id>
|
|
28
|
-
];
|
|
29
|
-
|
|
30
|
-
// If any pattern matches, return the ID
|
|
31
|
-
for (i = 0; i < patterns.length; ++i) {
|
|
32
|
-
if (patterns[i].test(url)) {
|
|
33
|
-
return patterns[i].exec(url)[1];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (opts.fuzzy) {
|
|
38
|
-
// If that fails, break it apart by certain characters and look
|
|
39
|
-
// for the 11 character key
|
|
40
|
-
var tokens = url.split(/[\/\&\?=#\.\s]/g);
|
|
41
|
-
for (i = 0; i < tokens.length; ++i) {
|
|
42
|
-
if (/^[^#\&\?]{11}$/.test(tokens[i])) {
|
|
43
|
-
return tokens[i];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return null;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
}));
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
var smoothscroll = createCommonjsModule(function (module, exports) {
|
|
56
|
-
/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */
|
|
57
|
-
(function () {
|
|
58
|
-
|
|
59
|
-
// polyfill
|
|
60
|
-
function polyfill() {
|
|
61
|
-
// aliases
|
|
62
|
-
var w = window;
|
|
63
|
-
var d = document;
|
|
64
|
-
|
|
65
|
-
// return if scroll behavior is supported and polyfill is not forced
|
|
66
|
-
if (
|
|
67
|
-
'scrollBehavior' in d.documentElement.style &&
|
|
68
|
-
w.__forceSmoothScrollPolyfill__ !== true
|
|
69
|
-
) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// globals
|
|
74
|
-
var Element = w.HTMLElement || w.Element;
|
|
75
|
-
var SCROLL_TIME = 468;
|
|
76
|
-
|
|
77
|
-
// object gathering original scroll methods
|
|
78
|
-
var original = {
|
|
79
|
-
scroll: w.scroll || w.scrollTo,
|
|
80
|
-
scrollBy: w.scrollBy,
|
|
81
|
-
elementScroll: Element.prototype.scroll || scrollElement,
|
|
82
|
-
scrollIntoView: Element.prototype.scrollIntoView
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
// define timing method
|
|
86
|
-
var now =
|
|
87
|
-
w.performance && w.performance.now
|
|
88
|
-
? w.performance.now.bind(w.performance)
|
|
89
|
-
: Date.now;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* indicates if a the current browser is made by Microsoft
|
|
93
|
-
* @method isMicrosoftBrowser
|
|
94
|
-
* @param {String} userAgent
|
|
95
|
-
* @returns {Boolean}
|
|
96
|
-
*/
|
|
97
|
-
function isMicrosoftBrowser(userAgent) {
|
|
98
|
-
var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];
|
|
99
|
-
|
|
100
|
-
return new RegExp(userAgentPatterns.join('|')).test(userAgent);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/*
|
|
104
|
-
* IE has rounding bug rounding down clientHeight and clientWidth and
|
|
105
|
-
* rounding up scrollHeight and scrollWidth causing false positives
|
|
106
|
-
* on hasScrollableSpace
|
|
107
|
-
*/
|
|
108
|
-
var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* changes scroll position inside an element
|
|
112
|
-
* @method scrollElement
|
|
113
|
-
* @param {Number} x
|
|
114
|
-
* @param {Number} y
|
|
115
|
-
* @returns {undefined}
|
|
116
|
-
*/
|
|
117
|
-
function scrollElement(x, y) {
|
|
118
|
-
this.scrollLeft = x;
|
|
119
|
-
this.scrollTop = y;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* returns result of applying ease math function to a number
|
|
124
|
-
* @method ease
|
|
125
|
-
* @param {Number} k
|
|
126
|
-
* @returns {Number}
|
|
127
|
-
*/
|
|
128
|
-
function ease(k) {
|
|
129
|
-
return 0.5 * (1 - Math.cos(Math.PI * k));
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* indicates if a smooth behavior should be applied
|
|
134
|
-
* @method shouldBailOut
|
|
135
|
-
* @param {Number|Object} firstArg
|
|
136
|
-
* @returns {Boolean}
|
|
137
|
-
*/
|
|
138
|
-
function shouldBailOut(firstArg) {
|
|
139
|
-
if (
|
|
140
|
-
firstArg === null ||
|
|
141
|
-
typeof firstArg !== 'object' ||
|
|
142
|
-
firstArg.behavior === undefined ||
|
|
143
|
-
firstArg.behavior === 'auto' ||
|
|
144
|
-
firstArg.behavior === 'instant'
|
|
145
|
-
) {
|
|
146
|
-
// first argument is not an object/null
|
|
147
|
-
// or behavior is auto, instant or undefined
|
|
148
|
-
return true;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {
|
|
152
|
-
// first argument is an object and behavior is smooth
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// throw error when behavior is not supported
|
|
157
|
-
throw new TypeError(
|
|
158
|
-
'behavior member of ScrollOptions ' +
|
|
159
|
-
firstArg.behavior +
|
|
160
|
-
' is not a valid value for enumeration ScrollBehavior.'
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* indicates if an element has scrollable space in the provided axis
|
|
166
|
-
* @method hasScrollableSpace
|
|
167
|
-
* @param {Node} el
|
|
168
|
-
* @param {String} axis
|
|
169
|
-
* @returns {Boolean}
|
|
170
|
-
*/
|
|
171
|
-
function hasScrollableSpace(el, axis) {
|
|
172
|
-
if (axis === 'Y') {
|
|
173
|
-
return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (axis === 'X') {
|
|
177
|
-
return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* indicates if an element has a scrollable overflow property in the axis
|
|
183
|
-
* @method canOverflow
|
|
184
|
-
* @param {Node} el
|
|
185
|
-
* @param {String} axis
|
|
186
|
-
* @returns {Boolean}
|
|
187
|
-
*/
|
|
188
|
-
function canOverflow(el, axis) {
|
|
189
|
-
var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];
|
|
190
|
-
|
|
191
|
-
return overflowValue === 'auto' || overflowValue === 'scroll';
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* indicates if an element can be scrolled in either axis
|
|
196
|
-
* @method isScrollable
|
|
197
|
-
* @param {Node} el
|
|
198
|
-
* @param {String} axis
|
|
199
|
-
* @returns {Boolean}
|
|
200
|
-
*/
|
|
201
|
-
function isScrollable(el) {
|
|
202
|
-
var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');
|
|
203
|
-
var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');
|
|
204
|
-
|
|
205
|
-
return isScrollableY || isScrollableX;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* finds scrollable parent of an element
|
|
210
|
-
* @method findScrollableParent
|
|
211
|
-
* @param {Node} el
|
|
212
|
-
* @returns {Node} el
|
|
213
|
-
*/
|
|
214
|
-
function findScrollableParent(el) {
|
|
215
|
-
while (el !== d.body && isScrollable(el) === false) {
|
|
216
|
-
el = el.parentNode || el.host;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
return el;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* self invoked function that, given a context, steps through scrolling
|
|
224
|
-
* @method step
|
|
225
|
-
* @param {Object} context
|
|
226
|
-
* @returns {undefined}
|
|
227
|
-
*/
|
|
228
|
-
function step(context) {
|
|
229
|
-
var time = now();
|
|
230
|
-
var value;
|
|
231
|
-
var currentX;
|
|
232
|
-
var currentY;
|
|
233
|
-
var elapsed = (time - context.startTime) / SCROLL_TIME;
|
|
234
|
-
|
|
235
|
-
// avoid elapsed times higher than one
|
|
236
|
-
elapsed = elapsed > 1 ? 1 : elapsed;
|
|
237
|
-
|
|
238
|
-
// apply easing to elapsed time
|
|
239
|
-
value = ease(elapsed);
|
|
240
|
-
|
|
241
|
-
currentX = context.startX + (context.x - context.startX) * value;
|
|
242
|
-
currentY = context.startY + (context.y - context.startY) * value;
|
|
243
|
-
|
|
244
|
-
context.method.call(context.scrollable, currentX, currentY);
|
|
245
|
-
|
|
246
|
-
// scroll more if we have not reached our destination
|
|
247
|
-
if (currentX !== context.x || currentY !== context.y) {
|
|
248
|
-
w.requestAnimationFrame(step.bind(w, context));
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* scrolls window or element with a smooth behavior
|
|
254
|
-
* @method smoothScroll
|
|
255
|
-
* @param {Object|Node} el
|
|
256
|
-
* @param {Number} x
|
|
257
|
-
* @param {Number} y
|
|
258
|
-
* @returns {undefined}
|
|
259
|
-
*/
|
|
260
|
-
function smoothScroll(el, x, y) {
|
|
261
|
-
var scrollable;
|
|
262
|
-
var startX;
|
|
263
|
-
var startY;
|
|
264
|
-
var method;
|
|
265
|
-
var startTime = now();
|
|
266
|
-
|
|
267
|
-
// define scroll context
|
|
268
|
-
if (el === d.body) {
|
|
269
|
-
scrollable = w;
|
|
270
|
-
startX = w.scrollX || w.pageXOffset;
|
|
271
|
-
startY = w.scrollY || w.pageYOffset;
|
|
272
|
-
method = original.scroll;
|
|
273
|
-
} else {
|
|
274
|
-
scrollable = el;
|
|
275
|
-
startX = el.scrollLeft;
|
|
276
|
-
startY = el.scrollTop;
|
|
277
|
-
method = scrollElement;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// scroll looping over a frame
|
|
281
|
-
step({
|
|
282
|
-
scrollable: scrollable,
|
|
283
|
-
method: method,
|
|
284
|
-
startTime: startTime,
|
|
285
|
-
startX: startX,
|
|
286
|
-
startY: startY,
|
|
287
|
-
x: x,
|
|
288
|
-
y: y
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
// ORIGINAL METHODS OVERRIDES
|
|
293
|
-
// w.scroll and w.scrollTo
|
|
294
|
-
w.scroll = w.scrollTo = function() {
|
|
295
|
-
// avoid action when no arguments are passed
|
|
296
|
-
if (arguments[0] === undefined) {
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// avoid smooth behavior if not required
|
|
301
|
-
if (shouldBailOut(arguments[0]) === true) {
|
|
302
|
-
original.scroll.call(
|
|
303
|
-
w,
|
|
304
|
-
arguments[0].left !== undefined
|
|
305
|
-
? arguments[0].left
|
|
306
|
-
: typeof arguments[0] !== 'object'
|
|
307
|
-
? arguments[0]
|
|
308
|
-
: w.scrollX || w.pageXOffset,
|
|
309
|
-
// use top prop, second argument if present or fallback to scrollY
|
|
310
|
-
arguments[0].top !== undefined
|
|
311
|
-
? arguments[0].top
|
|
312
|
-
: arguments[1] !== undefined
|
|
313
|
-
? arguments[1]
|
|
314
|
-
: w.scrollY || w.pageYOffset
|
|
315
|
-
);
|
|
316
|
-
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
// LET THE SMOOTHNESS BEGIN!
|
|
321
|
-
smoothScroll.call(
|
|
322
|
-
w,
|
|
323
|
-
d.body,
|
|
324
|
-
arguments[0].left !== undefined
|
|
325
|
-
? ~~arguments[0].left
|
|
326
|
-
: w.scrollX || w.pageXOffset,
|
|
327
|
-
arguments[0].top !== undefined
|
|
328
|
-
? ~~arguments[0].top
|
|
329
|
-
: w.scrollY || w.pageYOffset
|
|
330
|
-
);
|
|
331
|
-
};
|
|
332
|
-
|
|
333
|
-
// w.scrollBy
|
|
334
|
-
w.scrollBy = function() {
|
|
335
|
-
// avoid action when no arguments are passed
|
|
336
|
-
if (arguments[0] === undefined) {
|
|
337
|
-
return;
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
// avoid smooth behavior if not required
|
|
341
|
-
if (shouldBailOut(arguments[0])) {
|
|
342
|
-
original.scrollBy.call(
|
|
343
|
-
w,
|
|
344
|
-
arguments[0].left !== undefined
|
|
345
|
-
? arguments[0].left
|
|
346
|
-
: typeof arguments[0] !== 'object' ? arguments[0] : 0,
|
|
347
|
-
arguments[0].top !== undefined
|
|
348
|
-
? arguments[0].top
|
|
349
|
-
: arguments[1] !== undefined ? arguments[1] : 0
|
|
350
|
-
);
|
|
351
|
-
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
// LET THE SMOOTHNESS BEGIN!
|
|
356
|
-
smoothScroll.call(
|
|
357
|
-
w,
|
|
358
|
-
d.body,
|
|
359
|
-
~~arguments[0].left + (w.scrollX || w.pageXOffset),
|
|
360
|
-
~~arguments[0].top + (w.scrollY || w.pageYOffset)
|
|
361
|
-
);
|
|
362
|
-
};
|
|
363
|
-
|
|
364
|
-
// Element.prototype.scroll and Element.prototype.scrollTo
|
|
365
|
-
Element.prototype.scroll = Element.prototype.scrollTo = function() {
|
|
366
|
-
// avoid action when no arguments are passed
|
|
367
|
-
if (arguments[0] === undefined) {
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// avoid smooth behavior if not required
|
|
372
|
-
if (shouldBailOut(arguments[0]) === true) {
|
|
373
|
-
// if one number is passed, throw error to match Firefox implementation
|
|
374
|
-
if (typeof arguments[0] === 'number' && arguments[1] === undefined) {
|
|
375
|
-
throw new SyntaxError('Value could not be converted');
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
original.elementScroll.call(
|
|
379
|
-
this,
|
|
380
|
-
// use left prop, first number argument or fallback to scrollLeft
|
|
381
|
-
arguments[0].left !== undefined
|
|
382
|
-
? ~~arguments[0].left
|
|
383
|
-
: typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,
|
|
384
|
-
// use top prop, second argument or fallback to scrollTop
|
|
385
|
-
arguments[0].top !== undefined
|
|
386
|
-
? ~~arguments[0].top
|
|
387
|
-
: arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop
|
|
388
|
-
);
|
|
389
|
-
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
var left = arguments[0].left;
|
|
394
|
-
var top = arguments[0].top;
|
|
395
|
-
|
|
396
|
-
// LET THE SMOOTHNESS BEGIN!
|
|
397
|
-
smoothScroll.call(
|
|
398
|
-
this,
|
|
399
|
-
this,
|
|
400
|
-
typeof left === 'undefined' ? this.scrollLeft : ~~left,
|
|
401
|
-
typeof top === 'undefined' ? this.scrollTop : ~~top
|
|
402
|
-
);
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
// Element.prototype.scrollBy
|
|
406
|
-
Element.prototype.scrollBy = function() {
|
|
407
|
-
// avoid action when no arguments are passed
|
|
408
|
-
if (arguments[0] === undefined) {
|
|
409
|
-
return;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
// avoid smooth behavior if not required
|
|
413
|
-
if (shouldBailOut(arguments[0]) === true) {
|
|
414
|
-
original.elementScroll.call(
|
|
415
|
-
this,
|
|
416
|
-
arguments[0].left !== undefined
|
|
417
|
-
? ~~arguments[0].left + this.scrollLeft
|
|
418
|
-
: ~~arguments[0] + this.scrollLeft,
|
|
419
|
-
arguments[0].top !== undefined
|
|
420
|
-
? ~~arguments[0].top + this.scrollTop
|
|
421
|
-
: ~~arguments[1] + this.scrollTop
|
|
422
|
-
);
|
|
423
|
-
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
this.scroll({
|
|
428
|
-
left: ~~arguments[0].left + this.scrollLeft,
|
|
429
|
-
top: ~~arguments[0].top + this.scrollTop,
|
|
430
|
-
behavior: arguments[0].behavior
|
|
431
|
-
});
|
|
432
|
-
};
|
|
433
|
-
|
|
434
|
-
// Element.prototype.scrollIntoView
|
|
435
|
-
Element.prototype.scrollIntoView = function() {
|
|
436
|
-
// avoid smooth behavior if not required
|
|
437
|
-
if (shouldBailOut(arguments[0]) === true) {
|
|
438
|
-
original.scrollIntoView.call(
|
|
439
|
-
this,
|
|
440
|
-
arguments[0] === undefined ? true : arguments[0]
|
|
441
|
-
);
|
|
442
|
-
|
|
443
|
-
return;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
// LET THE SMOOTHNESS BEGIN!
|
|
447
|
-
var scrollableParent = findScrollableParent(this);
|
|
448
|
-
var parentRects = scrollableParent.getBoundingClientRect();
|
|
449
|
-
var clientRects = this.getBoundingClientRect();
|
|
450
|
-
|
|
451
|
-
if (scrollableParent !== d.body) {
|
|
452
|
-
// reveal element inside parent
|
|
453
|
-
smoothScroll.call(
|
|
454
|
-
this,
|
|
455
|
-
scrollableParent,
|
|
456
|
-
scrollableParent.scrollLeft + clientRects.left - parentRects.left,
|
|
457
|
-
scrollableParent.scrollTop + clientRects.top - parentRects.top
|
|
458
|
-
);
|
|
459
|
-
|
|
460
|
-
// reveal parent in viewport unless is fixed
|
|
461
|
-
if (w.getComputedStyle(scrollableParent).position !== 'fixed') {
|
|
462
|
-
w.scrollBy({
|
|
463
|
-
left: parentRects.left,
|
|
464
|
-
top: parentRects.top,
|
|
465
|
-
behavior: 'smooth'
|
|
466
|
-
});
|
|
467
|
-
}
|
|
468
|
-
} else {
|
|
469
|
-
// reveal element in viewport
|
|
470
|
-
w.scrollBy({
|
|
471
|
-
left: clientRects.left,
|
|
472
|
-
top: clientRects.top,
|
|
473
|
-
behavior: 'smooth'
|
|
474
|
-
});
|
|
475
|
-
}
|
|
476
|
-
};
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
{
|
|
480
|
-
// commonjs
|
|
481
|
-
module.exports = { polyfill: polyfill };
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
}());
|
|
485
|
-
});
|
|
486
|
-
var smoothscroll_1 = smoothscroll.polyfill;
|
|
487
|
-
|
|
488
|
-
// kick off the polyfill!
|
|
489
|
-
|
|
490
|
-
/*
|
|
491
|
-
GROQ query -
|
|
492
|
-
accepts an array of title, URL
|
|
493
|
-
`https://img.youtube.com/vi/${getYouTubeId(vid.url)}/hqdefault.jpg`
|
|
494
|
-
*/
|
|
495
|
-
var YoutubeGroup = function YoutubeGroup(props) {
|
|
496
|
-
// Props should be an array of objects containing Thumbnail, title, and URL
|
|
497
|
-
var innerSlider = useRef(null);
|
|
498
|
-
var tile = useRef(null);
|
|
499
|
-
|
|
500
|
-
useEffect(function () {
|
|
501
|
-
//IE11 Polyfill
|
|
502
|
-
smoothscroll.polyfill();
|
|
503
|
-
}, []);
|
|
504
|
-
|
|
505
|
-
var get2 = props.get2 ? '/' + props.get2 + '/' : '/view/';
|
|
506
|
-
var variant = props.dark ? 'white' : '#383838';
|
|
507
|
-
function scrollSlider(e, direction) {
|
|
508
|
-
var slide = e.target.parentElement;
|
|
509
|
-
var scrollOffset = slide.scrollLeft;
|
|
510
|
-
var viewableWidth = slide.clientWidth;
|
|
511
|
-
|
|
512
|
-
//calculate viewable size / slide
|
|
513
|
-
var numberOfSlidesToScroll = Math.floor(viewableWidth / (tile.current.offsetWidth + 20)); //width of the tile plus margin
|
|
514
|
-
var sliderMargin = numberOfSlidesToScroll * 10;
|
|
515
|
-
numberOfSlidesToScroll = numberOfSlidesToScroll * tile.current.offsetWidth + sliderMargin;
|
|
516
|
-
|
|
517
|
-
// console.log('numberOfSlidestoScrol: ',numberOfSlidesToScroll )
|
|
518
|
-
// console.log('tile.current.offsetWidth: ',tile.current.offsetWidth )
|
|
519
|
-
// console.log('viewableWidth: ',viewableWidth )
|
|
520
|
-
|
|
521
|
-
var scrollDirection = void 0;
|
|
522
|
-
|
|
523
|
-
if (direction === 'next') {
|
|
524
|
-
scrollDirection = scrollOffset + numberOfSlidesToScroll;
|
|
525
|
-
// console.log('(scrollOffset + viewableWidth + 10): ',(scrollOffset + viewableWidth + 10) )
|
|
526
|
-
// console.log('innerSlider.current.offsetWidth ',innerSlider.current.offsetWidth )
|
|
527
|
-
//the +10 is for the margin on the last time
|
|
528
|
-
if (scrollOffset + viewableWidth + 10 >= innerSlider.current.offsetWidth) {
|
|
529
|
-
scrollDirection = 0;
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
if (direction === 'prev') {
|
|
533
|
-
scrollDirection = scrollOffset - numberOfSlidesToScroll;
|
|
534
|
-
|
|
535
|
-
if (scrollOffset === 0) {
|
|
536
|
-
scrollDirection = innerSlider.current.offsetWidth;
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
slide.scrollTo({
|
|
540
|
-
left: scrollDirection,
|
|
541
|
-
behavior: 'smooth'
|
|
542
|
-
});
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
function handleClick(url, vidIndex) {
|
|
546
|
-
props.setState(url, vidIndex);
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
var _props$current = props.current,
|
|
550
|
-
current = _props$current === undefined ? '' : _props$current;
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
return React__default.createElement(
|
|
554
|
-
'div',
|
|
555
|
-
{ id: 'vid-slider', className: 'col' },
|
|
556
|
-
React__default.createElement(
|
|
557
|
-
'div',
|
|
558
|
-
{ className: 'row' },
|
|
559
|
-
React__default.createElement(
|
|
560
|
-
'div',
|
|
561
|
-
{ onClick: function onClick(e) {
|
|
562
|
-
return scrollSlider(e, 'prev');
|
|
563
|
-
}, className: 'tile__slider-prev', style: { color: variant } },
|
|
564
|
-
React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow left' })
|
|
565
|
-
),
|
|
566
|
-
React__default.createElement(
|
|
567
|
-
'div',
|
|
568
|
-
{ onClick: function onClick(e) {
|
|
569
|
-
return scrollSlider(e, 'next');
|
|
570
|
-
}, className: 'tile__slider-next', style: { color: variant } },
|
|
571
|
-
React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow right' })
|
|
572
|
-
),
|
|
573
|
-
React__default.createElement(
|
|
574
|
-
'div',
|
|
575
|
-
{ ref: innerSlider, className: 'row__inner' },
|
|
576
|
-
props.dataset && props.dataset.map(function (video, index) {
|
|
577
|
-
// If there is a current prop, means this will overlay a currently playing video
|
|
578
|
-
if (current !== '') {
|
|
579
|
-
var url = video.url;
|
|
580
|
-
var thumbnail = 'https://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
|
|
581
|
-
|
|
582
|
-
return React__default.createElement(
|
|
583
|
-
'div',
|
|
584
|
-
{ ref: tile, key: index, className: 'tile' },
|
|
585
|
-
current && current === url ? React__default.createElement(
|
|
586
|
-
'div',
|
|
587
|
-
{ className: 'now-playing' },
|
|
588
|
-
'Now Playing'
|
|
589
|
-
) : '',
|
|
590
|
-
React__default.createElement(
|
|
591
|
-
'a',
|
|
592
|
-
{ onClick: function onClick() {
|
|
593
|
-
return handleClick(url, index + 1);
|
|
594
|
-
} },
|
|
595
|
-
React__default.createElement(
|
|
596
|
-
'div',
|
|
597
|
-
{ className: 'tile__media' },
|
|
598
|
-
React__default.createElement(
|
|
599
|
-
LazyLoad,
|
|
600
|
-
null,
|
|
601
|
-
React__default.createElement('img', { className: 'tile__img', src: thumbnail, alt: '' })
|
|
602
|
-
)
|
|
603
|
-
),
|
|
604
|
-
React__default.createElement(
|
|
605
|
-
'div',
|
|
606
|
-
{ className: 'tile__details' },
|
|
607
|
-
React__default.createElement(
|
|
608
|
-
'div',
|
|
609
|
-
{ className: 'tile__title' },
|
|
610
|
-
React__default.createElement(
|
|
611
|
-
'div',
|
|
612
|
-
{ style: { color: variant }, className: 'tile__title_text' },
|
|
613
|
-
video.title
|
|
614
|
-
)
|
|
615
|
-
)
|
|
616
|
-
),
|
|
617
|
-
React__default.createElement(
|
|
618
|
-
'div',
|
|
619
|
-
{ style: { color: '#fff' }, className: 'tile__info' },
|
|
620
|
-
video.title
|
|
621
|
-
)
|
|
622
|
-
)
|
|
623
|
-
);
|
|
624
|
-
} else {
|
|
625
|
-
// slider by itself
|
|
626
|
-
var _url = '' + video.link;
|
|
627
|
-
var _thumbnail = 'https://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
|
|
628
|
-
return React__default.createElement(
|
|
629
|
-
'div',
|
|
630
|
-
{ ref: tile, key: index, className: 'tile' },
|
|
631
|
-
React__default.createElement(
|
|
632
|
-
'a',
|
|
633
|
-
{ href: _url },
|
|
634
|
-
React__default.createElement(
|
|
635
|
-
'div',
|
|
636
|
-
{ className: 'tile__media' },
|
|
637
|
-
React__default.createElement(
|
|
638
|
-
LazyLoad,
|
|
639
|
-
null,
|
|
640
|
-
React__default.createElement('img', { className: 'tile__img', src: _thumbnail, alt: '' })
|
|
641
|
-
)
|
|
642
|
-
),
|
|
643
|
-
React__default.createElement(
|
|
644
|
-
'div',
|
|
645
|
-
{ className: 'tile__details' },
|
|
646
|
-
React__default.createElement(
|
|
647
|
-
'div',
|
|
648
|
-
{ className: 'tile__title' },
|
|
649
|
-
React__default.createElement(
|
|
650
|
-
'div',
|
|
651
|
-
{ style: { color: '#fff' }, className: 'tile__title_text' },
|
|
652
|
-
video.title
|
|
653
|
-
)
|
|
654
|
-
)
|
|
655
|
-
),
|
|
656
|
-
React__default.createElement(
|
|
657
|
-
'div',
|
|
658
|
-
{ style: { color: variant }, className: 'tile__info' },
|
|
659
|
-
props.displayEpisodeNumber ? React__default.createElement(
|
|
660
|
-
'span',
|
|
661
|
-
null,
|
|
662
|
-
React__default.createElement(
|
|
663
|
-
'span',
|
|
664
|
-
{ style: { fontWeight: 'bold' } },
|
|
665
|
-
'Ep. ',
|
|
666
|
-
index + 1,
|
|
667
|
-
':'
|
|
668
|
-
),
|
|
669
|
-
' ',
|
|
670
|
-
video.title
|
|
671
|
-
) : video.title
|
|
672
|
-
)
|
|
673
|
-
)
|
|
674
|
-
);
|
|
675
|
-
}
|
|
676
|
-
})
|
|
677
|
-
)
|
|
678
|
-
),
|
|
679
|
-
React__default.createElement(
|
|
680
|
-
'style',
|
|
681
|
-
{ jsx: 'true' },
|
|
682
|
-
'\n #vid-slider * {\n box-sizing: border-box;\n }\n #vid-slider::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider {\n position: relative;\n -ms-overflow-style: none;\n padding: 0 1.5rem;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 0.5rem;\n left: 1rem;\n color: white;\n background: rgba(0, 0, 0, 0.75);\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 -ms-overflow-style: none;\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\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: \'\';\n background: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 64 64\' width=\'64\' height=\'64\' fill=\'white\'><path d=\'M26 46 L46 32 L26 18 Z\'/></svg>")\n no-repeat center center;\n left: 0;\n width: 100%;\n height: 3rem;\n font-size: 30px;\n margin-right: 12px;\n margin-top: -24px;\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.15);\n transform: scale(1.15);\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: -.5rem;\n padding: 1rem;\n }\n #vid-slider .tile__slider-next {\n right: -.5rem;\n padding: 1rem;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding-right: 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 #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n '
|
|
683
|
-
)
|
|
684
|
-
);
|
|
685
|
-
};
|
|
686
|
-
|
|
687
|
-
export { YoutubeGroup as Y, getYoutubeId as g };
|