PageSourceSearch

https://www.tving.com/js/context-filter-polyfill.js

js tving.com collected 2026-09-24 09:14:36 UTC 15,994 bytes, 455 lines download raw bytes

1!(function () {
2  'use strict';
3  var t;
4  !(function (t) {
5    (t.None = 'none'),
6      (t.Url = 'url'),
7      (t.Blur = 'blur'),
8      (t.Brightness = 'brightness'),
9      (t.Contrast = 'contrast'),
10      (t.DropShadow = 'drop-shadow'),
11      (t.Grayscale = 'grayscale'),
12      (t.HueRotate = 'hue-rotate'),
13      (t.Invert = 'invert'),
14      (t.Opacity = 'opacity'),
15      (t.Saturate = 'saturate'),
16      (t.Sepia = 'sepia');
17  })(t || (t = {}));
18  var r = new Map(),
19    a = function (t) {
20      var r = document.createElement('canvas');
21      return (
22        (r.height = t.canvas.height),
23        (r.width = t.canvas.width),
24        Object.defineProperty(r, '__skipFilterPatch', { value: !0 }),
25        r.getContext('2d')
26      );
27    };
28  var e = ['__skipFilterPatch', '__currentPathMirror', 'canvas', 'filter', 'getImageData'];
29  var n = [
30      'clearRect',
31      'drawImage',
32      'fill',
33      'fillRect',
34      'fillText',
35      'stroke',
36      'strokeRect',
37      'strokeText',
38    ],
39    i = function (t, a) {
40      a.match(/([-a-z]+)(?:\(([\w\d\s\.%-]*)\))?/gim)
41        .map(function (t) {
42          return t.match(/([-a-z]+)(?:\((.*)\))?/i).slice(1, 3);
43        })
44        .reduce(function (t, a) {
45          var e = a[0],
46            n = a[1];
47          return r.has(e) ? r.get(e).apply(void 0, [t].concat((n || '').split(' '))) : t;
48        }, t);
49    },
50    o = function (t) {
51      var r = parseFloat(t);
52      return /%\s*?$/i.test(t) && (r /= 100), r;
53    },
54    s = function (t) {
55      return parseFloat(t);
56    };
57  var c, h;
58  r.set(t.None, function (t) {
59    return t;
60  }),
61    r.set(t.Blur, function (t, r) {
62      void 0 === r && (r = '0');
63      var a = s(r);
64      if (a <= 0) return t;
65      for (
66        var e,
67          n,
68          i,
69          o,
70          c = t.canvas,
71          h = c.height,
72          u = c.width,
73          v = t.getImageData(0, 0, u, h),
74          f = v.data,
75          p = u - 1,
76          g = h - 1,
77          l = a + 1,
78          d = [
79            1, 57, 41, 21, 203, 34, 97, 73, 227, 91, 149, 62, 105, 45, 39, 137, 241, 107, 3, 173,
80            39, 71, 65, 238, 219, 101, 187, 87, 81, 151, 141, 133, 249, 117, 221, 209, 197, 187,
81            177, 169, 5, 153, 73, 139, 133, 127, 243, 233, 223, 107, 103, 99, 191, 23, 177, 171,
82            165, 159, 77, 149, 9, 139, 135, 131, 253, 245, 119, 231, 224, 109, 211, 103, 25, 195,
83            189, 23, 45, 175, 171, 83, 81, 79, 155, 151, 147, 9, 141, 137, 67, 131, 129, 251, 123,
84            30, 235, 115, 113, 221, 217, 53, 13, 51, 50, 49, 193, 189, 185, 91, 179, 175, 43, 169,
85            83, 163, 5, 79, 155, 19, 75, 147, 145, 143, 35, 69, 17, 67, 33, 65, 255, 251, 247, 243,
86            239, 59, 29, 229, 113, 111, 219, 27, 213, 105, 207, 51, 201, 199, 49, 193, 191, 47, 93,
87            183, 181, 179, 11, 87, 43, 85, 167, 165, 163, 161, 159, 157, 155, 77, 19, 75, 37, 73,
88            145, 143, 141, 35, 138, 137, 135, 67, 33, 131, 129, 255, 63, 250, 247, 61, 121, 239,
89            237, 117, 29, 229, 227, 225, 111, 55, 109, 216, 213, 211, 209, 207, 205, 203, 201, 199,
90            197, 195, 193, 48, 190, 47, 93, 185, 183, 181, 179, 178, 176, 175, 173, 171, 85, 21,
91            167, 165, 41, 163, 161, 5, 79, 157, 78, 154, 153, 19, 75, 149, 74, 147, 73, 144, 143,
92            71, 141, 140, 139, 137, 17, 135, 134, 133, 66, 131, 65, 129, 1,
93          ][a],
94          m = [
95            0, 9, 10, 10, 14, 12, 14, 14, 16, 15, 16, 15, 16, 15, 15, 17, 18, 17, 12, 18, 16, 17,
96            17, 19, 19, 18, 19, 18, 18, 19, 19, 19, 20, 19, 20, 20, 20, 20, 20, 20, 15, 20, 19, 20,
97            20, 20, 21, 21, 21, 20, 20, 20, 21, 18, 21, 21, 21, 21, 20, 21, 17, 21, 21, 21, 22, 22,
98            21, 22, 22, 21, 22, 21, 19, 22, 22, 19, 20, 22, 22, 21, 21, 21, 22, 22, 22, 18, 22, 22,
99            21, 22, 22, 23, 22, 20, 23, 22, 22, 23, 23, 21, 19, 21, 21, 21, 23, 23, 23, 22, 23, 23,
100            21, 23, 22, 23, 18, 22, 23, 20, 22, 23, 23, 23, 21, 22, 20, 22, 21, 22, 24, 24, 24, 24,
101            24, 22, 21, 24, 23, 23, 24, 21, 24, 23, 24, 22, 24, 24, 22, 24, 24, 22, 23, 24, 24, 24,
102            20, 23, 22, 23, 24, 24, 24, 24, 24, 24, 24, 23, 21, 23, 22, 23, 24, 24, 24, 22, 24, 24,
103            24, 23, 22, 24, 24, 25, 23, 25, 25, 23, 24, 25, 25, 24, 22, 25, 25, 25, 24, 23, 24, 25,
104            25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 25, 23, 24, 25, 25, 25, 25, 25, 25, 25,
105            25, 25, 24, 22, 25, 25, 23, 25, 25, 20, 24, 25, 24, 25, 25, 22, 24, 25, 24, 25, 24, 25,
106            25, 24, 25, 25, 25, 25, 22, 25, 25, 25, 24, 25, 24, 25, 18,
107          ][a],
108          _ = [],
109          w = [],
110          y = [],
111          D = [],
112          P = [],
113          I = [],
114          b = 3;
115        b-- > 0;
116
117      ) {
118        for (var M = 0, O = 0, k = 0; k < h; k++) {
119          for (
120            var C = f[M] * l, x = f[M + 1] * l, F = f[M + 2] * l, j = f[M + 3] * l, R = 1;
121            R <= a;
122            R++
123          )
124            (e = M + ((R > p ? p : R) << 2)),
125              (C += f[e++]),
126              (x += f[e++]),
127              (F += f[e++]),
128              (j += f[e]);
129          for (var S = 0; S < u; S++)
130            (_[O] = C),
131              (w[O] = x),
132              (y[O] = F),
133              (D[O] = j),
134              0 === k &&
135                ((P[S] = ((e = S + l) < p ? e : p) << 2), (I[S] = (e = S - a) > 0 ? e << 2 : 0)),
136              (n = M + P[S]),
137              (i = M + I[S]),
138              (C += f[n++] - f[i++]),
139              (x += f[n++] - f[i++]),
140              (F += f[n++] - f[i++]),
141              (j += f[n] - f[i]),
142              O++;
143          M += u << 2;
144        }
145        for (S = 0; S < u; S++) {
146          var T = S;
147          for (C = _[T] * l, x = w[T] * l, F = y[T] * l, j = D[T] * l, R = 1; R <= a; R++)
148            (C += _[(T += R > g ? 0 : u)]), (x += w[T]), (F += y[T]), (j += D[T]);
149          for (O = S << 2, k = 0; k < h; k++)
150            (f[O + 3] = o = (j * d) >>> m),
151              o > 0
152                ? ((o = 255 / o),
153                  (f[O] = ((C * d) >>> m) * o),
154                  (f[O + 1] = ((x * d) >>> m) * o),
155                  (f[O + 2] = ((F * d) >>> m) * o))
156                : (f[O] = f[O + 1] = f[O + 2] = 0),
157              0 === S &&
158                ((P[k] = ((e = k + l) < g ? e : g) * u), (I[k] = (e = k - a) > 0 ? e * u : 0)),
159              (n = S + P[k]),
160              (i = S + I[k]),
161              (C += _[n] - _[i]),
162              (x += w[n] - w[i]),
163              (F += y[n] - y[i]),
164              (j += D[n] - D[i]),
165              (O += u << 2);
166        }
167      }
168      return t.putImageData(v, 0, 0), t;
169    }),
170    r.set(t.Brightness, function (t, r) {
171      if ((void 0 === r && (r = '1'), 1 === (r = o(r)))) return t;
172      r < 0 && (r = 0);
173      for (
174        var a = t.canvas,
175          e = a.height,
176          n = a.width,
177          i = t.getImageData(0, 0, n, e),
178          s = i.data,
179          c = s.length,
180          h = 0;
181        h < c;
182        h += 4
183      )
184        (s[h + 0] *= r), (s[h + 1] *= r), (s[h + 2] *= r);
185      return t.putImageData(i, 0, 0), t;
186    }),
187    r.set(t.Contrast, function (t, r) {
188      if ((void 0 === r && (r = '1'), 1 === (r = o(r)))) return t;
189      r < 0 && (r = 0);
190      for (
191        var a = t.canvas,
192          e = a.height,
193          n = a.width,
194          i = t.getImageData(0, 0, n, e),
195          s = i.data,
196          c = s.length,
197          h = 0;
198        h < c;
199        h += 4
200      )
201        (s[h + 0] = 255 * ((s[h + 0] / 255 - 0.5) * r + 0.5)),
202          (s[h + 1] = 255 * ((s[h + 1] / 255 - 0.5) * r + 0.5)),
203          (s[h + 2] = 255 * ((s[h + 2] / 255 - 0.5) * r + 0.5));
204      return t.putImageData(i, 0, 0), t;
205    }),
206    r.set(t.DropShadow, function (t, r, a, e, n) {
207      var i = document.createElement('canvas').getContext('2d');
208      (i.shadowOffsetX = s(r)),
209        (i.shadowOffsetY = s(a)),
210        (i.shadowBlur = n ? s(e || '0') : 0),
211        (i.shadowColor = n || e || 'transparent'),
212        i.drawImage(t.canvas, 0, 0);
213      var o = t.canvas,
214        c = o.width,
215        h = o.height;
216      return t.putImageData(i.getImageData(0, 0, c, h), 0, 0), t;
217    }),
218    r.set(t.Grayscale, function (t, r) {
219      if ((void 0 === r && (r = '0'), (r = o(r)) <= 0)) return t;
220      r > 1 && (r = 1);
221      for (
222        var a = t.canvas,
223          e = a.height,
224          n = a.width,
225          i = t.getImageData(0, 0, n, e),
226          s = i.data,
227          c = s.length,
228          h = 0;
229        h < c;
230        h += 4
231      ) {
232        var u = 0.2126 * s[h] + 0.7152 * s[h + 1] + 0.0722 * s[h + 2];
233        (s[h + 0] += (u - s[h + 0]) * r),
234          (s[h + 1] += (u - s[h + 1]) * r),
235          (s[h + 2] += (u - s[h + 2]) * r);
236      }
237      return t.putImageData(i, 0, 0), t;
238    }),
239    r.set(t.HueRotate, function (t, r) {
240      void 0 === r && (r = '0deg');
241      var a = (function (t) {
242        var r = parseFloat(t);
243        switch (t.slice(r.toString().length)) {
244          case 'deg':
245            r /= 360;
246            break;
247          case 'grad':
248            r /= 400;
249            break;
250          case 'rad':
251            r /= 2 * Math.PI;
252        }
253        return r;
254      })(r);
255      if (a <= 0) return t;
256      var e,
257        n,
258        i,
259        o,
260        s,
261        c,
262        h,
263        u,
264        v,
265        f = t.canvas,
266        p = f.height,
267        g = f.width,
268        l = t.getImageData(0, 0, g, p),
269        d = l.data,
270        m = (((a % 1) + 1) % 1) * 3,
271        _ = Math.floor(m),
272        w = m - _,
273        y = 1 - w;
274      switch (_) {
275        case 0:
276          (e = y), (n = 0), (i = w), (o = w), (s = y), (c = 0), (h = 0), (u = w
276), (v = y);
277          break;
278        case 1:
279          (e = 0), (n = w), (i = y), (o = y), (s = 0), (c = w), (h = w), (u = y), (v = 0);
280          break;
281        case 2:
282          (e = w), (n = y), (i = 0), (o = 0), (s = w), (c = y), (h = y), (u = 0), (v = w);
283      }
284      for (var D = 0, P = 0; P < p; ++P)
285        for (var I = 0; I < g; ++I) {
286          var b = d[0 + (D = 4 * (P * g + I))],
287            M = d[D + 1],
288            O = d[D + 2];
289          (d[D + 0] = Math.floor(e * b + n * M + i * O)),
290            (d[D + 1] = Math.floor(o * b + s * M + c * O)),
291            (d[D + 2] = Math.floor(h * b + u * M + v * O));
292        }
293      return t.putImageData(l, 0, 0), t;
294    }),
295    r.set(t.Invert, function (t, r) {
296      if ((void 0 === r && (r = '0'), (r = o(r)) <= 0)) return t;
297      r > 1 && (r = 1);
298      for (
299        var a = t.canvas,
300          e = a.height,
301          n = a.width,
302          i = t.getImageData(0, 0, n, e),
303          s = i.data,
304          c = s.length,
305          h = 0;
306        h < c;
307        h += 4
308      )
309        (s[h + 0] = Math.abs(s[h + 0] - 255 * r)),
310          (s[h + 1] = Math.abs(s[h + 1] - 255 * r)),
311          (s[h + 2] = Math.abs(s[h + 2] - 255 * r));
312      return t.putImageData(i, 0, 0), t;
313    }),
314    r.set(t.Opacity, function (t, r) {
315      if ((void 0 === r && (r = '1'), (r = o(r)) < 0)) return t;
316      r > 1 && (r = 1);
317      for (
318        var a = t.canvas,
319          e = a.height,
320          n = a.width,
321          i = t.getImageData(0, 0, n, e),
322          s = i.data,
323          c = s.length,
324          h = 3;
325        h < c;
326        h += 4
327      )
328        s[h] *= r;
329      return t.putImageData(i, 0, 0), t;
330    }),
331    r.set(t.Saturate, function (t, r) {
332      void 0 === r && (r = '1');
333      var a = o(r);
334      if (1 === a) return t;
335      a < 0 && (a = 0);
336      for (
337        var e = t.canvas,
338          n = e.height,
339          i = e.width,
340          s = t.getImageData(0, 0, i, n),
341          c = s.data,
342          h = 0.3086 * (1 - a),
343          u = 0.6094 * (1 - a),
344          v = 0.082 * (1 - a),
345          f = i << 2,
346          p = 0;
347        p < n;
348        p++
349      )
350        for (var g = p * f, l = 0; l < i; l++) {
351          var d = g + (l << 2),
352            m = c[d + 0],
353            _ = c[d + 1],
354            w = c[d + 2];
355          (c[d + 0] = (h + a) * m + u * _ + v * w),
356            (c[d + 1] = h * m + (u + a) * _ + v * w),
357            (c[d + 2] = h * m + u * _ + (v + a) * w);
358        }
359      return t.putImageData(s, 0, 0), t;
360    }),
361    r.set(t.Sepia, function (t, r) {
362      if ((void 0 === r && (r = '0'), (r = o(r)) <= 0)) return t;
363      r > 1 && (r = 1);
364      for (
365        var a = t.canvas,
366          e = a.height,
367          n = a.width,
368          i = t.getImageData(0, 0, n, e),
369          s = i.data,
370          c = s.length,
371          h = 0;
372        h < c;
373        h += 4
374      ) {
375        var u = s[h + 0],
376          v = s[h + 1],
377          f = s[h + 2];
378        (s[h + 0] = (0.393 * u + 0.769 * v + 0.189 * f) * r + u * (1 - r)),
379          (s[h + 1] = (0.349 * u + 0.686 * v + 0.168 * f) * r + v * (1 - r)),
380          (s[h + 2] = (0.272 * u + 0.534 * v + 0.131 * f) * r + f * (1 - r));
381      }
382      return t.putImageData(i, 0, 0), t;
383    }),
384    'filter' in CanvasRenderingContext2D.prototype ||
385      ((c = HTMLCanvasElement),
386      (h = CanvasRenderingContext2D),
387      Object.defineProperty(c.prototype, '__skipFilterPatch', { writable: !0, value: !1 }),
388      Object.defineProperty(c.prototype, '__currentPathMirror', { writable: !0, value: void 0 }),
389      Object.defineProperty(h.prototype, 'filter', { writable: !0, value: t.None }),
390      (function (t) {
391        Object.keys(t.prototype)
392          .filter(function (t) {
393            return e.indexOf(t) < 0;
394          })
395          .map(function (r) {
396            return { member: r, descriptor: Object.getOwnPropertyDescriptor(t.prototype, r) };
397          })
398          .filter(function (t) {
399            return t.descriptor.set;
400          })
401          .forEach(function (r) {
402            var e = r.member,
403              n = r.descriptor;
404            Object.defineProperty(t.prototype, e, {
405              get: function () {
406                return this.canvas.__skipFilterPatch
407                  ? n.get.call(this)
408                  : this.canvas.__currentPathMirror[e];
409              },
410              set: function (t) {
411                if (this.canvas.__skipFilterPatch) return n.set.call(this, t);
412                this.canvas.__currentPathMirror || (this.canvas.__currentPathMirror = a(this)),
413                  (this.canvas.__currentPathMirror[e] = t);
414              },
415            });
416          });
417      })(CanvasRenderingContext2D),
418      (function (t) {
419        Object.keys(t.prototype)
420          .filter(function (t) {
421            return e.indexOf(t) < 0;
422          })
423          .map(function (r) {
424            return { member: r, descriptor: Object.getOwnPropertyDescriptor(t.prototype, r) };
425          })
426          .filter(function (t) {
427            var r = t.descriptor;
428            return r.value && 'function' == typeof r.value;
429          })
430          .forEach(function (r) {
431            var e = r.member,
432              o = r.descriptor.value;
433            Object.defineProperty(t.prototype, e, {
434              value: function () {
435                for (var t, r = [], s = 0; s < arguments.length; s++) r[s] = arguments[s];
436                if (this.canvas.__skipFilterPatch) return o.call.apply(o, [this].concat(r));
437                this.canvas.__currentPathMirror || (this.canvas.__currentPathMirror = a(this));
438                var c = (t = this.canvas.__currentPathMirror)[e].apply(t, r);
439                if (n.indexOf(e) > -1) {
440                  i(this.canvas.__currentPathMirror, this.filter),
441                    (this.canvas.__skipFilterPatch = !0);
442                  var h = void 0;
443                  'getTransform' in this &&
444                    ((h = this.getTransform()), this.setTransform(1, 0, 0, 1, 0, 0)),
445                    this.drawImage(this.canvas.__currentPathMirror.canvas, 0, 0),
446                    h && this.setTransform(h),
447                    (this.canvas.__skipFilterPatch = !1),
448                    (this.canvas.__currentPathMirror = a(this));
449                }
450                return c;
451              },
452            });
453          });
454      })(CanvasRenderingContext2D));
455})();

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.