PageSourceSearch

https://laziar.com/assets/videojs/plugins/es/videojs.thumbnails.js

js laziar.com collected 2026-09-28 08:59:24 UTC 12,184 bytes, 376 lines download raw bytes

1/**
2 * Copyright (c) 2023 The Nuevodevel Team. All rights reserved.
3 * VTT Thumbnails plugin for video.js
4 * Version 2.7.0
5 */
6/* eslint-disable */ import videojs from 'video.js';
7const defaults = {
8    align: 'vertical',
9    timeTooltip: !0,
10    width: 160,
11    height: 90,
12    basePath: '',
13    src: '',
14    responsive: !1,
15    mediaqueries: { tiny: 0.5, small: 0.75, medium: 1, large: 1.25, xlarge: 1.5 },
16  },
17  onPlayerReady = (e, t) => {
18    defaults.basePath = '';
19    var i, s, r, o, n, a, d, l, h, u, c, v, f, m;
20    if (t) {
21      if (t.basePath) defaults.basePath = t.basePath;
22      if (t.width && t.height) {
23        defaults.width = t.width;
24        defaults.height = t.height;
25      }
26      if (t.src)
27        e.on('ready', function () {
28          e.trigger('medialoaded', { xml: t.src });
29        });
30    }
31    r = t;
32    function p(e) {
33      var t, i, s;
34      if (-1 === (i = e.indexOf('#'))) return { src: e, w: 0, h: 0, x: 0, y: 0 };
35      t = e.substring(0, i);
36      if ('xywh=' !== (s = e.substring(i + 1)).substring(0, 5))
37        return { src: defaults.basePath + t, w: 0, h: 0, x: 0, y: 0 };
38      var r = s.substring(5).split(',');
39      return {
40        src: defaults.basePath + t,
41        w: parseInt(r[2], 10),
42        h: parseInt(r[3], 10),
43        x: parseInt(r[0], 10),
44        y: parseInt(r[1], 10),
45      };
46    }
47    function g(e) {
48      const t = e.split('.'),
49        i = t[0].split(':');
50      return {
51        milliseconds: parseInt(t[1], 10) || 0,
52        seconds: parseInt(i.pop(), 10) || 0,
53        minutes: parseInt(i.pop(), 10) || 0,
54        hours: parseInt(i.pop(), 10) || 0,
55      };
56    }
57    function y(e) {
58      const t = g(e);
59      return parseInt(3600 * t.hours + 60 * t.minutes + t.seconds + t.milliseconds / 1e3, 10);
60    }
61    function w(e) {
62      fetch(e)
63        .then((e) => e.text())
64        .then((e) => {
65          if (e.length > 0) {
66            var t = j(e);
67            if (t.length > 0) {
68              m = t;
69              b();
70            }
71          }
72        });
73    }
74    function j(e) {
75      var t = [];
76      e.split(/[\r\n][\r\n]/i).forEach(function (e) {
77        if (
78          e.match(
79            /([0-9]{2}:)?([0-9]{2}:)?[0-9]{2}(.[0-9]{3})?( ?--> ?)([0-9]{2}:)?([0-9]{2}:)?[0-9]{2}(.[0-9]{3})?[\r\n]{1}.*/gi
80          )
81        ) {
82          const i = e.split(/[\r\n]/i),
83            s = i[0].split(/ ?--> ?/i),
84            r = s[0],
85            o = s[1],
86            n = i[1];
87          t.push({ startTime: y(r), endTime: y(o), text: n });
88        }
89      });
90      return t;
91    }
92    e.on('medialoaded', function (t, s) {
93      m = [];
94      d = e.controlBar.progressControl;
95      (l = e.el_.querySelector('.vjs-progress-holder')).removeEventListener('touchstart', _);
96      l.removeEventListener('mousemove', u);
97      l.removeEventListener('mouseleave', v);
98      l.removeEventListener('mousedown', S);
99      e.sprite = !1;
100      var r = document.querySelector('.vtt_canvas');
101      if (r) r.parentNode.removeChild(r);
102      var o = e.el_.querySelector('.vjs-thumb-tooltip');
103      if (o) o.parentNode.removeChild(o);
104      var n = document.querySelector('.vjs-thumb-image');
105      if (n) n.parentNode.removeChild(n);
106      var a = e.el_.querySelector('.vjs-thumbnail-holder');
107      if (a) a.parentNode.removeChild(a);
108      if (s && s.xml) w(s.xml);
109      else {
110        d = e.controlBar.progressControl;
111        l = e.el_.querySelector('.vjs-progress-holder');
112        var h = e.textTracks().length;
113        if (0 === h) {
114          if (i) videojs.dom.addClass('div', 'vjs-hidden');
115          return;
116        }
117        for (var c = !1, p = 0; p < h; ) {
118          if ('metadata' === e.textTracks()[p].kind) {
119            if (void 0 === (f = e.textTracks()[p]).src) return;
120            if (f.src) {
121              w(f.src);
122              return;
123            }
124            f.mode = 'hidden';
125            c = !0;
126            (f = e.textTracks()[p]).mode = 'showing';
127            if (null == f.cues) {
128              f.mode = 'hidden';
129              return;
130            }
131            var g = f && f.cues.length;
132            break;
133          }
134          p++;
135        }
136        if (!0 !== c) {
137          if (i) videojs.dom.addClass('div', 'vjs-hidden');
138          return;
139        }
140        if ((g = (f = e.textTracks()[p]) && f.cues.length) < 1) return;
141        p = 0;
142        e.sprite = !0;
143        for (; p < g; ) p++;
144        m = f && f.cues;
145        b();
146      }
147    });
148    function b() {
149      (i = document.createElement('div')).className = 'vjs-thumbnail-holder';
150      (o = document.createElement('canvas')).className = 'vtt_canvas';
151      o.style.position = 'absolute';
152      o.style.left = '0';
153      o.style.top = '0';
154      i.appendChild(o);
155      (c = document.createElement('div')).className = 'vjs-thumb-tooltip';
156      (s = document.createElement('img')).className = 'vjs-thumb-image';
157      s.style.visibility = 'hidden';
158      s.style.left = '-500px';
159      s.style.top = '-500px';
160      document.body.appendChild(s);
161      i.appendChild(c);
162      var t = p(m[0].text),
163        r = new Image();
164      if (t.src) r.src = t.src;
165      d.el().appendChild(i);
166      if (e.shadowSlide) {
167        if (!e.el_.querySelector('.vjs-thumb-poster')) {
168          (a = document.createElement('div')).className = 'vjs-thumb-poster';
169          n = document.createElement('canvas');
170          a.appendChild(n);
171          e.el_.insertBefore(a, e.el_.querySelector('.vjs-poster'));
172        }
173      }
174      h = e.duration();
175      e.on('durationchange', function (t) {
176        h = e.duration();
177      });
178      e.on('loadedmetadata', function (t) {
179        h = e.duration();
180      });
181      var f = d.el_.querySelector('.vjs-play-progress').querySelector('.vjs-time-tooltip');
182      if (f) videojs.dom.addClass(f, 'vjs-abs-hidden');
183      var g = d.el().querySelector('.vjs-mouse-display');
184      if (g) g.style.opacity = 0;
185      var y = !1,
186        w = Object.defineProperty({}, 'passive', {
187          get: function () {
188            y = !0;
189            return !0;
190          },
191        });
192      window.addEventListener('testPassive', null, w);
193      window.removeEventListener('testPassive', null, w);
194      l.addEventListener('mousemove', u);
195      l.addEventListener('mouseleave', v);
196      l.addEventListener('mousedown', S);
197      l.addEventListener('touchstart', _, y ? { passive: !1 } : !1);
198    }
199    function x(e, t) {
200      e = e < 0 ? 0 : e;
201      let i = Math.floor(e % 60),
202        s = Math.floor((e / 60) % 60),
203        r = Math.floor(e / 3600);
204      const o = Math.floor((t / 60) % 60),
205        n = Math.floor(t / 3600);
206      if (isNaN(e) || e === 1 / 0) r = s = i = '-';
207      return (
208        (r = r > 0 || n > 0 ? r + ':' : '') +
209        (s = ((r || o >= 10) && s < 10 ? '0' + s : s) + ':') +
210        (i = i < 10 ? '0' + i : i)
211      );
212    }
213    function E() {
214      L(!1);
215      i.classList.remove('vjs-thumb-show');
216      if (e.shadowSlide) {
217        a.removeAttribute('style');
218        n.width = 0;
219        n.height = 0;
220      }
221    }
222    v = function (e) {
223      L(!1);
224      if (!0 !== videojs.holderdown) i.classList.remove('vjs-thumb-show');
225    };
226    function L(e) {
227      if (e) d.el().setAttribute('style', 'z-index:22');
228      else d.el().removeAttribute('style');
229    }
230    function q() {
231      videojs.holderdown = !1;
232      document.removeEventListener('mousemove', u);
233      document.removeEventListener('mouseup', q);
234      E();
235    }
236    function S(e) {
237      L(!0);
238      videojs.holderdown = !0;
239      document.addEventListener('mousemove', u);
240      document.addEventListener('mouseup', q);
241      u(e);
242    }
243    function C() {
244      l.removeEventListener('touchmove', u);
245      l.removeEventListener('touchend', C);
246      E();
247    }
248    function _(e) {
249      videojs.holderdown = !1;
250      u(e);
251      l.addEventListener('touchmove', u);
252      l.addEventListener('touchend', C);
253    }
254    o = null;
255    u = function (t) {
256      L(!0);
257      t.preventDefault();
258      h = e.duration();
259      var l = d.el().querySelector('.vjs-progress-holder'),
260        u = d.el().querySelector('.vjs-play-progress'),
261        c = l.getBoundingClientRect(),
262        v = null;
263      if (t.pageX) v = t.pageX;
264      else if (t.changedTouches) v = t.changedTouches[0].pageX || t.touches[0].clientX;
265      var f = v - c.left;
266      if (0 === f && videojs.holderdown && u.offsetWidth > 0);
267      if (f < 0) f = 0;
268      if (f > l.offsetWidth) f = l.offsetWidth;
269      if (r.timeTooltip) {
270        var g = (f / l.offsetWidth) * h,
271          y = i.querySelector('.vjs-thumb-tooltip');
272        if (y) y.innerHTML = x(g, h);
273      }
274      for (var w = m.length, j = 0, b = !1; j < w; ) {
275        var E = m[j];
276        if (E.startTime <= g && E.endTime >= g) {
277          b = !0;
278          var q = p(E.text);
279          break;
280        }
281        j++;
282      }
283      if (q) {
284        q.iw = q.w;
285        q.ih = q.h;
286        if (q)
287          if (!0 === b) {
288            i.classList.remove('vjs-thumb-hidden');
289            var S = !1,
290              C = q.src.replace(/\.\.\//g, '');
291            if (s.src.indexOf(C) < 0) {
292              s.src = q.src;
293              S = !0;
294            }
295            if (0 === q.w) {
296              q.w = r.width;
297              s.style.width = q.w + 'px';
298            }
299            if (0 === q.h) {
300              q.h = r.height;
301              s.style.height = q.h + 'px';
302            }
303            var _ = 1;
304            if (r.responsive && r.mediaqueries) {
305              var I = e.el_.offsetWidth;
306              if (I <= 320) _ = r.mediaqueries.tiny;
307              if (I > 320 && I <= 540) _ = r.mediaqueries.small;
308              if (I > 540 && I <= 1080) _ = r.mediaqueries.medium;
309              if (I > 1080 && I <= 1600) _ = r.mediaqueries.large;
310              if (I > 1600) _ = r.mediaqueries.xlarge;
311            }
312            var T = q.w * _,
313              N = q.h * _;
314            if (i.style.width !== T || i.style.height !== N) {
315              i.style.width = T + 'px';
316              i.style.height = N + 'px';
317            }
318            var P = o.getContext('2d');
319            if (S)
320              s.onload = function () {
321                o.width = T;
322                o.height = N;
323                q.x = 0;
324                q.y = 0;
325                P.drawImage(s, q.x, q.y, q.w, q.h, 0, 0, o.width, o.height);
326              };
327            else if (q.iw > 0 && q.ih > 0) {
328              o.width = T;
329              o.height = N;
330              P.fillRect(0, 0, T, N);
331              P.drawImage(s, q.x, q.y, q.w, q.h, 0, 0, o.width, o.height);
332            }
333            var k = T / 2,
334              W = d.el().offsetWidth,
335              M = e.el_.querySelector('.vjs-progress-holder').offsetLeft,
336              R = k - M;
337            if (f + k + M > W) f = W - T;
338            else if (f < R) f = 0;
339            else f -= R;
340            i.style.left = parseInt(f, 10) + 'px';
341            i.classList.add('vjs-thumb-show');
342            if (videojs.holderdown && e.shadowSlide) {
343              if (!e.el_.querySelector('.vjs-thumb-poster')) {
344                (a = document.createElement('div')).className = 'vjs-thumb-poster';
345                n = document.createElement('canvas');
346                a.appendChild(n);
347                e.el_.insertBefore(a, e.el_.querySelector('.vjs-poster'));
348              }
349              var B = n.getContext('2d');
350              n.width = e.el_.offsetWidth;
351              n.height = e.el_.offsetHeight;
352              a.style.width = n.width + 'px';
353              a.style.height = n.height + 'px';
354              B.clearRect(0, 0, n.width, n.height);
355              B.drawImage(s, q.x, q.y, q.w, q.h, 0, 0, n.width, n.height);
356            }
357          } else i.classList.add('vjs-thumb-hidden');
358      }
359    };
360  },
361  thumbnails = function (e) {
362    this.ready(() => {
363      let t = [];
364      try {
365        t = videojs.obj.merge(defaults, e);
366      } catch (i) {
367        t = videojs.mergeOptions(defaults, e);
368      }
369      onPlayerReady(this, t);
370    });
371  };
372if ('undefined' != typeof window) {
373  (videojs.registerPlugin || videojs.plugin)('thumbnails', thumbnails);
374}
375thumbnails.VERSION = '2.4.0';
376export default thumbnails;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.