@smartimpact-it/modern-video-embed 2.0.1 → 2.0.3

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/README.md CHANGED
@@ -20,7 +20,7 @@ Modern, performant YouTube and Vimeo embed web components with lazy loading, eve
20
20
  #### Via NPM (recommended for projects)
21
21
 
22
22
  ```bash
23
- npm install @siit-dev/video-embed
23
+ npm install @smartimpact-it/modern-video-embed
24
24
  ```
25
25
 
26
26
  #### Via CDN (for quick prototypes)
@@ -28,11 +28,11 @@ npm install @siit-dev/video-embed
28
28
  ```html
29
29
  <script
30
30
  type="module"
31
- src="https://unpkg.com/@siit-dev/video-embed@latest/dist/index.js"
31
+ src="https://unpkg.com/@smartimpact-it/modern-video-embed@latest/dist/index.js"
32
32
  ></script>
33
33
  <link
34
34
  rel="stylesheet"
35
- href="https://unpkg.com/@siit-dev/video-embed@latest/dist/css/components.css"
35
+ href="https://unpkg.com/@smartimpact-it/modern-video-embed@latest/dist/css/components.css"
36
36
  />
37
37
  ```
38
38
 
@@ -337,7 +337,7 @@ embed.addEventListener("qualitychange", (e) => {
337
337
  "Quality changed:",
338
338
  e.detail.oldQuality,
339
339
  "→",
340
- e.detail.newQuality
340
+ e.detail.newQuality,
341
341
  );
342
342
  console.log("Available qualities:", e.detail.availableQualities);
343
343
  });
@@ -829,7 +829,7 @@ const embed = document.querySelector("youtube-embed");
829
829
  console.log("Lazy enabled:", embed.hasAttribute("lazy"));
830
830
  console.log(
831
831
  "In viewport:",
832
- embed.getBoundingClientRect().top < window.innerHeight
832
+ embed.getBoundingClientRect().top < window.innerHeight,
833
833
  );
834
834
  ```
835
835
 
@@ -988,7 +988,7 @@ For older browser support, include these polyfills:
988
988
 
989
989
  player.addEventListener("qualitychange", (e) => {
990
990
  console.log(
991
- `Quality changed: ${e.detail.oldQuality} → ${e.detail.newQuality}`
991
+ `Quality changed: ${e.detail.oldQuality} → ${e.detail.newQuality}`,
992
992
  );
993
993
  });
994
994
  </script>
@@ -1018,7 +1018,7 @@ For older browser support, include these polyfills:
1018
1018
  player.addEventListener(eventName, (e) => {
1019
1019
  const entry = document.createElement("div");
1020
1020
  entry.textContent = `${new Date().toLocaleTimeString()} - ${eventName}: ${JSON.stringify(
1021
- e.detail || {}
1021
+ e.detail || {},
1022
1022
  )}`;
1023
1023
  log.prepend(entry);
1024
1024
  });
@@ -1156,24 +1156,24 @@ npm publish
1156
1156
 
1157
1157
  ```javascript
1158
1158
  // Full bundle
1159
- import "@siit-dev/video-embed";
1159
+ import "@smartimpact-it/modern-video-embed";
1160
1160
 
1161
1161
  // YouTube only
1162
- import "@siit-dev/video-embed/dist/youtube-only.js";
1162
+ import "@smartimpact-it/modern-video-embed/dist/youtube-only.js";
1163
1163
 
1164
1164
  // Vimeo only
1165
- import "@siit-dev/video-embed/dist/vimeo-only.js";
1165
+ import "@smartimpact-it/modern-video-embed/dist/vimeo-only.js";
1166
1166
  ```
1167
1167
 
1168
1168
  #### With Bundlers (Webpack, Vite, etc.)
1169
1169
 
1170
1170
  ```javascript
1171
1171
  // Install
1172
- npm install @siit-dev/video-embed
1172
+ npm install @smartimpact-it/modern-video-embed
1173
1173
 
1174
1174
  // Import in your app
1175
- import '@siit-dev/video-embed';
1176
- import '@siit-dev/video-embed/dist/css/components.css';
1175
+ import '@smartimpact-it/modern-video-embed';
1176
+ import '@smartimpact-it/modern-video-embed/dist/css/components.css';
1177
1177
 
1178
1178
  // Use in your HTML/JSX
1179
1179
  <youtube-embed video-id="dQw4w9WgXcQ" controls></youtube-embed>
@@ -1182,7 +1182,7 @@ import '@siit-dev/video-embed/dist/css/components.css';
1182
1182
  #### TypeScript Support
1183
1183
 
1184
1184
  ```typescript
1185
- import { YouTubeEmbed } from "@siit-dev/video-embed";
1185
+ import { YouTubeEmbed } from "@smartimpact-it/modern-video-embed";
1186
1186
 
1187
1187
  const embed = document.querySelector("youtube-embed") as YouTubeEmbed;
1188
1188
  embed.play();
@@ -735,7 +735,7 @@ export class YouTubeEmbed extends HTMLElement {
735
735
  this.log("YouTubeEmbed: Creating iframe with autoplay:", autoplay, "controls:", controls);
736
736
  this.iframe = document.createElement("iframe");
737
737
  // Build URL parameters to handle YouTube's strict policies
738
- const params = new URLSearchParams(Object.assign({ enablejsapi: "1", autoplay: autoplay ? "1" : "0", controls: !controls && !isBackground ? "1" : "0", mute: mute ? "1" : "0", playsinline: "1", rel: "0", modestbranding: "1", origin: window.location.origin || "localhost" }, __classPrivateFieldGet(this, _YouTubeEmbed_playerVars, "f")));
738
+ const params = new URLSearchParams(Object.assign({ enablejsapi: "1", autoplay: autoplay ? "1" : "0", controls: !isBackground && controls ? "1" : "0", mute: mute ? "1" : "0", playsinline: "1", rel: "0", modestbranding: "1", origin: window.location.origin || "localhost" }, __classPrivateFieldGet(this, _YouTubeEmbed_playerVars, "f")));
739
739
  // Add muted state if explicitly set
740
740
  if (__classPrivateFieldGet(this, _YouTubeEmbed_muted, "f")) {
741
741
  params.set("mute", "1");
@@ -1 +1 @@
1
- {"version":3,"file":"YouTubeEmbed.js","sourceRoot":"","sources":["../../src/components/YouTubeEmbed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"YouTubeEmbed.js","sourceRoot":"","sources":["../../src/components/YouTubeEmbed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- var _YouTubeEmbed_instances,_YouTubeEmbed_url,_YouTubeEmbed_videoId,_YouTubeEmbed_autoplay,_YouTubeEmbed_muted,_YouTubeEmbed_controls,_YouTubeEmbed_lazy,_YouTubeEmbed_poster,_YouTubeEmbed_playing,_YouTubeEmbed_background,_YouTubeEmbed_playerVars,_YouTubeEmbed_reflectBooleanAttribute,_YouTubeEmbed_updateBackgroundMode,__awaiter=this&&this.__awaiter||function(e,t,i,s){return new(i||(i=Promise))(function(a,r){function o(e){try{l(s.next(e))}catch(e){r(e)}}function u(e){try{l(s.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(o,u)}l((s=s.apply(e,t||[])).next())})},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,i,s,a){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?a.call(e,i):a?a.value=i:t.set(e,i),i},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,i,s){if("a"===i&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?s:"a"===i?s.call(e):s?s.value:t.get(e)};export class YouTubeEmbed extends HTMLElement{constructor(){super(...arguments),_YouTubeEmbed_instances.add(this),this.iframe=null,this.player=null,this.playerReady=!1,this.playPauseButton=null,this.initialized=!1,this.setCustomControlState=null,this.updatingAttribute=!1,this.updatingMutedState=!1,_YouTubeEmbed_url.set(this,""),_YouTubeEmbed_videoId.set(this,""),_YouTubeEmbed_autoplay.set(this,!1),_YouTubeEmbed_muted.set(this,!1),_YouTubeEmbed_controls.set(this,!1),_YouTubeEmbed_lazy.set(this,!1),_YouTubeEmbed_poster.set(this,""),_YouTubeEmbed_playing.set(this,!1),_YouTubeEmbed_background.set(this,!1),_YouTubeEmbed_playerVars.set(this,{}),this.posterClickHandler=null,this.keyboardHandler=null,this.ariaLiveRegion=null,this.apiLoadRetries=0,this.intersectionObserver=null,this.hasLoadedVideo=!1}static get observedAttributes(){return["url","video-id","autoplay","controls","lazy","muted","poster","background","player-vars","quality"]}attributeChangedCallback(e,t,i){if(!this.updatingAttribute)switch(this.log(`YouTubeEmbed: Attribute changed - ${e}: ${t} -> ${i}`),e){case"url":__classPrivateFieldSet(this,_YouTubeEmbed_url,i||"","f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,this.extractVideoId(__classPrivateFieldGet(this,_YouTubeEmbed_url,"f")),"f"),this.initialized&&this.reinitializePlayer();break;case"video-id":__classPrivateFieldSet(this,_YouTubeEmbed_videoId,i||"","f"),this.initialized&&this.reinitializePlayer();break;case"autoplay":__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,null!==i,"f"),!__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")&&__classPrivateFieldGet(this,_YouTubeEmbed_autoplay,"f")&&!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&this.initialized&&this.play();break;case"controls":__classPrivateFieldSet(this,_YouTubeEmbed_controls,null!==i,"f"),this.initialized&&this.reinitializePlayer();break;case"lazy":__classPrivateFieldSet(this,_YouTubeEmbed_lazy,null!==i,"f");break;case"muted":__classPrivateFieldSet(this,_YouTubeEmbed_muted,null!==i,"f"),this.player&&this.playerReady&&(__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")?this.player.mute():this.player.unMute());break;case"poster":__classPrivateFieldSet(this,_YouTubeEmbed_poster,i||"","f"),__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&!this.player&&this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"));break;case"background":__classPrivateFieldSet(this,_YouTubeEmbed_background,null!==i,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_updateBackgroundMode).call(this);break;case"player-vars":try{__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,i?JSON.parse(i):{},"f")}catch(e){this.error("YouTubeEmbed: Invalid player-vars JSON:",e),__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,{},"f")}this.initialized&&this.reinitializePlayer();break;case"quality":i&&this.player&&this.playerReady&&this.setQuality(i)}}get url(){return __classPrivateFieldGet(this,_YouTubeEmbed_url,"f")}set url(e){__classPrivateFieldSet(this,_YouTubeEmbed_url,e,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,this.extractVideoId(e),"f"),this.initialized&&this.reinitializePlayer()}get videoId(){return __classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")}set videoId(e){__classPrivateFieldSet(this,_YouTubeEmbed_videoId,e,"f"),this.initialized&&this.reinitializePlayer()}get autoplay(){return __classPrivateFieldGet(this,_YouTubeEmbed_autoplay,"f")}set autoplay(e){__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"autoplay",e),!__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")&&e&&!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&this.initialized&&this.play()}get controls(){return __classPrivateFieldGet(this,_YouTubeEmbed_controls,"f")}set controls(e){__classPrivateFieldSet(this,_YouTubeEmbed_controls,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"controls",e),this.initialized&&this.reinitializePlayer()}get lazy(){return __classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")}set lazy(e){__classPrivateFieldSet(this,_YouTubeEmbed_lazy,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"lazy",e)}get muted(){return __classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")}set muted(e){__classPrivateFieldSet(this,_YouTubeEmbed_muted,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"muted",e),this.player&&this.playerReady&&(this.updatingMutedState=!0,e?this.player.mute():this.player.unMute(),setTimeout(()=>{this.updatingMutedState=!1},100))}get poster(){return __classPrivateFieldGet(this,_YouTubeEmbed_poster,"f")}set poster(e){__classPrivateFieldSet(this,_YouTubeEmbed_poster,e,"f"),this.updatingAttribute=!0,e?this.setAttribute("poster",e):this.removeAttribute("poster"),this.updatingAttribute=!1,__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&!this.player&&this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}get playing(){return __classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")}get background(){return __classPrivateFieldGet(this,_YouTubeEmbed_background,"f")}set background(e){__classPrivateFieldSet(this,_YouTubeEmbed_background,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"background",e),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_updateBackgroundMode).call(this)}get playerVars(){return __classPrivateFieldGet(this,_YouTubeEmbed_playerVars,"f")}set playerVars(e){__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,e,"f"),this.setAttribute("player-vars",JSON.stringify(e)),this.initialized&&this.reinitializePlayer()}extractVideoId(e){if(!e)return"";const t=e.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/);return t&&t[1]?t[1]:/^[a-zA-Z0-9_-]{11}$/.test(e)?e:(this.warn(`YouTubeEmbed: Could not extract video ID from "${e}"`),"")}log(...e){YouTubeEmbed.DEBUG&&console.log("YouTubeEmbed:",...e)}warn(...e){console.warn(...e)}error(...e){console.error(...e)}dispatchCustomEvent(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}isValidPosterUrl(e){if(!e)return!1;try{return new URL(e),!0}catch(e){return!1}}setupFullscreenListener(){const e=()=>{const e=this.isFullscreen();this.dispatchCustomEvent("fullscreenchange",{isFullscreen:e}),e?this.classList.add("is-fullscreen"):this.classList.remove("is-fullscreen")};document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e)}setupKeyboardHandlers(){this.keyboardHandler=e=>{var t,i;if(this.playerReady&&"INPUT"!==(null===(t=e.target)||void 0===t?void 0:t.tagName))switch(e.key.toLowerCase()){case"k":case" ":e.preventDefault(),this.togglePlay(),this.announceToScreenReader(__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")?"Video playing":"Video paused");break;case"m":e.preventDefault(),this.toggleMute(),null===(i=this.player)||void 0===i||i.isMuted().then(e=>{this.announceToScreenReader(e?"Video muted":"Video unmuted")});break;case"f":e.preventDefault(),document.fullscreenElement?(document.exitFullscreen(),this.announceToScreenReader("Exited fullscreen")):this.enterFullscreen&&(this.enterFullscreen(),this.announceToScreenReader("Entered fullscreen"))}},this.addEventListener("keydown",this.keyboardHandler)}announceToScreenReader(e){this.ariaLiveRegion&&(this.ariaLiveRegion.textContent=e,setTimeout(()=>{this.ariaLiveRegion&&(this.ariaLiveRegion.textContent="")},1e3))}addResourceHints(){[{rel:"preconnect",href:"https://www.youtube.com"},{rel:"preconnect",href:"https://i.ytimg.com"},{rel:"dns-prefetch",href:"https://www.youtube.com"},{rel:"dns-prefetch",href:"https://i.ytimg.com"}].forEach(({rel:e,href:t})=>{if(!document.querySelector(`link[rel="${e}"][href="${t}"]`)){const i=document.createElement("link");i.rel=e,i.href=t,"preconnect"===e&&(i.crossOrigin="anonymous"),document.head.appendChild(i)}})}setupIntersectionObserver(){if(!("IntersectionObserver"in window))return;this.intersectionObserver=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting&&!this.hasLoadedVideo){this.hasLoadedVideo=!0,this.log("YouTubeEmbed: Video entering viewport, loading...");"true"===this.getAttribute("data-poster-autoplay")||this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),this.intersectionObserver&&this.intersectionObserver.disconnect()}})},{root:null,rootMargin:"50px",threshold:.01}),this.intersectionObserver.observe(this)}showErrorMessage(e){const t=document.createElement("div");t.className="youtube-error-message",t.setAttribute("role","alert"),t.innerHTML=`\n <div class="error-content">\n <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <circle cx="12" cy="12" r="10"></circle>\n <line x1="12" y1="8" x2="12" y2="12"></line>\n <line x1="12" y1="16" x2="12.01" y2="16"></line>\n </svg>\n <p class="error-message">${e}</p>\n <button class="retry-button">Retry</button>\n </div>\n `;const i=t.querySelector(".retry-button");i&&i.addEventListener("click",()=>{this.apiLoadRetries=0,t.remove(),__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")&&this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}),this.innerHTML="",this.appendChild(t)}connectedCallback(){YouTubeEmbed.instanceCount++,this.log("YouTubeEmbed: connectedCallback called, instance count:",YouTubeEmbed.instanceCount),1===YouTubeEmbed.instanceCount&&this.addResourceHints();const e=this.getAttribute("url"),t=this.getAttribute("video-id");e?(__classPrivateFieldSet(this,_YouTubeEmbed_url,e,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,this.extractVideoId(e),"f")):t&&__classPrivateFieldSet(this,_YouTubeEmbed_videoId,t,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,this.hasAttribute("autoplay"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_controls,this.hasAttribute("controls"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_lazy,this.hasAttribute("lazy"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_muted,this.hasAttribute("muted"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_background,this.hasAttribute("background"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_poster,this.getAttribute("poster")||"","f");try{const e=this.getAttribute("player-vars");__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,e?JSON.parse(e):{},"f")}catch(e){this.error("YouTubeEmbed: Invalid player-vars JSON on init:",e),__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,{},"f")}if(!__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))return this.error("YouTubeEmbed: Missing or invalid video ID"),void this.dispatchCustomEvent("error",{message:"Missing or invalid video ID"});this.classList.add("youtube-embed-wrapper"),this.setAttribute("role","region"),this.setAttribute("aria-label","Video player"),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.ariaLiveRegion=document.createElement("div"),this.ariaLiveRegion.setAttribute("aria-live","polite"),this.ariaLiveRegion.setAttribute("aria-atomic","true"),this.ariaLiveRegion.className="sr-only",this.ariaLiveRegion.style.cssText="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;",this.appendChild(this.ariaLiveRegion),this.setupKeyboardHandlers(),this.setupFullscreenListener(),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_updateBackgroundMode).call(this),__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")?(this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),this.setupIntersectionObserver()):this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),this.initialized=!0,this.dispatchCustomEvent("connected")}disconnectedCallback(){if(YouTubeEmbed.instanceCount--,this.log("YouTubeEmbed: disconnectedCallback called, remaining instances:",YouTubeEmbed.instanceCount),this.player){try{this.player.destroy(),this.log("YouTubeEmbed: Player destroyed.")}catch(e){this.warn("YouTubeEmbed: Error destroying player:",e)}this.player=null}this.keyboardHandler&&(this.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null);const e=this.querySelector(".youtube-poster"),t=this.querySelector(".button-overlay");if(e&&this.posterClickHandler&&(e.removeEventListener("click",this.posterClickHandler),this.posterClickHandler=null),t&&this.posterClickHandler&&t.removeEventListener("click",this.posterClickHandler),this.innerHTML="",this.classList.remove("youtube-embed-wrapper","youtube-embed-container","is-playing"),0===YouTubeEmbed.instanceCount){this.log("YouTubeEmbed: Last instance, cleaning up global resources");const e=document.querySelector('script[src="https://www.youtube.com/iframe_api"]');e&&(e.remove(),this.log("YouTubeEmbed: YouTube API script removed.")),window.onYouTubeIframeAPIReady&&delete window.onYouTubeIframeAPIReady,YouTubeEmbed.apiLoaded=!1,YouTubeEmbed.apiReady=!1}this.iframe=null,this.playPauseButton=null,this.setCustomControlState=null,this.dispatchCustomEvent("disconnected"),this.log("YouTubeEmbed: Cleanup complete.")}reinitializePlayer(){if(this.initialized&&__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")){if(this.player)try{this.player.destroy()}catch(e){this.warn("YouTubeEmbed: Error destroying player:",e)}__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")?this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")):this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}}showPoster(e){const t=this.isValidPosterUrl(__classPrivateFieldGet(this,_YouTubeEmbed_poster,"f"))?__classPrivateFieldGet(this,_YouTubeEmbed_poster,"f"):`https://img.youtube.com/vi/${e}/hqdefault.jpg`;this.log("YouTubeEmbed: Using poster URL:",t),this.innerHTML="",this.posterClickHandler&&(this.posterClickHandler=null);const i=document.createElement("img");i.src=t,i.alt="YouTube Video Thumbnail",i.classList.add("youtube-poster","video-poster"),i.loading="lazy",i.onerror=()=>{this.warn("YouTubeEmbed: Poster failed to load, using white background."),i.style.display="none",this.style.backgroundColor="#FFFFFF"};const s=document.createElement("div");s.classList.add("button-overlay"),s.setAttribute("role","button"),s.setAttribute("tabindex","0"),s.setAttribute("aria-label","Play video");const a=document.createElement("div");a.classList.add("button"),a.setAttribute("aria-hidden","true"),s.appendChild(a);const r=()=>{this.log("YouTubeEmbed: Loading video from poster click"),this.setAttribute("data-poster-autoplay","true");try{this.initializePlayer(e)}catch(e){this.error("YouTubeEmbed: Error initializing player from poster:",e),this.dispatchCustomEvent("error",{message:"Failed to load video"})}};this.posterClickHandler=r;i.addEventListener("click",r),s.addEventListener("click",r),s.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),r())}),this.appendChild(i),this.appendChild(s),this.log("YouTubeEmbed: Poster displayed for lazy loading")}initializePlayer(e){return __awaiter(this,void 0,void 0,function*(){this.log("YouTubeEmbed: Initializing player for video ID:",e);const t=__classPrivateFieldGet(this,_YouTubeEmbed_background,"f"),i=t||this.hasAttribute("autoplay")||this.hasAttribute("data-poster-autoplay")||this.hasAttribute("data-should-autoplay"),s=!t&&this.hasAttribute("controls"),a=t||i;this.hasAttribute("data-poster-autoplay")&&this.removeAttribute("data-poster-autoplay"),this.hasAttribute("data-should-autoplay")&&this.removeAttribute("data-should-autoplay"),this.log("YouTubeEmbed: Creating iframe with autoplay:",i,"controls:",s),this.iframe=document.createElement("iframe");const r=new URLSearchParams(Object.assign({enablejsapi:"1",autoplay:i?"1":"0",controls:s||t?"0":"1",mute:a?"1":"0",playsinline:"1",rel:"0",modestbranding:"1",origin:window.location.origin||"localhost"},__classPrivateFieldGet(this,_YouTubeEmbed_playerVars,"f")));__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&r.set("mute","1"),i&&!__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&(__classPrivateFieldSet(this,_YouTubeEmbed_muted,!0,"f"),this.log("YouTubeEmbed: Autoplay enabled, forcing muted state for compliance")),this.iframe.src=`https://www.youtube.com/embed/${e}?${r.toString()}`,this.iframe.allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",this.iframe.allowFullscreen=!0,this.iframe.style.position="absolute",this.iframe.style.border="none",__classPrivateFieldGet(this,_YouTubeEmbed_background,"f")?this.iframe.style.pointerEvents="none":(this.iframe.style.top="0",this.iframe.style.left="0",this.iframe.style.width="100%",this.iframe.style.height="100%"),this.log("YouTubeEmbed: Iframe created with src:",this.iframe.src),this.replaceChildren(this.iframe),s||this.addCustomControls();try{yield YouTubeEmbed.loadYouTubeAPIWithRetry(this.apiLoadRetries),this.player=new YT.Player(this.iframe,{videoId:e,events:{onReady:()=>{this.log("YouTubeEmbed: Player is ready."),this.playerReady=!0,__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")?this.player.mute():this.player.unMute(),i&&this.setCustomControlState&&(this.setCustomControlState(!0),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!0,"f")),this.dispatchCustomEvent("ready")},onStateChange:e=>{const t=e.data===YT.PlayerState.PLAYING,i=e.data===YT.PlayerState.PAUSED,s=e.data===YT.PlayerState.ENDED;__classPrivateFieldSet(this,_YouTubeEmbed_playing,t,"f");try{if(!this.updatingMutedState&&this.player&&"function"==typeof this.player.isMuted){const e=this.player.isMuted();e!==__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&(__classPrivateFieldSet(this,_YouTubeEmbed_muted,e,"f"),this.log("YouTubeEmbed: Synced muted state:",e))}}catch(e){this.warn("YouTubeEmbed: Could not sync muted state:",e)}this.setCustomControlState&&this.setCustomControlState(t),t?this.dispatchCustomEvent("play"):i?this.dispatchCustomEvent("pause"):s&&this.dispatchCustomEvent("ended")},onError:e=>{this.error("YouTubeEmbed: Player encountered an error:",e);let t="Unknown error occurred";switch(e.data){case 2:t="Invalid video ID";break;case 5:t="HTML5 player error";break;case 100:t="Video not found or private";break;case 101:case 150:t="Video cannot be embedded (restrictions by owner)";break;default:t=`YouTube error code: ${e.data}`}this.dispatchCustomEvent("error",{message:t,code:e.data})}}})}catch(e){this.error("YouTubeEmbed: YouTube API initialization failed:",e),this.showErrorMessage(e instanceof Error?e.message:"Failed to load YouTube player. Please refresh the page or check your connection."),this.dispatchCustomEvent("error",{message:e instanceof Error?e.message:"API load failed",code:"API_LOAD_ERROR",retryable:!0})}})}static loadYouTubeAPI(){return __awaiter(this,void 0,void 0,function*(){return new Promise((e,t)=>{if(this.apiReady)return void e();const i=setTimeout(()=>{s(),t(new Error("YouTube API loading timeout. The API script may be blocked by an ad blocker or network issue."))},this.API_LOAD_TIMEOUT),s=()=>{clearTimeout(i),delete window.onYouTubeIframeAPIReady};if(!this.apiLoaded){const e=document.createElement("script");e.src="https://www.youtube.com/iframe_api",e.onerror=()=>{s(),t(new Error("Failed to load YouTube API script. Please check your network connection or disable ad blockers."))},document.head.appendChild(e),this.apiLoaded=!0}window.onYouTubeIframeAPIReady=()=>{this.apiReady=!0,s(),e()}})})}static loadYouTubeAPIWithRetry(){return __awaiter(this,arguments,void 0,function*(e=0){try{yield this.loadYouTubeAPI()}catch(t){if(e<this.MAX_API_RETRIES)return console.warn(`YouTubeEmbed: API load failed, retrying (${e+1}/${this.MAX_API_RETRIES})...`),yield new Promise(e=>setTimeout(e,this.API_RETRY_DELAY)),this.loadYouTubeAPIWithRetry(e+1);throw t}})}addCustomControls(){this.classList.add("youtube-embed-container");const e=document.createElement("div");e.classList.add("button-overlay"),this.playPauseButton=document.createElement("div"),this.playPauseButton.classList.add("button");let t=!1;const i=e=>{t=e,e?this.classList.add("is-playing"):this.classList.remove("is-playing")};this.setCustomControlState=i,e.addEventListener("click",()=>{t?(this.player&&"function"==typeof this.player.pauseVideo?this.player.pauseVideo():this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*"),i(!1)):(this.player&&"function"==typeof this.player.playVideo?this.player.playVideo():this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"),i(!0))}),this.playPauseButton&&e.appendChild(this.playPauseButton),this.appendChild(e)}play(){return __awaiter(this,void 0,void 0,function*(){!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")||this.player||this.iframe||(this.log("YouTubeEmbed: Lazy video needs to be loaded first. Initializing..."),this.setAttribute("data-should-autoplay","true"),yield this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),yield new Promise(e=>setTimeout(e,1e3))),this.playerReady||(this.warn("YouTubeEmbed: Player is not ready. Waiting for initialization."),yield new Promise(e=>{const t=setInterval(()=>{this.playerReady&&(clearInterval(t),e(null))},100);setTimeout(()=>{clearInterval(t),e(null)},5e3)})),this.removeAttribute("data-should-autoplay"),this.player&&"function"==typeof this.player.playVideo?(this.player.playVideo(),this.log("YouTubeEmbed: Video playback started via API.")):(this.log("YouTubeEmbed: Using iframe postMessage for play."),this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!0,"f"),this.setCustomControlState&&this.setCustomControlState(!0),this.dispatchCustomEvent("play")})}pause(){this.player&&"function"==typeof this.player.pauseVideo?(this.player.pauseVideo(),this.log("YouTubeEmbed: Video paused via API.")):(this.log("YouTubeEmbed: Using iframe postMessage for pause."),this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!1,"f"),this.setCustomControlState&&this.setCustomControlState(!1),this.dispatchCustomEvent("pause")}stopVideo(){this.player&&"function"==typeof this.player.stopVideo?(this.player.stopVideo(),this.log("YouTubeEmbed: Video stopped via API.")):(this.log("YouTubeEmbed: Using iframe postMessage for stop."),this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"stopVideo","args":""}',"*")),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!1,"f"),this.setCustomControlState&&this.setCustomControlState(!1),this.dispatchCustomEvent("stop")}mute(){this.muted=!0}unmute(){this.muted=!1}togglePlay(){__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")?this.pause():this.play()}toggleMute(){this.muted=!__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")}static toggleDebug(e){YouTubeEmbed.DEBUG=void 0!==e?e:!YouTubeEmbed.DEBUG,console.log(`YouTubeEmbed: Debugging is now ${YouTubeEmbed.DEBUG?"ENABLED":"DISABLED"}.`)}getPlayerState(){let e=__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f");if(this.player&&this.playerReady)try{e=this.player.isMuted(),e!==__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&__classPrivateFieldSet(this,_YouTubeEmbed_muted,e,"f")}catch(e){this.warn("YouTubeEmbed: Could not get muted state from player:",e)}return{playing:__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f"),muted:e,videoId:__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"),ready:this.playerReady,initialized:this.initialized}}isPlaying(){return __classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")}isMuted(){if(this.player&&this.playerReady)try{return this.player.isMuted()}catch(e){this.warn("YouTubeEmbed: Could not get muted state from player:",e)}return __classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")}enterFullscreen(){const e=this;return e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen?e.msRequestFullscreen():Promise.reject(new Error("Fullscreen API not supported"))}exitFullscreen(){const e=document;return e.exitFullscreen?e.exitFullscreen():e.webkitExitFullscreen?e.webkitExitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.msExitFullscreen?e.msExitFullscreen():Promise.reject(new Error("Fullscreen API not supported"))}toggleFullscreen(){return __awaiter(this,void 0,void 0,function*(){this.isFullscreen()?yield this.exitFullscreen():yield this.enterFullscreen()})}isFullscreen(){const e=document;return!!(e.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement)}getAvailableQualities(){if(this.player&&this.playerReady)try{return this.player.getAvailableQualityLevels()||[]}catch(e){this.warn("YouTubeEmbed: Could not get available qualities:",e)}return[]}getCurrentQuality(){if(this.player&&this.playerReady)try{return this.player.getPlaybackQuality()||"auto"}catch(e){this.warn("YouTubeEmbed: Could not get current quality:",e)}return"auto"}setQuality(e){if(this.player&&this.playerReady)try{const t=this.getCurrentQuality();this.player.setPlaybackQuality(e);const i=new CustomEvent("qualitychange",{detail:{oldQuality:t,newQuality:e,availableQualities:this.getAvailableQualities()},bubbles:!0,composed:!0});this.dispatchEvent(i)}catch(e){this.warn("YouTubeEmbed: Could not set quality:",e)}else this.warn("YouTubeEmbed: Player not ready for quality change")}getCurrentTime(){if(this.player&&this.playerReady)try{return this.player.getCurrentTime()||0}catch(e){this.warn("YouTubeEmbed: Could not get current time from player:",e)}return 0}loadVideo(e){const t=this.extractVideoId(e);if(t?(__classPrivateFieldSet(this,_YouTubeEmbed_url,e,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,t,"f")):__classPrivateFieldSet(this,_YouTubeEmbed_videoId,e,"f"),!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")||this.player)this.initialized&&this.reinitializePlayer();else try{this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}catch(e){this.warn("YouTubeEmbed: loadVideo failed to initialize player:",e)}}}_YouTubeEmbed_url=new WeakMap,_YouTubeEmbed_videoId=new WeakMap,_YouTubeEmbed_autoplay=new WeakMap,_YouTubeEmbed_muted=new WeakMap,_YouTubeEmbed_controls=new WeakMap,_YouTubeEmbed_lazy=new WeakMap,_YouTubeEmbed_poster=new WeakMap,_YouTubeEmbed_playing=new WeakMap,_YouTubeEmbed_background=new WeakMap,_YouTubeEmbed_playerVars=new WeakMap,_YouTubeEmbed_instances=new WeakSet,_YouTubeEmbed_reflectBooleanAttribute=function(e,t){this.updatingAttribute=!0,t?this.setAttribute(e,""):this.removeAttribute(e),this.updatingAttribute=!1},_YouTubeEmbed_updateBackgroundMode=function(){__classPrivateFieldGet(this,_YouTubeEmbed_background,"f")?(this.classList.add("is-background"),__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,!0,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_muted,!0,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_controls,!1,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_lazy,!1,"f")):this.classList.remove("is-background")},YouTubeEmbed.apiLoaded=!1,YouTubeEmbed.apiReady=!1,YouTubeEmbed.instanceCount=0,YouTubeEmbed.DEBUG=!1,YouTubeEmbed.MAX_API_RETRIES=3,YouTubeEmbed.API_RETRY_DELAY=2e3,YouTubeEmbed.API_LOAD_TIMEOUT=1e4,customElements.define("youtube-embed",YouTubeEmbed);
1
+ var _YouTubeEmbed_instances,_YouTubeEmbed_url,_YouTubeEmbed_videoId,_YouTubeEmbed_autoplay,_YouTubeEmbed_muted,_YouTubeEmbed_controls,_YouTubeEmbed_lazy,_YouTubeEmbed_poster,_YouTubeEmbed_playing,_YouTubeEmbed_background,_YouTubeEmbed_playerVars,_YouTubeEmbed_reflectBooleanAttribute,_YouTubeEmbed_updateBackgroundMode,__awaiter=this&&this.__awaiter||function(e,t,i,s){return new(i||(i=Promise))(function(a,r){function o(e){try{l(s.next(e))}catch(e){r(e)}}function u(e){try{l(s.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(o,u)}l((s=s.apply(e,t||[])).next())})},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,i,s,a){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?a.call(e,i):a?a.value=i:t.set(e,i),i},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,i,s){if("a"===i&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?s:"a"===i?s.call(e):s?s.value:t.get(e)};export class YouTubeEmbed extends HTMLElement{constructor(){super(...arguments),_YouTubeEmbed_instances.add(this),this.iframe=null,this.player=null,this.playerReady=!1,this.playPauseButton=null,this.initialized=!1,this.setCustomControlState=null,this.updatingAttribute=!1,this.updatingMutedState=!1,_YouTubeEmbed_url.set(this,""),_YouTubeEmbed_videoId.set(this,""),_YouTubeEmbed_autoplay.set(this,!1),_YouTubeEmbed_muted.set(this,!1),_YouTubeEmbed_controls.set(this,!1),_YouTubeEmbed_lazy.set(this,!1),_YouTubeEmbed_poster.set(this,""),_YouTubeEmbed_playing.set(this,!1),_YouTubeEmbed_background.set(this,!1),_YouTubeEmbed_playerVars.set(this,{}),this.posterClickHandler=null,this.keyboardHandler=null,this.ariaLiveRegion=null,this.apiLoadRetries=0,this.intersectionObserver=null,this.hasLoadedVideo=!1}static get observedAttributes(){return["url","video-id","autoplay","controls","lazy","muted","poster","background","player-vars","quality"]}attributeChangedCallback(e,t,i){if(!this.updatingAttribute)switch(this.log(`YouTubeEmbed: Attribute changed - ${e}: ${t} -> ${i}`),e){case"url":__classPrivateFieldSet(this,_YouTubeEmbed_url,i||"","f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,this.extractVideoId(__classPrivateFieldGet(this,_YouTubeEmbed_url,"f")),"f"),this.initialized&&this.reinitializePlayer();break;case"video-id":__classPrivateFieldSet(this,_YouTubeEmbed_videoId,i||"","f"),this.initialized&&this.reinitializePlayer();break;case"autoplay":__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,null!==i,"f"),!__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")&&__classPrivateFieldGet(this,_YouTubeEmbed_autoplay,"f")&&!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&this.initialized&&this.play();break;case"controls":__classPrivateFieldSet(this,_YouTubeEmbed_controls,null!==i,"f"),this.initialized&&this.reinitializePlayer();break;case"lazy":__classPrivateFieldSet(this,_YouTubeEmbed_lazy,null!==i,"f");break;case"muted":__classPrivateFieldSet(this,_YouTubeEmbed_muted,null!==i,"f"),this.player&&this.playerReady&&(__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")?this.player.mute():this.player.unMute());break;case"poster":__classPrivateFieldSet(this,_YouTubeEmbed_poster,i||"","f"),__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&!this.player&&this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"));break;case"background":__classPrivateFieldSet(this,_YouTubeEmbed_background,null!==i,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_updateBackgroundMode).call(this);break;case"player-vars":try{__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,i?JSON.parse(i):{},"f")}catch(e){this.error("YouTubeEmbed: Invalid player-vars JSON:",e),__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,{},"f")}this.initialized&&this.reinitializePlayer();break;case"quality":i&&this.player&&this.playerReady&&this.setQuality(i)}}get url(){return __classPrivateFieldGet(this,_YouTubeEmbed_url,"f")}set url(e){__classPrivateFieldSet(this,_YouTubeEmbed_url,e,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,this.extractVideoId(e),"f"),this.initialized&&this.reinitializePlayer()}get videoId(){return __classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")}set videoId(e){__classPrivateFieldSet(this,_YouTubeEmbed_videoId,e,"f"),this.initialized&&this.reinitializePlayer()}get autoplay(){return __classPrivateFieldGet(this,_YouTubeEmbed_autoplay,"f")}set autoplay(e){__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"autoplay",e),!__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")&&e&&!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&this.initialized&&this.play()}get controls(){return __classPrivateFieldGet(this,_YouTubeEmbed_controls,"f")}set controls(e){__classPrivateFieldSet(this,_YouTubeEmbed_controls,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"controls",e),this.initialized&&this.reinitializePlayer()}get lazy(){return __classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")}set lazy(e){__classPrivateFieldSet(this,_YouTubeEmbed_lazy,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"lazy",e)}get muted(){return __classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")}set muted(e){__classPrivateFieldSet(this,_YouTubeEmbed_muted,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"muted",e),this.player&&this.playerReady&&(this.updatingMutedState=!0,e?this.player.mute():this.player.unMute(),setTimeout(()=>{this.updatingMutedState=!1},100))}get poster(){return __classPrivateFieldGet(this,_YouTubeEmbed_poster,"f")}set poster(e){__classPrivateFieldSet(this,_YouTubeEmbed_poster,e,"f"),this.updatingAttribute=!0,e?this.setAttribute("poster",e):this.removeAttribute("poster"),this.updatingAttribute=!1,__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")&&!this.player&&this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}get playing(){return __classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")}get background(){return __classPrivateFieldGet(this,_YouTubeEmbed_background,"f")}set background(e){__classPrivateFieldSet(this,_YouTubeEmbed_background,e,"f"),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_reflectBooleanAttribute).call(this,"background",e),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_updateBackgroundMode).call(this)}get playerVars(){return __classPrivateFieldGet(this,_YouTubeEmbed_playerVars,"f")}set playerVars(e){__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,e,"f"),this.setAttribute("player-vars",JSON.stringify(e)),this.initialized&&this.reinitializePlayer()}extractVideoId(e){if(!e)return"";const t=e.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/);return t&&t[1]?t[1]:/^[a-zA-Z0-9_-]{11}$/.test(e)?e:(this.warn(`YouTubeEmbed: Could not extract video ID from "${e}"`),"")}log(...e){YouTubeEmbed.DEBUG&&console.log("YouTubeEmbed:",...e)}warn(...e){console.warn(...e)}error(...e){console.error(...e)}dispatchCustomEvent(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}isValidPosterUrl(e){if(!e)return!1;try{return new URL(e),!0}catch(e){return!1}}setupFullscreenListener(){const e=()=>{const e=this.isFullscreen();this.dispatchCustomEvent("fullscreenchange",{isFullscreen:e}),e?this.classList.add("is-fullscreen"):this.classList.remove("is-fullscreen")};document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e)}setupKeyboardHandlers(){this.keyboardHandler=e=>{var t,i;if(this.playerReady&&"INPUT"!==(null===(t=e.target)||void 0===t?void 0:t.tagName))switch(e.key.toLowerCase()){case"k":case" ":e.preventDefault(),this.togglePlay(),this.announceToScreenReader(__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")?"Video playing":"Video paused");break;case"m":e.preventDefault(),this.toggleMute(),null===(i=this.player)||void 0===i||i.isMuted().then(e=>{this.announceToScreenReader(e?"Video muted":"Video unmuted")});break;case"f":e.preventDefault(),document.fullscreenElement?(document.exitFullscreen(),this.announceToScreenReader("Exited fullscreen")):this.enterFullscreen&&(this.enterFullscreen(),this.announceToScreenReader("Entered fullscreen"))}},this.addEventListener("keydown",this.keyboardHandler)}announceToScreenReader(e){this.ariaLiveRegion&&(this.ariaLiveRegion.textContent=e,setTimeout(()=>{this.ariaLiveRegion&&(this.ariaLiveRegion.textContent="")},1e3))}addResourceHints(){[{rel:"preconnect",href:"https://www.youtube.com"},{rel:"preconnect",href:"https://i.ytimg.com"},{rel:"dns-prefetch",href:"https://www.youtube.com"},{rel:"dns-prefetch",href:"https://i.ytimg.com"}].forEach(({rel:e,href:t})=>{if(!document.querySelector(`link[rel="${e}"][href="${t}"]`)){const i=document.createElement("link");i.rel=e,i.href=t,"preconnect"===e&&(i.crossOrigin="anonymous"),document.head.appendChild(i)}})}setupIntersectionObserver(){if(!("IntersectionObserver"in window))return;this.intersectionObserver=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting&&!this.hasLoadedVideo){this.hasLoadedVideo=!0,this.log("YouTubeEmbed: Video entering viewport, loading...");"true"===this.getAttribute("data-poster-autoplay")||this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),this.intersectionObserver&&this.intersectionObserver.disconnect()}})},{root:null,rootMargin:"50px",threshold:.01}),this.intersectionObserver.observe(this)}showErrorMessage(e){const t=document.createElement("div");t.className="youtube-error-message",t.setAttribute("role","alert"),t.innerHTML=`\n <div class="error-content">\n <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <circle cx="12" cy="12" r="10"></circle>\n <line x1="12" y1="8" x2="12" y2="12"></line>\n <line x1="12" y1="16" x2="12.01" y2="16"></line>\n </svg>\n <p class="error-message">${e}</p>\n <button class="retry-button">Retry</button>\n </div>\n `;const i=t.querySelector(".retry-button");i&&i.addEventListener("click",()=>{this.apiLoadRetries=0,t.remove(),__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")&&this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}),this.innerHTML="",this.appendChild(t)}connectedCallback(){YouTubeEmbed.instanceCount++,this.log("YouTubeEmbed: connectedCallback called, instance count:",YouTubeEmbed.instanceCount),1===YouTubeEmbed.instanceCount&&this.addResourceHints();const e=this.getAttribute("url"),t=this.getAttribute("video-id");e?(__classPrivateFieldSet(this,_YouTubeEmbed_url,e,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,this.extractVideoId(e),"f")):t&&__classPrivateFieldSet(this,_YouTubeEmbed_videoId,t,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,this.hasAttribute("autoplay"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_controls,this.hasAttribute("controls"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_lazy,this.hasAttribute("lazy"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_muted,this.hasAttribute("muted"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_background,this.hasAttribute("background"),"f"),__classPrivateFieldSet(this,_YouTubeEmbed_poster,this.getAttribute("poster")||"","f");try{const e=this.getAttribute("player-vars");__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,e?JSON.parse(e):{},"f")}catch(e){this.error("YouTubeEmbed: Invalid player-vars JSON on init:",e),__classPrivateFieldSet(this,_YouTubeEmbed_playerVars,{},"f")}if(!__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))return this.error("YouTubeEmbed: Missing or invalid video ID"),void this.dispatchCustomEvent("error",{message:"Missing or invalid video ID"});this.classList.add("youtube-embed-wrapper"),this.setAttribute("role","region"),this.setAttribute("aria-label","Video player"),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.ariaLiveRegion=document.createElement("div"),this.ariaLiveRegion.setAttribute("aria-live","polite"),this.ariaLiveRegion.setAttribute("aria-atomic","true"),this.ariaLiveRegion.className="sr-only",this.ariaLiveRegion.style.cssText="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;",this.appendChild(this.ariaLiveRegion),this.setupKeyboardHandlers(),this.setupFullscreenListener(),__classPrivateFieldGet(this,_YouTubeEmbed_instances,"m",_YouTubeEmbed_updateBackgroundMode).call(this),__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")?(this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),this.setupIntersectionObserver()):this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),this.initialized=!0,this.dispatchCustomEvent("connected")}disconnectedCallback(){if(YouTubeEmbed.instanceCount--,this.log("YouTubeEmbed: disconnectedCallback called, remaining instances:",YouTubeEmbed.instanceCount),this.player){try{this.player.destroy(),this.log("YouTubeEmbed: Player destroyed.")}catch(e){this.warn("YouTubeEmbed: Error destroying player:",e)}this.player=null}this.keyboardHandler&&(this.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null);const e=this.querySelector(".youtube-poster"),t=this.querySelector(".button-overlay");if(e&&this.posterClickHandler&&(e.removeEventListener("click",this.posterClickHandler),this.posterClickHandler=null),t&&this.posterClickHandler&&t.removeEventListener("click",this.posterClickHandler),this.innerHTML="",this.classList.remove("youtube-embed-wrapper","youtube-embed-container","is-playing"),0===YouTubeEmbed.instanceCount){this.log("YouTubeEmbed: Last instance, cleaning up global resources");const e=document.querySelector('script[src="https://www.youtube.com/iframe_api"]');e&&(e.remove(),this.log("YouTubeEmbed: YouTube API script removed.")),window.onYouTubeIframeAPIReady&&delete window.onYouTubeIframeAPIReady,YouTubeEmbed.apiLoaded=!1,YouTubeEmbed.apiReady=!1}this.iframe=null,this.playPauseButton=null,this.setCustomControlState=null,this.dispatchCustomEvent("disconnected"),this.log("YouTubeEmbed: Cleanup complete.")}reinitializePlayer(){if(this.initialized&&__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")){if(this.player)try{this.player.destroy()}catch(e){this.warn("YouTubeEmbed: Error destroying player:",e)}__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")?this.showPoster(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")):this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}}showPoster(e){const t=this.isValidPosterUrl(__classPrivateFieldGet(this,_YouTubeEmbed_poster,"f"))?__classPrivateFieldGet(this,_YouTubeEmbed_poster,"f"):`https://img.youtube.com/vi/${e}/hqdefault.jpg`;this.log("YouTubeEmbed: Using poster URL:",t),this.innerHTML="",this.posterClickHandler&&(this.posterClickHandler=null);const i=document.createElement("img");i.src=t,i.alt="YouTube Video Thumbnail",i.classList.add("youtube-poster","video-poster"),i.loading="lazy",i.onerror=()=>{this.warn("YouTubeEmbed: Poster failed to load, using white background."),i.style.display="none",this.style.backgroundColor="#FFFFFF"};const s=document.createElement("div");s.classList.add("button-overlay"),s.setAttribute("role","button"),s.setAttribute("tabindex","0"),s.setAttribute("aria-label","Play video");const a=document.createElement("div");a.classList.add("button"),a.setAttribute("aria-hidden","true"),s.appendChild(a);const r=()=>{this.log("YouTubeEmbed: Loading video from poster click"),this.setAttribute("data-poster-autoplay","true");try{this.initializePlayer(e)}catch(e){this.error("YouTubeEmbed: Error initializing player from poster:",e),this.dispatchCustomEvent("error",{message:"Failed to load video"})}};this.posterClickHandler=r;i.addEventListener("click",r),s.addEventListener("click",r),s.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),r())}),this.appendChild(i),this.appendChild(s),this.log("YouTubeEmbed: Poster displayed for lazy loading")}initializePlayer(e){return __awaiter(this,void 0,void 0,function*(){this.log("YouTubeEmbed: Initializing player for video ID:",e);const t=__classPrivateFieldGet(this,_YouTubeEmbed_background,"f"),i=t||this.hasAttribute("autoplay")||this.hasAttribute("data-poster-autoplay")||this.hasAttribute("data-should-autoplay"),s=!t&&this.hasAttribute("controls"),a=t||i;this.hasAttribute("data-poster-autoplay")&&this.removeAttribute("data-poster-autoplay"),this.hasAttribute("data-should-autoplay")&&this.removeAttribute("data-should-autoplay"),this.log("YouTubeEmbed: Creating iframe with autoplay:",i,"controls:",s),this.iframe=document.createElement("iframe");const r=new URLSearchParams(Object.assign({enablejsapi:"1",autoplay:i?"1":"0",controls:!t&&s?"1":"0",mute:a?"1":"0",playsinline:"1",rel:"0",modestbranding:"1",origin:window.location.origin||"localhost"},__classPrivateFieldGet(this,_YouTubeEmbed_playerVars,"f")));__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&r.set("mute","1"),i&&!__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&(__classPrivateFieldSet(this,_YouTubeEmbed_muted,!0,"f"),this.log("YouTubeEmbed: Autoplay enabled, forcing muted state for compliance")),this.iframe.src=`https://www.youtube.com/embed/${e}?${r.toString()}`,this.iframe.allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",this.iframe.allowFullscreen=!0,this.iframe.style.position="absolute",this.iframe.style.border="none",__classPrivateFieldGet(this,_YouTubeEmbed_background,"f")?this.iframe.style.pointerEvents="none":(this.iframe.style.top="0",this.iframe.style.left="0",this.iframe.style.width="100%",this.iframe.style.height="100%"),this.log("YouTubeEmbed: Iframe created with src:",this.iframe.src),this.replaceChildren(this.iframe),s||this.addCustomControls();try{yield YouTubeEmbed.loadYouTubeAPIWithRetry(this.apiLoadRetries),this.player=new YT.Player(this.iframe,{videoId:e,events:{onReady:()=>{this.log("YouTubeEmbed: Player is ready."),this.playerReady=!0,__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")?this.player.mute():this.player.unMute(),i&&this.setCustomControlState&&(this.setCustomControlState(!0),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!0,"f")),this.dispatchCustomEvent("ready")},onStateChange:e=>{const t=e.data===YT.PlayerState.PLAYING,i=e.data===YT.PlayerState.PAUSED,s=e.data===YT.PlayerState.ENDED;__classPrivateFieldSet(this,_YouTubeEmbed_playing,t,"f");try{if(!this.updatingMutedState&&this.player&&"function"==typeof this.player.isMuted){const e=this.player.isMuted();e!==__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&(__classPrivateFieldSet(this,_YouTubeEmbed_muted,e,"f"),this.log("YouTubeEmbed: Synced muted state:",e))}}catch(e){this.warn("YouTubeEmbed: Could not sync muted state:",e)}this.setCustomControlState&&this.setCustomControlState(t),t?this.dispatchCustomEvent("play"):i?this.dispatchCustomEvent("pause"):s&&this.dispatchCustomEvent("ended")},onError:e=>{this.error("YouTubeEmbed: Player encountered an error:",e);let t="Unknown error occurred";switch(e.data){case 2:t="Invalid video ID";break;case 5:t="HTML5 player error";break;case 100:t="Video not found or private";break;case 101:case 150:t="Video cannot be embedded (restrictions by owner)";break;default:t=`YouTube error code: ${e.data}`}this.dispatchCustomEvent("error",{message:t,code:e.data})}}})}catch(e){this.error("YouTubeEmbed: YouTube API initialization failed:",e),this.showErrorMessage(e instanceof Error?e.message:"Failed to load YouTube player. Please refresh the page or check your connection."),this.dispatchCustomEvent("error",{message:e instanceof Error?e.message:"API load failed",code:"API_LOAD_ERROR",retryable:!0})}})}static loadYouTubeAPI(){return __awaiter(this,void 0,void 0,function*(){return new Promise((e,t)=>{if(this.apiReady)return void e();const i=setTimeout(()=>{s(),t(new Error("YouTube API loading timeout. The API script may be blocked by an ad blocker or network issue."))},this.API_LOAD_TIMEOUT),s=()=>{clearTimeout(i),delete window.onYouTubeIframeAPIReady};if(!this.apiLoaded){const e=document.createElement("script");e.src="https://www.youtube.com/iframe_api",e.onerror=()=>{s(),t(new Error("Failed to load YouTube API script. Please check your network connection or disable ad blockers."))},document.head.appendChild(e),this.apiLoaded=!0}window.onYouTubeIframeAPIReady=()=>{this.apiReady=!0,s(),e()}})})}static loadYouTubeAPIWithRetry(){return __awaiter(this,arguments,void 0,function*(e=0){try{yield this.loadYouTubeAPI()}catch(t){if(e<this.MAX_API_RETRIES)return console.warn(`YouTubeEmbed: API load failed, retrying (${e+1}/${this.MAX_API_RETRIES})...`),yield new Promise(e=>setTimeout(e,this.API_RETRY_DELAY)),this.loadYouTubeAPIWithRetry(e+1);throw t}})}addCustomControls(){this.classList.add("youtube-embed-container");const e=document.createElement("div");e.classList.add("button-overlay"),this.playPauseButton=document.createElement("div"),this.playPauseButton.classList.add("button");let t=!1;const i=e=>{t=e,e?this.classList.add("is-playing"):this.classList.remove("is-playing")};this.setCustomControlState=i,e.addEventListener("click",()=>{t?(this.player&&"function"==typeof this.player.pauseVideo?this.player.pauseVideo():this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*"),i(!1)):(this.player&&"function"==typeof this.player.playVideo?this.player.playVideo():this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"),i(!0))}),this.playPauseButton&&e.appendChild(this.playPauseButton),this.appendChild(e)}play(){return __awaiter(this,void 0,void 0,function*(){!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")||this.player||this.iframe||(this.log("YouTubeEmbed: Lazy video needs to be loaded first. Initializing..."),this.setAttribute("data-should-autoplay","true"),yield this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f")),yield new Promise(e=>setTimeout(e,1e3))),this.playerReady||(this.warn("YouTubeEmbed: Player is not ready. Waiting for initialization."),yield new Promise(e=>{const t=setInterval(()=>{this.playerReady&&(clearInterval(t),e(null))},100);setTimeout(()=>{clearInterval(t),e(null)},5e3)})),this.removeAttribute("data-should-autoplay"),this.player&&"function"==typeof this.player.playVideo?(this.player.playVideo(),this.log("YouTubeEmbed: Video playback started via API.")):(this.log("YouTubeEmbed: Using iframe postMessage for play."),this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!0,"f"),this.setCustomControlState&&this.setCustomControlState(!0),this.dispatchCustomEvent("play")})}pause(){this.player&&"function"==typeof this.player.pauseVideo?(this.player.pauseVideo(),this.log("YouTubeEmbed: Video paused via API.")):(this.log("YouTubeEmbed: Using iframe postMessage for pause."),this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!1,"f"),this.setCustomControlState&&this.setCustomControlState(!1),this.dispatchCustomEvent("pause")}stopVideo(){this.player&&"function"==typeof this.player.stopVideo?(this.player.stopVideo(),this.log("YouTubeEmbed: Video stopped via API.")):(this.log("YouTubeEmbed: Using iframe postMessage for stop."),this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage('{"event":"command","func":"stopVideo","args":""}',"*")),__classPrivateFieldSet(this,_YouTubeEmbed_playing,!1,"f"),this.setCustomControlState&&this.setCustomControlState(!1),this.dispatchCustomEvent("stop")}mute(){this.muted=!0}unmute(){this.muted=!1}togglePlay(){__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")?this.pause():this.play()}toggleMute(){this.muted=!__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")}static toggleDebug(e){YouTubeEmbed.DEBUG=void 0!==e?e:!YouTubeEmbed.DEBUG,console.log(`YouTubeEmbed: Debugging is now ${YouTubeEmbed.DEBUG?"ENABLED":"DISABLED"}.`)}getPlayerState(){let e=__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f");if(this.player&&this.playerReady)try{e=this.player.isMuted(),e!==__classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")&&__classPrivateFieldSet(this,_YouTubeEmbed_muted,e,"f")}catch(e){this.warn("YouTubeEmbed: Could not get muted state from player:",e)}return{playing:__classPrivateFieldGet(this,_YouTubeEmbed_playing,"f"),muted:e,videoId:__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"),ready:this.playerReady,initialized:this.initialized}}isPlaying(){return __classPrivateFieldGet(this,_YouTubeEmbed_playing,"f")}isMuted(){if(this.player&&this.playerReady)try{return this.player.isMuted()}catch(e){this.warn("YouTubeEmbed: Could not get muted state from player:",e)}return __classPrivateFieldGet(this,_YouTubeEmbed_muted,"f")}enterFullscreen(){const e=this;return e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen?e.msRequestFullscreen():Promise.reject(new Error("Fullscreen API not supported"))}exitFullscreen(){const e=document;return e.exitFullscreen?e.exitFullscreen():e.webkitExitFullscreen?e.webkitExitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.msExitFullscreen?e.msExitFullscreen():Promise.reject(new Error("Fullscreen API not supported"))}toggleFullscreen(){return __awaiter(this,void 0,void 0,function*(){this.isFullscreen()?yield this.exitFullscreen():yield this.enterFullscreen()})}isFullscreen(){const e=document;return!!(e.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement)}getAvailableQualities(){if(this.player&&this.playerReady)try{return this.player.getAvailableQualityLevels()||[]}catch(e){this.warn("YouTubeEmbed: Could not get available qualities:",e)}return[]}getCurrentQuality(){if(this.player&&this.playerReady)try{return this.player.getPlaybackQuality()||"auto"}catch(e){this.warn("YouTubeEmbed: Could not get current quality:",e)}return"auto"}setQuality(e){if(this.player&&this.playerReady)try{const t=this.getCurrentQuality();this.player.setPlaybackQuality(e);const i=new CustomEvent("qualitychange",{detail:{oldQuality:t,newQuality:e,availableQualities:this.getAvailableQualities()},bubbles:!0,composed:!0});this.dispatchEvent(i)}catch(e){this.warn("YouTubeEmbed: Could not set quality:",e)}else this.warn("YouTubeEmbed: Player not ready for quality change")}getCurrentTime(){if(this.player&&this.playerReady)try{return this.player.getCurrentTime()||0}catch(e){this.warn("YouTubeEmbed: Could not get current time from player:",e)}return 0}loadVideo(e){const t=this.extractVideoId(e);if(t?(__classPrivateFieldSet(this,_YouTubeEmbed_url,e,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_videoId,t,"f")):__classPrivateFieldSet(this,_YouTubeEmbed_videoId,e,"f"),!__classPrivateFieldGet(this,_YouTubeEmbed_lazy,"f")||this.player)this.initialized&&this.reinitializePlayer();else try{this.initializePlayer(__classPrivateFieldGet(this,_YouTubeEmbed_videoId,"f"))}catch(e){this.warn("YouTubeEmbed: loadVideo failed to initialize player:",e)}}}_YouTubeEmbed_url=new WeakMap,_YouTubeEmbed_videoId=new WeakMap,_YouTubeEmbed_autoplay=new WeakMap,_YouTubeEmbed_muted=new WeakMap,_YouTubeEmbed_controls=new WeakMap,_YouTubeEmbed_lazy=new WeakMap,_YouTubeEmbed_poster=new WeakMap,_YouTubeEmbed_playing=new WeakMap,_YouTubeEmbed_background=new WeakMap,_YouTubeEmbed_playerVars=new WeakMap,_YouTubeEmbed_instances=new WeakSet,_YouTubeEmbed_reflectBooleanAttribute=function(e,t){this.updatingAttribute=!0,t?this.setAttribute(e,""):this.removeAttribute(e),this.updatingAttribute=!1},_YouTubeEmbed_updateBackgroundMode=function(){__classPrivateFieldGet(this,_YouTubeEmbed_background,"f")?(this.classList.add("is-background"),__classPrivateFieldSet(this,_YouTubeEmbed_autoplay,!0,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_muted,!0,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_controls,!1,"f"),__classPrivateFieldSet(this,_YouTubeEmbed_lazy,!1,"f")):this.classList.remove("is-background")},YouTubeEmbed.apiLoaded=!1,YouTubeEmbed.apiReady=!1,YouTubeEmbed.instanceCount=0,YouTubeEmbed.DEBUG=!1,YouTubeEmbed.MAX_API_RETRIES=3,YouTubeEmbed.API_RETRY_DELAY=2e3,YouTubeEmbed.API_LOAD_TIMEOUT=1e4,customElements.define("youtube-embed",YouTubeEmbed);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartimpact-it/modern-video-embed",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Modern YouTube and Vimeo embed web components with lazy loading, accessibility, quality control, and comprehensive API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -59,7 +59,8 @@
59
59
  "test:validate": "npm run build && node scripts/verify-build.js",
60
60
  "prepublishOnly": "npm run build:prod",
61
61
  "version": "git add -A src",
62
- "postversion": "git push && git push --tags"
62
+ "postversion": "git push && git push --tags",
63
+ "publish-to-npmjs": "npm version patch && npm publish --access public"
63
64
  },
64
65
  "devDependencies": {
65
66
  "concurrently": "^9.2.1",
@@ -72,4 +73,4 @@
72
73
  "dependencies": {
73
74
  "bootstrap": "^5.3.8"
74
75
  }
75
- }
76
+ }
@@ -62,7 +62,7 @@ export class YouTubeEmbed extends HTMLElement {
62
62
  attributeChangedCallback(
63
63
  name: string,
64
64
  oldValue: string | null,
65
- newValue: string | null
65
+ newValue: string | null,
66
66
  ) {
67
67
  // Skip processing if we're currently updating an attribute to prevent infinite loops
68
68
  if (this.updatingAttribute) {
@@ -70,7 +70,7 @@ export class YouTubeEmbed extends HTMLElement {
70
70
  }
71
71
 
72
72
  this.log(
73
- `YouTubeEmbed: Attribute changed - ${name}: ${oldValue} -> ${newValue}`
73
+ `YouTubeEmbed: Attribute changed - ${name}: ${oldValue} -> ${newValue}`,
74
74
  );
75
75
 
76
76
  switch (name) {
@@ -347,7 +347,7 @@ export class YouTubeEmbed extends HTMLElement {
347
347
  detail,
348
348
  bubbles: true,
349
349
  composed: true,
350
- })
350
+ }),
351
351
  );
352
352
  }
353
353
 
@@ -400,7 +400,7 @@ export class YouTubeEmbed extends HTMLElement {
400
400
  e.preventDefault();
401
401
  this.togglePlay();
402
402
  this.announceToScreenReader(
403
- this.#playing ? "Video playing" : "Video paused"
403
+ this.#playing ? "Video playing" : "Video paused",
404
404
  );
405
405
  break;
406
406
 
@@ -410,7 +410,7 @@ export class YouTubeEmbed extends HTMLElement {
410
410
  this.toggleMute();
411
411
  this.player?.isMuted().then((muted: boolean) => {
412
412
  this.announceToScreenReader(
413
- muted ? "Video muted" : "Video unmuted"
413
+ muted ? "Video muted" : "Video unmuted",
414
414
  );
415
415
  });
416
416
  break;
@@ -551,7 +551,7 @@ export class YouTubeEmbed extends HTMLElement {
551
551
  YouTubeEmbed.instanceCount++;
552
552
  this.log(
553
553
  "YouTubeEmbed: connectedCallback called, instance count:",
554
- YouTubeEmbed.instanceCount
554
+ YouTubeEmbed.instanceCount,
555
555
  );
556
556
 
557
557
  // Add resource hints on first instance
@@ -638,7 +638,7 @@ export class YouTubeEmbed extends HTMLElement {
638
638
  YouTubeEmbed.instanceCount--;
639
639
  this.log(
640
640
  "YouTubeEmbed: disconnectedCallback called, remaining instances:",
641
- YouTubeEmbed.instanceCount
641
+ YouTubeEmbed.instanceCount,
642
642
  );
643
643
 
644
644
  // Stop the video and destroy the player instance
@@ -656,7 +656,7 @@ export class YouTubeEmbed extends HTMLElement {
656
656
  if (this.keyboardHandler) {
657
657
  this.removeEventListener(
658
658
  "keydown",
659
- this.keyboardHandler as EventListener
659
+ this.keyboardHandler as EventListener,
660
660
  );
661
661
  this.keyboardHandler = null;
662
662
  }
@@ -679,7 +679,7 @@ export class YouTubeEmbed extends HTMLElement {
679
679
  this.classList.remove(
680
680
  "youtube-embed-wrapper",
681
681
  "youtube-embed-container",
682
- "is-playing"
682
+ "is-playing",
683
683
  );
684
684
 
685
685
  // Only clean up global resources if this is the last instance
@@ -688,7 +688,7 @@ export class YouTubeEmbed extends HTMLElement {
688
688
 
689
689
  // Remove the YouTube API script
690
690
  const script = document.querySelector(
691
- 'script[src="https://www.youtube.com/iframe_api"]'
691
+ 'script[src="https://www.youtube.com/iframe_api"]',
692
692
  );
693
693
  if (script) {
694
694
  script.remove();
@@ -790,7 +790,7 @@ export class YouTubeEmbed extends HTMLElement {
790
790
  } catch (error) {
791
791
  this.error(
792
792
  "YouTubeEmbed: Error initializing player from poster:",
793
- error
793
+ error,
794
794
  );
795
795
  this.dispatchCustomEvent("error", { message: "Failed to load video" });
796
796
  }
@@ -811,7 +811,7 @@ export class YouTubeEmbed extends HTMLElement {
811
811
  buttonOverlay.addEventListener("click", loadVideo);
812
812
  buttonOverlay.addEventListener(
813
813
  "keydown",
814
- keyboardActivate as EventListener
814
+ keyboardActivate as EventListener,
815
815
  );
816
816
 
817
817
  this.appendChild(poster);
@@ -845,7 +845,7 @@ export class YouTubeEmbed extends HTMLElement {
845
845
  "YouTubeEmbed: Creating iframe with autoplay:",
846
846
  autoplay,
847
847
  "controls:",
848
- controls
848
+ controls,
849
849
  );
850
850
 
851
851
  this.iframe = document.createElement("iframe");
@@ -854,7 +854,7 @@ export class YouTubeEmbed extends HTMLElement {
854
854
  const params = new URLSearchParams({
855
855
  enablejsapi: "1",
856
856
  autoplay: autoplay ? "1" : "0",
857
- controls: !controls && !isBackground ? "1" : "0",
857
+ controls: !isBackground && controls ? "1" : "0",
858
858
  mute: mute ? "1" : "0",
859
859
  playsinline: "1", // Better mobile support
860
860
  rel: "0", // Don't show related videos
@@ -872,7 +872,7 @@ export class YouTubeEmbed extends HTMLElement {
872
872
  if (autoplay && !this.#muted) {
873
873
  this.#muted = true;
874
874
  this.log(
875
- "YouTubeEmbed: Autoplay enabled, forcing muted state for compliance"
875
+ "YouTubeEmbed: Autoplay enabled, forcing muted state for compliance",
876
876
  );
877
877
  }
878
878
 
@@ -1001,7 +1001,7 @@ export class YouTubeEmbed extends HTMLElement {
1001
1001
  this.showErrorMessage(
1002
1002
  error instanceof Error
1003
1003
  ? error.message
1004
- : "Failed to load YouTube player. Please refresh the page or check your connection."
1004
+ : "Failed to load YouTube player. Please refresh the page or check your connection.",
1005
1005
  );
1006
1006
  this.dispatchCustomEvent("error", {
1007
1007
  message: error instanceof Error ? error.message : "API load failed",
@@ -1022,8 +1022,8 @@ export class YouTubeEmbed extends HTMLElement {
1022
1022
  cleanup();
1023
1023
  reject(
1024
1024
  new Error(
1025
- "YouTube API loading timeout. The API script may be blocked by an ad blocker or network issue."
1026
- )
1025
+ "YouTube API loading timeout. The API script may be blocked by an ad blocker or network issue.",
1026
+ ),
1027
1027
  );
1028
1028
  }, this.API_LOAD_TIMEOUT);
1029
1029
 
@@ -1039,8 +1039,8 @@ export class YouTubeEmbed extends HTMLElement {
1039
1039
  cleanup();
1040
1040
  reject(
1041
1041
  new Error(
1042
- "Failed to load YouTube API script. Please check your network connection or disable ad blockers."
1043
- )
1042
+ "Failed to load YouTube API script. Please check your network connection or disable ad blockers.",
1043
+ ),
1044
1044
  );
1045
1045
  };
1046
1046
  document.head.appendChild(script);
@@ -1066,10 +1066,10 @@ export class YouTubeEmbed extends HTMLElement {
1066
1066
  console.warn(
1067
1067
  `YouTubeEmbed: API load failed, retrying (${retries + 1}/${
1068
1068
  this.MAX_API_RETRIES
1069
- })...`
1069
+ })...`,
1070
1070
  );
1071
1071
  await new Promise((resolve) =>
1072
- setTimeout(resolve, this.API_RETRY_DELAY)
1072
+ setTimeout(resolve, this.API_RETRY_DELAY),
1073
1073
  );
1074
1074
  return this.loadYouTubeAPIWithRetry(retries + 1);
1075
1075
  }
@@ -1105,7 +1105,7 @@ export class YouTubeEmbed extends HTMLElement {
1105
1105
  } else if (this.iframe && this.iframe.contentWindow) {
1106
1106
  this.iframe.contentWindow.postMessage(
1107
1107
  '{"event":"command","func":"pauseVideo","args":""}',
1108
- "*"
1108
+ "*",
1109
1109
  );
1110
1110
  }
1111
1111
  setPlayingState(false);
@@ -1116,7 +1116,7 @@ export class YouTubeEmbed extends HTMLElement {
1116
1116
  } else if (this.iframe && this.iframe.contentWindow) {
1117
1117
  this.iframe.contentWindow.postMessage(
1118
1118
  '{"event":"command","func":"playVideo","args":""}',
1119
- "*"
1119
+ "*",
1120
1120
  );
1121
1121
  }
1122
1122
  setPlayingState(true);
@@ -1154,7 +1154,7 @@ export class YouTubeEmbed extends HTMLElement {
1154
1154
  // Check if this is a lazy-loaded video that hasn't been initialized yet
1155
1155
  if (this.#lazy && !this.player && !this.iframe) {
1156
1156
  this.log(
1157
- "YouTubeEmbed: Lazy video needs to be loaded first. Initializing..."
1157
+ "YouTubeEmbed: Lazy video needs to be loaded first. Initializing...",
1158
1158
  );
1159
1159
  // Set a flag to auto-play after initialization
1160
1160
  this.setAttribute("data-should-autoplay", "true");
@@ -1166,7 +1166,7 @@ export class YouTubeEmbed extends HTMLElement {
1166
1166
 
1167
1167
  if (!this.playerReady) {
1168
1168
  this.warn(
1169
- "YouTubeEmbed: Player is not ready. Waiting for initialization."
1169
+ "YouTubeEmbed: Player is not ready. Waiting for initialization.",
1170
1170
  );
1171
1171
  await new Promise((resolve) => {
1172
1172
  const interval = setInterval(() => {
@@ -1195,7 +1195,7 @@ export class YouTubeEmbed extends HTMLElement {
1195
1195
  if (this.iframe && this.iframe.contentWindow) {
1196
1196
  this.iframe.contentWindow.postMessage(
1197
1197
  '{"event":"command","func":"playVideo","args":""}',
1198
- "*"
1198
+ "*",
1199
1199
  );
1200
1200
  }
1201
1201
  }
@@ -1222,7 +1222,7 @@ export class YouTubeEmbed extends HTMLElement {
1222
1222
  if (this.iframe && this.iframe.contentWindow) {
1223
1223
  this.iframe.contentWindow.postMessage(
1224
1224
  '{"event":"command","func":"pauseVideo","args":""}',
1225
- "*"
1225
+ "*",
1226
1226
  );
1227
1227
  }
1228
1228
  }
@@ -1249,7 +1249,7 @@ export class YouTubeEmbed extends HTMLElement {
1249
1249
  if (this.iframe && this.iframe.contentWindow) {
1250
1250
  this.iframe.contentWindow.postMessage(
1251
1251
  '{"event":"command","func":"stopVideo","args":""}',
1252
- "*"
1252
+ "*",
1253
1253
  );
1254
1254
  }
1255
1255
  }
@@ -1305,7 +1305,7 @@ export class YouTubeEmbed extends HTMLElement {
1305
1305
  console.log(
1306
1306
  `YouTubeEmbed: Debugging is now ${
1307
1307
  YouTubeEmbed.DEBUG ? "ENABLED" : "DISABLED"
1308
- }.`
1308
+ }.`,
1309
1309
  );
1310
1310
  }
1311
1311
 
@@ -1328,7 +1328,7 @@ export class YouTubeEmbed extends HTMLElement {
1328
1328
  // Fallback to internal state if player method fails
1329
1329
  this.warn(
1330
1330
  "YouTubeEmbed: Could not get muted state from player:",
1331
- error
1331
+ error,
1332
1332
  );
1333
1333
  }
1334
1334
  }
@@ -1363,7 +1363,7 @@ export class YouTubeEmbed extends HTMLElement {
1363
1363
  } catch (error) {
1364
1364
  this.warn(
1365
1365
  "YouTubeEmbed: Could not get muted state from player:",
1366
- error
1366
+ error,
1367
1367
  );
1368
1368
  }
1369
1369
  }
@@ -1500,7 +1500,7 @@ export class YouTubeEmbed extends HTMLElement {
1500
1500
  } catch (error) {
1501
1501
  this.warn(
1502
1502
  "YouTubeEmbed: Could not get current time from player:",
1503
- error
1503
+ error,
1504
1504
  );
1505
1505
  }
1506
1506
  }
@@ -1529,7 +1529,7 @@ export class YouTubeEmbed extends HTMLElement {
1529
1529
  } catch (error) {
1530
1530
  this.warn(
1531
1531
  "YouTubeEmbed: loadVideo failed to initialize player:",
1532
- error
1532
+ error,
1533
1533
  );
1534
1534
  }
1535
1535
  return;