livekit-client 2.6.3 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -11177,7 +11177,7 @@ function getOSVersion(ua) {
11177
11177
  return ua.includes('mac os') ? getMatch(/\(.+?(\d+_\d+(:?_\d+)?)/, ua, 1).replace(/_/g, '.') : undefined;
11178
11178
  }
11179
11179
 
11180
- var version$1 = "2.6.3";
11180
+ var version$1 = "2.7.0";
11181
11181
 
11182
11182
  const version = version$1;
11183
11183
  const protocolVersion = 15;
@@ -18578,23 +18578,25 @@ class HTMLElementInfo {
18578
18578
  } = entry;
18579
18579
  if (target === this.element) {
18580
18580
  this.isIntersecting = isIntersecting;
18581
+ this.isPiP = isElementInPiP(this.element);
18581
18582
  this.visibilityChangedAt = Date.now();
18582
18583
  (_a = this.handleVisibilityChanged) === null || _a === void 0 ? void 0 : _a.call(this);
18583
18584
  }
18584
18585
  };
18585
18586
  this.onEnterPiP = () => {
18586
- var _a;
18587
- this.isPiP = true;
18588
- (_a = this.handleVisibilityChanged) === null || _a === void 0 ? void 0 : _a.call(this);
18587
+ var _a, _b, _c;
18588
+ (_b = (_a = window.documentPictureInPicture) === null || _a === void 0 ? void 0 : _a.window) === null || _b === void 0 ? void 0 : _b.addEventListener('pagehide', this.onLeavePiP);
18589
+ this.isPiP = isElementInPiP(this.element);
18590
+ (_c = this.handleVisibilityChanged) === null || _c === void 0 ? void 0 : _c.call(this);
18589
18591
  };
18590
18592
  this.onLeavePiP = () => {
18591
18593
  var _a;
18592
- this.isPiP = false;
18594
+ this.isPiP = isElementInPiP(this.element);
18593
18595
  (_a = this.handleVisibilityChanged) === null || _a === void 0 ? void 0 : _a.call(this);
18594
18596
  };
18595
18597
  this.element = element;
18596
18598
  this.isIntersecting = visible !== null && visible !== void 0 ? visible : isElementInViewport(element);
18597
- this.isPiP = isWeb() && document.pictureInPictureElement === element;
18599
+ this.isPiP = isWeb() && isElementInPiP(element);
18598
18600
  this.visibilityChangedAt = 0;
18599
18601
  }
18600
18602
  width() {
@@ -18604,9 +18606,10 @@ class HTMLElementInfo {
18604
18606
  return this.element.clientHeight;
18605
18607
  }
18606
18608
  observe() {
18609
+ var _a, _b, _c;
18607
18610
  // make sure we update the current visible state once we start to observe
18608
18611
  this.isIntersecting = isElementInViewport(this.element);
18609
- this.isPiP = document.pictureInPictureElement === this.element;
18612
+ this.isPiP = isElementInPiP(this.element);
18610
18613
  this.element.handleResize = () => {
18611
18614
  var _a;
18612
18615
  (_a = this.handleResize) === null || _a === void 0 ? void 0 : _a.call(this);
@@ -18616,17 +18619,30 @@ class HTMLElementInfo {
18616
18619
  getResizeObserver().observe(this.element);
18617
18620
  this.element.addEventListener('enterpictureinpicture', this.onEnterPiP);
18618
18621
  this.element.addEventListener('leavepictureinpicture', this.onLeavePiP);
18622
+ (_a = window.documentPictureInPicture) === null || _a === void 0 ? void 0 : _a.addEventListener('enter', this.onEnterPiP);
18623
+ (_c = (_b = window.documentPictureInPicture) === null || _b === void 0 ? void 0 : _b.window) === null || _c === void 0 ? void 0 : _c.addEventListener('pagehide', this.onLeavePiP);
18619
18624
  }
18620
18625
  stopObserving() {
18621
- var _a, _b;
18626
+ var _a, _b, _c, _d, _e;
18622
18627
  (_a = getIntersectionObserver()) === null || _a === void 0 ? void 0 : _a.unobserve(this.element);
18623
18628
  (_b = getResizeObserver()) === null || _b === void 0 ? void 0 : _b.unobserve(this.element);
18624
18629
  this.element.removeEventListener('enterpictureinpicture', this.onEnterPiP);
18625
18630
  this.element.removeEventListener('leavepictureinpicture', this.onLeavePiP);
18631
+ (_c = window.documentPictureInPicture) === null || _c === void 0 ? void 0 : _c.removeEventListener('enter', this.onEnterPiP);
18632
+ (_e = (_d = window.documentPictureInPicture) === null || _d === void 0 ? void 0 : _d.window) === null || _e === void 0 ? void 0 : _e.removeEventListener('pagehide', this.onLeavePiP);
18626
18633
  }
18627
18634
  }
18628
- // does not account for occlusion by other elements
18629
- function isElementInViewport(el) {
18635
+ function isElementInPiP(el) {
18636
+ var _a, _b;
18637
+ // Simple video PiP
18638
+ if (document.pictureInPictureElement === el) return true;
18639
+ // Document PiP
18640
+ if ((_a = window.documentPictureInPicture) === null || _a === void 0 ? void 0 : _a.window) return isElementInViewport(el, (_b = window.documentPictureInPicture) === null || _b === void 0 ? void 0 : _b.window);
18641
+ return false;
18642
+ }
18643
+ // does not account for occlusion by other elements or opacity property
18644
+ function isElementInViewport(el, win) {
18645
+ const viewportWindow = win || window;
18630
18646
  let top = el.offsetTop;
18631
18647
  let left = el.offsetLeft;
18632
18648
  const width = el.offsetWidth;
@@ -18635,7 +18651,6 @@ function isElementInViewport(el) {
18635
18651
  hidden
18636
18652
  } = el;
18637
18653
  const {
18638
- opacity,
18639
18654
  display
18640
18655
  } = getComputedStyle(el);
18641
18656
  while (el.offsetParent) {
@@ -18643,7 +18658,7 @@ function isElementInViewport(el) {
18643
18658
  top += el.offsetTop;
18644
18659
  left += el.offsetLeft;
18645
18660
  }
18646
- return top < window.pageYOffset + window.innerHeight && left < window.pageXOffset + window.innerWidth && top + height > window.pageYOffset && left + width > window.pageXOffset && !hidden && (opacity !== '' ? parseFloat(opacity) > 0 : true) && display !== 'none';
18661
+ return top < viewportWindow.pageYOffset + viewportWindow.innerHeight && left < viewportWindow.pageXOffset + viewportWindow.innerWidth && top + height > viewportWindow.pageYOffset && left + width > viewportWindow.pageXOffset && !hidden && display !== 'none';
18647
18662
  }
18648
18663
 
18649
18664
  class TrackPublication extends eventsExports.EventEmitter {