PageSourceSearch

https://laziar.com/assets/videojs/plugins/cjs/videojs.filters.js

js laziar.com collected 2026-09-28 08:58:59 UTC 14,564 bytes, 413 lines download raw bytes

1/**
2 * Copyright (c) 2023 The Nuevodevel Team. All rights reserved.
3 * Filters plugin for video.js
4 * Version 1.2.0
5 */
6/* eslint-disable */ /* eslint-env node */ function _interopDefault(e) {
7  return e && 'object' === typeof e && 'default' in e ? e.default : e;
8}
9var videojs = _interopDefault(require('video.js'));
10var supportsPassive = !1;
11function fint(e) {
12  return e;
13}
14var opts = Object.defineProperty({}, 'passive', {
15  get: function () {
16    supportsPassive = !0;
17    return !0;
18  },
19});
20window.addEventListener('testPassive', null, opts);
21window.removeEventListener('testPassive', null, opts);
22var filter_b = 100,
23  filter_s = 100,
24  filter_c = 100;
25const onMenusReady = (e, t) => {
26    const i = { filtersMenu: !0 };
27    let s = 100,
28      r = 100,
29      a = 100,
30      l = e.el();
31    try {
32      t = videojs.obj.merge(i, t);
33    } catch (e) {
34      t = videojs.mergeOptions(i, t);
35    }
36    if (t.filtersMenu) {
37      let t = videojs.dom.createEl(
38        'li',
39        { className: 'vjs-settings-item vjs-filters-button' },
40        {
41          tabIndex: 0,
42          'aria-label': e.localize('Open filters container'),
43          role: 'menuitem',
44          'aria-disabled': 'false',
45        }
46      );
47      t.innerHTML =
48        e.localize('Filters') +
49        '<span><span class="vjs-filters-icon vjs-icon-placeholder" data-id="filters" aria-hidden="true"></span></span>';
50      let i = l.querySelector('.vjs-settings-list');
51      if (i) {
52        if (i.children.length > 0) i.insertBefore(t, i.firstChild.nextSibling);
53        else {
54          i.appendChild(t);
55          videojs.dom.removeClass(l.querySelector('.vjs-cog-menu-button'), 'vjs-hidden');
56        }
57      }
58      let h = videojs.dom.createEl(
59        'div',
60        { className: 'vjs-filters vjs-hidden' },
61        { 'aria-label': e.localize('Video filters'), 'aria-hidden': !0 }
62      );
63      h.style.zIndex = 7;
64      let m = videojs.dom.createEl(
65        'div',
66        { className: 'vjs-filter-body vjs-filter-brightness' },
67        {
68          tabindex: 0,
69          'aria-live': 'polite',
70          role: 'slider',
71          'aria-valuetext': '50%',
72          'aria-valuenow': 50,
73          'aria-valuemin': 0,
74          'aria-valuemax': 100,
75        }
76      );
77      m.setAttribute('aria-label', 'video brigtness');
78      let j = videojs.dom.createEl(
79        'div',
80        { className: 'vjs-filter-body vjs-filter-saturation' },
81        {
82          tabindex: 0,
83          'aria-live': 'polite',
84          role: 'slider',
85          'aria-valuetext': '50%',
86          'aria-valuenow': 50,
87          'aria-valuemin': 0,
88          'aria-valuemax': 100,
89        }
90      );
91      j.setAttribute('aria-label', 'video saturation');
92      let y = videojs.dom.createEl(
93        'div',
94        { className: 'vjs-filter-body vjs-filter-contrast' },
95        {
96          tabindex: 0,
97          'aria-live': 'polite',
98          role: 'slider',
99          'aria-valuetext': '50%',
100          'aria-valuenow': 50,
101          'aria-valuemin': 0,
102          'aria-valuemax': 100,
103        }
104      );
105      y.setAttribute('aria-label', 'video contrast');
106      let b =
107        '<div class="vjs-filter-bar"><div class="vjs-filter-level"></div><div class="filter-tip"></div></div>';
108      m.innerHTML =
109        '<span aria-hidden="true" data-id="brightness" class="vjs-icon-placeholder"></span>' + b;
110      j.innerHTML =
111        '<span aria-hidden="true" data-id="saturation" class="vjs-icon-placeholder"></span>' + b;
112      y.innerHTML =
113        '<span aria-hidden="true" data-id="contrast" class="vjs-icon-placeholder"></span>' + b;
114      let w = videojs.dom.createEl(
115          'button',
116          { className: 'filter-btn filter-close' },
117          { tabindex: 0, 'aria-disabled': !1, 'aria-label': e.localize('Close filters') },
118          e.localize('Close')
119        ),
120        g = videojs.dom.createEl(
121          'button',
122          { className: 'filter-btn filter-reset' },
123          { tabindex: 0, 'aria-disabled': !1, 'aria-label': e.localize('Reset filters') },
124          e.localize('Reset')
125        );
126      h.appendChild(m);
127      h.appendChild(j);
128      h.appendChild(y);
129      h.appendChild(g);
130      h.appendChild(w);
131      function o(t) {
132        let i = t.which;
133        if (27 === i) w.click();
134        if (37 === i || 39 === i) {
135          var l = document.activeElement;
136          if (l === m || l === j || l === y) {
137            let t = l.querySelector('.vjs-filter-level'),
138              d = parseInt(t.style.width);
139            if (!t.style.width) d = 50;
140            if (39 === i) if ((d += 5) > 99) d = 100;
141            if (37 === i) if ((d -= 5) < 0) d = 0;
142            t.style.width = d + '%';
143            var o = 100 + 2 * (d - 50);
144            if (l === m) s = o;
145            if (l === j) r = o;
146            if (l === y) a = o;
147            var n = '';
148            if (100 !== s) n = 'brightness(' + s + '%)';
149            if (100 !== r) {
150              if ('' !== n) n += ' ';
151              n += 'saturate(' + r + '%)';
152            }
153            if (100 !== a) {
154              if ('' !== n) n += ' ';
155              n += 'contrast(' + a + '%)';
156            }
157            l.querySelector('.filter-tip').innerText = d;
158            l.setAttribute('aria-valuetext', d + '%');
159            l.setAttribute('aria-valuenow', d);
160            let v = e.el_.querySelector('.vjs-tech');
161            v.style.webkitFilter = n;
162            v.style.filter = n;
163          }
164        }
165        if (9 === i) {
166          let e = document.activeElement;
167          if (w == e) {
168            m.focus();
169            t.preventDefault();
170          } else if (e !== m && e !== j && e !== y && e !== g) t.preventDefault();
171        }
172      }
173      l.appendChild(h);
174      h.addEventListener('keydown', o);
175      t.onkeydown = function (e) {
176        setTimeout(function () {
177          m.focus();
178        }, 150);
179      };
180      var n = function (e) {
181          let t = L,
182            i = t.querySelector('.vjs-filter-bar'),
183            o = null;
184          if ('mousemove' === e.type || 'mousedown' === e.type) o = e.clientX || null;
185          else if ('touchmove' === e.type || 'touchstart' === e.type)
186            o = e.touches[0].pageX || null;
187          if (null === o) return;
188          o = parseInt(o, 10);
189          var n = i.getBoundingClientRect(),
190            d = i.offsetWidth,
191            v = o - (n.left - window.scrollX);
192          if (v > d) v = d;
193          if (v < 0) v = 0;
194          var u = parseInt((v / d) * 100, 10);
195          if (u < 0) u = 0;
196          if (u > 100) u = 100;
197          t.querySelector('.vjs-filter-level').style.width = u + '%';
198          let c = t.querySelector('.filter-tip');
199          videojs.dom.addClass(c, 'tip-show');
200          c.style.left = d * (u / 100) - c.offsetWidth / 2 + 'px';
201          let f = l.querySelector('.vjs-brightness-bar');
202          if (f) f.querySelector('.bar-level').style.height = u + '%';
203          vv = 2 * (u - 50);
204          var p = 2 * (u - 50);
205          if (p < -100) p = -100;
206          if (p > 100) p = 100;
207          var b = 100 + 2 * (u - 50);
208          c.innerText = u;
209          t.setAttribute('aria-valuetext', u + '%');
210          t.setAttribute('aria-valuenow', u);
211          if (L === m) s = b;
212          if (L === j) r = b;
213          if (L === y) a = b;
214          var w = '';
215          if (100 !== s) w = 'brightness(' + s + '%)';
216          if (100 !== r) {
217            if ('' !== w) w += ' ';
218            w += 'saturate(' + r + '%)';
219          }
220          if (100 !== a) {
221            if ('' !== w) w += ' ';
222            w += 'contrast(' + a + '%)';
223          }
224          let g = l.querySelector('.vjs-tech');
225          g.style.webkitFilter = h;
226          g.style.filter = w;
227        },
228        d = function (t) {
229          t.preventDefault();
230          t.stopPropagation();
231          let i = e.el_.querySelector('.vjs-filters');
232          i.setAttribute('aria-hidden', 'true');
233          i.classList.add('vjs-hidden');
234          e.$('.vjs-tech').style.removeProperty('pointer-events');
235          e.el_.classList.remove('vjs-filters-on');
236          setTimeout(function () {
237            e.el_.focus();
238            t.preventDefault();
239            t.stopPropagation();
240          }, 100);
241          e.userActive(!1);
242        },
243        v = function (t) {
244          t.preventDefault();
245          t.stopPropagation();
246          videojs.dom.removeClass(h, 'vjs-hidden');
247          h.setAttribute('aria-hidden', 'false');
248          e.trigger('filters');
249          e.$('.vjs-tech').style.setProperty('pointer-events', 'none');
250          videojs.dom.addClass(l, 'vjs-filters-on');
251          let i = l.querySelector('.vjs-sharing-overlay'),
252            s = l.querySelector('.vjs-grid');
253          if (i) videojs.dom.addClass(i, 'vjs-hidden');
254          if (s) videojs.dom.addClass(s, 'vjs-hidden');
255          let r = l.querySelector('.vjs-menu-settings');
256          setTimeout(function () {
257            videojs.dom.removeClass(r, 'vjs-lock-showing');
258            videojs.dom.addClass(r, 'vjs-hidden');
259            h.focus();
260          }, 500);
261        },
262        u = function (e) {
263          e.preventDefault();
264          e.stopPropagation();
265          s = 100;
266          a = 100;
267          r = 100;
268          l.querySelector('.vjs-tech').removeAttribute('style');
269          m.querySelector('.vjs-filter-level').style.width = '50%';
270          j.querySelector('.vjs-filter-level').style.width = '50%';
271          y.querySelector('.vjs-filter-level').style.width = '50%';
272        },
273        c = function (e) {
274          e.stopPropagation();
275          let t = e.target;
276          L = t;
277          n(e);
278          window.addEventListener('mousemove', f, !1);
279          window.addEventListener('mouseup', p, !1);
280          window.addEventListener('touchmove', f, { passive: !1 });
281          L.addEventListener('touchend', p);
282        },
283        f = function (e) {
284          e.preventDefault();
285          n(e);
286        },
287        p = function (e) {
288          e.preventDefault();
289          videojs.dom.removeClass(l, 'vjs-touch-active');
290          videojs.dom.removeClass(L.querySelector('.filter-tip'), 'tip-show');
291          window.removeEventListener('mousemove', f);
292          window.removeEventListener('mouseup', p);
293          window.removeEventListener('touchmove', f);
294          L.removeEventListener('touchend', p);
295        };
296      g.addEventListener('click', u, !1);
297      g.addEventListener('touchend', u, !1);
298      w.addEventListener('click', d, !1);
299      w.addEventListener('touchend', d, !1);
300      let E = l.querySelector('.vjs-filters-button');
301      E.addEventListener('click', v, !1);
302      E.addEventListener('touchstart', v, supportsPassive ? { passive: !1 } : !1);
303      let L = null;
304      m.addEventListener('mousedown', c, !1);
305      m.addEventListener('touchstart', c, supportsPassive ? { passive: !0 } : !1);
306      j.addEventListener('mousedown', c, !1);
307      j.addEventListener('touchstart', c, supportsPassive ? { passive: !0 } : !1);
308      y.addEventListener('mousedown', c, !1);
309      y.addEventListener('touchstart', c, supportsPassive ? { passive: !0 } : !1);
310    }
311  },
312  onPlayerReady = (e, t) => {
313    const i = { touchBrightness: !0 };
314    try {
315      t = videojs.obj.merge(i, t);
316    } catch (e) {
317      t = videojs.mergeOptions(i, t);
318    }
319    videojs.dom;
320    let s = e.el();
321    if (!0 === t.touchBrightness) {
322      var r = videojs.dom.createEl(
323        'div',
324        { className: 'vjs-brightness' },
325        {
326          tabindex: 0,
327          'aria-live': 'polite',
328          role: 'slider',
329          'aria-valuetext': '50%',
330          'aria-valuenow': 50,
331          'aria-valuemin': 0,
332          'aria-valuemax': 100,
333        }
334      );
335      r.innerHTML =
336        '<span data-id="brightness" class="vjs-icon-placeholder"></span><div class="vjs-brightness-bar"><div class="bar"></div><div class="bar-level"></div></div>';
337      s.appendChild(r);
338      r.setAttribute('aria-label', 'Video brightness');
339      r.addEventListener(
340        'touchstart',
341        function (e) {
342          e.stopImmediatePropagation();
343          videojs.dom.addClass(s, 'vjs-touch-active');
344          o(e);
345          window.addEventListener('touchmove', a, { passive: !1 });
346          r.addEventListener('touchend', l);
347        },
348        supportsPassive ? { passive: !0 } : !1
349      );
350      return this;
351    }
352    function a(t) {
353      t.preventDefault();
354      t.stopImmediatePropagation();
355      clearInterval(e.touchtimer);
356      videojs.dom.addClass(s, 'vjs-touch-acitve');
357      o(t);
358    }
359    function l(t) {
360      t.preventDefault();
361      e.touchtimer = setTimeout(function () {
362        videojs.dom.removeClass(s, 'vjs-touch-active');
363      }, 1e3);
364      window.removeEventListener('touchmove', a);
365      r.removeEventListener('touchend', l);
366    }
367    function o(e) {
368      let t = null;
369      if ('mousemove' === e.type || 'mousedown' === e.type) t = e.pageY || null;
370      else if ('touchmove' === e.type || 'touchstart' === e.type) t = e.touches[0].pageY || null;
371      if (null === t) return;
372      var i = r.offsetHeight,
373        a = t - (r.getBoundingClientRect().top + window.scrollY);
374      if (a > i) a = i;
375      if (a < 0) a = 0;
376      var l = parseInt(100 - (a / i) * 100, 10);
377      if (l < 0) l = 0;
378      if (l > 100) l = 100;
379      r.querySelector('.bar-level').style.height = l + '%';
380      r.setAttribute('aria-valuenow', l);
381      r.setAttribute('aria-valuetext', l + '%');
382      let o = s.querySelector('.vjs-filters');
383      if (o) {
384        let e = o.querySelector('.vjs-filter-brightness');
385        if (e) {
386          e.querySelector('.vjs-filter-level').style.width = l + '%';
387          e.setAttribute('aria-valuenow', l);
388          e.setAttribute('aria-valuetext', l + '%');
389        }
390      }
391      if (100 !== (filter_b = 100 + 2 * (l - 50))) filterss = 'brightness(' + filter_b + '%)';
392      if (100 !== filter_s) {
393        if ('' !== filterss) filterss += ' ';
394        filterss += 'saturate(' + filter_s + '%)';
395      }
396      if (100 !== filter_c) {
397        if ('' !== filterss) filterss += ' ';
398        filterss += 'contrast(' + filter_c + '%)';
399      }
400      s.querySelector('.vjs-tech').style.webkitFilter = filterss;
401      s.querySelector('.vjs-tech').style.filter = filterss;
402    }
403  },
404  filters = function (e) {
405    this.ready(() => {
406      onPlayerReady(this, e);
407    });
408    this.on('menusReady', function () {
409      onMenusReady(this, e);
410    });
411  };
412if ('undefined' != typeof window) videojs.registerPlugin('filters', filters);
413module.exports = filters;

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.