@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 @
|
|
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/@
|
|
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/@
|
|
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 "@
|
|
1159
|
+
import "@smartimpact-it/modern-video-embed";
|
|
1160
1160
|
|
|
1161
1161
|
// YouTube only
|
|
1162
|
-
import "@
|
|
1162
|
+
import "@smartimpact-it/modern-video-embed/dist/youtube-only.js";
|
|
1163
1163
|
|
|
1164
1164
|
// Vimeo only
|
|
1165
|
-
import "@
|
|
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 @
|
|
1172
|
+
npm install @smartimpact-it/modern-video-embed
|
|
1173
1173
|
|
|
1174
1174
|
// Import in your app
|
|
1175
|
-
import '@
|
|
1176
|
-
import '@
|
|
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 "@
|
|
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: !
|
|
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.
|
|
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: !
|
|
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;
|