@vindral/web-sdk 4.1.1 → 4.1.2-2-g81b4d14f

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/player.js CHANGED
@@ -1,12 +1,12 @@
1
1
  var Br = Object.defineProperty;
2
2
  var Kr = Object.getPrototypeOf;
3
3
  var qr = Reflect.get;
4
- var Fs = (d) => {
4
+ var Gs = (d) => {
5
5
  throw TypeError(d);
6
6
  };
7
7
  var Xr = (d, a, t) => a in d ? Br(d, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[a] = t;
8
- var m = (d, a, t) => Xr(d, typeof a != "symbol" ? a + "" : a, t), Hi = (d, a, t) => a.has(d) || Fs("Cannot " + t);
9
- var e = (d, a, t) => (Hi(d, a, "read from private field"), t ? t.call(d) : a.get(d)), l = (d, a, t) => a.has(d) ? Fs("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(d) : a.set(d, t), c = (d, a, t, i) => (Hi(d, a, "write to private field"), i ? i.call(d, t) : a.set(d, t), t), r = (d, a, t) => (Hi(d, a, "access private method"), t);
8
+ var m = (d, a, t) => Xr(d, typeof a != "symbol" ? a + "" : a, t), $i = (d, a, t) => a.has(d) || Gs("Cannot " + t);
9
+ var e = (d, a, t) => ($i(d, a, "read from private field"), t ? t.call(d) : a.get(d)), l = (d, a, t) => a.has(d) ? Gs("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(d) : a.set(d, t), c = (d, a, t, i) => ($i(d, a, "write to private field"), i ? i.call(d, t) : a.set(d, t), t), r = (d, a, t) => ($i(d, a, "access private method"), t);
10
10
  var q = (d, a, t) => qr(Kr(d), t, a);
11
11
  var G = (d, a, t) => new Promise((i, s) => {
12
12
  var o = (v) => {
@@ -24,11 +24,11 @@ var G = (d, a, t) => new Promise((i, s) => {
24
24
  }, u = (v) => v.done ? i(v.value) : Promise.resolve(v.value).then(o, p);
25
25
  u((t = t.apply(d, a)).next());
26
26
  });
27
- import { L as Vr, V as jr, i as Yr, A as Jr, C as Qr, a as Wr } from "./B3oxL4M1.js";
27
+ import { L as jr, V as Vr, i as Yr, A as Jr, C as Qr, a as Wr } from "./D5RXPeL0.js";
28
28
  import { E as li } from "./Bx7s5QdT.js";
29
29
  import { CastSender as Zr } from "./cast-sender.js";
30
30
  import { A as to, d as eo } from "./hRzek83o.js";
31
- const Bi = 1e3, Ki = Bi * 1e3, Hs = Ki * 1e3, zi = (d, a, t) => d % a === 0 ? d / a : (d / a).toFixed(t), io = (d, a = 1) => d >= Hs ? `${zi(d, Hs, a)} Gbit/s` : d >= Ki ? `${zi(d, Ki, a)} Mbit/s` : d >= Bi ? `${zi(d, Bi, a)} Kbit/s` : `${d} bit/s`, so = ({ width: d, height: a }) => `${d}x${a}`, no = ({
31
+ const Xi = 1e3, ji = Xi * 1e3, $s = ji * 1e3, Bi = (d, a, t) => d % a === 0 ? d / a : (d / a).toFixed(t), io = (d, a = 1) => d >= $s ? `${Bi(d, $s, a)} Gbit/s` : d >= ji ? `${Bi(d, ji, a)} Mbit/s` : d >= Xi ? `${Bi(d, Xi, a)} Kbit/s` : `${d} bit/s`, so = ({ width: d, height: a }) => `${d}x${a}`, no = ({
32
32
  title: d,
33
33
  subTitle: a = "Live stream",
34
34
  poster: t
@@ -76,7 +76,7 @@ const Bi = 1e3, Ki = Bi * 1e3, Hs = Ki * 1e3, zi = (d, a, t) => d % a === 0 ? d
76
76
  FULLSCREEN_ENABLED: "fullscreen",
77
77
  VU_METER_ENABLED: "vu-meter",
78
78
  POSTER_SRC: "poster-src"
79
- }, Ks = Object.values(n), f = {
79
+ }, js = Object.values(n), f = {
80
80
  PLAY: "play",
81
81
  PAUSE: "pause",
82
82
  MUTE: "mute",
@@ -96,10 +96,10 @@ const Bi = 1e3, Ki = Bi * 1e3, Hs = Ki * 1e3, zi = (d, a, t) => d % a === 0 ? d
96
96
  REQUEST_USER_INPUT: "request-user-input",
97
97
  SET_VOLUME: "set-volume"
98
98
  };
99
- function qs(d) {
99
+ function Vs(d) {
100
100
  return d === "audio" || d === "video" || d === "audio+video" ? d : "audio+video";
101
101
  }
102
- function Gi(d) {
102
+ function Ki(d) {
103
103
  return d === "trace" || d === "debug" || d === "info" || d === "warn" || d === "error" || d === "off" ? d : "off";
104
104
  }
105
105
  function ro(d) {
@@ -109,10 +109,6 @@ function ro(d) {
109
109
  if (a.length !== 0)
110
110
  return a;
111
111
  }
112
- function Xs(d) {
113
- if (d !== null)
114
- return d === "" ? !0 : d;
115
- }
116
112
  function oo(d) {
117
113
  if (d !== null)
118
114
  try {
@@ -143,7 +139,7 @@ function ao(d) {
143
139
  return;
144
140
  }
145
141
  }
146
- function ui(d) {
142
+ function bi(d) {
147
143
  if (d === null)
148
144
  return;
149
145
  const a = parseInt(d, 10);
@@ -152,13 +148,16 @@ function ui(d) {
152
148
  function L(d) {
153
149
  return typeof d == "string";
154
150
  }
155
- function x(d, a) {
151
+ function S(d, a) {
156
152
  if (d === null)
157
153
  return a != null ? a : void 0;
158
154
  const t = d.toLowerCase();
159
155
  return t === "false" ? !1 : t === "true" || t === "" ? !0 : a != null ? a : !0;
160
156
  }
161
- function pi(d) {
157
+ function Ys(d, a) {
158
+ return d === null ? a != null ? a : void 0 : d === "" || d.toLowerCase() === "true" ? !0 : d.toLowerCase() === "false" ? !1 : d;
159
+ }
160
+ function mi(d) {
162
161
  if (d === null)
163
162
  return;
164
163
  const a = {}, t = d.split(",");
@@ -168,8 +167,14 @@ function pi(d) {
168
167
  }
169
168
  return Object.keys(a).length > 0 ? a : void 0;
170
169
  }
171
- const Vs = document.createElement("template");
172
- Vs.innerHTML = /* HTML */
170
+ function vi(d) {
171
+ if (d === null)
172
+ return;
173
+ const a = d.split(",").map((t) => t.trim()).filter((t) => t.length > 0);
174
+ return a.length > 0 ? a : void 0;
175
+ }
176
+ const Js = document.createElement("template");
177
+ Js.innerHTML = /* HTML */
173
178
  `
174
179
  <style>
175
180
  :host {
@@ -241,7 +246,7 @@ class tt extends HTMLElement {
241
246
  }
242
247
  this.addEventListener("keyup", e(this, Nt), { once: !0 });
243
248
  });
244
- this.attachShadow({ mode: "open" }).appendChild(Vs.content.cloneNode(!0));
249
+ this.attachShadow({ mode: "open" }).appendChild(Js.content.cloneNode(!0));
245
250
  }
246
251
  get keysUsed() {
247
252
  return ["Enter", " "];
@@ -265,13 +270,13 @@ class tt extends HTMLElement {
265
270
  }
266
271
  }
267
272
  Gt = new WeakMap(), Te = new WeakMap(), Nt = new WeakMap(), xe = new WeakMap(), m(tt, "observedAttributes", ["disabled"]);
268
- const js = document.createElement("template"), zs = (
273
+ const Qs = document.createElement("template"), Bs = (
269
274
  /* SVG */
270
275
  `
271
276
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" ><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 18a3 3 0 0 0 3 -3v-8a3 3 0 0 0 -3 -3h-12a3 3 0 0 0 -3 3v8a3 3 0 0 0 3 3" /><path d="M9 20h6l-3 -5z" /></svg>
272
277
  `
273
278
  );
274
- js.innerHTML = /* HTML */
279
+ Qs.innerHTML = /* HTML */
275
280
  `
276
281
  <style>
277
282
  :host {
@@ -292,26 +297,26 @@ js.innerHTML = /* HTML */
292
297
  </style>
293
298
 
294
299
  <slot name="icon">
295
- <slot name="enter">${zs}</slot>
296
- <slot name="exit">${zs}</slot>
300
+ <slot name="enter">${Bs}</slot>
301
+ <slot name="exit">${Bs}</slot>
297
302
  </slot>
298
303
  `;
299
- var Se, Xi;
304
+ var Se, Yi;
300
305
  const me = class me extends tt {
301
306
  constructor() {
302
307
  var t;
303
308
  super();
304
309
  l(this, Se);
305
- (t = this.shadowRoot) == null || t.appendChild(js.content.cloneNode(!0));
310
+ (t = this.shadowRoot) == null || t.appendChild(Qs.content.cloneNode(!0));
306
311
  }
307
312
  connectedCallback() {
308
- super.connectedCallback(), r(this, Se, Xi).call(this);
313
+ super.connectedCallback(), r(this, Se, Yi).call(this);
309
314
  }
310
315
  disconnectedCallback() {
311
316
  super.disconnectedCallback();
312
317
  }
313
318
  attributeChangedCallback(t, i, s) {
314
- super.attributeChangedCallback(t, i, s), t === n.IS_AIRPLAYING && r(this, Se, Xi).call(this);
319
+ super.attributeChangedCallback(t, i, s), t === n.IS_AIRPLAYING && r(this, Se, Yi).call(this);
315
320
  }
316
321
  set isAirPlaying(t) {
317
322
  t ? this.setAttribute(n.IS_AIRPLAYING, "") : this.removeAttribute(n.IS_AIRPLAYING);
@@ -323,15 +328,15 @@ const me = class me extends tt {
323
328
  this.dispatchEvent(new CustomEvent(f.REQUEST_AIRPLAY, { bubbles: !0, composed: !0 }));
324
329
  }
325
330
  };
326
- Se = new WeakSet(), Xi = function() {
331
+ Se = new WeakSet(), Yi = function() {
327
332
  this.setAttribute("aria-label", this.isAirPlaying ? "Exit airplay" : "Enter airplay");
328
333
  }, m(me, "observedAttributes", [
329
334
  ...q(me, me, "observedAttributes"),
330
335
  n.AIRPLAY_AVAILABLE,
331
336
  n.IS_AIRPLAYING
332
337
  ]);
333
- let qi = me;
334
- const Ys = document.createElement("template"), lo = (
338
+ let Vi = me;
339
+ const Ws = document.createElement("template"), lo = (
335
340
  /* SVG */
336
341
  `
337
342
  <svg width="24" height="24" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
@@ -370,7 +375,7 @@ const Ys = document.createElement("template"), lo = (
370
375
  </svg>
371
376
  `
372
377
  );
373
- Ys.innerHTML = /* HTML */
378
+ Ws.innerHTML = /* HTML */
374
379
  `
375
380
  <style>
376
381
  :host {
@@ -389,11 +394,11 @@ Ys.innerHTML = /* HTML */
389
394
  <slot name="icon">${lo}</slot>
390
395
  `;
391
396
  var $t;
392
- class Js extends HTMLElement {
397
+ class Zs extends HTMLElement {
393
398
  constructor() {
394
399
  super();
395
400
  l(this, $t, null);
396
- this.attachShadow({ mode: "open" }).appendChild(Ys.content.cloneNode(!0));
401
+ this.attachShadow({ mode: "open" }).appendChild(Ws.content.cloneNode(!0));
397
402
  }
398
403
  connectedCallback() {
399
404
  var t;
@@ -404,9 +409,9 @@ class Js extends HTMLElement {
404
409
  (t = e(this, $t)) == null || t.disconnectListener(this);
405
410
  }
406
411
  }
407
- $t = new WeakMap(), m(Js, "observedAttributes", [n.BUFFERING]);
408
- const Qs = document.createElement("template");
409
- Qs.innerHTML = /* HTML */
412
+ $t = new WeakMap(), m(Zs, "observedAttributes", [n.BUFFERING]);
413
+ const tn = document.createElement("template");
414
+ tn.innerHTML = /* HTML */
410
415
  `
411
416
  <style>
412
417
  :host {
@@ -465,11 +470,11 @@ Qs.innerHTML = /* HTML */
465
470
  <div id="buffering-indicator"></div>
466
471
  `;
467
472
  var Bt;
468
- class Ws extends HTMLElement {
473
+ class en extends HTMLElement {
469
474
  constructor() {
470
475
  super();
471
476
  l(this, Bt, null);
472
- this.attachShadow({ mode: "open" }).appendChild(Qs.content.cloneNode(!0));
477
+ this.attachShadow({ mode: "open" }).appendChild(tn.content.cloneNode(!0));
473
478
  }
474
479
  connectedCallback() {
475
480
  var t;
@@ -480,9 +485,9 @@ class Ws extends HTMLElement {
480
485
  (t = e(this, Bt)) == null || t.disconnectListener(this);
481
486
  }
482
487
  }
483
- Bt = new WeakMap(), m(Ws, "observedAttributes", [n.BUFFERING]);
484
- const Zs = document.createElement("template");
485
- Zs.innerHTML = /* HTML */
488
+ Bt = new WeakMap(), m(en, "observedAttributes", [n.BUFFERING]);
489
+ const sn = document.createElement("template");
490
+ sn.innerHTML = /* HTML */
486
491
  `
487
492
  <style>
488
493
  :host {
@@ -507,22 +512,22 @@ Zs.innerHTML = /* HTML */
507
512
  }
508
513
  </style>
509
514
  `;
510
- var zt, ji, tn;
515
+ var zt, Qi, nn;
511
516
  const ve = class ve extends tt {
512
517
  constructor() {
513
518
  var t;
514
519
  super();
515
520
  l(this, zt);
516
- (t = this.shadowRoot) == null || t.appendChild(Zs.content.cloneNode(!0));
521
+ (t = this.shadowRoot) == null || t.appendChild(sn.content.cloneNode(!0));
517
522
  }
518
523
  connectedCallback() {
519
- super.connectedCallback(), r(this, zt, ji).call(this);
524
+ super.connectedCallback(), r(this, zt, Qi).call(this);
520
525
  }
521
526
  disconnectedCallback() {
522
527
  super.disconnectedCallback();
523
528
  }
524
529
  attributeChangedCallback(t, i, s) {
525
- super.attributeChangedCallback(t, i, s), t === n.CAST_AVAILABLE && r(this, zt, tn).call(this), t === n.IS_CASTING && r(this, zt, ji).call(this);
530
+ super.attributeChangedCallback(t, i, s), t === n.CAST_AVAILABLE && r(this, zt, nn).call(this), t === n.IS_CASTING && r(this, zt, Qi).call(this);
526
531
  }
527
532
  set isCasting(t) {
528
533
  t ? this.setAttribute(n.IS_CASTING, "") : this.removeAttribute(n.IS_CASTING);
@@ -533,9 +538,9 @@ const ve = class ve extends tt {
533
538
  handleClick(t) {
534
539
  }
535
540
  };
536
- zt = new WeakSet(), ji = function() {
541
+ zt = new WeakSet(), Qi = function() {
537
542
  this.setAttribute("aria-label", this.isCasting ? "Exit cast" : "Enter cast");
538
- }, tn = function() {
543
+ }, nn = function() {
539
544
  var t, i;
540
545
  if (!((t = this.shadowRoot) != null && t.querySelector("google-cast-launcher"))) {
541
546
  const s = document.createElement("google-cast-launcher");
@@ -546,9 +551,9 @@ zt = new WeakSet(), ji = function() {
546
551
  n.CAST_AVAILABLE,
547
552
  n.IS_CASTING
548
553
  ]);
549
- let Vi = ve;
550
- const en = document.createElement("template");
551
- en.innerHTML = /* HTML */
554
+ let Ji = ve;
555
+ const rn = document.createElement("template");
556
+ rn.innerHTML = /* HTML */
552
557
  `
553
558
  <style>
554
559
  :host {
@@ -585,12 +590,12 @@ en.innerHTML = /* HTML */
585
590
  <span id="text"></span>
586
591
  `;
587
592
  var Kt, qt;
588
- class sn extends HTMLElement {
593
+ class on extends HTMLElement {
589
594
  constructor() {
590
595
  super();
591
596
  l(this, Kt, null);
592
597
  l(this, qt, null);
593
- this.attachShadow({ mode: "open" }).appendChild(en.content.cloneNode(!0));
598
+ this.attachShadow({ mode: "open" }).appendChild(rn.content.cloneNode(!0));
594
599
  }
595
600
  connectedCallback() {
596
601
  var t, i;
@@ -604,18 +609,18 @@ class sn extends HTMLElement {
604
609
  i === s || !e(this, qt) || t === "cast-receiver-name" && typeof s == "string" && (e(this, qt).innerText = `Casting to ${s || "device"}`);
605
610
  }
606
611
  }
607
- Kt = new WeakMap(), qt = new WeakMap(), m(sn, "observedAttributes", [n.IS_CASTING, n.CAST_RECEIVER_NAME]);
608
- function nn(d = document) {
612
+ Kt = new WeakMap(), qt = new WeakMap(), m(on, "observedAttributes", [n.IS_CASTING, n.CAST_RECEIVER_NAME]);
613
+ function an(d = document) {
609
614
  const a = d == null ? void 0 : d.activeElement;
610
615
  if (!a) return null;
611
616
  if (a.shadowRoot) {
612
- const t = nn(a.shadowRoot);
617
+ const t = an(a.shadowRoot);
613
618
  return t != null ? t : a;
614
619
  }
615
620
  return a;
616
621
  }
617
- const rn = document.createElement("template");
618
- rn.innerHTML = /* HTML */
622
+ const ln = document.createElement("template");
623
+ ln.innerHTML = /* HTML */
619
624
  `
620
625
  <style>
621
626
  :host {
@@ -682,14 +687,14 @@ rn.innerHTML = /* HTML */
682
687
  </style>
683
688
  <slot></slot>
684
689
  `;
685
- var Rt;
686
- class Rs extends HTMLElement {
690
+ var Ut;
691
+ class Ps extends HTMLElement {
687
692
  constructor() {
688
693
  super();
689
- l(this, Rt);
694
+ l(this, Ut);
690
695
  m(this, "lastThumbnailUpdate");
691
696
  const t = this.attachShadow({ mode: "open" });
692
- c(this, Rt, document.createElement("span")), e(this, Rt).className = "channel-title", t.appendChild(e(this, Rt)), t.appendChild(rn.content.cloneNode(!0));
697
+ c(this, Ut, document.createElement("span")), e(this, Ut).className = "channel-title", t.appendChild(e(this, Ut)), t.appendChild(ln.content.cloneNode(!0));
693
698
  }
694
699
  attributeChangedCallback(t, i, s) {
695
700
  if (i !== s)
@@ -698,7 +703,7 @@ class Rs extends HTMLElement {
698
703
  this.updateThumbnail();
699
704
  break;
700
705
  case "title":
701
- e(this, Rt).textContent = s;
706
+ e(this, Ut).textContent = s;
702
707
  break;
703
708
  }
704
709
  }
@@ -709,9 +714,9 @@ class Rs extends HTMLElement {
709
714
  u && o.searchParams.set("auth.token", u), o.searchParams.set("t", Date.now().toString()), p.src = o.toString(), p.onload = () => this.style.backgroundImage = `url(${o.toString()})`;
710
715
  }
711
716
  }
712
- Rt = new WeakMap(), m(Rs, "observedAttributes", ["url", "title", "offline", "authentication-token", "visible"]);
713
- const on = document.createElement("template");
714
- on.innerHTML = /* HTML */
717
+ Ut = new WeakMap(), m(Ps, "observedAttributes", ["url", "title", "offline", "authentication-token", "visible"]);
718
+ const hn = document.createElement("template");
719
+ hn.innerHTML = /* HTML */
715
720
  `
716
721
  <style>
717
722
  :host {
@@ -779,8 +784,8 @@ on.innerHTML = /* HTML */
779
784
  <slot name="grid" id="grid"></slot>
780
785
  </div>
781
786
  `;
782
- var bt, mt, Xt, O, T, Vt, Ne, Re, Ue, k, ln, hn, dn, Yi, cn, un, pn, bn, mn, vn, gn, ce;
783
- class an extends HTMLElement {
787
+ var bt, mt, Xt, O, T, jt, Ne, Ue, Re, k, cn, un, pn, Wi, bn, mn, vn, gn, fn, En, An, ce;
788
+ class dn extends HTMLElement {
784
789
  constructor() {
785
790
  super();
786
791
  l(this, k);
@@ -789,23 +794,23 @@ class an extends HTMLElement {
789
794
  l(this, Xt, []);
790
795
  l(this, O, []);
791
796
  l(this, T);
792
- l(this, Vt);
797
+ l(this, jt);
793
798
  l(this, Ne);
794
- l(this, Re);
795
799
  l(this, Ue);
800
+ l(this, Re);
796
801
  m(this, "handleEvent", (t) => {
797
802
  switch (t.type) {
798
803
  case "keydown":
799
- r(this, k, vn).call(this, t);
804
+ r(this, k, En).call(this, t);
800
805
  break;
801
806
  }
802
807
  });
803
- this.attachShadow({ mode: "open" }).appendChild(on.content.cloneNode(!0));
808
+ this.attachShadow({ mode: "open" }).appendChild(hn.content.cloneNode(!0));
804
809
  }
805
810
  connectedCallback() {
806
811
  var t, i, s;
807
- c(this, mt, this.closest("vindral-controller")), (t = e(this, mt)) == null || t.connectListener(this), r(this, k, ln).call(this), (s = e(this, bt)) == null || s.observe((i = this.shadowRoot) == null ? void 0 : i.querySelector(".wrapper")), r(this, k, Yi).call(this), c(this, Ne, window.setInterval(() => {
808
- r(this, k, bn).call(this);
812
+ c(this, mt, this.closest("vindral-controller")), (t = e(this, mt)) == null || t.connectListener(this), r(this, k, cn).call(this), (s = e(this, bt)) == null || s.observe((i = this.shadowRoot) == null ? void 0 : i.querySelector(".wrapper")), r(this, k, Wi).call(this), c(this, Ne, window.setInterval(() => {
813
+ r(this, k, gn).call(this);
809
814
  }, 1e4));
810
815
  }
811
816
  disconnectedCallback() {
@@ -816,14 +821,14 @@ class an extends HTMLElement {
816
821
  if (i !== s)
817
822
  switch (t) {
818
823
  case n.CHANNEL_ID: {
819
- r(this, k, pn).call(this, s);
824
+ r(this, k, vn).call(this, s);
820
825
  break;
821
826
  }
822
827
  case n.CHANNELS:
823
- c(this, Xt, JSON.parse(s)), r(this, k, Yi).call(this);
828
+ c(this, Xt, JSON.parse(s)), r(this, k, Wi).call(this);
824
829
  break;
825
830
  case "authentication-token":
826
- c(this, Vt, s);
831
+ c(this, jt, s);
827
832
  break;
828
833
  }
829
834
  }
@@ -832,45 +837,45 @@ class an extends HTMLElement {
832
837
  }
833
838
  focus() {
834
839
  var t;
835
- c(this, Re, nn()), (t = e(this, T)) == null || t.focus();
840
+ c(this, Ue, an()), (t = e(this, T)) == null || t.focus();
836
841
  }
837
842
  }
838
- bt = new WeakMap(), mt = new WeakMap(), Xt = new WeakMap(), O = new WeakMap(), T = new WeakMap(), Vt = new WeakMap(), Ne = new WeakMap(), Re = new WeakMap(), Ue = new WeakMap(), k = new WeakSet(), ln = function() {
843
+ bt = new WeakMap(), mt = new WeakMap(), Xt = new WeakMap(), O = new WeakMap(), T = new WeakMap(), jt = new WeakMap(), Ne = new WeakMap(), Ue = new WeakMap(), Re = new WeakMap(), k = new WeakSet(), cn = function() {
839
844
  c(this, bt, new IntersectionObserver(
840
845
  (t) => {
841
846
  t.forEach((i) => {
842
847
  const { target: s, isIntersecting: o } = i;
843
- s instanceof Rs ? r(this, k, dn).call(this, s, o) : r(this, k, hn).call(this, o);
848
+ s instanceof Ps ? r(this, k, pn).call(this, s, o) : r(this, k, un).call(this, o);
844
849
  });
845
850
  },
846
851
  {
847
852
  root: e(this, mt)
848
853
  }
849
854
  ));
850
- }, hn = function(t) {
855
+ }, un = function(t) {
851
856
  var i, s;
852
857
  if (t) {
853
858
  this.dispatchEvent(new CustomEvent(f.CHANNEL_GRID_OPENED, { bubbles: !0, composed: !0 }));
854
859
  const o = () => {
855
- window.clearTimeout(e(this, Ue)), c(this, Ue, window.setTimeout(() => {
860
+ window.clearTimeout(e(this, Re)), c(this, Re, window.setTimeout(() => {
856
861
  var p;
857
862
  this.focus(), (p = this.parentElement) == null || p.removeEventListener("scroll", o);
858
863
  }, 100));
859
864
  };
860
865
  (i = this.parentElement) == null || i.addEventListener("scroll", o), this.addEventListener("keydown", this), e(this, T) && (e(this, T).tabIndex = 0);
861
866
  } else
862
- e(this, T) && (e(this, T).tabIndex = -1), this.dispatchEvent(new CustomEvent(f.CHANNEL_GRID_CLOSED, { bubbles: !0, composed: !0 })), (s = e(this, Re)) == null || s.focus(), this.removeEventListener("keydown", this);
863
- }, dn = function(t, i) {
867
+ e(this, T) && (e(this, T).tabIndex = -1), this.dispatchEvent(new CustomEvent(f.CHANNEL_GRID_CLOSED, { bubbles: !0, composed: !0 })), (s = e(this, Ue)) == null || s.focus(), this.removeEventListener("keydown", this);
868
+ }, pn = function(t, i) {
864
869
  i ? (t.setAttribute("visible", ""), (!t.lastThumbnailUpdate || Date.now() - t.lastThumbnailUpdate >= 1e4) && (t.updateThumbnail(), t.lastThumbnailUpdate = Date.now())) : t.removeAttribute("visible");
865
- }, Yi = function() {
870
+ }, Wi = function() {
866
871
  var o;
867
872
  const t = (o = this.shadowRoot) == null ? void 0 : o.querySelector("slot[name=grid]"), i = new Map(e(this, O).map((p) => [p.id, p])), s = this.getAttribute("channel-id");
868
873
  c(this, O, e(this, Xt).map((p) => {
869
874
  var g;
870
875
  const u = i.get(p.channelId);
871
876
  if (u)
872
- return r(this, k, cn).call(this, u.element, p), u;
873
- const v = r(this, k, un).call(this, p, s);
877
+ return r(this, k, bn).call(this, u.element, p), u;
878
+ const v = r(this, k, mn).call(this, p, s);
874
879
  return (g = e(this, bt)) == null || g.observe(v.element), t.contains(v.element) || t.appendChild(v.element), v;
875
880
  })), i.forEach((p, u) => {
876
881
  var v;
@@ -878,25 +883,25 @@ bt = new WeakMap(), mt = new WeakMap(), Xt = new WeakMap(), O = new WeakMap(), T
878
883
  }), e(this, O).sort((p, u) => p.element.hasAttribute("offline") && !u.element.hasAttribute("offline") ? 1 : -1).forEach((p) => {
879
884
  t.contains(p.element) || t.appendChild(p.element);
880
885
  });
881
- }, cn = function(t, i) {
886
+ }, bn = function(t, i) {
882
887
  i.isLive ? t.removeAttribute("offline") : t.setAttribute("offline", ""), t.setAttribute("url", i.thumbnailUrls[0] || ""), t.setAttribute("title", i.name);
883
- }, un = function(t, i) {
888
+ }, mn = function(t, i) {
884
889
  const s = document.createElement("vindral-channel-grid-item");
885
- return s.setAttribute("url", t.thumbnailUrls[0] || ""), s.setAttribute("title", t.name), e(this, Vt) && s.setAttribute("authentication-token", e(this, Vt)), t.isLive || s.setAttribute("offline", ""), t.channelId === i && (s.setAttribute("aria-selected", "true"), c(this, T, s)), s.tabIndex = -1, s.onclick = () => r(this, k, mn).call(this, t), { element: s, thumbnail: t.thumbnailUrls[0] || "", id: t.channelId };
886
- }, pn = function(t) {
890
+ return s.setAttribute("url", t.thumbnailUrls[0] || ""), s.setAttribute("title", t.name), e(this, jt) && s.setAttribute("authentication-token", e(this, jt)), t.isLive || s.setAttribute("offline", ""), t.channelId === i && (s.setAttribute("aria-selected", "true"), c(this, T, s)), s.tabIndex = -1, s.onclick = () => r(this, k, fn).call(this, t), { element: s, thumbnail: t.thumbnailUrls[0] || "", id: t.channelId };
891
+ }, vn = function(t) {
887
892
  e(this, O).forEach((i) => {
888
893
  i.id === t ? (i.element.setAttribute("aria-selected", "true"), i.element.tabIndex = 0, c(this, T, i.element)) : (i.element.tabIndex = -1, i.element.setAttribute("aria-selected", "false"));
889
894
  });
890
- }, bn = function() {
895
+ }, gn = function() {
891
896
  this.hasAttribute("hidden") || e(this, O).forEach((t) => t.element.updateThumbnail());
892
- }, mn = function(t) {
897
+ }, fn = function(t) {
893
898
  var i;
894
899
  (i = e(this, mt)) == null || i.setAttribute("channel-id", t.channelId);
895
- }, vn = function(t) {
900
+ }, En = function(t) {
896
901
  var u, v, g;
897
902
  const { key: i, ctrlKey: s, altKey: o, metaKey: p } = t;
898
- s || o || p || this.keysUsed.includes(i) && (t.preventDefault(), t.stopPropagation(), i === "Tab" || i === "Escape" ? ((u = this.parentElement) == null || u.removeAttribute("open"), (v = e(this, mt)) == null || v.focus()) : i === "Enter" || i === " " ? (g = e(this, T)) == null || g.click() : r(this, k, gn).call(this, t));
899
- }, gn = function(t) {
903
+ s || o || p || this.keysUsed.includes(i) && (t.preventDefault(), t.stopPropagation(), i === "Tab" || i === "Escape" ? ((u = this.parentElement) == null || u.removeAttribute("open"), (v = e(this, mt)) == null || v.focus()) : i === "Enter" || i === " " ? (g = e(this, T)) == null || g.click() : r(this, k, An).call(this, t));
904
+ }, An = function(t) {
900
905
  var u;
901
906
  if (!e(this, T)) return;
902
907
  const { key: i } = t;
@@ -935,13 +940,13 @@ bt = new WeakMap(), mt = new WeakMap(), Xt = new WeakMap(), O = new WeakMap(), T
935
940
  return e(this, O).filter((u) => u.element.getBoundingClientRect().width > 0).forEach((u, v) => {
936
941
  const g = u.element.getBoundingClientRect(), P = i === 0 || i < 0 && g.top < t.top || i > 0 && g.top > t.top, et = s === 0 || s < 0 && g.left < t.left || s > 0 && g.left > t.left;
937
942
  if (P && et) {
938
- const Y = Math.sqrt(
943
+ const J = Math.sqrt(
939
944
  Math.pow(g.top - t.top, 2) + Math.pow(g.left - t.left, 2)
940
945
  );
941
- Y < p && (p = Y, o = v);
946
+ J < p && (p = J, o = v);
942
947
  }
943
948
  }), o;
944
- }, m(an, "observedAttributes", [
949
+ }, m(dn, "observedAttributes", [
945
950
  n.CHANNELS,
946
951
  n.CHANNEL_ID,
947
952
  n.AUTHENTICATION_TOKEN,
@@ -959,8 +964,8 @@ const ho = (
959
964
  <path d="M14 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
960
965
  </svg>
961
966
  `
962
- ), fn = document.createElement("template");
963
- fn.innerHTML = /* HTML */
967
+ ), yn = document.createElement("template");
968
+ yn.innerHTML = /* HTML */
964
969
  `
965
970
  <style>
966
971
  :host {
@@ -976,65 +981,65 @@ fn.innerHTML = /* HTML */
976
981
  </style>
977
982
  <slot name="button">${ho}</slot>
978
983
  `;
979
- var jt, _, V, Ai, U, En, Qi, bi, Wi, Zi;
984
+ var Vt, _, j, wi, R, kn, ts, gi, es, is;
980
985
  const ge = class ge extends tt {
981
986
  constructor() {
982
987
  var t, i;
983
988
  super();
984
- l(this, U);
985
- l(this, jt);
989
+ l(this, R);
990
+ l(this, Vt);
986
991
  l(this, _);
987
- l(this, V);
988
- l(this, Ai, (t) => {
989
- t.composedPath().includes(this) || r(this, U, bi).call(this);
992
+ l(this, j);
993
+ l(this, wi, (t) => {
994
+ t.composedPath().includes(this) || r(this, R, gi).call(this);
990
995
  });
991
- (t = this.shadowRoot) == null || t.appendChild(fn.content.cloneNode(!0)), c(this, jt, (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot[name=button]"));
996
+ (t = this.shadowRoot) == null || t.appendChild(yn.content.cloneNode(!0)), c(this, Vt, (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot[name=button]"));
992
997
  }
993
998
  connectedCallback() {
994
999
  var i;
995
- super.connectedCallback(), this.setAttribute("aria-haspopup", "listbox"), this.enable(), r(this, U, Wi).call(this);
1000
+ super.connectedCallback(), this.setAttribute("aria-haspopup", "listbox"), this.enable(), r(this, R, es).call(this);
996
1001
  const t = this.getRootNode();
997
- (t instanceof Document || t instanceof ShadowRoot) && (c(this, _, t.querySelector("vindral-channel-grid")), ((i = e(this, _).parentElement) == null ? void 0 : i.localName) === "vindral-scroll-overlay" && (e(this, _).hidden = !1, e(this, _).style.position = "relative", c(this, V, e(this, _).parentElement))), r(this, U, Zi).call(this);
1002
+ (t instanceof Document || t instanceof ShadowRoot) && (c(this, _, t.querySelector("vindral-channel-grid")), ((i = e(this, _).parentElement) == null ? void 0 : i.localName) === "vindral-scroll-overlay" && (e(this, _).hidden = !1, e(this, _).style.position = "relative", c(this, j, e(this, _).parentElement))), r(this, R, is).call(this);
998
1003
  }
999
1004
  disconnectedCallback() {
1000
1005
  }
1001
1006
  attributeChangedCallback(t, i, s) {
1002
- super.attributeChangedCallback(t, i, s), (t === n.CHANNEL_GROUP_ID || t === n.CHANNELS) && r(this, U, Wi).call(this);
1007
+ super.attributeChangedCallback(t, i, s), (t === n.CHANNEL_GROUP_ID || t === n.CHANNELS) && r(this, R, es).call(this);
1003
1008
  }
1004
1009
  enable() {
1005
- super.enable(), document.addEventListener("click", e(this, Ai));
1010
+ super.enable(), document.addEventListener("click", e(this, wi));
1006
1011
  }
1007
1012
  handleClick(t) {
1008
- r(this, U, En).call(this);
1013
+ r(this, R, kn).call(this);
1009
1014
  }
1010
1015
  get isOpen() {
1011
1016
  var t, i;
1012
- return ((t = e(this, V)) == null ? void 0 : t.hasAttribute("open")) || !((i = e(this, _)) != null && i.hidden);
1017
+ return ((t = e(this, j)) == null ? void 0 : t.hasAttribute("open")) || !((i = e(this, _)) != null && i.hidden);
1013
1018
  }
1014
1019
  };
1015
- jt = new WeakMap(), _ = new WeakMap(), V = new WeakMap(), Ai = new WeakMap(), U = new WeakSet(), En = function() {
1020
+ Vt = new WeakMap(), _ = new WeakMap(), j = new WeakMap(), wi = new WeakMap(), R = new WeakSet(), kn = function() {
1016
1021
  var t;
1017
- e(this, V) ? e(this, V).hasAttribute("open") ? r(this, U, bi).call(this) : r(this, U, Qi).call(this) : (t = e(this, _)) != null && t.hidden ? r(this, U, Qi).call(this) : r(this, U, bi).call(this), r(this, U, Zi).call(this);
1018
- }, Qi = function() {
1022
+ e(this, j) ? e(this, j).hasAttribute("open") ? r(this, R, gi).call(this) : r(this, R, ts).call(this) : (t = e(this, _)) != null && t.hidden ? r(this, R, ts).call(this) : r(this, R, gi).call(this), r(this, R, is).call(this);
1023
+ }, ts = function() {
1019
1024
  var t;
1020
- if (e(this, V))
1021
- e(this, V).setAttribute("open", "");
1025
+ if (e(this, j))
1026
+ e(this, j).setAttribute("open", "");
1022
1027
  else {
1023
1028
  if (!((t = e(this, _)) != null && t.hidden)) return;
1024
1029
  e(this, _).hidden = !1, e(this, _).focus();
1025
1030
  }
1026
- e(this, jt).setAttribute("aria-expanded", "true");
1027
- }, bi = function() {
1028
- if (e(this, V))
1029
- e(this, V).removeAttribute("open");
1031
+ e(this, Vt).setAttribute("aria-expanded", "true");
1032
+ }, gi = function() {
1033
+ if (e(this, j))
1034
+ e(this, j).removeAttribute("open");
1030
1035
  else {
1031
1036
  if (!e(this, _) || e(this, _).hidden) return;
1032
1037
  e(this, _).hidden = !0;
1033
1038
  }
1034
- e(this, jt).setAttribute("aria-expanded", "false");
1035
- }, Wi = function() {
1039
+ e(this, Vt).setAttribute("aria-expanded", "false");
1040
+ }, es = function() {
1036
1041
  this.getAttribute(n.CHANNEL_GROUP_ID) ? this.removeAttribute("hidden") : this.setAttribute("hidden", ""), this.hasAttribute(n.CHANNELS) ? this.removeAttribute("disabled") : this.setAttribute("disabled", "");
1037
- }, Zi = function() {
1042
+ }, is = function() {
1038
1043
  this.setAttribute("aria-label", this.isOpen ? "Exit grid" : "Enter grid");
1039
1044
  }, m(ge, "observedAttributes", [
1040
1045
  ...q(ge, ge, "observedAttributes"),
@@ -1042,9 +1047,9 @@ jt = new WeakMap(), _ = new WeakMap(), V = new WeakMap(), Ai = new WeakMap(), U
1042
1047
  n.CHANNELS,
1043
1048
  "hidden"
1044
1049
  ]);
1045
- let Ji = ge;
1046
- const An = document.createElement("template");
1047
- An.innerHTML = /* HTML */
1050
+ let Zi = ge;
1051
+ const wn = document.createElement("template");
1052
+ wn.innerHTML = /* HTML */
1048
1053
  `
1049
1054
  <style>
1050
1055
  :host {
@@ -1073,16 +1078,16 @@ An.innerHTML = /* HTML */
1073
1078
  <slot name="right"></slot>
1074
1079
  </slot>
1075
1080
  `;
1076
- class yn extends HTMLElement {
1081
+ class In extends HTMLElement {
1077
1082
  constructor() {
1078
- super(), this.attachShadow({ mode: "open" }).appendChild(An.content.cloneNode(!0));
1083
+ super(), this.attachShadow({ mode: "open" }).appendChild(wn.content.cloneNode(!0));
1079
1084
  }
1080
1085
  connectedCallback() {
1081
1086
  }
1082
1087
  disconnectedCallback() {
1083
1088
  }
1084
1089
  }
1085
- m(yn, "observedAttributes", []);
1090
+ m(In, "observedAttributes", []);
1086
1091
  class co extends li {
1087
1092
  constructor(t) {
1088
1093
  super();
@@ -1090,10 +1095,13 @@ class co extends li {
1090
1095
  m(this, "hlsUrl");
1091
1096
  m(this, "element");
1092
1097
  m(this, "connectingTimeout");
1098
+ m(this, "castingAvailable", !1);
1093
1099
  /**
1094
1100
  * Update authentication token on an already established and authenticated connection.
1101
+ * Note: When casting to AirPlay, this will interrupt the current session to apply the new token.
1095
1102
  */
1096
1103
  m(this, "updateAuthenticationToken", (t) => {
1104
+ this.config.authenticationToken = t, this.hlsUrl = this.getHlsUrl(), this.castingAvailable && (this.element.src = this.hlsUrl);
1097
1105
  });
1098
1106
  /**
1099
1107
  * Fully unloads the instance. This disconnects the current listeners.
@@ -1104,17 +1112,20 @@ class co extends li {
1104
1112
  m(this, "onAirPlayAvailable", (t) => {
1105
1113
  switch (t.availability) {
1106
1114
  case "available": {
1107
- this.element.src !== this.hlsUrl && this.checkHlsUrl(this.hlsUrl).then((s) => {
1115
+ this.castingAvailable = !0, this.element.src !== this.hlsUrl && this.checkHlsUrl(this.hlsUrl).then((s) => {
1108
1116
  s && (this.element.src = this.hlsUrl, this.emit("available"));
1109
1117
  });
1110
1118
  break;
1111
1119
  }
1120
+ case "not-available":
1121
+ this.castingAvailable = !1;
1122
+ break;
1112
1123
  }
1113
1124
  });
1114
1125
  m(this, "onAirPlayPlaybackChanged", () => {
1115
1126
  window.clearTimeout(this.connectingTimeout), this.element.webkitCurrentPlaybackTargetIsWireless ? (this.emit("connected"), this.element.style.display = "block", this.element.paused && this.element.play()) : (this.emit("disconnected"), this.element.pause(), this.element.src = "", this.element.src = this.hlsUrl, this.element.style.display = "none");
1116
1127
  });
1117
- this.hlsUrl = new URL(`/api/hls?channelId=${t.channelId}`, t.url).toString(), this.config = t, this.element = document.createElement("video"), this.element.style.position = "absolute", this.element.style.top = "0", this.element.style.bottom = "0", this.element.style.left = "0", this.element.style.right = "0", this.element.style.width = "100%", this.element.style.height = "100%", this.element.style.zIndex = "1001", this.element.style.display = "none", this.element.id = "vindral-airplay-element", this.element.slot = "overlay", this.element.playsInline = !0, this.element.controls = !0, this.element.preload = "metadata", this.element.addEventListener("webkitplaybacktargetavailabilitychanged", this.onAirPlayAvailable), this.element.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", this.onAirPlayPlaybackChanged), this.config.container.appendChild(this.element);
1128
+ this.config = t, this.hlsUrl = this.getHlsUrl(), this.element = document.createElement("video"), this.element.style.position = "absolute", this.element.style.top = "0", this.element.style.bottom = "0", this.element.style.left = "0", this.element.style.right = "0", this.element.style.width = "100%", this.element.style.height = "100%", this.element.style.zIndex = "1001", this.element.style.display = "none", this.element.id = "vindral-airplay-element", this.element.slot = "overlay", this.element.playsInline = !0, this.element.controls = !0, this.element.preload = "metadata", this.element.addEventListener("webkitplaybacktargetavailabilitychanged", this.onAirPlayAvailable), this.element.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", this.onAirPlayPlaybackChanged), this.config.container.appendChild(this.element);
1118
1129
  }
1119
1130
  /**
1120
1131
  * True if the instance is casting right now.
@@ -1133,7 +1144,7 @@ class co extends li {
1133
1144
  */
1134
1145
  showPlaybackTargetPicker() {
1135
1146
  this.element.paused && (this.element.play(), this.connectingTimeout = window.setTimeout(() => {
1136
- this.element.webkitCurrentPlaybackTargetIsWireless || (this.element.pause(), this.element.src = "", this.element.src = this.hlsUrl);
1147
+ this.casting || (this.element.pause(), this.element.src = "", this.element.src = this.hlsUrl);
1137
1148
  }, 3e4)), this.element.webkitShowPlaybackTargetPicker();
1138
1149
  }
1139
1150
  /**
@@ -1142,6 +1153,10 @@ class co extends li {
1142
1153
  static isAirPlaySupported() {
1143
1154
  return !!window.WebKitPlaybackTargetAvailabilityEvent;
1144
1155
  }
1156
+ getHlsUrl() {
1157
+ const t = new URL(`/api/hls?channelId=${this.config.channelId}`, this.config.url);
1158
+ return this.config.authenticationToken && t.searchParams.set("authenticationToken", this.config.authenticationToken), t.toString();
1159
+ }
1145
1160
  checkHlsUrl(t) {
1146
1161
  return G(this, null, function* () {
1147
1162
  try {
@@ -1201,7 +1216,7 @@ const St = class St extends li {
1201
1216
  };
1202
1217
  m(St, "isFullscreenApiSupported", (t) => (t.requestFullscreen || t.webkitRequestFullscreen || t.webkitEnterFullscreen || t.mozRequestFullScreen) !== void 0);
1203
1218
  let be = St;
1204
- var yi, ki, wi, Ii, Yt, Ci, Li, _e, Jt;
1219
+ var Ii, Ci, Li, Ti, Yt, xi, Si, _e, Jt;
1205
1220
  class uo extends li {
1206
1221
  constructor(t) {
1207
1222
  super();
@@ -1210,14 +1225,14 @@ class uo extends li {
1210
1225
  });
1211
1226
  m(this, "request", () => G(this, null, function* () {
1212
1227
  try {
1213
- return yield e(this, yi).call(this);
1228
+ return yield e(this, Ii).call(this);
1214
1229
  } catch (t) {
1215
1230
  throw this.onChange(), t;
1216
1231
  }
1217
1232
  }));
1218
1233
  m(this, "exit", () => G(this, null, function* () {
1219
1234
  try {
1220
- return yield e(this, ki).call(this);
1235
+ return yield e(this, Ci).call(this);
1221
1236
  } catch (t) {
1222
1237
  throw this.onChange(), t;
1223
1238
  }
@@ -1225,26 +1240,26 @@ class uo extends li {
1225
1240
  m(this, "onChange", () => {
1226
1241
  this.emit("on picture in picture change", this.isPictureInPictureActive());
1227
1242
  });
1228
- m(this, "isPictureInPictureActive", () => e(this, Li).call(this) || e(this, Ci).call(this));
1243
+ m(this, "isPictureInPictureActive", () => e(this, Si).call(this) || e(this, xi).call(this));
1229
1244
  m(this, "isSupported", () => e(this, Jt).call(this) || e(this, Yt).call(this));
1230
- l(this, yi, () => e(this, Yt).call(this) ? e(this, wi).call(this) : e(this, Jt).call(this) ? e(this, _e).call(this, "picture-in-picture") : Promise.resolve());
1231
- l(this, ki, () => this.isPictureInPictureActive() ? e(this, Yt).call(this) ? e(this, Ii).call(this) : e(this, Jt).call(this) ? e(this, _e).call(this, "inline") : Promise.resolve() : Promise.resolve());
1232
- l(this, wi, () => G(this, null, function* () {
1245
+ l(this, Ii, () => e(this, Yt).call(this) ? e(this, Li).call(this) : e(this, Jt).call(this) ? e(this, _e).call(this, "picture-in-picture") : Promise.resolve());
1246
+ l(this, Ci, () => this.isPictureInPictureActive() ? e(this, Yt).call(this) ? e(this, Ti).call(this) : e(this, Jt).call(this) ? e(this, _e).call(this, "inline") : Promise.resolve() : Promise.resolve());
1247
+ l(this, Li, () => G(this, null, function* () {
1233
1248
  yield this.element.requestPictureInPicture();
1234
1249
  }));
1235
- l(this, Ii, () => G(this, null, function* () {
1250
+ l(this, Ti, () => G(this, null, function* () {
1236
1251
  yield document.exitPictureInPicture();
1237
1252
  }));
1238
1253
  l(this, Yt, () => !!this.element.requestPictureInPicture && !!document.pictureInPictureEnabled);
1239
- l(this, Ci, () => !!document.pictureInPictureElement);
1240
- l(this, Li, () => this.element.webkitPresentationMode === "picture-in-picture");
1254
+ l(this, xi, () => !!document.pictureInPictureElement);
1255
+ l(this, Si, () => this.element.webkitPresentationMode === "picture-in-picture");
1241
1256
  l(this, _e, (t) => (this.element.webkitSetPresentationMode && this.element.webkitSetPresentationMode(t), Promise.resolve()));
1242
1257
  l(this, Jt, () => !!this.element.webkitSetPresentationMode);
1243
1258
  this.element = t, this.element.addEventListener("enterpictureinpicture", this.onChange), this.element.addEventListener("leavepictureinpicture", this.onChange), this.element.setAttribute("autopictureinpicture", "");
1244
1259
  }
1245
1260
  }
1246
- yi = new WeakMap(), ki = new WeakMap(), wi = new WeakMap(), Ii = new WeakMap(), Yt = new WeakMap(), Ci = new WeakMap(), Li = new WeakMap(), _e = new WeakMap(), Jt = new WeakMap();
1247
- class Gs extends li {
1261
+ Ii = new WeakMap(), Ci = new WeakMap(), Li = new WeakMap(), Ti = new WeakMap(), Yt = new WeakMap(), xi = new WeakMap(), Si = new WeakMap(), _e = new WeakMap(), Jt = new WeakMap();
1262
+ class Ks extends li {
1248
1263
  constructor(t) {
1249
1264
  super();
1250
1265
  m(this, "audioContext");
@@ -1307,12 +1322,12 @@ class Gs extends li {
1307
1322
  return this.source instanceof HTMLMediaElement;
1308
1323
  }
1309
1324
  }
1310
- const $s = (d) => {
1325
+ const qs = (d) => {
1311
1326
  var t;
1312
1327
  let a = "observedAttributes" in d.constructor ? d.constructor.observedAttributes : void 0;
1313
- return !a && ((t = d.nodeName) != null && t.includes("-")) && (globalThis.customElements.upgrade(d), a = "observedAttributes" in d.constructor ? d.constructor.observedAttributes : void 0), Array.isArray(a) ? a.filter((i) => Ks.includes(i)) : [];
1314
- }, kn = document.createElement("template");
1315
- kn.innerHTML = /* HTML */
1328
+ return !a && ((t = d.nodeName) != null && t.includes("-")) && (globalThis.customElements.upgrade(d), a = "observedAttributes" in d.constructor ? d.constructor.observedAttributes : void 0), Array.isArray(a) ? a.filter((i) => js.includes(i)) : [];
1329
+ }, Cn = document.createElement("template");
1330
+ Cn.innerHTML = /* HTML */
1316
1331
  `
1317
1332
  <style>
1318
1333
  :host {
@@ -1324,8 +1339,8 @@ kn.innerHTML = /* HTML */
1324
1339
  }
1325
1340
  </style>
1326
1341
  `;
1327
- var Qt, Wt, $, Pe, Ti, xi, he, wn, In;
1328
- class Us extends tt {
1342
+ var Qt, Wt, $, Pe, Ni, Ui, he, Ln, Tn;
1343
+ class Ms extends tt {
1329
1344
  constructor() {
1330
1345
  var t;
1331
1346
  super();
@@ -1334,13 +1349,13 @@ class Us extends tt {
1334
1349
  l(this, Wt);
1335
1350
  l(this, $);
1336
1351
  l(this, Pe, null);
1337
- l(this, Ti, (t) => {
1352
+ l(this, Ni, (t) => {
1338
1353
  t.composedPath().includes(this) || this.hide();
1339
1354
  });
1340
- l(this, xi, () => {
1355
+ l(this, Ui, () => {
1341
1356
  this.hide();
1342
1357
  });
1343
- (t = this.shadowRoot) == null || t.appendChild(kn.content.cloneNode(!0));
1358
+ (t = this.shadowRoot) == null || t.appendChild(Cn.content.cloneNode(!0));
1344
1359
  }
1345
1360
  connectedCallback() {
1346
1361
  var p, u, v, g;
@@ -1363,25 +1378,25 @@ class Us extends tt {
1363
1378
  c(this, $, t);
1364
1379
  }
1365
1380
  enable() {
1366
- super.enable(), this.addEventListener("change", e(this, xi)), document.addEventListener("click", e(this, Ti));
1381
+ super.enable(), this.addEventListener("change", e(this, Ui)), document.addEventListener("click", e(this, Ni));
1367
1382
  }
1368
1383
  hide() {
1369
1384
  var t, i;
1370
1385
  !e(this, $) || (t = e(this, $)) != null && t.hidden || (e(this, $).hidden = !0, (i = e(this, Qt)) == null || i.setAttribute("aria-expanded", "false"), this.dispatchEvent(new CustomEvent(f.UNLOCK_UI, { bubbles: !0, composed: !0 })), this.focus());
1371
1386
  }
1372
1387
  handleClick(t) {
1373
- e(this, $) && !t.composedPath().includes(e(this, $)) && r(this, he, wn).call(this);
1388
+ e(this, $) && !t.composedPath().includes(e(this, $)) && r(this, he, Ln).call(this);
1374
1389
  }
1375
1390
  }
1376
- Qt = new WeakMap(), Wt = new WeakMap(), $ = new WeakMap(), Pe = new WeakMap(), Ti = new WeakMap(), xi = new WeakMap(), he = new WeakSet(), wn = function() {
1391
+ Qt = new WeakMap(), Wt = new WeakMap(), $ = new WeakMap(), Pe = new WeakMap(), Ni = new WeakMap(), Ui = new WeakMap(), he = new WeakSet(), Ln = function() {
1377
1392
  var t;
1378
- (t = e(this, $)) != null && t.hidden ? r(this, he, In).call(this) : this.hide();
1379
- }, In = function() {
1393
+ (t = e(this, $)) != null && t.hidden ? r(this, he, Tn).call(this) : this.hide();
1394
+ }, Tn = function() {
1380
1395
  var t, i, s;
1381
1396
  (t = e(this, $)) != null && t.hidden && (e(this, $).hidden = !1, (i = e(this, Qt)) == null || i.setAttribute("aria-expanded", "true"), (s = e(this, Wt)) == null || s.focus(), this.dispatchEvent(new CustomEvent(f.LOCK_UI, { bubbles: !0, composed: !0 })));
1382
1397
  };
1383
- const Cn = document.createElement("template");
1384
- Cn.innerHTML = /* HTML */
1398
+ const xn = document.createElement("template");
1399
+ xn.innerHTML = /* HTML */
1385
1400
  `
1386
1401
  <style>
1387
1402
  :host {
@@ -1485,7 +1500,7 @@ Cn.innerHTML = /* HTML */
1485
1500
  <div id="range-track"></div>
1486
1501
  `;
1487
1502
  var Zt, te, Me, De;
1488
- class _s extends HTMLElement {
1503
+ class Ds extends HTMLElement {
1489
1504
  constructor() {
1490
1505
  super();
1491
1506
  l(this, Zt, null);
@@ -1497,7 +1512,7 @@ class _s extends HTMLElement {
1497
1512
  l(this, De, () => {
1498
1513
  this.style.removeProperty("--_focus-visible-box-shadow");
1499
1514
  });
1500
- c(this, te, this.attachShadow({ mode: "open" })), e(this, te).appendChild(Cn.content.cloneNode(!0)), this.range = e(this, te).getElementById("range");
1515
+ c(this, te, this.attachShadow({ mode: "open" })), e(this, te).appendChild(xn.content.cloneNode(!0)), this.range = e(this, te).getElementById("range");
1501
1516
  }
1502
1517
  connectedCallback() {
1503
1518
  var t;
@@ -1526,9 +1541,9 @@ class _s extends HTMLElement {
1526
1541
  return ["ArrowUp", "ArrowRight", "ArrowDown", "ArrowLeft"];
1527
1542
  }
1528
1543
  }
1529
- Zt = new WeakMap(), te = new WeakMap(), Me = new WeakMap(), De = new WeakMap(), m(_s, "observedAttributes", ["disabled"]);
1530
- const Ln = document.createElement("template");
1531
- Ln.innerHTML = /* HTML */
1544
+ Zt = new WeakMap(), te = new WeakMap(), Me = new WeakMap(), De = new WeakMap(), m(Ds, "observedAttributes", ["disabled"]);
1545
+ const Sn = document.createElement("template");
1546
+ Sn.innerHTML = /* HTML */
1532
1547
  `
1533
1548
  <style>
1534
1549
  :host {
@@ -1602,17 +1617,20 @@ Ln.innerHTML = /* HTML */
1602
1617
  right: 0;
1603
1618
  transition: opacity 0.5s;
1604
1619
  user-select: none;
1605
- pointer-events: auto;
1606
-
1607
- // Ensure the #ui element is above the video element on Safari
1608
- z-index: 1;
1620
+ pointer-events: none;
1609
1621
  }
1610
1622
 
1611
1623
  #ui > * {
1612
- pointer-events: auto;
1613
1624
  display: var(--ui-display);
1614
1625
  }
1615
1626
 
1627
+ #ui > slot::slotted(*) {
1628
+ pointer-events: auto;
1629
+ z-index: 10;
1630
+ // Ensure the #ui element is above the video element on Safari
1631
+ // and that we can layer things under, between, and above ui and video
1632
+ }
1633
+
1616
1634
  #video {
1617
1635
  cursor: none;
1618
1636
  display: flex;
@@ -1620,6 +1638,10 @@ Ln.innerHTML = /* HTML */
1620
1638
  z-index: 0;
1621
1639
  }
1622
1640
 
1641
+ :host([user-interacting]) #video {
1642
+ cursor: auto;
1643
+ }
1644
+
1623
1645
  #video > canvas {
1624
1646
  object-fit: contain;
1625
1647
  }
@@ -1630,12 +1652,11 @@ Ln.innerHTML = /* HTML */
1630
1652
  flex-grow: 1;
1631
1653
  }
1632
1654
 
1633
- slot#top-bar {
1655
+ #top-bar::slotted(*) {
1634
1656
  background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));
1635
1657
  padding: var(--control-padding);
1636
1658
  }
1637
-
1638
- slot#bottom-bar {
1659
+ #bottom-bar::slotted(*) {
1639
1660
  padding: var(--control-padding);
1640
1661
  background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
1641
1662
  }
@@ -1706,8 +1727,8 @@ Ln.innerHTML = /* HTML */
1706
1727
  <slot id="overlay-interactive" name="overlay-interactive"></slot>
1707
1728
  </div>
1708
1729
  `;
1709
- const $i = ["ArrowDown", "ArrowLeft", "ArrowRight", "Tab", "Enter", " ", "f", "m"];
1710
- var Si, it, Oe, vt, gt, b, Fe, st, nt, ee, rt, B, J, F, ot, He, ze, N, ft, h, ts, Tn, xn, Sn, es, Nn, Rn, Un, Ge, _n, Pn, Mn, Dn, $e, Ni, Ri, On, Ut, is, ss, mi, pt, Fn, Hn, zn, ns, Ui, _i, rs, A, w;
1730
+ const qi = ["ArrowDown", "ArrowLeft", "ArrowRight", "Tab", "Enter", " ", "f", "m"];
1731
+ var Ri, it, Oe, vt, gt, b, Fe, st, nt, ee, rt, B, V, F, ot, He, ze, U, ft, h, ss, Nn, Un, Rn, ns, _n, Pn, Mn, Ge, Dn, On, Fn, Hn, $e, _i, Pi, zn, Rt, rs, os, fi, pt, Gn, $n, Bn, as, Mi, Di, ls, A, w;
1711
1732
  const fe = class fe extends HTMLElement {
1712
1733
  constructor() {
1713
1734
  super();
@@ -1717,18 +1738,18 @@ const fe = class fe extends HTMLElement {
1717
1738
  l(this, vt, null);
1718
1739
  l(this, gt, null);
1719
1740
  l(this, b);
1720
- l(this, Fe, e(fe, Si));
1741
+ l(this, Fe, e(fe, Ri));
1721
1742
  l(this, st);
1722
1743
  l(this, nt);
1723
1744
  l(this, ee);
1724
1745
  l(this, rt);
1725
1746
  l(this, B);
1726
- l(this, J);
1747
+ l(this, V);
1727
1748
  l(this, F);
1728
1749
  l(this, ot);
1729
1750
  l(this, He);
1730
1751
  l(this, ze);
1731
- l(this, N);
1752
+ l(this, U);
1732
1753
  l(this, ft, null);
1733
1754
  l(this, Ge, 0);
1734
1755
  m(this, "handleEvent", (t) => {
@@ -1737,31 +1758,31 @@ const fe = class fe extends HTMLElement {
1737
1758
  c(this, Ge, t.timeStamp);
1738
1759
  break;
1739
1760
  case "pointermove":
1740
- r(this, h, _n).call(this, t);
1761
+ r(this, h, Dn).call(this, t);
1741
1762
  break;
1742
1763
  case "pointerup":
1743
- r(this, h, Pn).call(this, t);
1764
+ r(this, h, On).call(this, t);
1744
1765
  break;
1745
1766
  case "mouseleave":
1746
1767
  r(this, h, pt).call(this);
1747
1768
  break;
1748
1769
  case "dblclick":
1749
- r(this, h, Mn).call(this, t);
1770
+ r(this, h, Fn).call(this, t);
1750
1771
  break;
1751
1772
  case "mousemove":
1752
- r(this, h, Dn).call(this, t);
1773
+ r(this, h, Hn).call(this, t);
1753
1774
  break;
1754
1775
  case "keydown":
1755
- e(this, Ri).call(this, t);
1776
+ e(this, Pi).call(this, t);
1756
1777
  break;
1757
1778
  case "keyup":
1758
- r(this, h, pt).call(this), e(this, Ni).call(this, t);
1779
+ r(this, h, pt).call(this), e(this, _i).call(this, t);
1759
1780
  break;
1760
1781
  }
1761
1782
  });
1762
1783
  l(this, $e, (t) => {
1763
1784
  var i;
1764
- if (e(this, b) && (e(this, N).debug("Vindral event", { type: t.type }), t instanceof CustomEvent))
1785
+ if (e(this, b) && (e(this, U).debug("Vindral event", { type: t.type }), t instanceof CustomEvent))
1765
1786
  switch (t.type) {
1766
1787
  case f.PLAY:
1767
1788
  this.removeAttribute(n.PAUSED);
@@ -1794,7 +1815,7 @@ const fe = class fe extends HTMLElement {
1794
1815
  }
1795
1816
  break;
1796
1817
  case f.CHANNEL_GRID_OPENED: {
1797
- e(this, ft) === null && r(this, h, is).call(this);
1818
+ e(this, ft) === null && r(this, h, rs).call(this);
1798
1819
  break;
1799
1820
  }
1800
1821
  case f.CHANNEL_GRID_CLOSED: {
@@ -1808,7 +1829,7 @@ const fe = class fe extends HTMLElement {
1808
1829
  this.removeAttribute(n.IS_PIP);
1809
1830
  break;
1810
1831
  case f.REQUEST_AIRPLAY:
1811
- (i = e(this, J)) == null || i.showPlaybackTargetPicker();
1832
+ (i = e(this, V)) == null || i.showPlaybackTargetPicker();
1812
1833
  break;
1813
1834
  case f.SET_LANGUAGE:
1814
1835
  L(t.detail) ? this.setAttribute(n.LANGUAGE, t.detail) : this.removeAttribute(n.LANGUAGE);
@@ -1827,20 +1848,20 @@ const fe = class fe extends HTMLElement {
1827
1848
  break;
1828
1849
  }
1829
1850
  });
1830
- l(this, Ni, (t) => {
1851
+ l(this, _i, (t) => {
1831
1852
  const { key: i } = t;
1832
- if (!$i.includes(i)) {
1853
+ if (!qi.includes(i)) {
1833
1854
  this.removeEventListener("keyup", this);
1834
1855
  return;
1835
1856
  }
1836
- r(this, h, On).call(this, t);
1857
+ r(this, h, zn).call(this, t);
1837
1858
  });
1838
- l(this, Ri, (t) => {
1859
+ l(this, Pi, (t) => {
1839
1860
  const { metaKey: i, altKey: s, key: o } = t;
1840
- i || s || !$i.includes(o) || this.addEventListener("keyup", this, { once: !0 });
1861
+ i || s || !qi.includes(o) || this.addEventListener("keyup", this, { once: !0 });
1841
1862
  });
1842
- l(this, Ut, null);
1843
- l(this, Ui, () => {
1863
+ l(this, Rt, null);
1864
+ l(this, Mi, () => {
1844
1865
  var i, s, o;
1845
1866
  if (!("orientation" in screen) || !screen.orientation.lock)
1846
1867
  return;
@@ -1848,19 +1869,19 @@ const fe = class fe extends HTMLElement {
1848
1869
  t != null && t.video && screen.orientation.lock(((s = t == null ? void 0 : t.video) == null ? void 0 : s.width) > ((o = t == null ? void 0 : t.video) == null ? void 0 : o.height) ? "landscape-primary" : "portrait-primary").catch(() => {
1849
1870
  });
1850
1871
  });
1851
- l(this, _i, () => {
1872
+ l(this, Di, () => {
1852
1873
  !("orientation" in screen) || !screen.orientation.unlock || screen.orientation.unlock();
1853
1874
  });
1854
- this.attachShadow({ mode: "open" }).appendChild(Ln.content.cloneNode(!0));
1855
- const i = Gi(this.getAttribute("log-level"));
1856
- c(this, N, Vr.get().createContext("VindralController")), e(this, N).setLevel(i);
1875
+ this.attachShadow({ mode: "open" }).appendChild(Sn.content.cloneNode(!0));
1876
+ const i = Ki(this.getAttribute("log-level"));
1877
+ c(this, U, jr.get().createContext("VindralController")), e(this, U).setLevel(i);
1857
1878
  }
1858
1879
  connectedCallback() {
1859
1880
  return G(this, null, function* () {
1860
- x(this.getAttribute("auto-instance-enabled"), !0) && (yield r(this, h, ts).call(this));
1881
+ S(this.getAttribute("auto-instance-enabled"), !0) && (yield r(this, h, ss).call(this));
1861
1882
  for (const i of Object.values(f))
1862
1883
  this.addEventListener(i, e(this, $e));
1863
- window.PointerEvent ? (this.addEventListener("pointerdown", this), this.addEventListener("pointermove", this), this.addEventListener("pointerup", this)) : this.addEventListener("mousemove", this), this.addEventListener("mouseleave", this), this.addEventListener("keydown", this), this.addEventListener("resize", this), this.addEventListener("dblclick", this), this.connectListener(this);
1884
+ window.PointerEvent ? (this.addEventListener("pointerdown", this), this.addEventListener("pointermove", this), this.addEventListener("pointerup", this)) : this.addEventListener("mousemove", this), this.addEventListener("mouseleave", this), this.addEventListener("keydown", this), this.addEventListener("resize", this), this.addEventListener("dblclick", this), this.connectListener(this), this.tabIndex = 0, this.focus({ preventScroll: !0 });
1864
1885
  });
1865
1886
  }
1866
1887
  disconnectedCallback() {
@@ -1871,9 +1892,9 @@ const fe = class fe extends HTMLElement {
1871
1892
  this.disconnectListener(this);
1872
1893
  }
1873
1894
  attributeChangedCallback(t, i, s) {
1874
- var o, p, u, v, g, P, et, Y, Ct, Lt, Tt, hi, di;
1895
+ var o, p, u, v, g, P, et, J, Ct, Lt, Tt, hi, di, ci, ui;
1875
1896
  if (i != s)
1876
- switch (e(this, N).debug("Attribute changed", { name: t, oldValue: i, newValue: s }), t) {
1897
+ switch (e(this, U).debug("Attribute changed", { name: t, oldValue: i, newValue: s }), t) {
1877
1898
  case "channel-id":
1878
1899
  c(this, st, s), e(this, b) && s && (e(this, b).channelId = s, e(this, b).play(), r(this, h, A).call(this, n.BUFFERING, ""), r(this, h, A).call(this, n.CHANNEL_ID, s), r(this, h, A).call(this, n.POSTER_SRC, e(this, b).getThumbnailUrl()));
1879
1900
  break;
@@ -1899,22 +1920,22 @@ const fe = class fe extends HTMLElement {
1899
1920
  e(this, b) && (L(s) ? (e(this, b).muted = !0, r(this, h, A).call(this, n.MUTED, ""), (u = e(this, F)) != null && u.isMediaElementSource && ((v = e(this, F)) == null || v.stop(), r(this, h, A).call(this, n.VOLUME_LEVEL, JSON.stringify({ left: null, right: null })))) : (e(this, b).muted = !1, r(this, h, w).call(this, n.MUTED), r(this, h, w).call(this, n.NEEDS_USER_INPUT_AUDIO), e(this, b).volume === 0 && (e(this, b).volume = 0.3), (g = e(this, F)) == null || g.start()));
1900
1921
  break;
1901
1922
  case "ui-locked":
1902
- L(s) ? r(this, h, mi).call(this) : r(this, h, pt).call(this);
1923
+ L(s) ? r(this, h, fi).call(this) : r(this, h, pt).call(this);
1903
1924
  break;
1904
1925
  case "is-fullscreen":
1905
- L(s) ? r(this, h, zn).call(this) : r(this, h, ns).call(this);
1926
+ L(s) ? r(this, h, Bn).call(this) : r(this, h, as).call(this);
1906
1927
  break;
1907
1928
  case "max-video-bit-rate":
1908
1929
  c(this, ee, s), L(s) ? r(this, h, A).call(this, n.MAX_VIDEO_BITRATE, s) : r(this, h, w).call(this, n.MAX_VIDEO_BITRATE);
1909
1930
  break;
1910
1931
  case "is-pip":
1911
- L(s) ? r(this, h, Fn).call(this) : r(this, h, Hn).call(this);
1932
+ L(s) ? r(this, h, Gn).call(this) : r(this, h, $n).call(this);
1912
1933
  break;
1913
1934
  case "is-airplaying":
1914
- L(s) ? ((P = e(this, b)) != null && P.mediaElement && (e(this, b).mediaElement.style.display = "hidden"), (et = e(this, b)) == null || et.pause()) : (Y = e(this, b)) != null && Y.mediaElement && (e(this, b).mediaElement.style.display = "block");
1935
+ L(s) ? ((P = e(this, b)) != null && P.mediaElement && (e(this, b).mediaElement.style.display = "hidden"), (et = e(this, b)) == null || et.pause()) : (J = e(this, b)) != null && J.mediaElement && (e(this, b).mediaElement.style.display = "block");
1915
1936
  break;
1916
1937
  case "is-casting":
1917
- L(s) ? ((Ct = e(this, B)) != null && Ct.isFullscreen() && r(this, h, ns).call(this), (Lt = e(this, b)) == null || Lt.pause()) : document.hidden || (Tt = e(this, b)) == null || Tt.play();
1938
+ L(s) ? ((Ct = e(this, B)) != null && Ct.isFullscreen() && r(this, h, as).call(this), (Lt = e(this, b)) == null || Lt.pause()) : document.hidden || (Tt = e(this, b)) == null || Tt.play();
1918
1939
  break;
1919
1940
  case "cast-receiver-id":
1920
1941
  c(this, He, s);
@@ -1929,10 +1950,10 @@ const fe = class fe extends HTMLElement {
1929
1950
  e(this, b) && (e(this, b).textTrack = s, L(s) ? r(this, h, A).call(this, n.TEXT_TRACK, s) : r(this, h, w).call(this, n.TEXT_TRACK));
1930
1951
  break;
1931
1952
  case "log-level":
1932
- L(s) && e(this, N).setLevel(Gi(s));
1953
+ L(s) && e(this, U).setLevel(Ki(s));
1933
1954
  break;
1934
1955
  case "authentication-token":
1935
- L(s) ? r(this, h, A).call(this, n.AUTHENTICATION_TOKEN, s) : r(this, h, w).call(this, n.AUTHENTICATION_TOKEN);
1956
+ L(s) ? ((hi = e(this, b)) == null || hi.updateAuthenticationToken(s), (di = e(this, V)) == null || di.updateAuthenticationToken(s), r(this, h, A).call(this, n.AUTHENTICATION_TOKEN, s)) : r(this, h, w).call(this, n.AUTHENTICATION_TOKEN);
1936
1957
  break;
1937
1958
  case "volume":
1938
1959
  if (e(this, b) && L(s)) {
@@ -1942,20 +1963,20 @@ const fe = class fe extends HTMLElement {
1942
1963
  break;
1943
1964
  case "drm-headers":
1944
1965
  if (L(s)) {
1945
- const z = pi(s);
1946
- z ? (hi = e(this, b)) == null || hi.drm.setHeaders(z) : e(this, N).warn("Invalid DRM headers format:", s);
1966
+ const z = mi(s);
1967
+ z ? (ci = e(this, b)) == null || ci.drm.setHeaders(z) : e(this, U).warn("Invalid DRM headers format:", s);
1947
1968
  }
1948
1969
  break;
1949
1970
  case "drm-queryparams":
1950
1971
  if (L(s)) {
1951
- const z = pi(s);
1952
- z ? (di = e(this, b)) == null || di.drm.setQueryParams(z) : e(this, N).warn("Invalid DRM query parameters format:", s);
1972
+ const z = mi(s);
1973
+ z ? (ui = e(this, b)) == null || ui.drm.setQueryParams(z) : e(this, U).warn("Invalid DRM query parameters format:", s);
1953
1974
  }
1954
1975
  break;
1955
1976
  }
1956
1977
  }
1957
1978
  connectListener(t) {
1958
- $s(t).forEach((s) => {
1979
+ qs(t).forEach((s) => {
1959
1980
  var p, u;
1960
1981
  const o = e(this, it).get(s);
1961
1982
  switch (o ? o.push(t) : e(this, it).set(s, [t]), s) {
@@ -1983,7 +2004,7 @@ const fe = class fe extends HTMLElement {
1983
2004
  });
1984
2005
  }
1985
2006
  disconnectListener(t) {
1986
- $s(t).forEach((s) => {
2007
+ qs(t).forEach((s) => {
1987
2008
  const o = e(this, it).get(s);
1988
2009
  o && e(this, it).set(
1989
2010
  s,
@@ -1995,19 +2016,30 @@ const fe = class fe extends HTMLElement {
1995
2016
  return e(this, b);
1996
2017
  }
1997
2018
  get airPlay() {
1998
- return e(this, J);
2019
+ return e(this, V);
1999
2020
  }
2000
2021
  connect() {
2001
- r(this, h, ts).call(this);
2022
+ r(this, h, ss).call(this);
2002
2023
  }
2003
2024
  };
2004
- Si = new WeakMap(), it = new WeakMap(), Oe = new WeakMap(), vt = new WeakMap(), gt = new WeakMap(), b = new WeakMap(), Fe = new WeakMap(), st = new WeakMap(), nt = new WeakMap(), ee = new WeakMap(), rt = new WeakMap(), B = new WeakMap(), J = new WeakMap(), F = new WeakMap(), ot = new WeakMap(), He = new WeakMap(), ze = new WeakMap(), N = new WeakMap(), ft = new WeakMap(), h = new WeakSet(), ts = function() {
2025
+ Ri = new WeakMap(), it = new WeakMap(), Oe = new WeakMap(), vt = new WeakMap(), gt = new WeakMap(), b = new WeakMap(), Fe = new WeakMap(), st = new WeakMap(), nt = new WeakMap(), ee = new WeakMap(), rt = new WeakMap(), B = new WeakMap(), V = new WeakMap(), F = new WeakMap(), ot = new WeakMap(), He = new WeakMap(), ze = new WeakMap(), U = new WeakMap(), ft = new WeakMap(), h = new WeakSet(), ss = function() {
2005
2026
  return G(this, null, function* () {
2006
- var Ds, Os;
2027
+ var Hs, zs;
2007
2028
  if (!e(this, st)) return;
2008
- yield (Ds = e(this, b)) == null ? void 0 : Ds.unload();
2009
- const t = this.hasAttribute(n.PAUSED), i = this.hasAttribute(n.MUTED), s = qs(this.getAttribute(n.MEDIA)), o = this.getAttribute(n.TEXT_TRACK) || void 0, p = this.getAttribute("edge-url") || void 0, u = this.getAttribute("authentication-token") || void 0, v = ui(this.getAttribute("max-video-bit-rate")), g = oo(this.getAttribute("max-size")), P = ui(this.getAttribute("min-buffer-time")), et = ui(this.getAttribute("max-buffer-time")), Y = x(this.getAttribute("burst-enabled")), Ct = x(this.getAttribute("mse-enabled")), Lt = x(this.getAttribute("mse-opus-enabled")), Tt = x(this.getAttribute("ios-background-play-enabled")), hi = x(this.getAttribute("ios-wake-lock-enabled")), di = x(this.getAttribute("ios-media-element-enabled")), z = x(this.getAttribute("abr-enabled")), xr = x(this.getAttribute("size-based-resolution-cap-enabled")), Sr = x(this.getAttribute("telemetry-enabled")), Nr = ro(this.getAttribute("video-codecs")), Ps = Xs(this.getAttribute("poster")), Rr = ao(this.getAttribute("advanced")), Ur = Gi(this.getAttribute("log-level")), _r = pi(this.getAttribute("drm-headers")), Pr = pi(this.getAttribute("drm-queryparams")), Mr = x(this.getAttribute("webtransport-enabled")), Ms = ui(this.getAttribute("reconnect-retries")), Dr = Ms !== void 0 ? (y) => y.reconnectRetries < Ms : void 0, Or = this.getAttribute("language") || void 0;
2010
- c(this, b, new jr({
2029
+ yield (Hs = e(this, b)) == null ? void 0 : Hs.unload();
2030
+ const t = this.hasAttribute(n.PAUSED), i = this.hasAttribute(n.MUTED), s = Vs(this.getAttribute(n.MEDIA)), o = this.getAttribute(n.TEXT_TRACK) || void 0, p = this.getAttribute("edge-url") || void 0, u = this.getAttribute("authentication-token") || void 0, v = bi(this.getAttribute("max-video-bit-rate")), g = oo(this.getAttribute("max-size")), P = bi(this.getAttribute("min-buffer-time")), et = bi(this.getAttribute("max-buffer-time")), J = S(this.getAttribute("burst-enabled")), Ct = S(this.getAttribute("mse-enabled")), Lt = S(this.getAttribute("mse-opus-enabled")), Tt = S(this.getAttribute("ios-background-play-enabled")), hi = S(this.getAttribute("ios-wake-lock-enabled")), di = S(this.getAttribute("ios-media-element-enabled")), ci = S(this.getAttribute("abr-enabled")), ui = S(this.getAttribute("size-based-resolution-cap-enabled")), z = S(this.getAttribute("telemetry-enabled")), Ur = ro(this.getAttribute("video-codecs")), Os = Ys(this.getAttribute("poster")), Rr = ao(this.getAttribute("advanced")), _r = Ki(this.getAttribute("log-level")), Pr = {
2031
+ headers: mi(this.getAttribute("drm-headers")),
2032
+ queryParams: mi(this.getAttribute("drm-queryparams")),
2033
+ widevine: {
2034
+ videoRobustness: vi(this.getAttribute("drm-widevine-video-robustness")),
2035
+ audioRobustness: vi(this.getAttribute("drm-widevine-audio-robustness"))
2036
+ },
2037
+ playready: {
2038
+ videoRobustness: vi(this.getAttribute("drm-playready-video-robustness")),
2039
+ audioRobustness: vi(this.getAttribute("drm-playready-audio-robustness"))
2040
+ }
2041
+ }, Mr = S(this.getAttribute("webtransport-enabled")), Fs = bi(this.getAttribute("reconnect-retries")), Dr = Fs !== void 0 ? (y) => y.reconnectRetries < Fs : void 0, Or = this.getAttribute("language") || void 0;
2042
+ c(this, b, new Vr({
2011
2043
  url: e(this, Fe),
2012
2044
  channelId: e(this, st),
2013
2045
  channelGroupId: e(this, nt),
@@ -2019,28 +2051,28 @@ Si = new WeakMap(), it = new WeakMap(), Oe = new WeakMap(), vt = new WeakMap(),
2019
2051
  maxVideoBitRate: v,
2020
2052
  minBufferTime: P,
2021
2053
  maxBufferTime: et,
2022
- burstEnabled: Y,
2054
+ burstEnabled: J,
2023
2055
  mseEnabled: Ct,
2024
2056
  mseOpusEnabled: Lt,
2025
2057
  iosBackgroundPlayEnabled: Tt,
2026
2058
  iosWakeLockEnabled: hi,
2027
2059
  iosMediaElementEnabled: di,
2028
- abrEnabled: z,
2029
- sizeBasedResolutionCapEnabled: xr,
2030
- telemetryEnabled: Sr,
2031
- videoCodecs: Nr,
2032
- poster: Ps,
2060
+ abrEnabled: ci,
2061
+ sizeBasedResolutionCapEnabled: ui,
2062
+ telemetryEnabled: z,
2063
+ videoCodecs: Ur,
2064
+ poster: Os,
2033
2065
  textTrack: o,
2034
2066
  advanced: Rr,
2035
- logLevel: Ur,
2067
+ logLevel: _r,
2036
2068
  language: Or,
2037
- drm: { headers: _r, queryParams: Pr },
2069
+ drm: Pr,
2038
2070
  webtransportEnabled: Mr,
2039
2071
  reconnectHandler: Dr
2040
2072
  })), e(this, b).on("rendition levels", (y) => {
2041
- const D = y.filter((ci) => {
2073
+ const D = y.filter((pi) => {
2042
2074
  var de;
2043
- return (de = ci.video) == null ? void 0 : de.width;
2075
+ return (de = pi.video) == null ? void 0 : de.width;
2044
2076
  });
2045
2077
  r(this, h, A).call(this, n.RENDITION_LEVELS, JSON.stringify(D));
2046
2078
  }), e(this, b).on("rendition level", (y) => {
@@ -2066,92 +2098,92 @@ Si = new WeakMap(), it = new WeakMap(), Oe = new WeakMap(), vt = new WeakMap(),
2066
2098
  var D;
2067
2099
  e(this, st) !== y && this.setAttribute(n.CHANNEL_ID, y), ((D = e(this, b)) == null ? void 0 : D.playbackState) !== "buffering" && r(this, h, w).call(this, n.BUFFERING);
2068
2100
  }), e(this, b).on("channels", (y) => {
2069
- c(this, Ut, Date.now()), r(this, h, A).call(this, n.CHANNELS, JSON.stringify(y));
2101
+ c(this, Rt, Date.now()), r(this, h, A).call(this, n.CHANNELS, JSON.stringify(y));
2070
2102
  }), e(this, b).on("languages", (y) => {
2071
2103
  var D;
2072
2104
  r(this, h, A).call(this, n.LANGUAGES, JSON.stringify(y)), (D = e(this, b)) != null && D.language && r(this, h, A).call(this, n.LANGUAGE, e(this, b).language);
2073
2105
  }), e(this, b).on("text tracks", (y) => {
2074
- var D, ci, de;
2075
- r(this, h, A).call(this, n.TEXT_TRACKS, JSON.stringify(y)), (D = e(this, b)) != null && D.textTrack && r(this, h, A).call(this, n.TEXT_TRACK, (de = (ci = e(this, b)) == null ? void 0 : ci.textTrack) != null ? de : "");
2106
+ var D, pi, de;
2107
+ r(this, h, A).call(this, n.TEXT_TRACKS, JSON.stringify(y)), (D = e(this, b)) != null && D.textTrack && r(this, h, A).call(this, n.TEXT_TRACK, (de = (pi = e(this, b)) == null ? void 0 : pi.textTrack) != null ? de : "");
2076
2108
  }), e(this, b).on("needs user input", (y) => {
2077
2109
  y != null && y.forVideo ? (r(this, h, A).call(this, n.NEEDS_USER_INPUT_VIDEO, ""), r(this, h, w).call(this, n.NEEDS_USER_INPUT_AUDIO)) : y != null && y.forAudio && (r(this, h, A).call(this, n.NEEDS_USER_INPUT_AUDIO, ""), r(this, h, w).call(this, n.NEEDS_USER_INPUT_VIDEO));
2078
2110
  }), e(this, b).on("is live", (y) => {
2079
2111
  y || r(this, h, w).call(this, n.BUFFERING);
2080
- }), c(this, gt, (Os = this.shadowRoot) == null ? void 0 : Os.querySelector("#video")), e(this, gt) && e(this, b).attach(e(this, gt)), this.setAttribute(n.MEDIA, e(this, b).media), e(this, b).muted && r(this, h, A).call(this, n.MUTED, ""), r(this, h, A).call(this, n.VOLUME, e(this, b).volume.toString()), L(Ps) || r(this, h, A).call(this, n.POSTER_SRC, e(this, b).getThumbnailUrl());
2081
- const Fr = x(this.getAttribute(n.AIRPLAY_ENABLED), !1), Hr = x(this.getAttribute(n.CAST_ENABLED), !0), zr = x(this.getAttribute(n.FULLSCREEN_ENABLED), !0), Gr = x(this.getAttribute(n.PIP_ENABLED), !0), $r = x(this.getAttribute(n.VU_METER_ENABLED), !1);
2082
- Fr && r(this, h, Rn).call(this, e(this, b)), Hr && r(this, h, Sn).call(this, e(this, b)), zr && r(this, h, xn).call(this, e(this, b)), Gr && r(this, h, Tn).call(this, e(this, b)), t || e(this, b).play(), $r && r(this, h, Un).call(this, e(this, b)), this.dispatchEvent(
2112
+ }), c(this, gt, (zs = this.shadowRoot) == null ? void 0 : zs.querySelector("#video")), e(this, gt) && e(this, b).attach(e(this, gt)), this.setAttribute(n.MEDIA, e(this, b).media), e(this, b).muted && r(this, h, A).call(this, n.MUTED, ""), r(this, h, A).call(this, n.VOLUME, e(this, b).volume.toString()), L(Os) || r(this, h, A).call(this, n.POSTER_SRC, e(this, b).getThumbnailUrl());
2113
+ const Fr = S(this.getAttribute(n.AIRPLAY_ENABLED), !1), Hr = S(this.getAttribute(n.CAST_ENABLED), !0), zr = S(this.getAttribute(n.FULLSCREEN_ENABLED), !0), Gr = S(this.getAttribute(n.PIP_ENABLED), !0), $r = S(this.getAttribute(n.VU_METER_ENABLED), !1);
2114
+ Fr && r(this, h, Pn).call(this, e(this, b)), Hr && r(this, h, Rn).call(this, e(this, b)), zr && r(this, h, Un).call(this, e(this, b)), Gr && r(this, h, Nn).call(this, e(this, b)), t || e(this, b).play(), $r && r(this, h, Mn).call(this, e(this, b)), this.dispatchEvent(
2083
2115
  new CustomEvent("vindral-instance-ready", { bubbles: !0, composed: !0, detail: e(this, b) })
2084
2116
  );
2085
2117
  });
2086
- }, Tn = function(t) {
2087
- t.mediaElement instanceof HTMLVideoElement && (c(this, rt, new uo(t.mediaElement)), e(this, rt).isSupported() && (e(this, N).debug("PIP is supported"), r(this, h, A).call(this, n.PIP_AVAILABLE, "")), e(this, rt).on("on picture in picture change", (i) => {
2118
+ }, Nn = function(t) {
2119
+ t.mediaElement instanceof HTMLVideoElement && (c(this, rt, new uo(t.mediaElement)), e(this, rt).isSupported() && (e(this, U).debug("PIP is supported"), r(this, h, A).call(this, n.PIP_AVAILABLE, "")), e(this, rt).on("on picture in picture change", (i) => {
2088
2120
  i ? r(this, h, A).call(this, n.IS_PIP, "") : r(this, h, w).call(this, n.IS_PIP);
2089
2121
  }));
2090
- }, xn = function(t) {
2122
+ }, Un = function(t) {
2091
2123
  const i = !be.isFullscreenApiSupported(this) && be.isFullscreenApiSupported(t.mediaElement) ? t.mediaElement : this;
2092
2124
  c(this, B, new be(i)), e(this, B).on("on fullscreen change", (s) => {
2093
2125
  s ? r(this, h, A).call(this, n.FULLSCREEN, "") : r(this, h, w).call(this, n.FULLSCREEN);
2094
2126
  });
2095
- }, Sn = function(t) {
2127
+ }, Rn = function(t) {
2096
2128
  c(this, ot, new Zr({
2097
2129
  background: e(this, ze),
2098
2130
  receiverApplicationId: e(this, He),
2099
2131
  options: t.getCastOptions()
2100
2132
  })), e(this, ot).init().then(() => {
2101
2133
  var i, s, o;
2102
- r(this, h, A).call(this, n.CAST_AVAILABLE, ""), (i = e(this, ot)) == null || i.on("connected", r(this, h, es).bind(this)), (s = e(this, ot)) == null || s.on("resumed", r(this, h, es).bind(this)), (o = e(this, ot)) == null || o.on("disconnected", r(this, h, Nn).bind(this));
2134
+ r(this, h, A).call(this, n.CAST_AVAILABLE, ""), (i = e(this, ot)) == null || i.on("connected", r(this, h, ns).bind(this)), (s = e(this, ot)) == null || s.on("resumed", r(this, h, ns).bind(this)), (o = e(this, ot)) == null || o.on("disconnected", r(this, h, _n).bind(this));
2103
2135
  }).catch((i) => {
2104
- e(this, N).warn("Failed to initialize CastSender", i);
2136
+ e(this, U).warn("Failed to initialize CastSender", i);
2105
2137
  });
2106
- }, es = function() {
2138
+ }, ns = function() {
2107
2139
  var i, s;
2108
2140
  r(this, h, A).call(this, n.IS_CASTING, "");
2109
2141
  const t = (s = (i = e(this, ot)) == null ? void 0 : i.getReceiverName()) != null ? s : "device";
2110
2142
  r(this, h, A).call(this, n.CAST_RECEIVER_NAME, t);
2111
- }, Nn = function() {
2143
+ }, _n = function() {
2112
2144
  r(this, h, w).call(this, n.IS_CASTING), r(this, h, w).call(this, n.CAST_RECEIVER_NAME);
2113
- }, Rn = function(t) {
2145
+ }, Pn = function(t) {
2114
2146
  var s;
2115
- (s = e(this, J)) == null || s.unload();
2147
+ (s = e(this, V)) == null || s.unload();
2116
2148
  const i = t.getCastOptions();
2117
- c(this, J, new co({
2149
+ c(this, V, new co({
2118
2150
  url: i.url,
2119
2151
  channelId: i.channelId,
2120
2152
  authenticationToken: i.authenticationToken,
2121
2153
  container: this
2122
- })), e(this, J).once("available", () => {
2154
+ })), e(this, V).once("available", () => {
2123
2155
  r(this, h, A).call(this, n.AIRPLAY_AVAILABLE, "");
2124
- }), e(this, J).on("connected", () => {
2156
+ }), e(this, V).on("connected", () => {
2125
2157
  r(this, h, A).call(this, n.IS_AIRPLAYING, "");
2126
- }), e(this, J).on("disconnected", () => {
2158
+ }), e(this, V).on("disconnected", () => {
2127
2159
  r(this, h, w).call(this, n.IS_AIRPLAYING);
2128
2160
  });
2129
- }, Un = function(t) {
2161
+ }, Mn = function(t) {
2130
2162
  var i;
2131
2163
  if ((i = e(this, F)) == null || i.unload(), !Yr()) {
2132
2164
  if (t.audioNode)
2133
- c(this, F, new Gs(t.audioNode));
2165
+ c(this, F, new Ks(t.audioNode));
2134
2166
  else if (t.mediaElement instanceof HTMLMediaElement)
2135
- c(this, F, new Gs(t.mediaElement));
2167
+ c(this, F, new Ks(t.mediaElement));
2136
2168
  else
2137
2169
  return;
2138
2170
  e(this, F).on("on decibel change", (s) => {
2139
2171
  r(this, h, A).call(this, n.VOLUME_LEVEL, JSON.stringify(s));
2140
2172
  }), r(this, h, A).call(this, n.VOLUME_LEVEL, JSON.stringify({ left: null, right: null })), (!e(this, F).isMediaElementSource || !this.hasAttribute(n.MUTED)) && e(this, F).start();
2141
2173
  }
2142
- }, Ge = new WeakMap(), _n = function(t) {
2143
- t.pointerType !== "mouse" && t.timeStamp - e(this, Ge) < 250 || (r(this, h, mi).call(this), e(this, vt) && clearTimeout(e(this, vt)), t.target instanceof HTMLElement && ([this, e(this, gt)].includes(t.target) || t.target.localName === "vindral-scroll-overlay") && r(this, h, pt).call(this));
2144
- }, Pn = function(t) {
2174
+ }, Ge = new WeakMap(), Dn = function(t) {
2175
+ t.pointerType !== "mouse" && t.timeStamp - e(this, Ge) < 250 || (r(this, h, fi).call(this), e(this, vt) && clearTimeout(e(this, vt)), t.target instanceof HTMLElement && ([this, e(this, gt)].includes(t.target) || t.target.localName === "vindral-scroll-overlay") && r(this, h, pt).call(this));
2176
+ }, On = function(t) {
2145
2177
  const i = this.hasAttribute(n.USER_INTERACTING);
2146
- t.pointerType === "touch" && t.target instanceof HTMLElement ? [this, e(this, gt)].includes(t.target) && i ? r(this, h, ss).call(this) : r(this, h, pt).call(this) : t.composedPath().some((s) => s instanceof HTMLElement && ["vindral-play-button"].includes(s == null ? void 0 : s.localName)) && r(this, h, pt).call(this);
2147
- }, Mn = function(t) {
2148
- !e(this, B) || t.target instanceof tt || t.target instanceof Us || t.target instanceof _s || (this.hasAttribute(n.FULLSCREEN) ? this.removeAttribute(n.FULLSCREEN) : this.setAttribute(n.FULLSCREEN, ""));
2149
- }, Dn = function(t) {
2178
+ t.pointerType === "touch" && t.target instanceof HTMLElement ? [this, e(this, gt)].includes(t.target) && i ? r(this, h, os).call(this) : r(this, h, pt).call(this) : t.composedPath().some((s) => s instanceof HTMLElement && ["vindral-play-button"].includes(s == null ? void 0 : s.localName)) && r(this, h, pt).call(this);
2179
+ }, Fn = function(t) {
2180
+ !e(this, B) || t.target instanceof tt || t.target instanceof Ms || t.target instanceof Ds || (this.hasAttribute(n.FULLSCREEN) ? this.removeAttribute(n.FULLSCREEN) : this.setAttribute(n.FULLSCREEN, ""));
2181
+ }, Hn = function(t) {
2150
2182
  this.hasAttribute(n.USER_INTERACTING) || r(this, h, pt).call(this);
2151
- }, $e = new WeakMap(), Ni = new WeakMap(), Ri = new WeakMap(), On = function(t) {
2183
+ }, $e = new WeakMap(), _i = new WeakMap(), Pi = new WeakMap(), zn = function(t) {
2152
2184
  var u, v;
2153
2185
  const { metaKey: i, altKey: s, key: o } = t;
2154
- if (!(i || s || !$i.includes(o) || (((u = t.target) == null ? void 0 : u.keysUsed) || []).includes(o)))
2186
+ if (!(i || s || !qi.includes(o) || (((u = t.target) == null ? void 0 : u.keysUsed) || []).includes(o)))
2155
2187
  switch (o) {
2156
2188
  case "f":
2157
2189
  this.hasAttribute(n.FULLSCREEN) ? this.removeAttribute(n.FULLSCREEN) : this.setAttribute(n.FULLSCREEN, "");
@@ -2163,59 +2195,59 @@ Si = new WeakMap(), it = new WeakMap(), Oe = new WeakMap(), vt = new WeakMap(),
2163
2195
  (v = this.querySelector("vindral-scroll-overlay")) == null || v.setAttribute("open", "");
2164
2196
  break;
2165
2197
  }
2166
- }, Ut = new WeakMap(), is = function() {
2198
+ }, Rt = new WeakMap(), rs = function() {
2167
2199
  return G(this, null, function* () {
2168
2200
  if (!e(this, b) || !e(this, nt))
2169
2201
  return;
2170
2202
  const t = Date.now();
2171
- if (e(this, Ut) && t - e(this, Ut) < 1e4)
2172
- e(this, N).debug("Skipping channel update, last update was less than 10 seconds ago.");
2203
+ if (e(this, Rt) && t - e(this, Rt) < 1e4)
2204
+ e(this, U).debug("Skipping channel update, last update was less than 10 seconds ago.");
2173
2205
  else {
2174
- c(this, Ut, t);
2206
+ c(this, Rt, t);
2175
2207
  const i = yield e(this, b).getApiClient().getChannels(e(this, nt));
2176
2208
  r(this, h, A).call(this, n.CHANNELS, JSON.stringify(i));
2177
2209
  }
2178
- c(this, ft, window.setTimeout(() => void r(this, h, is).call(this), 1e4));
2210
+ c(this, ft, window.setTimeout(() => void r(this, h, rs).call(this), 1e4));
2179
2211
  });
2180
- }, ss = function() {
2212
+ }, os = function() {
2181
2213
  !this.hasAttribute(n.USER_INTERACTING) || this.hasAttribute(n.UI_LOCKED) || (this.dispatchEvent(
2182
2214
  new CustomEvent("user-interacting", { bubbles: !0, composed: !0, detail: { active: !1 } })
2183
2215
  ), this.removeAttribute(n.USER_INTERACTING));
2184
- }, mi = function() {
2216
+ }, fi = function() {
2185
2217
  this.hasAttribute(n.USER_INTERACTING) || requestAnimationFrame(() => {
2186
2218
  this.setAttribute(n.USER_INTERACTING, ""), this.dispatchEvent(
2187
2219
  new CustomEvent("user-interacting", { bubbles: !0, composed: !0, detail: { active: !0 } })
2188
2220
  );
2189
2221
  });
2190
2222
  }, pt = function() {
2191
- r(this, h, mi).call(this), e(this, vt) && clearTimeout(e(this, vt)), e(this, Oe) && c(this, vt, self.setTimeout(() => {
2192
- r(this, h, ss).call(this);
2223
+ r(this, h, fi).call(this), e(this, vt) && clearTimeout(e(this, vt)), e(this, Oe) && c(this, vt, self.setTimeout(() => {
2224
+ r(this, h, os).call(this);
2193
2225
  }, e(this, Oe)));
2194
- }, Fn = function() {
2226
+ }, Gn = function() {
2195
2227
  var t;
2196
- r(this, h, rs).call(this), (t = e(this, rt)) == null || t.request().catch((i) => {
2197
- e(this, N).warn("Failed to enter picture in picture:", i);
2228
+ r(this, h, ls).call(this), (t = e(this, rt)) == null || t.request().catch((i) => {
2229
+ e(this, U).warn("Failed to enter picture in picture:", i);
2198
2230
  });
2199
- }, Hn = function() {
2231
+ }, $n = function() {
2200
2232
  var t;
2201
2233
  (t = e(this, rt)) == null || t.exit().catch((i) => {
2202
- e(this, N).warn("Failed to exit picture in picture:", i);
2234
+ e(this, U).warn("Failed to exit picture in picture:", i);
2203
2235
  });
2204
- }, zn = function() {
2236
+ }, Bn = function() {
2205
2237
  var t, i;
2206
- (t = e(this, B)) != null && t.isFullscreenApiSupported() ? (r(this, h, rs).call(this), (i = e(this, B)) == null || i.request().then(() => {
2207
- e(this, Ui).call(this);
2238
+ (t = e(this, B)) != null && t.isFullscreenApiSupported() ? (r(this, h, ls).call(this), (i = e(this, B)) == null || i.request().then(() => {
2239
+ e(this, Mi).call(this);
2208
2240
  }).catch((s) => {
2209
- e(this, N).warn("Failed to enter fullscreen:", s);
2241
+ e(this, U).warn("Failed to enter fullscreen:", s);
2210
2242
  })) : (this.setAttribute(n.FULLSCREEN_FALLBACK, ""), r(this, h, A).call(this, n.FULLSCREEN, ""));
2211
- }, ns = function() {
2243
+ }, as = function() {
2212
2244
  var t, i;
2213
2245
  (t = e(this, B)) != null && t.isFullscreenApiSupported() ? (i = e(this, B)) == null || i.exit().then(() => {
2214
- e(this, _i).call(this);
2246
+ e(this, Di).call(this);
2215
2247
  }).catch((s) => {
2216
- e(this, N).warn("Failed to exit fullscreen:", s);
2248
+ e(this, U).warn("Failed to exit fullscreen:", s);
2217
2249
  }) : (this.removeAttribute(n.FULLSCREEN_FALLBACK), r(this, h, w).call(this, n.FULLSCREEN));
2218
- }, Ui = new WeakMap(), _i = new WeakMap(), rs = function() {
2250
+ }, Mi = new WeakMap(), Di = new WeakMap(), ls = function() {
2219
2251
  if (!e(this, b)) return;
2220
2252
  e(this, b).emitter.emit("ios-hack: reset size");
2221
2253
  }, A = function(t, i) {
@@ -2225,7 +2257,7 @@ Si = new WeakMap(), it = new WeakMap(), Oe = new WeakMap(), vt = new WeakMap(),
2225
2257
  var i;
2226
2258
  (i = e(this, it).get(t)) == null || i.forEach((s) => s.removeAttribute(t));
2227
2259
  }, m(fe, "observedAttributes", [
2228
- ...Ks,
2260
+ ...js,
2229
2261
  "url",
2230
2262
  "edge-url",
2231
2263
  "target-buffer-time",
@@ -2250,13 +2282,17 @@ Si = new WeakMap(), it = new WeakMap(), Oe = new WeakMap(), vt = new WeakMap(),
2250
2282
  "advanced",
2251
2283
  "drm-headers",
2252
2284
  "drm-queryparams",
2285
+ "drm-widevine-video-robustness",
2286
+ "drm-widevine-audio-robustness",
2287
+ "drm-playready-video-robustness",
2288
+ "drm-playready-audio-robustness",
2253
2289
  "webtransport-enabled",
2254
2290
  "reconnect-retries",
2255
2291
  "auto-instance-enabled",
2256
2292
  "language"
2257
- ]), l(fe, Si, "https://lb.cdn.vindral.com");
2293
+ ]), l(fe, Ri, "https://lb.cdn.vindral.com");
2258
2294
  let Le = fe;
2259
- const Gn = document.createElement("template"), po = (
2295
+ const Kn = document.createElement("template"), po = (
2260
2296
  /* SVG */
2261
2297
  `
2262
2298
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-maximize"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 8v-2a2 2 0 0 1 2 -2h2" /><path d="M4 16v2a2 2 0 0 0 2 2h2" /><path d="M16 4h2a2 2 0 0 1 2 2v2" /><path d="M16 20h2a2 2 0 0 0 2 -2v-2" /></svg>
@@ -2267,7 +2303,7 @@ const Gn = document.createElement("template"), po = (
2267
2303
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-minimize"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M15 19v-2a2 2 0 0 1 2 -2h2" /><path d="M15 5v2a2 2 0 0 0 2 2h2" /><path d="M5 15h2a2 2 0 0 1 2 2v2" /><path d="M5 9h2a2 2 0 0 0 2 -2v-2" /></svg>
2268
2304
  `
2269
2305
  );
2270
- Gn.innerHTML = /* HTML */
2306
+ Kn.innerHTML = /* HTML */
2271
2307
  `
2272
2308
  <style>
2273
2309
  :host {
@@ -2291,7 +2327,7 @@ Gn.innerHTML = /* HTML */
2291
2327
  const Ee = class Ee extends tt {
2292
2328
  constructor() {
2293
2329
  var a;
2294
- super(), (a = this.shadowRoot) == null || a.appendChild(Gn.content.cloneNode(!0));
2330
+ super(), (a = this.shadowRoot) == null || a.appendChild(Kn.content.cloneNode(!0));
2295
2331
  }
2296
2332
  connectedCallback() {
2297
2333
  super.connectedCallback(), this.setAttribute("aria-label", this.isFullscreen ? "Exit fullscreen" : "Enter fullscreen");
@@ -2314,14 +2350,14 @@ const Ee = class Ee extends tt {
2314
2350
  }
2315
2351
  };
2316
2352
  m(Ee, "observedAttributes", [...q(Ee, Ee, "observedAttributes"), n.FULLSCREEN]);
2317
- let os = Ee;
2353
+ let hs = Ee;
2318
2354
  const mo = (
2319
2355
  /* SVG */
2320
2356
  `
2321
2357
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 5h7" /><path d="M9 3v2c0 4.418 -2.239 8 -5 8" /><path d="M5 9c0 2.144 2.952 3.908 6.7 4" /><path d="M12 20l4 -9l4 9" /><path d="M19.1 18h-6.2" /></svg>
2322
2358
  `
2323
- ), $n = document.createElement("template");
2324
- $n.innerHTML = /* HTML */
2359
+ ), qn = document.createElement("template");
2360
+ qn.innerHTML = /* HTML */
2325
2361
  `
2326
2362
  <style>
2327
2363
  :host(:not([hidden])) {
@@ -2334,33 +2370,33 @@ $n.innerHTML = /* HTML */
2334
2370
  <vindral-language-menu-list id="listbox" part="listbox"></vindral-language-menu-list>
2335
2371
  </slot>
2336
2372
  `;
2337
- var Be, ls;
2338
- const Ae = class Ae extends Us {
2373
+ var Be, cs;
2374
+ const Ae = class Ae extends Ms {
2339
2375
  constructor() {
2340
2376
  var t, i, s, o;
2341
2377
  super();
2342
2378
  l(this, Be);
2343
- (t = this.shadowRoot) == null || t.appendChild($n.content.cloneNode(!0)), this.button = (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot[name=button]"), this.listbox = (s = this.shadowRoot) == null ? void 0 : s.querySelector("[part=listbox]"), this.listboxSlot = (o = this.shadowRoot) == null ? void 0 : o.querySelector("slot[name=listbox]");
2379
+ (t = this.shadowRoot) == null || t.appendChild(qn.content.cloneNode(!0)), this.button = (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot[name=button]"), this.listbox = (s = this.shadowRoot) == null ? void 0 : s.querySelector("[part=listbox]"), this.listboxSlot = (o = this.shadowRoot) == null ? void 0 : o.querySelector("slot[name=listbox]");
2344
2380
  }
2345
2381
  connectedCallback() {
2346
- super.connectedCallback(), r(this, Be, ls).call(this), this.setAttribute("aria-label", "Languages");
2382
+ super.connectedCallback(), r(this, Be, cs).call(this), this.setAttribute("aria-label", "Languages");
2347
2383
  }
2348
2384
  attributeChangedCallback(t, i, s) {
2349
- super.attributeChangedCallback(t, i, s), (t === n.LANGUAGES || t === n.TEXT_TRACKS) && r(this, Be, ls).call(this);
2385
+ super.attributeChangedCallback(t, i, s), (t === n.LANGUAGES || t === n.TEXT_TRACKS) && r(this, Be, cs).call(this);
2350
2386
  }
2351
2387
  };
2352
- Be = new WeakSet(), ls = function() {
2388
+ Be = new WeakSet(), cs = function() {
2353
2389
  const t = (o) => (o ? JSON.parse(o) : []).length < 2, i = t(this.getAttribute(n.LANGUAGES)), s = t(this.getAttribute(n.TEXT_TRACKS));
2354
2390
  i && s ? this.setAttribute("hidden", "") : this.removeAttribute("hidden");
2355
2391
  }, m(Ae, "observedAttributes", [...q(Ae, Ae, "observedAttributes"), n.LANGUAGES, n.TEXT_TRACKS]);
2356
- let as = Ae;
2357
- const Bn = document.createElement("template"), vo = (
2392
+ let ds = Ae;
2393
+ const Xn = document.createElement("template"), vo = (
2358
2394
  /* SVG */
2359
2395
  `
2360
2396
  <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="#fff" viewBox="0 0 78.369 78.369" xml:space="preserve"><path d="M78.049 19.015 29.458 67.606a1.094 1.094 0 0 1-1.548 0L.32 40.015a1.094 1.094 0 0 1 0-1.547l6.704-6.704a1.095 1.095 0 0 1 1.548 0l20.113 20.112 41.113-41.113a1.095 1.095 0 0 1 1.548 0l6.703 6.704a1.094 1.094 0 0 1 0 1.548z"/></svg>
2361
2397
  `
2362
2398
  );
2363
- Bn.innerHTML = /* HTML */
2399
+ Xn.innerHTML = /* HTML */
2364
2400
  `
2365
2401
  <style>
2366
2402
  :host {
@@ -2475,36 +2511,36 @@ Bn.innerHTML = /* HTML */
2475
2511
  <div class="menu"></div>
2476
2512
  </div>
2477
2513
  `;
2478
- var Ke, qe, Xe, Ve, Q, K, _t, Et, ie, je, at, W, E, qn, Xn, hs, ds, vi, ue, pe, Vn, jn, Yn, cs, us, Jn;
2479
- class Kn extends HTMLElement {
2514
+ var Ke, qe, Xe, je, Q, K, _t, Et, ie, Ve, at, W, E, Vn, Yn, us, ps, Ei, ue, pe, Jn, Qn, Wn, bs, ms, Zn;
2515
+ class jn extends HTMLElement {
2480
2516
  constructor() {
2481
2517
  super();
2482
2518
  l(this, E);
2483
2519
  l(this, Ke, []);
2484
2520
  l(this, qe, []);
2485
2521
  l(this, Xe);
2486
- l(this, Ve);
2522
+ l(this, je);
2487
2523
  l(this, Q, []);
2488
2524
  l(this, K, []);
2489
2525
  l(this, _t, null);
2490
2526
  l(this, Et, null);
2491
2527
  l(this, ie, null);
2492
- l(this, je, null);
2528
+ l(this, Ve, null);
2493
2529
  l(this, at, null);
2494
2530
  l(this, W, null);
2495
2531
  m(this, "handleEvent", (t) => {
2496
2532
  switch (t.type) {
2497
2533
  case "keydown":
2498
- r(this, E, jn).call(this, t);
2534
+ r(this, E, Qn).call(this, t);
2499
2535
  break;
2500
2536
  }
2501
2537
  });
2502
- this.attachShadow({ mode: "open" }).appendChild(Bn.content.cloneNode(!0));
2538
+ this.attachShadow({ mode: "open" }).appendChild(Xn.content.cloneNode(!0));
2503
2539
  }
2504
2540
  connectedCallback() {
2505
2541
  var i, s, o;
2506
2542
  const t = this.getRootNode();
2507
- t instanceof ShadowRoot && (c(this, ie, t.host.closest("vindral-controller")), (i = e(this, ie)) == null || i.connectListener(this), c(this, _t, (s = this.shadowRoot) == null ? void 0 : s.querySelector("#languages .menu")), c(this, Et, (o = this.shadowRoot) == null ? void 0 : o.querySelector("#text-tracks .menu")), r(this, E, qn).call(this), r(this, E, Xn).call(this), c(this, je, t.host), this.addEventListener("keydown", this));
2543
+ t instanceof ShadowRoot && (c(this, ie, t.host.closest("vindral-controller")), (i = e(this, ie)) == null || i.connectListener(this), c(this, _t, (s = this.shadowRoot) == null ? void 0 : s.querySelector("#languages .menu")), c(this, Et, (o = this.shadowRoot) == null ? void 0 : o.querySelector("#text-tracks .menu")), r(this, E, Vn).call(this), r(this, E, Yn).call(this), c(this, Ve, t.host), this.addEventListener("keydown", this));
2508
2544
  }
2509
2545
  disconnectedCallback() {
2510
2546
  this.removeEventListener("keydown", this);
@@ -2513,16 +2549,16 @@ class Kn extends HTMLElement {
2513
2549
  i !== s && (t === n.LANGUAGES && s && (this.languages = JSON.parse(s)), t === n.TEXT_TRACKS && s && (this.textTracks = JSON.parse(s)), t === n.LANGUAGE && (this.language = s), t === n.TEXT_TRACK && (this.textTrack = s));
2514
2550
  }
2515
2551
  set languages(t) {
2516
- c(this, Ke, t), r(this, E, ds).call(this), r(this, E, ue).call(this);
2552
+ c(this, Ke, t), r(this, E, ps).call(this), r(this, E, ue).call(this);
2517
2553
  }
2518
2554
  set textTracks(t) {
2519
- c(this, qe, t), r(this, E, hs).call(this), r(this, E, pe).call(this);
2555
+ c(this, qe, t), r(this, E, us).call(this), r(this, E, pe).call(this);
2520
2556
  }
2521
2557
  set language(t) {
2522
2558
  c(this, Xe, t), r(this, E, ue).call(this);
2523
2559
  }
2524
2560
  set textTrack(t) {
2525
- c(this, Ve, t), r(this, E, pe).call(this);
2561
+ c(this, je, t), r(this, E, pe).call(this);
2526
2562
  }
2527
2563
  get keysUsed() {
2528
2564
  return ["Enter", "Escape", "Tab", " ", "ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight", "Home", "End"];
@@ -2531,7 +2567,7 @@ class Kn extends HTMLElement {
2531
2567
  e(this, at) ? e(this, at).focus() : e(this, W) && e(this, W).focus();
2532
2568
  }
2533
2569
  }
2534
- Ke = new WeakMap(), qe = new WeakMap(), Xe = new WeakMap(), Ve = new WeakMap(), Q = new WeakMap(), K = new WeakMap(), _t = new WeakMap(), Et = new WeakMap(), ie = new WeakMap(), je = new WeakMap(), at = new WeakMap(), W = new WeakMap(), E = new WeakSet(), qn = function() {
2570
+ Ke = new WeakMap(), qe = new WeakMap(), Xe = new WeakMap(), je = new WeakMap(), Q = new WeakMap(), K = new WeakMap(), _t = new WeakMap(), Et = new WeakMap(), ie = new WeakMap(), Ve = new WeakMap(), at = new WeakMap(), W = new WeakMap(), E = new WeakSet(), Vn = function() {
2535
2571
  const t = (s) => {
2536
2572
  s.forEach((o) => {
2537
2573
  if (o.intersectionRatio !== 1)
@@ -2548,68 +2584,68 @@ Ke = new WeakMap(), qe = new WeakMap(), Xe = new WeakMap(), Ve = new WeakMap(),
2548
2584
  threshold: 0
2549
2585
  // 0 means any intersection is enough to be considered "inside"
2550
2586
  }).observe(this);
2551
- }, Xn = function() {
2552
- e(this, _t) && (r(this, E, ds).call(this), r(this, E, ue).call(this)), e(this, Et) && (r(this, E, hs).call(this), r(this, E, pe).call(this));
2553
- }, hs = function() {
2587
+ }, Yn = function() {
2588
+ e(this, _t) && (r(this, E, ps).call(this), r(this, E, ue).call(this)), e(this, Et) && (r(this, E, us).call(this), r(this, E, pe).call(this));
2589
+ }, us = function() {
2554
2590
  e(this, Et).innerHTML = "", c(this, K, []);
2555
- const t = r(this, E, vi).call(this, "Off", "textTrack", void 0);
2591
+ const t = r(this, E, Ei).call(this, "Off", "textTrack", void 0);
2556
2592
  e(this, Et).appendChild(t), e(this, K).push({ element: t, value: void 0 }), e(this, qe).forEach((i) => {
2557
- const s = r(this, E, vi).call(this, i, "textTrack", i);
2593
+ const s = r(this, E, Ei).call(this, i, "textTrack", i);
2558
2594
  e(this, Et).appendChild(s), e(this, K).push({ element: s, value: i });
2559
2595
  }), r(this, E, pe).call(this);
2560
- }, ds = function() {
2596
+ }, ps = function() {
2561
2597
  e(this, _t).innerHTML = "", c(this, Q, []), e(this, Ke).forEach((t) => {
2562
- const i = r(this, E, vi).call(this, t, "language", t);
2598
+ const i = r(this, E, Ei).call(this, t, "language", t);
2563
2599
  e(this, _t).appendChild(i), e(this, Q).push({ element: i, value: t });
2564
2600
  }), r(this, E, ue).call(this);
2565
- }, vi = function(t, i, s) {
2601
+ }, Ei = function(t, i, s) {
2566
2602
  const o = document.createElement("div");
2567
- return o.setAttribute("role", "menuitem"), o.textContent = t, o.addEventListener("click", () => r(this, E, Vn).call(this, s, i)), o;
2603
+ return o.setAttribute("role", "menuitem"), o.textContent = t, o.addEventListener("click", () => r(this, E, Jn).call(this, s, i)), o;
2568
2604
  }, ue = function() {
2569
2605
  e(this, at) && (e(this, at).removeAttribute("aria-selected"), e(this, at).tabIndex = -1);
2570
2606
  const t = e(this, Q).find((i) => i.value === e(this, Xe));
2571
2607
  t && (t.element.setAttribute("aria-selected", "true"), t.element.tabIndex = 0, c(this, at, t.element));
2572
2608
  }, pe = function() {
2573
2609
  e(this, W) && (e(this, W).removeAttribute("aria-selected"), e(this, W).tabIndex = -1);
2574
- const t = e(this, K).find((i) => i.value === e(this, Ve));
2610
+ const t = e(this, K).find((i) => i.value === e(this, je));
2575
2611
  if (t)
2576
2612
  t.element.setAttribute("aria-selected", "true"), t.element.tabIndex = 0, c(this, W, t.element);
2577
2613
  else {
2578
2614
  const i = e(this, K).find((s) => s.value === void 0);
2579
2615
  i && (i.element.setAttribute("aria-selected", "true"), i.element.tabIndex = 0, c(this, W, i.element));
2580
2616
  }
2581
- }, Vn = function(t, i) {
2617
+ }, Jn = function(t, i) {
2582
2618
  this.dispatchEvent(new Event("change", { bubbles: !0, composed: !0 }));
2583
2619
  const s = i === "language" ? f.SET_LANGUAGE : f.SET_TEXT_TRACK;
2584
2620
  this.dispatchEvent(new CustomEvent(s, { bubbles: !0, composed: !0, detail: t }));
2585
- }, jn = function(t) {
2621
+ }, Qn = function(t) {
2586
2622
  var u, v, g;
2587
2623
  const { key: i, ctrlKey: s, altKey: o, metaKey: p } = t;
2588
- s || o || p || this.keysUsed.includes(i) && (t.preventDefault(), t.stopPropagation(), i === "Tab" || i === "Escape" ? (u = e(this, je)) == null || u.hide() : i === "Enter" || i === " " ? (g = (v = r(this, E, us).call(this)) == null ? void 0 : v.element) == null || g.click() : r(this, E, Yn).call(this, t));
2589
- }, Yn = function(t) {
2624
+ s || o || p || this.keysUsed.includes(i) && (t.preventDefault(), t.stopPropagation(), i === "Tab" || i === "Escape" ? (u = e(this, Ve)) == null || u.hide() : i === "Enter" || i === " " ? (g = (v = r(this, E, ms).call(this)) == null ? void 0 : v.element) == null || g.click() : r(this, E, Wn).call(this, t));
2625
+ }, Wn = function(t) {
2590
2626
  var g;
2591
- const { key: i } = t, s = [...e(this, Q), ...e(this, K)], o = (g = r(this, E, us).call(this)) != null ? g : s[0];
2627
+ const { key: i } = t, s = [...e(this, Q), ...e(this, K)], o = (g = r(this, E, ms).call(this)) != null ? g : s[0];
2592
2628
  if (!o) return;
2593
2629
  const p = s.indexOf(o);
2594
2630
  let u = Math.max(0, p);
2595
- i === "ArrowDown" ? u++ : i === "ArrowUp" ? u-- : i === "ArrowLeft" ? u = r(this, E, cs).call(this, p, "left") : i === "ArrowRight" ? u = r(this, E, cs).call(this, p, "right") : t.key === "Home" ? u = 0 : t.key === "End" && (u = s.length - 1), u < 0 && (u = s.length - 1), u > s.length - 1 && (u = 0);
2631
+ i === "ArrowDown" ? u++ : i === "ArrowUp" ? u-- : i === "ArrowLeft" ? u = r(this, E, bs).call(this, p, "left") : i === "ArrowRight" ? u = r(this, E, bs).call(this, p, "right") : t.key === "Home" ? u = 0 : t.key === "End" && (u = s.length - 1), u < 0 && (u = s.length - 1), u > s.length - 1 && (u = 0);
2596
2632
  const v = s[u];
2597
- v && (r(this, E, Jn).call(this, v.value), v.element.focus());
2598
- }, cs = function(t, i) {
2633
+ v && (r(this, E, Zn).call(this, v.value), v.element.focus());
2634
+ }, bs = function(t, i) {
2599
2635
  const s = e(this, Q).length, o = e(this, K).length;
2600
2636
  return i === "left" ? t < s ? s + o - 1 : t - s - 1 : t >= s ? 0 : t + s;
2601
- }, us = function() {
2637
+ }, ms = function() {
2602
2638
  return [...e(this, Q), ...e(this, K)].find((t) => t.element.tabIndex === 0);
2603
- }, Jn = function(t) {
2639
+ }, Zn = function(t) {
2604
2640
  for (const i of [...e(this, Q), ...e(this, K)])
2605
2641
  i.element.tabIndex = i.value === t ? 0 : -1;
2606
- }, m(Kn, "observedAttributes", [
2642
+ }, m(jn, "observedAttributes", [
2607
2643
  n.LANGUAGES,
2608
2644
  n.TEXT_TRACKS,
2609
2645
  n.LANGUAGE,
2610
2646
  n.TEXT_TRACK
2611
2647
  ]);
2612
- const Qn = document.createElement("template"), go = (
2648
+ const tr = document.createElement("template"), go = (
2613
2649
  /* SVG */
2614
2650
  `
2615
2651
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" <g fill="none" stroke="currentColor">
@@ -2624,7 +2660,7 @@ const Qn = document.createElement("template"), go = (
2624
2660
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" /></svg>
2625
2661
  `
2626
2662
  );
2627
- Qn.innerHTML = /* HTML */
2663
+ tr.innerHTML = /* HTML */
2628
2664
  `
2629
2665
  <style>
2630
2666
  :host {
@@ -2648,7 +2684,7 @@ Qn.innerHTML = /* HTML */
2648
2684
  const ye = class ye extends tt {
2649
2685
  constructor() {
2650
2686
  var a;
2651
- super(), (a = this.shadowRoot) == null || a.appendChild(Qn.content.cloneNode(!0));
2687
+ super(), (a = this.shadowRoot) == null || a.appendChild(tr.content.cloneNode(!0));
2652
2688
  }
2653
2689
  connectedCallback() {
2654
2690
  super.connectedCallback(), this.setAttribute("aria-label", this.muted ? "UnMute" : "Mute");
@@ -2671,14 +2707,14 @@ const ye = class ye extends tt {
2671
2707
  }
2672
2708
  };
2673
2709
  m(ye, "observedAttributes", [...q(ye, ye, "observedAttributes"), n.MUTED]);
2674
- let ps = ye;
2675
- const Wn = document.createElement("template"), Eo = (
2710
+ let vs = ye;
2711
+ const er = document.createElement("template"), Eo = (
2676
2712
  /* SVG */
2677
2713
  `
2678
2714
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M19 4a3 3 0 0 1 3 3v4a1 1 0 0 1 -2 0v-4a1 1 0 0 0 -1 -1h-14a1 1 0 0 0 -1 1v10a1 1 0 0 0 1 1h6a1 1 0 0 1 0 2h-6a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3z" /><path d="M20 13a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-5a2 2 0 0 1 -2 -2v-3a2 2 0 0 1 2 -2z" /></svg>
2679
2715
  `
2680
2716
  );
2681
- Wn.innerHTML = /* HTML */
2717
+ er.innerHTML = /* HTML */
2682
2718
  `
2683
2719
  <style>
2684
2720
  :host {
@@ -2694,7 +2730,7 @@ Wn.innerHTML = /* HTML */
2694
2730
  const ke = class ke extends tt {
2695
2731
  constructor() {
2696
2732
  var a;
2697
- super(), (a = this.shadowRoot) == null || a.appendChild(Wn.content.cloneNode(!0));
2733
+ super(), (a = this.shadowRoot) == null || a.appendChild(er.content.cloneNode(!0));
2698
2734
  }
2699
2735
  connectedCallback() {
2700
2736
  super.connectedCallback(), this.setAttribute(
@@ -2723,8 +2759,8 @@ const ke = class ke extends tt {
2723
2759
  }
2724
2760
  };
2725
2761
  m(ke, "observedAttributes", [...q(ke, ke, "observedAttributes"), n.IS_PIP, n.PIP_AVAILABLE]);
2726
- let bs = ke;
2727
- const Zn = document.createElement("template"), Ao = (
2762
+ let gs = ke;
2763
+ const ir = document.createElement("template"), Ao = (
2728
2764
  /* SVG */
2729
2765
  `
2730
2766
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z" /></svg>
@@ -2735,7 +2771,7 @@ const Zn = document.createElement("template"), Ao = (
2735
2771
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" /><path d="M17 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" /></svg>
2736
2772
  `
2737
2773
  );
2738
- Zn.innerHTML = /* HTML */
2774
+ ir.innerHTML = /* HTML */
2739
2775
  `
2740
2776
  <style>
2741
2777
  :host {
@@ -2759,7 +2795,7 @@ Zn.innerHTML = /* HTML */
2759
2795
  const we = class we extends tt {
2760
2796
  constructor() {
2761
2797
  var a;
2762
- super(), (a = this.shadowRoot) == null || a.appendChild(Zn.content.cloneNode(!0));
2798
+ super(), (a = this.shadowRoot) == null || a.appendChild(ir.content.cloneNode(!0));
2763
2799
  }
2764
2800
  connectedCallback() {
2765
2801
  super.connectedCallback(), this.setAttribute("aria-label", this.paused ? "Play" : "Pause");
@@ -2782,14 +2818,14 @@ const we = class we extends tt {
2782
2818
  }
2783
2819
  };
2784
2820
  m(we, "observedAttributes", [...q(we, we, "observedAttributes"), n.PAUSED]);
2785
- let ms = we;
2821
+ let fs = we;
2786
2822
  const X = {
2787
2823
  TITLE: "title",
2788
2824
  OFFLINE: "offline",
2789
2825
  REFRESH_POSTER_ENABLED: "refresh-poster-enabled",
2790
2826
  STREAM_POLL_ENABLED: "stream-poll-enabled"
2791
2827
  }, ko = Object.values(X);
2792
- var Ye, se, At, Pt, yt, kt, lt, H, vs, tr, gs, fs;
2828
+ var Ye, se, At, Pt, yt, kt, lt, H, Es, sr, As, ys;
2793
2829
  class wo extends li {
2794
2830
  constructor(t) {
2795
2831
  super();
@@ -2807,15 +2843,15 @@ class wo extends li {
2807
2843
  }));
2808
2844
  }
2809
2845
  start(t = 5e3) {
2810
- e(this, lt) && clearInterval(e(this, lt)), c(this, At, !1), c(this, Pt, !1), r(this, H, fs).call(this), r(this, H, vs).call(this), c(this, lt, window.setInterval(() => {
2811
- !e(this, Pt) && !e(this, se).infiniteReconnect && !e(this, kt) && e(this, yt) && c(this, kt, window.setTimeout(() => r(this, H, tr).call(this), 5 * 60 * 1e3)), !e(this, Pt) && e(this, yt) && r(this, H, vs).call(this);
2846
+ e(this, lt) && clearInterval(e(this, lt)), c(this, At, !1), c(this, Pt, !1), r(this, H, ys).call(this), r(this, H, Es).call(this), c(this, lt, window.setInterval(() => {
2847
+ !e(this, Pt) && !e(this, se).infiniteReconnect && !e(this, kt) && e(this, yt) && c(this, kt, window.setTimeout(() => r(this, H, sr).call(this), 5 * 60 * 1e3)), !e(this, Pt) && e(this, yt) && r(this, H, Es).call(this);
2812
2848
  }, t));
2813
2849
  }
2814
2850
  stop() {
2815
- r(this, H, gs).call(this), e(this, lt) && (window.clearInterval(e(this, lt)), c(this, lt, null));
2851
+ r(this, H, As).call(this), e(this, lt) && (window.clearInterval(e(this, lt)), c(this, lt, null));
2816
2852
  }
2817
2853
  }
2818
- Ye = new WeakMap(), se = new WeakMap(), At = new WeakMap(), Pt = new WeakMap(), yt = new WeakMap(), kt = new WeakMap(), lt = new WeakMap(), H = new WeakSet(), vs = function() {
2854
+ Ye = new WeakMap(), se = new WeakMap(), At = new WeakMap(), Pt = new WeakMap(), yt = new WeakMap(), kt = new WeakMap(), lt = new WeakMap(), H = new WeakSet(), Es = function() {
2819
2855
  return G(this, null, function* () {
2820
2856
  if (e(this, At))
2821
2857
  return;
@@ -2824,7 +2860,7 @@ Ye = new WeakMap(), se = new WeakMap(), At = new WeakMap(), Pt = new WeakMap(),
2824
2860
  try {
2825
2861
  const s = yield e(this, Ye).getChannel(e(this, se).channelId);
2826
2862
  if (s.isLive) {
2827
- c(this, Pt, !0), r(this, H, fs).call(this), this.emit("live", s), c(this, At, !1);
2863
+ c(this, Pt, !0), r(this, H, ys).call(this), this.emit("live", s), c(this, At, !1);
2828
2864
  return;
2829
2865
  }
2830
2866
  } catch (s) {
@@ -2832,17 +2868,17 @@ Ye = new WeakMap(), se = new WeakMap(), At = new WeakMap(), Pt = new WeakMap(),
2832
2868
  }
2833
2869
  e(this, yt) && this.emit("error", { title: t, message: i }), c(this, At, !1);
2834
2870
  });
2835
- }, tr = function() {
2871
+ }, sr = function() {
2836
2872
  this.stop(), c(this, yt, !1), this.emit("timeout");
2837
- }, gs = function() {
2873
+ }, As = function() {
2838
2874
  e(this, kt) && (window.clearTimeout(e(this, kt)), c(this, kt, null));
2839
- }, fs = function() {
2840
- r(this, H, gs).call(this), c(this, yt, !0);
2875
+ }, ys = function() {
2876
+ r(this, H, As).call(this), c(this, yt, !0);
2841
2877
  };
2842
2878
  const Io = new RegExp(
2843
2879
  "/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/",
2844
2880
  "i"
2845
- ), Co = navigator.userAgent.toLowerCase(), Lo = Io.test(Co), To = (d) => Le.observedAttributes.includes(d), er = (
2881
+ ), Co = navigator.userAgent.toLowerCase(), Lo = Io.test(Co), To = (d) => Le.observedAttributes.includes(d), nr = (
2846
2882
  /* HTML */
2847
2883
  `
2848
2884
  <style>
@@ -2883,6 +2919,11 @@ const Io = new RegExp(
2883
2919
  }
2884
2920
  }
2885
2921
 
2922
+ vindral-scroll-overlay {
2923
+ z-index: 20;
2924
+ // needs to be higher than bottom bar/UI
2925
+ }
2926
+
2886
2927
  :host([${X.OFFLINE}]) {
2887
2928
  aspect-ratio: 16 / 9;
2888
2929
  vindral-controller {
@@ -2920,7 +2961,7 @@ const Io = new RegExp(
2920
2961
  ), xo = (
2921
2962
  /* HTML */
2922
2963
  `
2923
- ${er}
2964
+ ${nr}
2924
2965
 
2925
2966
  <vindral-controller>
2926
2967
  <vindral-control-bar slot="top-bar">
@@ -2955,7 +2996,7 @@ const Io = new RegExp(
2955
2996
  ), So = (
2956
2997
  /* HTML */
2957
2998
  `
2958
- ${er}
2999
+ ${nr}
2959
3000
 
2960
3001
  <style>
2961
3002
  #control-bar {
@@ -2978,80 +3019,80 @@ const Io = new RegExp(
2978
3019
  <vindral-message id="vindral-message" slot="overlay" hidden></vindral-message>
2979
3020
  </vindral-controller>
2980
3021
  `
2981
- ), Bs = document.createElement("template");
2982
- var Z, R, M, ht, dt, Pi, Je, Mi, S, Es, sr, Qe, gi, xt;
2983
- class ir extends HTMLElement {
3022
+ ), Xs = document.createElement("template");
3023
+ var Z, x, M, ht, dt, Oi, Je, Fi, N, ks, or, Qe, Ai, xt;
3024
+ class rr extends HTMLElement {
2984
3025
  constructor() {
2985
3026
  super();
2986
- l(this, S);
3027
+ l(this, N);
2987
3028
  l(this, Z);
2988
- l(this, R);
3029
+ l(this, x);
2989
3030
  l(this, M);
2990
3031
  l(this, ht);
2991
3032
  l(this, dt);
2992
- l(this, Pi, () => {
3033
+ l(this, Oi, () => {
2993
3034
  Array.from(this.attributes).forEach((t) => {
2994
3035
  e(this, Je).call(this, t.name, t.value);
2995
3036
  });
2996
3037
  });
2997
3038
  l(this, Je, (t, i) => {
2998
- To(t) && (L(i) ? e(this, R).setAttribute(t, i) : e(this, R).removeAttribute(t));
3039
+ To(t) && (L(i) ? e(this, x).setAttribute(t, i) : e(this, x).removeAttribute(t));
2999
3040
  });
3000
- l(this, Mi, () => qs(this.getAttribute(n.MEDIA)) === "audio" ? So : xo);
3041
+ l(this, Fi, () => Vs(this.getAttribute(n.MEDIA)) === "audio" ? So : xo);
3001
3042
  l(this, Qe, () => {
3002
- const t = e(this, R).instance;
3043
+ const t = e(this, x).instance;
3003
3044
  t && (t.on("is live", (i) => {
3004
- i ? (this.removeAttribute(X.OFFLINE), e(this, M).setAttribute("hidden", "")) : (this.setAttribute(X.OFFLINE, ""), e(this, M).removeAttribute("hidden"), r(this, S, xt).call(this, "Stream is offline", "Please stand by"));
3045
+ i ? (this.removeAttribute(X.OFFLINE), e(this, M).setAttribute("hidden", "")) : (this.setAttribute(X.OFFLINE, ""), e(this, M).removeAttribute("hidden"), r(this, N, xt).call(this, "Stream is offline", "Please stand by"));
3005
3046
  }), t.on("channels", (i) => {
3006
- const s = e(this, R).getAttribute("channel-id"), o = i.find((p) => p.channelId === s);
3007
- o && r(this, S, gi).call(this, o.name);
3047
+ const s = e(this, x).getAttribute("channel-id"), o = i.find((p) => p.channelId === s);
3048
+ o && r(this, N, Ai).call(this, o);
3008
3049
  }), t.on("channel switch", ({ channelId: i }) => {
3009
3050
  const s = t.channels.find((o) => o.channelId === i);
3010
- s && r(this, S, gi).call(this, s.name);
3051
+ s && r(this, N, Ai).call(this, s);
3011
3052
  }), t.on("error", (i) => {
3012
3053
  let s = "Stream is offline", o = "Please stand by";
3013
- i.isFatal() ? (i.code() === Jr ? (s = "Forbidden", o = "You do not have permission to view this stream", r(this, S, xt).call(this, s, o)) : r(this, S, xt).call(this, "An error occurred", i.message), e(this, ht).removeAttribute("hidden"), this.setAttribute(X.OFFLINE, "")) : i.code() === Qr && r(this, S, xt).call(this, s, o);
3054
+ i.isFatal() ? (i.code() === Jr ? (s = "Forbidden", o = "You do not have permission to view this stream", r(this, N, xt).call(this, s, o)) : r(this, N, xt).call(this, "An error occurred", i.message), e(this, ht).removeAttribute("hidden"), this.setAttribute(X.OFFLINE, ""), e(this, x).dispatchEvent(new CustomEvent(f.EXIT_FULLSCREEN)), e(this, x).dispatchEvent(new CustomEvent(f.EXIT_PIP))) : i.code() === Qr && r(this, N, xt).call(this, s, o);
3014
3055
  }));
3015
3056
  });
3016
- c(this, Z, this.attachShadow({ mode: "open" })), r(this, S, Es).call(this), c(this, R, e(this, Z).querySelector("vindral-controller")), c(this, M, e(this, Z).querySelector("#vindral-message")), c(this, ht, e(this, Z).querySelector("#play-overlay"));
3057
+ c(this, Z, this.attachShadow({ mode: "open" })), r(this, N, ks).call(this), c(this, x, e(this, Z).querySelector("vindral-controller")), c(this, M, e(this, Z).querySelector("#vindral-message")), c(this, ht, e(this, Z).querySelector("#play-overlay"));
3017
3058
  }
3018
3059
  connectedCallback() {
3019
- this.setAttribute(X.OFFLINE, ""), e(this, R).addEventListener("vindral-instance-ready", e(this, Qe)), r(this, S, sr).call(this);
3060
+ this.setAttribute(X.OFFLINE, ""), e(this, x).addEventListener("vindral-instance-ready", e(this, Qe)), r(this, N, or).call(this);
3020
3061
  }
3021
3062
  disconnectedCallback() {
3022
3063
  var t;
3023
- e(this, R).removeEventListener("vindral-instance-ready", e(this, Qe)), (t = e(this, dt)) == null || t.stop();
3064
+ e(this, x).removeEventListener("vindral-instance-ready", e(this, Qe)), (t = e(this, dt)) == null || t.stop();
3024
3065
  }
3025
3066
  attributeChangedCallback(t, i, s) {
3026
3067
  if (i !== s)
3027
3068
  if (t === n.MEDIA)
3028
- r(this, S, Es).call(this);
3069
+ r(this, N, ks).call(this);
3029
3070
  else if (t === X.REFRESH_POSTER_ENABLED) {
3030
3071
  const o = e(this, Z).querySelector("vindral-poster-overlay");
3031
- o && (o.disabled = x(this.getAttribute(X.REFRESH_POSTER_ENABLED), !1) === !1);
3072
+ o && (o.disabled = S(this.getAttribute(X.REFRESH_POSTER_ENABLED), !1) === !1);
3032
3073
  } else
3033
3074
  e(this, Je).call(this, t, s);
3034
3075
  }
3035
3076
  get instance() {
3036
- return e(this, R).instance;
3077
+ return e(this, x).instance;
3037
3078
  }
3038
3079
  get airPlay() {
3039
- return e(this, R).airPlay;
3080
+ return e(this, x).airPlay;
3040
3081
  }
3041
3082
  }
3042
- Z = new WeakMap(), R = new WeakMap(), M = new WeakMap(), ht = new WeakMap(), dt = new WeakMap(), Pi = new WeakMap(), Je = new WeakMap(), Mi = new WeakMap(), S = new WeakSet(), Es = function() {
3043
- Bs.innerHTML = e(this, Mi).call(this);
3044
- const t = Bs.content.cloneNode(!0);
3045
- c(this, R, t.querySelector("vindral-controller")), c(this, M, t.querySelector("#vindral-message")), c(this, ht, t.querySelector("#play-overlay")), this.children.length > 0 && Array.from(this.children).forEach((i) => {
3046
- e(this, R).appendChild(i);
3047
- }), e(this, Pi).call(this), e(this, Z).innerHTML = "", e(this, Z).appendChild(t);
3048
- }, sr = function() {
3049
- var u;
3050
- if (x(this.getAttribute(X.STREAM_POLL_ENABLED), !0) === !1)
3083
+ Z = new WeakMap(), x = new WeakMap(), M = new WeakMap(), ht = new WeakMap(), dt = new WeakMap(), Oi = new WeakMap(), Je = new WeakMap(), Fi = new WeakMap(), N = new WeakSet(), ks = function() {
3084
+ Xs.innerHTML = e(this, Fi).call(this);
3085
+ const t = Xs.content.cloneNode(!0);
3086
+ c(this, x, t.querySelector("vindral-controller")), c(this, M, t.querySelector("#vindral-message")), c(this, ht, t.querySelector("#play-overlay")), this.children.length > 0 && Array.from(this.children).forEach((i) => {
3087
+ e(this, x).appendChild(i);
3088
+ }), e(this, Oi).call(this), e(this, Z).innerHTML = "", e(this, Z).appendChild(t);
3089
+ }, or = function() {
3090
+ var p;
3091
+ if (S(this.getAttribute(X.STREAM_POLL_ENABLED), !0) === !1)
3051
3092
  return;
3052
- const t = this.getAttribute("url"), i = this.getAttribute("channel-id"), s = (u = this.getAttribute("authentication-token")) != null ? u : void 0, o = this.hasAttribute("infinite-reconnect"), p = x(this.getAttribute("title"), !1);
3093
+ const t = this.getAttribute("url"), i = this.getAttribute("channel-id"), s = (p = this.getAttribute("authentication-token")) != null ? p : void 0, o = this.hasAttribute("infinite-reconnect");
3053
3094
  if (!t || !i) {
3054
- this.setAttribute(X.OFFLINE, ""), r(this, S, xt).call(this, "Invalid options", "Please enter at least a channel id and url to start the stream");
3095
+ this.setAttribute(X.OFFLINE, ""), r(this, N, xt).call(this, "Invalid options", "Please enter at least a channel id and url to start the stream");
3055
3096
  return;
3056
3097
  }
3057
3098
  c(this, dt, new wo({
@@ -3059,29 +3100,32 @@ Z = new WeakMap(), R = new WeakMap(), M = new WeakMap(), ht = new WeakMap(), dt
3059
3100
  channelId: i,
3060
3101
  authenticationToken: s,
3061
3102
  infiniteReconnect: o
3062
- })), e(this, dt).on("live", (v) => {
3063
- e(this, R).connect(), this.removeAttribute("offline"), e(this, M).setAttribute("hidden", ""), p && r(this, S, gi).call(this, v.name);
3103
+ })), e(this, dt).on("live", (u) => {
3104
+ e(this, x).connect(), this.removeAttribute("offline"), e(this, M).setAttribute("hidden", ""), r(this, N, Ai).call(this, u);
3064
3105
  }), e(this, dt).on("timeout", () => {
3065
3106
  e(this, M).setAttribute("hidden", ""), e(this, ht).removeAttribute("hidden");
3066
- }), e(this, dt).on("error", (v) => {
3067
- this.setAttribute(X.OFFLINE, ""), r(this, S, xt).call(this, v.title, v.message);
3107
+ }), e(this, dt).on("error", (u) => {
3108
+ this.setAttribute(X.OFFLINE, ""), r(this, N, xt).call(this, u.title, u.message);
3068
3109
  }), e(this, ht).addEventListener("click", () => {
3069
- e(this, R).connect(), e(this, ht).setAttribute("hidden", ""), e(this, M).setAttribute("hidden", ""), e(this, R).focus();
3110
+ e(this, x).connect(), e(this, ht).setAttribute("hidden", ""), e(this, M).setAttribute("hidden", ""), e(this, x).focus();
3070
3111
  }), this.hasAttribute("paused") && e(this, dt).start();
3071
- }, Qe = new WeakMap(), gi = function(t) {
3072
- if (!x(this.getAttribute("title"), !0)) return;
3073
- const i = Xs(this.getAttribute("poster"));
3074
- no({
3075
- title: t,
3076
- poster: typeof i == "string" ? i : void 0
3112
+ }, Qe = new WeakMap(), Ai = function(t) {
3113
+ var u, v;
3114
+ const i = Ys(this.getAttribute("title"), !1);
3115
+ if (!i) return;
3116
+ const s = this.getAttribute("poster"), o = typeof i == "string" ? i : t.name;
3117
+ let p;
3118
+ typeof s == "string" ? p = s : p = (v = (u = this.instance) == null ? void 0 : u.getThumbnailUrl()) != null ? v : t.thumbnailUrls.length ? t.thumbnailUrls[0] : void 0, no({
3119
+ title: o,
3120
+ poster: p
3077
3121
  });
3078
3122
  }, xt = function(t, i) {
3079
3123
  e(this, M).setAttribute("title", t), e(this, M).setAttribute("description", i);
3080
3124
  const s = this.getAttribute("poster");
3081
3125
  s && e(this, M).setAttribute("background-image", s), e(this, M).removeAttribute("hidden");
3082
- }, m(ir, "observedAttributes", [...Le.observedAttributes, ...ko]);
3083
- const nr = document.createElement("template");
3084
- nr.innerHTML = /* HTML */
3126
+ }, m(rr, "observedAttributes", [...Le.observedAttributes, ...ko]);
3127
+ const ar = document.createElement("template");
3128
+ ar.innerHTML = /* HTML */
3085
3129
  `
3086
3130
  <style>
3087
3131
  :host {
@@ -3118,34 +3162,34 @@ nr.innerHTML = /* HTML */
3118
3162
  </style>
3119
3163
  `;
3120
3164
  const No = 6e3;
3121
- var ne, wt, Mt, re, j, or, fi, As, Di;
3122
- class rr extends HTMLElement {
3165
+ var ne, wt, Mt, re, Y, hr, yi, ws, Hi;
3166
+ class lr extends HTMLElement {
3123
3167
  constructor() {
3124
3168
  super();
3125
- l(this, j);
3169
+ l(this, Y);
3126
3170
  l(this, ne, null);
3127
3171
  l(this, wt, null);
3128
3172
  l(this, Mt, null);
3129
3173
  l(this, re, () => {
3130
- !document.hidden && this.hasAttribute("intersecting") && this.paused && !this.disabled ? r(this, j, or).call(this) : r(this, j, fi).call(this);
3174
+ !document.hidden && this.hasAttribute("intersecting") && this.paused && !this.disabled ? r(this, Y, hr).call(this) : r(this, Y, yi).call(this);
3131
3175
  });
3132
- l(this, Di, (t) => {
3176
+ l(this, Hi, (t) => {
3133
3177
  t.forEach((i) => {
3134
3178
  i.isIntersecting ? this.setAttribute("intersecting", "") : this.removeAttribute("intersecting");
3135
3179
  });
3136
3180
  });
3137
- this.attachShadow({ mode: "open" }).appendChild(nr.content.cloneNode(!0));
3181
+ this.attachShadow({ mode: "open" }).appendChild(ar.content.cloneNode(!0));
3138
3182
  }
3139
3183
  connectedCallback() {
3140
3184
  var t;
3141
- c(this, ne, this.closest("vindral-controller")), (t = e(this, ne)) == null || t.connectListener(this), document.addEventListener("visibilitychange", e(this, re)), c(this, Mt, new IntersectionObserver(e(this, Di))), e(this, Mt).observe(this);
3185
+ c(this, ne, this.closest("vindral-controller")), (t = e(this, ne)) == null || t.connectListener(this), document.addEventListener("visibilitychange", e(this, re)), c(this, Mt, new IntersectionObserver(e(this, Hi))), e(this, Mt).observe(this);
3142
3186
  }
3143
3187
  disconnectedCallback() {
3144
3188
  var t, i;
3145
- (t = e(this, ne)) == null || t.disconnectListener(this), document.removeEventListener("visibilitychange", e(this, re)), (i = e(this, Mt)) == null || i.disconnect(), c(this, Mt, null), r(this, j, fi).call(this);
3189
+ (t = e(this, ne)) == null || t.disconnectListener(this), document.removeEventListener("visibilitychange", e(this, re)), (i = e(this, Mt)) == null || i.disconnect(), c(this, Mt, null), r(this, Y, yi).call(this);
3146
3190
  }
3147
3191
  attributeChangedCallback(t, i, s) {
3148
- i !== s && (t === n.POSTER_SRC && this.paused && !this.disabled && r(this, j, As).call(this), (t === n.PAUSED || t === "disabled" || t === "intersecting") && e(this, re).call(this));
3192
+ i !== s && (t === n.POSTER_SRC && this.paused && !this.disabled && r(this, Y, ws).call(this), (t === n.PAUSED || t === "disabled" || t === "intersecting") && e(this, re).call(this));
3149
3193
  }
3150
3194
  get disabled() {
3151
3195
  return this.hasAttribute("disabled");
@@ -3160,21 +3204,21 @@ class rr extends HTMLElement {
3160
3204
  return this.hasAttribute(n.PAUSED);
3161
3205
  }
3162
3206
  }
3163
- ne = new WeakMap(), wt = new WeakMap(), Mt = new WeakMap(), re = new WeakMap(), j = new WeakSet(), or = function() {
3164
- e(this, wt) === null && (r(this, j, fi).call(this), c(this, wt, window.setInterval(() => r(this, j, As).call(this), No)));
3165
- }, fi = function() {
3207
+ ne = new WeakMap(), wt = new WeakMap(), Mt = new WeakMap(), re = new WeakMap(), Y = new WeakSet(), hr = function() {
3208
+ e(this, wt) === null && (r(this, Y, yi).call(this), c(this, wt, window.setInterval(() => r(this, Y, ws).call(this), No)));
3209
+ }, yi = function() {
3166
3210
  e(this, wt) !== null && (clearInterval(e(this, wt)), c(this, wt, null)), this.style.backgroundImage = "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==')";
3167
- }, As = function() {
3211
+ }, ws = function() {
3168
3212
  if (!this.posterSrc) return;
3169
3213
  const t = new URL(this.posterSrc), i = new Image();
3170
3214
  t.searchParams.set("t", Date.now().toString()), i.src = t.toString(), i.onload = () => this.style.backgroundImage = `url(${t.toString()})`;
3171
- }, Di = new WeakMap(), m(rr, "observedAttributes", [
3215
+ }, Hi = new WeakMap(), m(lr, "observedAttributes", [
3172
3216
  n.POSTER_SRC,
3173
3217
  n.PAUSED,
3174
3218
  "disabled",
3175
3219
  "intersecting"
3176
3220
  ]);
3177
- const Ro = (
3221
+ const Uo = (
3178
3222
  /* SVG */
3179
3223
  `
3180
3224
  <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-settings-filled" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
@@ -3182,8 +3226,8 @@ const Ro = (
3182
3226
  <path d="M14.647 4.081a.724 .724 0 0 0 1.08 .448c2.439 -1.485 5.23 1.305 3.745 3.744a.724 .724 0 0 0 .447 1.08c2.775 .673 2.775 4.62 0 5.294a.724 .724 0 0 0 -.448 1.08c1.485 2.439 -1.305 5.23 -3.744 3.745a.724 .724 0 0 0 -1.08 .447c-.673 2.775 -4.62 2.775 -5.294 0a.724 .724 0 0 0 -1.08 -.448c-2.439 1.485 -5.23 -1.305 -3.745 -3.744a.724 .724 0 0 0 -.447 -1.08c-2.775 -.673 -2.775 -4.62 0 -5.294a.724 .724 0 0 0 .448 -1.08c-1.485 -2.439 1.305 -5.23 3.744 -3.745a.722 .722 0 0 0 1.08 -.447c.673 -2.775 4.62 -2.775 5.294 0zm-2.647 4.919a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" stroke-width="0" fill="currentColor" />
3183
3227
  </svg>
3184
3228
  `
3185
- ), ar = document.createElement("template");
3186
- ar.innerHTML = /* HTML */
3229
+ ), dr = document.createElement("template");
3230
+ dr.innerHTML = /* HTML */
3187
3231
  `
3188
3232
  <style>
3189
3233
  :host {
@@ -3191,38 +3235,38 @@ ar.innerHTML = /* HTML */
3191
3235
  }
3192
3236
  </style>
3193
3237
 
3194
- <slot name="button">${Ro}</slot>
3238
+ <slot name="button">${Uo}</slot>
3195
3239
  <slot name="listbox" hidden>
3196
3240
  <vindral-rendition-levels-menu-list id="listbox" part="listbox"></vindral-rendition-levels-menu-list>
3197
3241
  </slot>
3198
3242
  `;
3199
- var We, ks;
3200
- const Ie = class Ie extends Us {
3243
+ var We, Cs;
3244
+ const Ie = class Ie extends Ms {
3201
3245
  constructor() {
3202
3246
  var t, i, s, o;
3203
3247
  super();
3204
3248
  l(this, We);
3205
- (t = this.shadowRoot) == null || t.appendChild(ar.content.cloneNode(!0)), this.button = (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot[name=button]"), this.listbox = (s = this.shadowRoot) == null ? void 0 : s.querySelector("[part=listbox]"), this.listboxSlot = (o = this.shadowRoot) == null ? void 0 : o.querySelector("slot[name=listbox]");
3249
+ (t = this.shadowRoot) == null || t.appendChild(dr.content.cloneNode(!0)), this.button = (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot[name=button]"), this.listbox = (s = this.shadowRoot) == null ? void 0 : s.querySelector("[part=listbox]"), this.listboxSlot = (o = this.shadowRoot) == null ? void 0 : o.querySelector("slot[name=listbox]");
3206
3250
  }
3207
3251
  connectedCallback() {
3208
- super.connectedCallback(), r(this, We, ks).call(this), this.setAttribute("aria-label", "Rendition levels");
3252
+ super.connectedCallback(), r(this, We, Cs).call(this), this.setAttribute("aria-label", "Rendition levels");
3209
3253
  }
3210
3254
  attributeChangedCallback(t, i, s) {
3211
- super.attributeChangedCallback(t, i, s), t === n.RENDITION_LEVELS && r(this, We, ks).call(this);
3255
+ super.attributeChangedCallback(t, i, s), t === n.RENDITION_LEVELS && r(this, We, Cs).call(this);
3212
3256
  }
3213
3257
  };
3214
- We = new WeakSet(), ks = function() {
3258
+ We = new WeakSet(), Cs = function() {
3215
3259
  const t = this.getAttribute(n.RENDITION_LEVELS);
3216
3260
  !t || t === "[]" ? this.setAttribute("disabled", "") : this.removeAttribute("disabled");
3217
3261
  }, m(Ie, "observedAttributes", [...q(Ie, Ie, "observedAttributes"), n.RENDITION_LEVELS]);
3218
- let ys = Ie;
3219
- const lr = document.createElement("template"), Uo = (
3262
+ let Is = Ie;
3263
+ const cr = document.createElement("template"), Ro = (
3220
3264
  /* SVG */
3221
3265
  `
3222
3266
  <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="#fff" viewBox="0 0 78.369 78.369" xml:space="preserve"><path d="M78.049 19.015 29.458 67.606a1.094 1.094 0 0 1-1.548 0L.32 40.015a1.094 1.094 0 0 1 0-1.547l6.704-6.704a1.095 1.095 0 0 1 1.548 0l20.113 20.112 41.113-41.113a1.095 1.095 0 0 1 1.548 0l6.703 6.704a1.094 1.094 0 0 1 0 1.548z"/></svg>
3223
3267
  `
3224
3268
  );
3225
- lr.innerHTML = /* HTML */
3269
+ cr.innerHTML = /* HTML */
3226
3270
  `
3227
3271
  <style>
3228
3272
  :host {
@@ -3295,7 +3339,7 @@ lr.innerHTML = /* HTML */
3295
3339
  }
3296
3340
 
3297
3341
  [role="menuitem"][aria-selected="true"]::before {
3298
- content: url("data:image/svg+xml,${encodeURIComponent(Uo)}");
3342
+ content: url("data:image/svg+xml,${encodeURIComponent(Ro)}");
3299
3343
  position: absolute;
3300
3344
  left: calc(var(--padding-3) - var(--padding-1));
3301
3345
  top: calc(50% - 8px);
@@ -3325,8 +3369,8 @@ lr.innerHTML = /* HTML */
3325
3369
  <div class="menu"></div>
3326
3370
  </slot>
3327
3371
  `;
3328
- var Dt, Ze, It, ct, Ot, ti, C, dr, ws, cr, Is, ur, pr, br, Cs, mr;
3329
- class hr extends HTMLElement {
3372
+ var Dt, Ze, It, ct, Ot, ti, C, pr, Ls, br, Ts, mr, vr, gr, xs, fr;
3373
+ class ur extends HTMLElement {
3330
3374
  constructor() {
3331
3375
  super();
3332
3376
  l(this, C);
@@ -3339,16 +3383,16 @@ class hr extends HTMLElement {
3339
3383
  m(this, "handleEvent", (t) => {
3340
3384
  switch (t.type) {
3341
3385
  case "keydown":
3342
- r(this, C, pr).call(this, t);
3386
+ r(this, C, vr).call(this, t);
3343
3387
  break;
3344
3388
  }
3345
3389
  });
3346
- this.attachShadow({ mode: "open" }).appendChild(lr.content.cloneNode(!0));
3390
+ this.attachShadow({ mode: "open" }).appendChild(cr.content.cloneNode(!0));
3347
3391
  }
3348
3392
  connectedCallback() {
3349
3393
  var i;
3350
3394
  const t = this.getRootNode();
3351
- t instanceof ShadowRoot && (c(this, Ot, t.host.closest("vindral-controller")), (i = e(this, Ot)) == null || i.connectListener(this), r(this, C, dr).call(this), r(this, C, ws).call(this), c(this, ti, t.host), this.addEventListener("keydown", this));
3395
+ t instanceof ShadowRoot && (c(this, Ot, t.host.closest("vindral-controller")), (i = e(this, Ot)) == null || i.connectListener(this), r(this, C, pr).call(this), r(this, C, Ls).call(this), c(this, ti, t.host), this.addEventListener("keydown", this));
3352
3396
  }
3353
3397
  disconnectedCallback() {
3354
3398
  var t;
@@ -3358,10 +3402,10 @@ class hr extends HTMLElement {
3358
3402
  i !== s && (t === n.RENDITION_LEVELS && s && (this.list = JSON.parse(s)), t === n.MAX_VIDEO_BITRATE && s && (this.maxVideoBitrate = s ? parseInt(s) : Number.MAX_SAFE_INTEGER));
3359
3403
  }
3360
3404
  set list(t) {
3361
- c(this, Dt, t), r(this, C, ws).call(this);
3405
+ c(this, Dt, t), r(this, C, Ls).call(this);
3362
3406
  }
3363
3407
  set maxVideoBitrate(t) {
3364
- c(this, Ze, t), r(this, C, Is).call(this);
3408
+ c(this, Ze, t), r(this, C, Ts).call(this);
3365
3409
  }
3366
3410
  get keysUsed() {
3367
3411
  return ["Enter", "Escape", "Tab", " ", "ArrowDown", "ArrowUp", "Home", "End"];
@@ -3371,7 +3415,7 @@ class hr extends HTMLElement {
3371
3415
  (t = e(this, It)) == null || t.focus();
3372
3416
  }
3373
3417
  }
3374
- Dt = new WeakMap(), Ze = new WeakMap(), It = new WeakMap(), ct = new WeakMap(), Ot = new WeakMap(), ti = new WeakMap(), C = new WeakSet(), dr = function() {
3418
+ Dt = new WeakMap(), Ze = new WeakMap(), It = new WeakMap(), ct = new WeakMap(), Ot = new WeakMap(), ti = new WeakMap(), C = new WeakSet(), pr = function() {
3375
3419
  const t = (s) => {
3376
3420
  s.forEach((o) => {
3377
3421
  if (o.intersectionRatio !== 1)
@@ -3388,24 +3432,24 @@ Dt = new WeakMap(), Ze = new WeakMap(), It = new WeakMap(), ct = new WeakMap(),
3388
3432
  threshold: 0
3389
3433
  // 0 means any intersection is enough to be considered "inside"
3390
3434
  }).observe(this);
3391
- }, ws = function() {
3435
+ }, Ls = function() {
3392
3436
  var i;
3393
3437
  const t = (i = this.shadowRoot) == null ? void 0 : i.querySelector(".menu");
3394
3438
  t && (c(this, ct, []), t.innerHTML = "", e(this, Dt).sort((s, o) => {
3395
3439
  var p, u;
3396
3440
  return (p = s.video) != null && p.bitRate && ((u = o.video) != null && u.bitRate) ? o.video.bitRate - s.video.bitRate : 0;
3397
3441
  }).forEach((s) => {
3398
- var v, g, P, et, Y, Ct, Lt, Tt;
3442
+ var v, g, P, et, J, Ct, Lt, Tt;
3399
3443
  const o = document.createElement("div");
3400
3444
  o.setAttribute("role", "menuitem"), o.setAttribute("value", String((v = s.video) == null ? void 0 : v.height)), o.classList.add("menu-item"), o.tabIndex = -1;
3401
- const p = r(this, C, cr).call(this, (g = s.video) == null ? void 0 : g.frameRate);
3445
+ const p = r(this, C, br).call(this, (g = s.video) == null ? void 0 : g.frameRate);
3402
3446
  o.textContent = s.video ? so(s.video) : "";
3403
3447
  const u = document.createElement("span");
3404
- u.classList.add("menu-item-subtitle"), u.textContent = `${io(((et = (P = s.video) == null ? void 0 : P.bitRate) != null ? et : 0) + ((Ct = (Y = s.audio) == null ? void 0 : Y.bitRate) != null ? Ct : 0))}, ${p}p`, o.appendChild(u), o.addEventListener("click", () => r(this, C, ur).call(this, s)), e(this, ct).push({ el: o, id: (Tt = (Lt = s.video) == null ? void 0 : Lt.id) != null ? Tt : -1 }), t.appendChild(o);
3405
- }), r(this, C, Is).call(this));
3406
- }, cr = function(t) {
3448
+ u.classList.add("menu-item-subtitle"), u.textContent = `${io(((et = (P = s.video) == null ? void 0 : P.bitRate) != null ? et : 0) + ((Ct = (J = s.audio) == null ? void 0 : J.bitRate) != null ? Ct : 0))}, ${p}p`, o.appendChild(u), o.addEventListener("click", () => r(this, C, mr).call(this, s)), e(this, ct).push({ el: o, id: (Tt = (Lt = s.video) == null ? void 0 : Lt.id) != null ? Tt : -1 }), t.appendChild(o);
3449
+ }), r(this, C, Ts).call(this));
3450
+ }, br = function(t) {
3407
3451
  return t ? t[0] % t[1] === 0 ? (t[0] / t[1]).toString() : (t[0] / t[1]).toFixed(2) : "";
3408
- }, Is = function() {
3452
+ }, Ts = function() {
3409
3453
  e(this, It) && (e(this, It).removeAttribute("aria-selected"), e(this, It).tabIndex = -1);
3410
3454
  const t = e(this, Dt).sort(
3411
3455
  (s, o) => {
@@ -3425,31 +3469,31 @@ Dt = new WeakMap(), Ze = new WeakMap(), It = new WeakMap(), ct = new WeakMap(),
3425
3469
  });
3426
3470
  s && (s.el.tabIndex = 0, s.el.setAttribute("aria-selected", "true"), c(this, It, s.el));
3427
3471
  }
3428
- }, ur = function(t) {
3472
+ }, mr = function(t) {
3429
3473
  this.dispatchEvent(new Event("change", { bubbles: !0, composed: !0 })), this.dispatchEvent(
3430
3474
  new CustomEvent(f.SET_RENDITION, { bubbles: !0, composed: !0, detail: t })
3431
3475
  );
3432
- }, pr = function(t) {
3476
+ }, vr = function(t) {
3433
3477
  var u, v, g;
3434
3478
  const { key: i, ctrlKey: s, altKey: o, metaKey: p } = t;
3435
- s || o || p || this.keysUsed.includes(i) && (t.preventDefault(), t.stopPropagation(), i === "Tab" || i === "Escape" ? (u = e(this, ti)) == null || u.hide() : i === "Enter" || i === " " ? (g = (v = r(this, C, Cs).call(this)) == null ? void 0 : v.el) == null || g.click() : r(this, C, br).call(this, t));
3436
- }, br = function(t) {
3479
+ s || o || p || this.keysUsed.includes(i) && (t.preventDefault(), t.stopPropagation(), i === "Tab" || i === "Escape" ? (u = e(this, ti)) == null || u.hide() : i === "Enter" || i === " " ? (g = (v = r(this, C, xs).call(this)) == null ? void 0 : v.el) == null || g.click() : r(this, C, gr).call(this, t));
3480
+ }, gr = function(t) {
3437
3481
  var g;
3438
- const { key: i } = t, s = e(this, ct), o = (g = r(this, C, Cs).call(this)) != null ? g : s[0];
3482
+ const { key: i } = t, s = e(this, ct), o = (g = r(this, C, xs).call(this)) != null ? g : s[0];
3439
3483
  if (!o) return;
3440
3484
  const p = s.indexOf(o);
3441
3485
  let u = Math.max(0, p);
3442
3486
  i === "ArrowDown" ? u++ : i === "ArrowUp" ? u-- : t.key === "Home" ? u = 0 : t.key === "End" && (u = s.length - 1), u < 0 && (u = s.length - 1), u > s.length - 1 && (u = 0);
3443
3487
  const v = s[u];
3444
- v && (r(this, C, mr).call(this, v.id), v.el.focus());
3445
- }, Cs = function() {
3488
+ v && (r(this, C, fr).call(this, v.id), v.el.focus());
3489
+ }, xs = function() {
3446
3490
  return e(this, ct).find((t) => t.el.tabIndex === 0);
3447
- }, mr = function(t) {
3491
+ }, fr = function(t) {
3448
3492
  for (const i of e(this, ct))
3449
3493
  i.el.tabIndex = i.id === t ? 0 : -1;
3450
- }, m(hr, "observedAttributes", [n.RENDITION_LEVELS, n.MAX_VIDEO_BITRATE]);
3451
- const vr = document.createElement("template");
3452
- vr.innerHTML = /* HTML */
3494
+ }, m(ur, "observedAttributes", [n.RENDITION_LEVELS, n.MAX_VIDEO_BITRATE]);
3495
+ const Er = document.createElement("template");
3496
+ Er.innerHTML = /* HTML */
3453
3497
  `
3454
3498
  <style>
3455
3499
  :host {
@@ -3498,6 +3542,7 @@ vr.innerHTML = /* HTML */
3498
3542
  pointer-events: auto;
3499
3543
  scroll-snap-align: start;
3500
3544
  min-height: 1px;
3545
+ -webkit-tap-highlight-color: transparent;
3501
3546
  }
3502
3547
 
3503
3548
  slot#content {
@@ -3517,8 +3562,8 @@ vr.innerHTML = /* HTML */
3517
3562
  <div id="scroll-area"></div>
3518
3563
  <slot id="content"></slot>
3519
3564
  `;
3520
- var ut, Ft, oe, ei, I, fr, Er, Ar, Oi, Fi, Ei, Ls, Ts, xs, Ss;
3521
- class gr extends HTMLElement {
3565
+ var ut, Ft, oe, ei, I, yr, kr, wr, zi, Gi, ki, Ss, Ns, Us, Rs;
3566
+ class Ar extends HTMLElement {
3522
3567
  constructor() {
3523
3568
  super();
3524
3569
  l(this, I);
@@ -3529,31 +3574,31 @@ class gr extends HTMLElement {
3529
3574
  m(this, "handleEvent", (t) => {
3530
3575
  switch (t.type) {
3531
3576
  case "touchstart":
3532
- r(this, I, fr).call(this, t);
3577
+ r(this, I, yr).call(this, t);
3533
3578
  break;
3534
3579
  case "touchmove":
3535
- r(this, I, Er).call(this, t);
3580
+ r(this, I, kr).call(this, t);
3536
3581
  break;
3537
3582
  case "touchend":
3538
- r(this, I, Ar).call(this, t);
3583
+ r(this, I, wr).call(this, t);
3539
3584
  break;
3540
3585
  }
3541
3586
  });
3542
- l(this, Oi, () => {
3543
- this.scrollTop === 0 ? (this.open = !1, this.removeAttribute("snap-touch"), r(this, I, Ss).call(this)) : !this.visible && this.scrollTop > 0 ? r(this, I, xs).call(this) : (
3587
+ l(this, zi, () => {
3588
+ this.scrollTop === 0 ? (this.open = !1, this.removeAttribute("snap-touch"), r(this, I, Rs).call(this)) : !this.visible && this.scrollTop > 0 ? r(this, I, Us).call(this) : (
3544
3589
  // fully open
3545
- !this.hasAttribute("snap-touch") && r(this, I, Ts).call(this) && (this.open = !0, this.setAttribute("snap-touch", ""))
3590
+ !this.hasAttribute("snap-touch") && r(this, I, Ns).call(this) && (this.open = !0, this.setAttribute("snap-touch", ""))
3546
3591
  );
3547
3592
  });
3548
- l(this, Fi, () => {
3593
+ l(this, Gi, () => {
3549
3594
  const t = e(this, ei);
3550
- if (c(this, ei, this.scrollTop), !r(this, I, Ei).call(this)) {
3595
+ if (c(this, ei, this.scrollTop), !r(this, I, ki).call(this)) {
3551
3596
  this.scrollTop = 0;
3552
3597
  return;
3553
3598
  }
3554
- this.scrollTop === 0 ? (this.open = !1, r(this, I, Ss).call(this)) : !this.visible && this.scrollTop > 0 ? r(this, I, xs).call(this) : r(this, I, Ts).call(this) && t <= this.scrollTop && (this.open = !0);
3599
+ this.scrollTop === 0 ? (this.open = !1, r(this, I, Rs).call(this)) : !this.visible && this.scrollTop > 0 ? r(this, I, Us).call(this) : r(this, I, Ns).call(this) && t <= this.scrollTop && (this.open = !0);
3555
3600
  });
3556
- this.attachShadow({ mode: "open" }).appendChild(vr.content.cloneNode(!0));
3601
+ this.attachShadow({ mode: "open" }).appendChild(Er.content.cloneNode(!0));
3557
3602
  }
3558
3603
  connectedCallback() {
3559
3604
  var i, s, o, p, u, v;
@@ -3564,10 +3609,10 @@ class gr extends HTMLElement {
3564
3609
  });
3565
3610
  const g = this.hasAttribute("touch-enabled");
3566
3611
  if (!Wr() || !g) {
3567
- this.setAttribute("snap", ""), this.addEventListener("scroll", e(this, Fi));
3612
+ this.setAttribute("snap", ""), this.addEventListener("scroll", e(this, Gi));
3568
3613
  return;
3569
3614
  }
3570
- this.addEventListener("scroll", e(this, Oi)), (p = e(this, ut)) == null || p.addEventListener("touchstart", this, { passive: !0 }), (u = e(this, ut)) == null || u.addEventListener("touchmove", this, { passive: !1 }), (v = e(this, ut)) == null || v.addEventListener("touchend", this, { passive: !0 });
3615
+ this.addEventListener("scroll", e(this, zi)), (p = e(this, ut)) == null || p.addEventListener("touchstart", this, { passive: !0 }), (u = e(this, ut)) == null || u.addEventListener("touchmove", this, { passive: !1 }), (v = e(this, ut)) == null || v.addEventListener("touchend", this, { passive: !0 });
3571
3616
  }
3572
3617
  }
3573
3618
  disconnectedCallback() {
@@ -3576,7 +3621,7 @@ class gr extends HTMLElement {
3576
3621
  }
3577
3622
  attributeChangedCallback(t, i, s) {
3578
3623
  var o;
3579
- i !== s && (t === n.USER_INTERACTING && s === null && r(this, I, Ls).call(this) && setTimeout(() => {
3624
+ i !== s && (t === n.USER_INTERACTING && s === null && r(this, I, Ss).call(this) && setTimeout(() => {
3580
3625
  this.open = !1;
3581
3626
  }, 300), t === "open" && this.scrollTo({ top: s === null ? 0 : (o = e(this, Ft)) == null ? void 0 : o.clientHeight, behavior: "smooth" }));
3582
3627
  }
@@ -3593,28 +3638,28 @@ class gr extends HTMLElement {
3593
3638
  return this.hasAttribute("visible");
3594
3639
  }
3595
3640
  }
3596
- ut = new WeakMap(), Ft = new WeakMap(), oe = new WeakMap(), ei = new WeakMap(), I = new WeakSet(), fr = function(t) {
3597
- r(this, I, Ei).call(this) && t.touches[0] && c(this, oe, t.touches[0].clientY);
3598
- }, Er = function(t) {
3599
- if (!(!r(this, I, Ei).call(this) || !e(this, oe) || this.hasAttribute("snap-touch")) && (t.preventDefault(), t.touches[0])) {
3641
+ ut = new WeakMap(), Ft = new WeakMap(), oe = new WeakMap(), ei = new WeakMap(), I = new WeakSet(), yr = function(t) {
3642
+ r(this, I, ki).call(this) && t.touches[0] && c(this, oe, t.touches[0].clientY);
3643
+ }, kr = function(t) {
3644
+ if (!(!r(this, I, ki).call(this) || !e(this, oe) || this.hasAttribute("snap-touch")) && (t.preventDefault(), t.touches[0])) {
3600
3645
  const i = t.touches[0].clientY, s = e(this, oe) - i;
3601
3646
  this.scrollTop = s;
3602
3647
  }
3603
- }, Ar = function(t) {
3604
- r(this, I, Ls).call(this) && !this.hasAttribute("snap-touch") && (this.open = !0);
3605
- }, Oi = new WeakMap(), Fi = new WeakMap(), Ei = function() {
3648
+ }, wr = function(t) {
3649
+ r(this, I, Ss).call(this) && !this.hasAttribute("snap-touch") && (this.open = !0);
3650
+ }, zi = new WeakMap(), Gi = new WeakMap(), ki = function() {
3606
3651
  return this.hasAttribute(n.USER_INTERACTING);
3607
- }, Ls = function() {
3652
+ }, Ss = function() {
3608
3653
  return this.scrollTop > 0;
3609
- }, Ts = function() {
3654
+ }, Ns = function() {
3610
3655
  var t;
3611
3656
  return Math.round(this.scrollTop) === this.scrollHeight - this.clientHeight || Math.round(this.scrollTop) === ((t = e(this, Ft)) == null ? void 0 : t.clientHeight);
3612
- }, xs = function() {
3657
+ }, Us = function() {
3613
3658
  this.visible = !0, this.dispatchEvent(new CustomEvent(f.LOCK_UI, { bubbles: !0, composed: !0 }));
3614
- }, Ss = function() {
3659
+ }, Rs = function() {
3615
3660
  this.visible = !1, this.dispatchEvent(new CustomEvent(f.UNLOCK_UI, { bubbles: !0, composed: !0 }));
3616
- }, m(gr, "observedAttributes", [n.USER_INTERACTING, "open", "touch-enabled"]);
3617
- const yr = document.createElement("template"), _o = (
3661
+ }, m(Ar, "observedAttributes", [n.USER_INTERACTING, "open", "touch-enabled"]);
3662
+ const Ir = document.createElement("template"), _o = (
3618
3663
  /* SVG */
3619
3664
  `
3620
3665
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z" /></svg>
@@ -3625,7 +3670,7 @@ const yr = document.createElement("template"), _o = (
3625
3670
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" clip-rule="evenodd" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2" /></g></svg>
3626
3671
  `
3627
3672
  );
3628
- yr.innerHTML = /* HTML */
3673
+ Ir.innerHTML = /* HTML */
3629
3674
  `
3630
3675
  <style>
3631
3676
  :host {
@@ -3683,7 +3728,7 @@ yr.innerHTML = /* HTML */
3683
3728
  </slot>
3684
3729
  `;
3685
3730
  var ae, ii, Ht, si;
3686
- class kr extends HTMLElement {
3731
+ class Cr extends HTMLElement {
3687
3732
  constructor() {
3688
3733
  super();
3689
3734
  l(this, ae, null);
@@ -3706,7 +3751,7 @@ class kr extends HTMLElement {
3706
3751
  }
3707
3752
  this.addEventListener("keyup", e(this, Ht), { once: !0 });
3708
3753
  });
3709
- this.attachShadow({ mode: "open" }).appendChild(yr.content.cloneNode(!0));
3754
+ this.attachShadow({ mode: "open" }).appendChild(Ir.content.cloneNode(!0));
3710
3755
  }
3711
3756
  get keysUsed() {
3712
3757
  return ["Enter", " "];
@@ -3726,14 +3771,14 @@ class kr extends HTMLElement {
3726
3771
  (t = e(this, ae)) == null || t.disconnectListener(this), this.disable();
3727
3772
  }
3728
3773
  }
3729
- ae = new WeakMap(), ii = new WeakMap(), Ht = new WeakMap(), si = new WeakMap(), m(kr, "observedAttributes", [
3774
+ ae = new WeakMap(), ii = new WeakMap(), Ht = new WeakMap(), si = new WeakMap(), m(Cr, "observedAttributes", [
3730
3775
  "hidden",
3731
3776
  n.NEEDS_USER_INPUT_VIDEO,
3732
3777
  n.NEEDS_USER_INPUT_AUDIO,
3733
3778
  n.PAUSED
3734
3779
  ]);
3735
- const wr = document.createElement("template");
3736
- wr.innerHTML = /* HTML */
3780
+ const Lr = document.createElement("template");
3781
+ Lr.innerHTML = /* HTML */
3737
3782
  `
3738
3783
  <style>
3739
3784
  :host,
@@ -3827,14 +3872,14 @@ wr.innerHTML = /* HTML */
3827
3872
  </div>
3828
3873
  `;
3829
3874
  var ni, ri, oi;
3830
- class Ir extends HTMLElement {
3875
+ class Tr extends HTMLElement {
3831
3876
  constructor() {
3832
3877
  super();
3833
3878
  l(this, ni);
3834
3879
  l(this, ri);
3835
3880
  l(this, oi);
3836
3881
  const t = this.attachShadow({ mode: "open" });
3837
- t.appendChild(wr.content.cloneNode(!0)), c(this, ni, t.querySelector("#title")), c(this, ri, t.querySelector("#description")), c(this, oi, t.querySelector("#background"));
3882
+ t.appendChild(Lr.content.cloneNode(!0)), c(this, ni, t.querySelector("#title")), c(this, ri, t.querySelector("#description")), c(this, oi, t.querySelector("#background"));
3838
3883
  }
3839
3884
  connectedCallback() {
3840
3885
  }
@@ -3844,14 +3889,14 @@ class Ir extends HTMLElement {
3844
3889
  i !== s && (t === "title" ? e(this, ni).textContent = s : t === "description" ? e(this, ri).textContent = s : t === "background-image" && (e(this, oi).style.backgroundImage = `url(${s})`));
3845
3890
  }
3846
3891
  }
3847
- ni = new WeakMap(), ri = new WeakMap(), oi = new WeakMap(), m(Ir, "observedAttributes", ["title", "description", "background-image", "hidden"]);
3848
- const Cr = document.createElement("template"), Mo = (
3892
+ ni = new WeakMap(), ri = new WeakMap(), oi = new WeakMap(), m(Tr, "observedAttributes", ["title", "description", "background-image", "hidden"]);
3893
+ const xr = document.createElement("template"), Mo = (
3849
3894
  /* SVG */
3850
3895
  `
3851
3896
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z" /></svg>
3852
3897
  `
3853
3898
  );
3854
- Cr.innerHTML = /* HTML */
3899
+ xr.innerHTML = /* HTML */
3855
3900
  `
3856
3901
  <style>
3857
3902
  :host {
@@ -3873,10 +3918,15 @@ Cr.innerHTML = /* HTML */
3873
3918
 
3874
3919
  :host(:focus-visible) {
3875
3920
  outline: none;
3921
+ outline: 0;
3876
3922
  }
3877
3923
 
3878
3924
  :host(:focus-visible) svg {
3879
- box-shadow: inset 0 0 0 2px var(--fg-strong);
3925
+ outline: 0;
3926
+ }
3927
+
3928
+ :host(:where(:focus)) svg {
3929
+ box-shadow: none;
3880
3930
  outline: 0;
3881
3931
  }
3882
3932
 
@@ -3899,11 +3949,11 @@ Cr.innerHTML = /* HTML */
3899
3949
  <slot id="play" name="icon">${Mo}</slot>
3900
3950
  `;
3901
3951
  var le;
3902
- class Lr extends HTMLElement {
3952
+ class Sr extends HTMLElement {
3903
3953
  constructor() {
3904
3954
  super();
3905
3955
  l(this, le, null);
3906
- this.attachShadow({ mode: "open" }).appendChild(Cr.content.cloneNode(!0));
3956
+ this.attachShadow({ mode: "open" }).appendChild(xr.content.cloneNode(!0));
3907
3957
  }
3908
3958
  connectedCallback() {
3909
3959
  var t;
@@ -3917,9 +3967,9 @@ class Lr extends HTMLElement {
3917
3967
  i !== s && t === "hidden" && !L(s) && this.focus();
3918
3968
  }
3919
3969
  }
3920
- le = new WeakMap(), m(Lr, "observedAttributes", ["hidden"]);
3921
- const Tr = document.createElement("template");
3922
- Tr.innerHTML = /* HTML */
3970
+ le = new WeakMap(), m(Sr, "observedAttributes", ["hidden"]);
3971
+ const Nr = document.createElement("template");
3972
+ Nr.innerHTML = /* HTML */
3923
3973
  `
3924
3974
  <style>
3925
3975
  :host {
@@ -3930,7 +3980,7 @@ Tr.innerHTML = /* HTML */
3930
3980
  `;
3931
3981
  const Do = (d) => `${Math.round(d * 100)}%`;
3932
3982
  var ai;
3933
- const Ce = class Ce extends _s {
3983
+ const Ce = class Ce extends Ds {
3934
3984
  constructor() {
3935
3985
  var t;
3936
3986
  super();
@@ -3938,7 +3988,7 @@ const Ce = class Ce extends _s {
3938
3988
  const t = this.range.valueAsNumber;
3939
3989
  this.dispatchEvent(new CustomEvent(f.SET_VOLUME, { bubbles: !0, composed: !0, detail: t }));
3940
3990
  });
3941
- (t = this.shadowRoot) == null || t.appendChild(Tr.content.cloneNode(!0));
3991
+ (t = this.shadowRoot) == null || t.appendChild(Nr.content.cloneNode(!0));
3942
3992
  }
3943
3993
  connectedCallback() {
3944
3994
  super.connectedCallback(), this.range.addEventListener("input", e(this, ai)), this.range.setAttribute("aria-label", "volume");
@@ -3958,9 +4008,9 @@ const Ce = class Ce extends _s {
3958
4008
  }
3959
4009
  };
3960
4010
  ai = new WeakMap(), m(Ce, "observedAttributes", [...q(Ce, Ce, "observedAttributes"), n.MUTED, n.VOLUME]);
3961
- let Ns = Ce;
4011
+ let _s = Ce;
3962
4012
  function $o() {
3963
- customElements.define("vindral-controller", Le), customElements.define("vindral-control-bar", yn), customElements.define("vindral-play-button", ms), customElements.define("vindral-mute-button", ps), customElements.define("vindral-buffering-overlay", Ws), customElements.define("vindral-scroll-overlay", gr), customElements.define("vindral-play-overlay", Lr), customElements.define("vindral-user-input-play-overlay", kr), customElements.define("vindral-fullscreen-button", os), customElements.define("vindral-rendition-levels-menu", ys), customElements.define("vindral-rendition-levels-menu-list", hr), customElements.define("vindral-channel-grid-button", Ji), customElements.define("vindral-channel-grid", an), customElements.define("vindral-channel-grid-item", Rs), customElements.define("vindral-pip-button", bs), customElements.define("vindral-airplay-button", qi), customElements.define("vindral-cast-button", Vi), customElements.define("vindral-cast-overlay", sn), customElements.define("vindral-buffering-icon", Js), customElements.define("vindral-language-menu", as), customElements.define("vindral-language-menu-list", Kn), customElements.define("vindral-message", Ir), customElements.define("vindral-volume-range", Ns), customElements.define("vindral-poster-overlay", rr), customElements.define("vindral-player", ir);
4013
+ customElements.define("vindral-controller", Le), customElements.define("vindral-control-bar", In), customElements.define("vindral-play-button", fs), customElements.define("vindral-mute-button", vs), customElements.define("vindral-buffering-overlay", en), customElements.define("vindral-scroll-overlay", Ar), customElements.define("vindral-play-overlay", Sr), customElements.define("vindral-user-input-play-overlay", Cr), customElements.define("vindral-fullscreen-button", hs), customElements.define("vindral-rendition-levels-menu", Is), customElements.define("vindral-rendition-levels-menu-list", ur), customElements.define("vindral-channel-grid-button", Zi), customElements.define("vindral-channel-grid", dn), customElements.define("vindral-channel-grid-item", Ps), customElements.define("vindral-pip-button", gs), customElements.define("vindral-airplay-button", Vi), customElements.define("vindral-cast-button", Ji), customElements.define("vindral-cast-overlay", on), customElements.define("vindral-buffering-icon", Zs), customElements.define("vindral-language-menu", ds), customElements.define("vindral-language-menu-list", jn), customElements.define("vindral-message", Tr), customElements.define("vindral-volume-range", _s), customElements.define("vindral-poster-overlay", lr), customElements.define("vindral-player", rr);
3964
4014
  }
3965
4015
  export {
3966
4016
  $o as registerComponents