ghostos 0.1.6 → 0.1.7

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.
Files changed (22) hide show
  1. package/lib/index.esm.js +1372 -196
  2. package/package.json +1 -1
  3. package/lib/node_modules_dashjs_dist_modern_esm_dash_all_min_js.d0603952ec397dea4e1f.esm.js +0 -23
  4. package/lib/node_modules_jitl_quickjs-wasmfile-debug-asyncify_dist_emscripten-module_browser_mjs.89976ebd22f659e84707.esm.js +0 -33
  5. package/lib/node_modules_jitl_quickjs-wasmfile-debug-asyncify_dist_ffi_mjs.ad960605d7ba700ad82f.esm.js +0 -23
  6. package/lib/node_modules_jitl_quickjs-wasmfile-debug-sync_dist_emscripten-module_browser_mjs.07eae2554bac133b6fc9.esm.js +0 -33
  7. package/lib/node_modules_jitl_quickjs-wasmfile-debug-sync_dist_ffi_mjs.189a07423b84e04f54ff.esm.js +0 -23
  8. package/lib/node_modules_jitl_quickjs-wasmfile-release-asyncify_dist_emscripten-module_browser_mjs.d7e7af47a4a0356d19be.esm.js +0 -33
  9. package/lib/node_modules_jitl_quickjs-wasmfile-release-asyncify_dist_ffi_mjs.84320239cc78b0631790.esm.js +0 -23
  10. package/lib/node_modules_jitl_quickjs-wasmfile-release-sync_dist_emscripten-module_browser_mjs.bcfb57045021abe8bfc0.esm.js +0 -33
  11. package/lib/node_modules_jitl_quickjs-wasmfile-release-sync_dist_ffi_mjs.2a64ead86c1fe05ff3fd.esm.js +0 -23
  12. package/lib/node_modules_quickjs-emscripten-core_dist_module-6F3E5H7Y_mjs.db696d99d735604b60fb.esm.js +0 -23
  13. package/lib/node_modules_quickjs-emscripten-core_dist_module-asyncify-R6PWJ6ZV_mjs.57cba4b26e4034f4c505.esm.js +0 -23
  14. package/lib/reactPlayerDash.e7ab8ebe11eb2cc795eb.esm.js +0 -43
  15. package/lib/reactPlayerHls.a2d208df710eca8e8641.esm.js +0 -183
  16. package/lib/reactPlayerMux.7d6ccb0fc13a4e8b4a87.esm.js +0 -964
  17. package/lib/reactPlayerPreview.f341425ad93213445267.esm.js +0 -23
  18. package/lib/reactPlayerSpotify.7ca193725e100b9315c3.esm.js +0 -33
  19. package/lib/reactPlayerTwitch.35a47311600f27b15e87.esm.js +0 -33
  20. package/lib/reactPlayerVimeo.a750c97f3e7c0d9f31e1.esm.js +0 -43
  21. package/lib/reactPlayerWistia.a7ed6afb9e07f4cd7a85.esm.js +0 -43
  22. package/lib/reactPlayerYouTube.b80be2cf730c199086d5.esm.js +0 -33
@@ -1,23 +0,0 @@
1
- /*
2
- * ATTENTION: An "eval-source-map" devtool has been used.
3
- * This devtool is neither made for production nor for readable output files.
4
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
- * or disable the default devtool with "devtool: false".
7
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
- */
9
- export const __webpack_id__ = "reactPlayerPreview";
10
- export const __webpack_ids__ = ["reactPlayerPreview"];
11
- export const __webpack_modules__ = {
12
-
13
- /***/ "./node_modules/react-player/dist/Preview.js":
14
- /*!***************************************************!*\
15
- !*** ./node_modules/react-player/dist/Preview.js ***!
16
- \***************************************************/
17
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
18
-
19
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Preview_default)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n\nconst ICON_SIZE = \"64px\";\nconst cache = {};\nconst Preview = ({\n src,\n light,\n oEmbedUrl,\n onClickPreview,\n playIcon,\n previewTabIndex,\n previewAriaLabel\n}) => {\n const [image, setImage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!src || !light || !oEmbedUrl) return;\n fetchImage({ src, light, oEmbedUrl });\n }, [src, light, oEmbedUrl]);\n const fetchImage = async ({\n src: src2,\n light: light2,\n oEmbedUrl: oEmbedUrl2\n }) => {\n if (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isValidElement(light2)) {\n return;\n }\n if (typeof light2 === \"string\") {\n setImage(light2);\n return;\n }\n if (cache[src2]) {\n setImage(cache[src2]);\n return;\n }\n setImage(null);\n const response = await fetch(oEmbedUrl2.replace(\"{url}\", src2));\n const data = await response.json();\n if (data.thumbnail_url) {\n const fetchedImage = data.thumbnail_url.replace(\"height=100\", \"height=480\").replace(\"-d_295x166\", \"-d_640\");\n setImage(fetchedImage);\n cache[src2] = fetchedImage;\n }\n };\n const handleKeyPress = (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n onClickPreview == null ? void 0 : onClickPreview(e);\n }\n };\n const handleClick = (e) => {\n onClickPreview == null ? void 0 : onClickPreview(e);\n };\n const isElement = react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isValidElement(light);\n const flexCenter = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n };\n const styles = {\n preview: {\n width: \"100%\",\n height: \"100%\",\n backgroundImage: image && !isElement ? `url(${image})` : void 0,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n cursor: \"pointer\",\n ...flexCenter\n },\n shadow: {\n background: \"radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)\",\n borderRadius: ICON_SIZE,\n width: ICON_SIZE,\n height: ICON_SIZE,\n position: isElement ? \"absolute\" : void 0,\n ...flexCenter\n },\n playIcon: {\n borderStyle: \"solid\",\n borderWidth: \"16px 0 16px 26px\",\n borderColor: \"transparent transparent transparent white\",\n marginLeft: \"7px\"\n }\n };\n const defaultPlayIcon = /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: styles.shadow, className: \"react-player__shadow\" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: styles.playIcon, className: \"react-player__play-icon\" }));\n return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\n \"div\",\n {\n style: styles.preview,\n className: \"react-player__preview\",\n tabIndex: previewTabIndex,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n ...previewAriaLabel ? { \"aria-label\": previewAriaLabel } : {}\n },\n isElement ? light : null,\n playIcon || defaultPlayIcon\n );\n};\nvar Preview_default = Preview;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtcGxheWVyL2Rpc3QvUHJldmlldy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9naG9zdG9zLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXBsYXllci9kaXN0L1ByZXZpZXcuanM/NDIyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuY29uc3QgSUNPTl9TSVpFID0gXCI2NHB4XCI7XG5jb25zdCBjYWNoZSA9IHt9O1xuY29uc3QgUHJldmlldyA9ICh7XG4gIHNyYyxcbiAgbGlnaHQsXG4gIG9FbWJlZFVybCxcbiAgb25DbGlja1ByZXZpZXcsXG4gIHBsYXlJY29uLFxuICBwcmV2aWV3VGFiSW5kZXgsXG4gIHByZXZpZXdBcmlhTGFiZWxcbn0pID0+IHtcbiAgY29uc3QgW2ltYWdlLCBzZXRJbWFnZV0gPSB1c2VTdGF0ZShudWxsKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNyYyB8fCAhbGlnaHQgfHwgIW9FbWJlZFVybCkgcmV0dXJuO1xuICAgIGZldGNoSW1hZ2UoeyBzcmMsIGxpZ2h0LCBvRW1iZWRVcmwgfSk7XG4gIH0sIFtzcmMsIGxpZ2h0LCBvRW1iZWRVcmxdKTtcbiAgY29uc3QgZmV0Y2hJbWFnZSA9IGFzeW5jICh7XG4gICAgc3JjOiBzcmMyLFxuICAgIGxpZ2h0OiBsaWdodDIsXG4gICAgb0VtYmVkVXJsOiBvRW1iZWRVcmwyXG4gIH0pID0+IHtcbiAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQobGlnaHQyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGxpZ2h0MiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2V0SW1hZ2UobGlnaHQyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNhY2hlW3NyYzJdKSB7XG4gICAgICBzZXRJbWFnZShjYWNoZVtzcmMyXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldEltYWdlKG51bGwpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gob0VtYmVkVXJsMi5yZXBsYWNlKFwie3VybH1cIiwgc3JjMikpO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaWYgKGRhdGEudGh1bWJuYWlsX3VybCkge1xuICAgICAgY29uc3QgZmV0Y2hlZEltYWdlID0gZGF0YS50aHVtYm5haWxfdXJsLnJlcGxhY2UoXCJoZWlnaHQ9MTAwXCIsIFwiaGVpZ2h0PTQ4MFwiKS5yZXBsYWNlKFwiLWRfMjk1eDE2NlwiLCBcIi1kXzY0MFwiKTtcbiAgICAgIHNldEltYWdlKGZldGNoZWRJbWFnZSk7XG4gICAgICBjYWNoZVtzcmMyXSA9IGZldGNoZWRJbWFnZTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGhhbmRsZUtleVByZXNzID0gKGUpID0+IHtcbiAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIiB8fCBlLmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIG9uQ2xpY2tQcmV2aWV3ID09IG51bGwgPyB2b2lkIDAgOiBvbkNsaWNrUHJldmlldyhlKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGUpID0+IHtcbiAgICBvbkNsaWNrUHJldmlldyA9PSBudWxsID8gdm9pZCAwIDogb25DbGlja1ByZXZpZXcoZSk7XG4gIH07XG4gIGNvbnN0IGlzRWxlbWVudCA9IFJlYWN0LmlzVmFsaWRFbGVtZW50KGxpZ2h0KTtcbiAgY29uc3QgZmxleENlbnRlciA9IHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiXG4gIH07XG4gIGNvbnN0IHN0eWxlcyA9IHtcbiAgICBwcmV2aWV3OiB7XG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgYmFja2dyb3VuZEltYWdlOiBpbWFnZSAmJiAhaXNFbGVtZW50ID8gYHVybCgke2ltYWdlfSlgIDogdm9pZCAwLFxuICAgICAgYmFja2dyb3VuZFNpemU6IFwiY292ZXJcIixcbiAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogXCJjZW50ZXJcIixcbiAgICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gICAgICAuLi5mbGV4Q2VudGVyXG4gICAgfSxcbiAgICBzaGFkb3c6IHtcbiAgICAgIGJhY2tncm91bmQ6IFwicmFkaWFsLWdyYWRpZW50KHJnYigwLCAwLCAwLCAwLjMpLCByZ2JhKDAsIDAsIDAsIDApIDYwJSlcIixcbiAgICAgIGJvcmRlclJhZGl1czogSUNPTl9TSVpFLFxuICAgICAgd2lkdGg6IElDT05fU0laRSxcbiAgICAgIGhlaWdodDogSUNPTl9TSVpFLFxuICAgICAgcG9zaXRpb246IGlzRWxlbWVudCA/IFwiYWJzb2x1dGVcIiA6IHZvaWQgMCxcbiAgICAgIC4uLmZsZXhDZW50ZXJcbiAgICB9LFxuICAgIHBsYXlJY29uOiB7XG4gICAgICBib3JkZXJTdHlsZTogXCJzb2xpZFwiLFxuICAgICAgYm9yZGVyV2lkdGg6IFwiMTZweCAwIDE2cHggMjZweFwiLFxuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgd2hpdGVcIixcbiAgICAgIG1hcmdpbkxlZnQ6IFwiN3B4XCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IGRlZmF1bHRQbGF5SWNvbiA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHN0eWxlcy5zaGFkb3csIGNsYXNzTmFtZTogXCJyZWFjdC1wbGF5ZXJfX3NoYWRvd1wiIH0sIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHN0eWxlcy5wbGF5SWNvbiwgY2xhc3NOYW1lOiBcInJlYWN0LXBsYXllcl9fcGxheS1pY29uXCIgfSkpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBzdHlsZTogc3R5bGVzLnByZXZpZXcsXG4gICAgICBjbGFzc05hbWU6IFwicmVhY3QtcGxheWVyX19wcmV2aWV3XCIsXG4gICAgICB0YWJJbmRleDogcHJldmlld1RhYkluZGV4LFxuICAgICAgb25DbGljazogaGFuZGxlQ2xpY2ssXG4gICAgICBvbktleVByZXNzOiBoYW5kbGVLZXlQcmVzcyxcbiAgICAgIC4uLnByZXZpZXdBcmlhTGFiZWwgPyB7IFwiYXJpYS1sYWJlbFwiOiBwcmV2aWV3QXJpYUxhYmVsIH0gOiB7fVxuICAgIH0sXG4gICAgaXNFbGVtZW50ID8gbGlnaHQgOiBudWxsLFxuICAgIHBsYXlJY29uIHx8IGRlZmF1bHRQbGF5SWNvblxuICApO1xufTtcbnZhciBQcmV2aWV3X2RlZmF1bHQgPSBQcmV2aWV3O1xuZXhwb3J0IHtcbiAgUHJldmlld19kZWZhdWx0IGFzIGRlZmF1bHRcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-player/dist/Preview.js\n\n}");
20
-
21
- /***/ })
22
-
23
- };
@@ -1,33 +0,0 @@
1
- /*
2
- * ATTENTION: An "eval-source-map" devtool has been used.
3
- * This devtool is neither made for production nor for readable output files.
4
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
- * or disable the default devtool with "devtool: false".
7
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
- */
9
- export const __webpack_id__ = "reactPlayerSpotify";
10
- export const __webpack_ids__ = ["reactPlayerSpotify"];
11
- export const __webpack_modules__ = {
12
-
13
- /***/ "./node_modules/spotify-audio-element/dist/react.js":
14
- /*!**********************************************************!*\
15
- !*** ./node_modules/spotify-audio-element/dist/react.js ***!
16
- \**********************************************************/
17
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
18
-
19
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ react_default)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _spotify_audio_element_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./spotify-audio-element.js */ \"./node_modules/spotify-audio-element/dist/spotify-audio-element.js\");\n\"use client\";\n\n// dist/react.ts\n\n\n\n// ../../node_modules/ce-la-react/dist/ce-la-react.js\nvar reservedReactProps = /* @__PURE__ */ new Set([\n \"style\",\n \"children\",\n \"ref\",\n \"key\",\n \"suppressContentEditableWarning\",\n \"suppressHydrationWarning\",\n \"dangerouslySetInnerHTML\"\n]);\nvar reactPropToAttrNameMap = {\n className: \"class\",\n htmlFor: \"for\"\n};\nfunction defaultToAttributeName(propName) {\n return propName.toLowerCase();\n}\nfunction defaultToAttributeValue(propValue) {\n if (typeof propValue === \"boolean\") return propValue ? \"\" : void 0;\n if (typeof propValue === \"function\") return void 0;\n if (typeof propValue === \"object\" && propValue !== null) return void 0;\n return propValue;\n}\nfunction createComponent({\n react: React2,\n tagName,\n elementClass,\n events,\n displayName,\n defaultProps,\n toAttributeName = defaultToAttributeName,\n toAttributeValue = defaultToAttributeValue\n}) {\n const IS_REACT_19_OR_NEWER = Number.parseInt(React2.version) >= 19;\n const ReactComponent = React2.forwardRef((props, ref) => {\n var _a, _b;\n const elementRef = React2.useRef(null);\n const prevElemPropsRef = React2.useRef(/* @__PURE__ */ new Map());\n const eventProps = {};\n const attrs = {};\n const reactProps = {};\n const elementProps = {};\n for (const [k, v] of Object.entries(props)) {\n if (reservedReactProps.has(k)) {\n reactProps[k] = v;\n continue;\n }\n const attrName = toAttributeName(reactPropToAttrNameMap[k] ?? k);\n if (k in elementClass.prototype && !(k in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) && !((_b = elementClass.observedAttributes) == null ? void 0 : _b.some((attr) => attr === attrName))) {\n elementProps[k] = v;\n continue;\n }\n if (k.startsWith(\"on\")) {\n eventProps[k] = v;\n continue;\n }\n const attrValue = toAttributeValue(v);\n if (attrName && attrValue != null) {\n attrs[attrName] = String(attrValue);\n if (!IS_REACT_19_OR_NEWER) {\n reactProps[attrName] = attrValue;\n }\n }\n if (attrName && IS_REACT_19_OR_NEWER) {\n const attrValueFromDefault = defaultToAttributeValue(v);\n if (attrValue !== attrValueFromDefault) {\n reactProps[attrName] = attrValue;\n } else {\n reactProps[attrName] = v;\n }\n }\n }\n if (typeof window !== \"undefined\") {\n for (const propName in eventProps) {\n const callback = eventProps[propName];\n const useCapture = propName.endsWith(\"Capture\");\n const eventName = ((events == null ? void 0 : events[propName]) ?? propName.slice(2).toLowerCase()).slice(\n 0,\n useCapture ? -7 : void 0\n );\n React2.useLayoutEffect(() => {\n const eventTarget = elementRef == null ? void 0 : elementRef.current;\n if (!eventTarget || typeof callback !== \"function\") return;\n eventTarget.addEventListener(eventName, callback, useCapture);\n return () => {\n eventTarget.removeEventListener(eventName, callback, useCapture);\n };\n }, [elementRef == null ? void 0 : elementRef.current, callback]);\n }\n React2.useLayoutEffect(() => {\n if (elementRef.current === null) return;\n const newElemProps = /* @__PURE__ */ new Map();\n for (const key in elementProps) {\n setProperty(elementRef.current, key, elementProps[key]);\n prevElemPropsRef.current.delete(key);\n newElemProps.set(key, elementProps[key]);\n }\n for (const [key, _value] of prevElemPropsRef.current) {\n setProperty(elementRef.current, key, void 0);\n }\n prevElemPropsRef.current = newElemProps;\n });\n }\n if (typeof window === \"undefined\" && (elementClass == null ? void 0 : elementClass.getTemplateHTML) && (elementClass == null ? void 0 : elementClass.shadowRootOptions)) {\n const { mode, delegatesFocus } = elementClass.shadowRootOptions;\n const templateShadowRoot = React2.createElement(\"template\", {\n shadowrootmode: mode,\n shadowrootdelegatesfocus: delegatesFocus,\n dangerouslySetInnerHTML: {\n __html: elementClass.getTemplateHTML(attrs, props)\n }\n });\n reactProps.children = [templateShadowRoot, reactProps.children];\n }\n return React2.createElement(tagName, {\n ...defaultProps,\n ...reactProps,\n ref: React2.useCallback(\n (node) => {\n elementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n },\n [ref]\n )\n });\n });\n ReactComponent.displayName = displayName ?? elementClass.name;\n return ReactComponent;\n}\nfunction setProperty(node, name, value) {\n var _a;\n node[name] = value;\n if (value == null && name in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) {\n node.removeAttribute(name);\n }\n}\n\n// dist/react.ts\nvar react_default = createComponent({\n react: react__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n tagName: \"spotify-audio\",\n elementClass: _spotify_audio_element_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});\n\n/*! Bundled license information:\n\nce-la-react/dist/ce-la-react.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *\n * Modified version of `@lit/react` for vanilla custom elements with support for SSR.\n *)\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3BvdGlmeS1hdWRpby1lbGVtZW50L2Rpc3QvcmVhY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ2hvc3Rvcy8uL25vZGVfbW9kdWxlcy9zcG90aWZ5LWF1ZGlvLWVsZW1lbnQvZGlzdC9yZWFjdC5qcz82ZmQ1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG4vLyBkaXN0L3JlYWN0LnRzXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ3VzdG9tTWVkaWFFbGVtZW50IGZyb20gXCIuL3Nwb3RpZnktYXVkaW8tZWxlbWVudC5qc1wiO1xuXG4vLyAuLi8uLi9ub2RlX21vZHVsZXMvY2UtbGEtcmVhY3QvZGlzdC9jZS1sYS1yZWFjdC5qc1xudmFyIHJlc2VydmVkUmVhY3RQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgXCJzdHlsZVwiLFxuICBcImNoaWxkcmVuXCIsXG4gIFwicmVmXCIsXG4gIFwia2V5XCIsXG4gIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIsXG4gIFwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIsXG4gIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIlxuXSk7XG52YXIgcmVhY3RQcm9wVG9BdHRyTmFtZU1hcCA9IHtcbiAgY2xhc3NOYW1lOiBcImNsYXNzXCIsXG4gIGh0bWxGb3I6IFwiZm9yXCJcbn07XG5mdW5jdGlvbiBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lKHByb3BOYW1lKSB7XG4gIHJldHVybiBwcm9wTmFtZS50b0xvd2VyQ2FzZSgpO1xufVxuZnVuY3Rpb24gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWUocHJvcFZhbHVlKSB7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImJvb2xlYW5cIikgcmV0dXJuIHByb3BWYWx1ZSA/IFwiXCIgOiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcIm9iamVjdFwiICYmIHByb3BWYWx1ZSAhPT0gbnVsbCkgcmV0dXJuIHZvaWQgMDtcbiAgcmV0dXJuIHByb3BWYWx1ZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudCh7XG4gIHJlYWN0OiBSZWFjdDIsXG4gIHRhZ05hbWUsXG4gIGVsZW1lbnRDbGFzcyxcbiAgZXZlbnRzLFxuICBkaXNwbGF5TmFtZSxcbiAgZGVmYXVsdFByb3BzLFxuICB0b0F0dHJpYnV0ZU5hbWUgPSBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lLFxuICB0b0F0dHJpYnV0ZVZhbHVlID0gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWVcbn0pIHtcbiAgY29uc3QgSVNfUkVBQ1RfMTlfT1JfTkVXRVIgPSBOdW1iZXIucGFyc2VJbnQoUmVhY3QyLnZlcnNpb24pID49IDE5O1xuICBjb25zdCBSZWFjdENvbXBvbmVudCA9IFJlYWN0Mi5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBlbGVtZW50UmVmID0gUmVhY3QyLnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2RWxlbVByb3BzUmVmID0gUmVhY3QyLnVzZVJlZigvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTtcbiAgICBjb25zdCBldmVudFByb3BzID0ge307XG4gICAgY29uc3QgYXR0cnMgPSB7fTtcbiAgICBjb25zdCByZWFjdFByb3BzID0ge307XG4gICAgY29uc3QgZWxlbWVudFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgICBpZiAocmVzZXJ2ZWRSZWFjdFByb3BzLmhhcyhrKSkge1xuICAgICAgICByZWFjdFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IHRvQXR0cmlidXRlTmFtZShyZWFjdFByb3BUb0F0dHJOYW1lTWFwW2tdID8/IGspO1xuICAgICAgaWYgKGsgaW4gZWxlbWVudENsYXNzLnByb3RvdHlwZSAmJiAhKGsgaW4gKCgoX2EgPSBnbG9iYWxUaGlzLkhUTUxFbGVtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EucHJvdG90eXBlKSA/PyB7fSkpICYmICEoKF9iID0gZWxlbWVudENsYXNzLm9ic2VydmVkQXR0cmlidXRlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnNvbWUoKGF0dHIpID0+IGF0dHIgPT09IGF0dHJOYW1lKSkpIHtcbiAgICAgICAgZWxlbWVudFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoay5zdGFydHNXaXRoKFwib25cIikpIHtcbiAgICAgICAgZXZlbnRQcm9wc1trXSA9IHY7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYXR0clZhbHVlID0gdG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgIGlmIChhdHRyTmFtZSAmJiBhdHRyVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICBhdHRyc1thdHRyTmFtZV0gPSBTdHJpbmcoYXR0clZhbHVlKTtcbiAgICAgICAgaWYgKCFJU19SRUFDVF8xOV9PUl9ORVdFUikge1xuICAgICAgICAgIHJlYWN0UHJvcHNbYXR0ck5hbWVdID0gYXR0clZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYXR0ck5hbWUgJiYgSVNfUkVBQ1RfMTlfT1JfTkVXRVIpIHtcbiAgICAgICAgY29uc3QgYXR0clZhbHVlRnJvbURlZmF1bHQgPSBkZWZhdWx0VG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgICAgaWYgKGF0dHJWYWx1ZSAhPT0gYXR0clZhbHVlRnJvbURlZmF1bHQpIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IGF0dHJWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IHY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gZXZlbnRQcm9wcykge1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IGV2ZW50UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCB1c2VDYXB0dXJlID0gcHJvcE5hbWUuZW5kc1dpdGgoXCJDYXB0dXJlXCIpO1xuICAgICAgICBjb25zdCBldmVudE5hbWUgPSAoKGV2ZW50cyA9PSBudWxsID8gdm9pZCAwIDogZXZlbnRzW3Byb3BOYW1lXSkgPz8gcHJvcE5hbWUuc2xpY2UoMikudG9Mb3dlckNhc2UoKSkuc2xpY2UoXG4gICAgICAgICAgMCxcbiAgICAgICAgICB1c2VDYXB0dXJlID8gLTcgOiB2b2lkIDBcbiAgICAgICAgKTtcbiAgICAgICAgUmVhY3QyLnVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnRUYXJnZXQgPSBlbGVtZW50UmVmID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgaWYgKCFldmVudFRhcmdldCB8fCB0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuO1xuICAgICAgICAgIGV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSwgW2VsZW1lbnRSZWYgPT0gbnVsbCA/IHZvaWQgMCA6IGVsZW1lbnRSZWYuY3VycmVudCwgY2FsbGJhY2tdKTtcbiAgICAgIH1cbiAgICAgIFJlYWN0Mi51c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudFJlZi5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0VsZW1Qcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVsZW1lbnRQcm9wcykge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgICAgcHJldkVsZW1Qcm9wc1JlZi5jdXJyZW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgIG5ld0VsZW1Qcm9wcy5zZXQoa2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBfdmFsdWVdIG9mIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCkge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCB2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCA9IG5ld0VsZW1Qcm9wcztcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKSAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnMpKSB7XG4gICAgICBjb25zdCB7IG1vZGUsIGRlbGVnYXRlc0ZvY3VzIH0gPSBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnM7XG4gICAgICBjb25zdCB0ZW1wbGF0ZVNoYWRvd1Jvb3QgPSBSZWFjdDIuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIsIHtcbiAgICAgICAgc2hhZG93cm9vdG1vZGU6IG1vZGUsXG4gICAgICAgIHNoYWRvd3Jvb3RkZWxlZ2F0ZXNmb2N1czogZGVsZWdhdGVzRm9jdXMsXG4gICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgX19odG1sOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKGF0dHJzLCBwcm9wcylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZWFjdFByb3BzLmNoaWxkcmVuID0gW3RlbXBsYXRlU2hhZG93Um9vdCwgcmVhY3RQcm9wcy5jaGlsZHJlbl07XG4gICAgfVxuICAgIHJldHVybiBSZWFjdDIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAuLi5yZWFjdFByb3BzLFxuICAgICAgcmVmOiBSZWFjdDIudXNlQ2FsbGJhY2soXG4gICAgICAgIChub2RlKSA9PiB7XG4gICAgICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtyZWZdXG4gICAgICApXG4gICAgfSk7XG4gIH0pO1xuICBSZWFjdENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lID8/IGVsZW1lbnRDbGFzcy5uYW1lO1xuICByZXR1cm4gUmVhY3RDb21wb25lbnQ7XG59XG5mdW5jdGlvbiBzZXRQcm9wZXJ0eShub2RlLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgX2E7XG4gIG5vZGVbbmFtZV0gPSB2YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwgJiYgbmFtZSBpbiAoKChfYSA9IGdsb2JhbFRoaXMuSFRNTEVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wcm90b3R5cGUpID8/IHt9KSkge1xuICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICB9XG59XG5cbi8vIGRpc3QvcmVhY3QudHNcbnZhciByZWFjdF9kZWZhdWx0ID0gY3JlYXRlQ29tcG9uZW50KHtcbiAgcmVhY3Q6IFJlYWN0LFxuICB0YWdOYW1lOiBcInNwb3RpZnktYXVkaW9cIixcbiAgZWxlbWVudENsYXNzOiBDdXN0b21NZWRpYUVsZW1lbnRcbn0pO1xuZXhwb3J0IHtcbiAgcmVhY3RfZGVmYXVsdCBhcyBkZWZhdWx0XG59O1xuLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjpcblxuY2UtbGEtcmVhY3QvZGlzdC9jZS1sYS1yZWFjdC5qczpcbiAgKCoqXG4gICAqIEBsaWNlbnNlXG4gICAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBMTENcbiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICAgKlxuICAgKiBNb2RpZmllZCB2ZXJzaW9uIG9mIGBAbGl0L3JlYWN0YCBmb3IgdmFuaWxsYSBjdXN0b20gZWxlbWVudHMgd2l0aCBzdXBwb3J0IGZvciBTU1IuXG4gICAqKVxuKi9cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/spotify-audio-element/dist/react.js\n\n}");
20
-
21
- /***/ }),
22
-
23
- /***/ "./node_modules/spotify-audio-element/dist/spotify-audio-element.js":
24
- /*!**************************************************************************!*\
25
- !*** ./node_modules/spotify-audio-element/dist/spotify-audio-element.js ***!
26
- \**************************************************************************/
27
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28
-
29
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ spotify_audio_element_default)\n/* harmony export */ });\nconst EMBED_BASE = \"https://open.spotify.com\";\nconst MATCH_SRC = /open\\.spotify\\.com\\/(\\w+)\\/(\\w+)/i;\nconst API_URL = \"https://open.spotify.com/embed-podcast/iframe-api/v1\";\nconst API_GLOBAL = \"SpotifyIframeApi\";\nconst API_GLOBAL_READY = \"onSpotifyIframeApiReady\";\nfunction getTemplateHTML(attrs, props = {}) {\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n scrolling: \"no\",\n frameborder: 0,\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n };\n return (\n /*html*/\n `\n <style>\n :host {\n display: inline-block;\n min-width: 160px;\n min-height: 80px;\n position: relative;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n :host(:not([controls])) {\n display: none !important;\n }\n </style>\n <iframe${serializeAttributes(iframeAttrs)}></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props) {\n var _a, _b, _c;\n if (!attrs.src) return;\n const matches = attrs.src.match(MATCH_SRC);\n const type = matches && matches[1];\n const metaId = matches && matches[2];\n const params = {\n t: (_a = props.config) == null ? void 0 : _a.startAt,\n theme: ((_b = props.config) == null ? void 0 : _b.theme) === \"dark\" ? \"0\" : null\n };\n const videoPath = ((_c = props.config) == null ? void 0 : _c.preferVideo) ? \"/video\" : \"\";\n return `${EMBED_BASE}/embed/${type}/${metaId}${videoPath}?${serialize(params)}`;\n}\nclass SpotifyAudioElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static observedAttributes = [\n \"controls\",\n \"loop\",\n \"src\"\n ];\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #isInit;\n #isWaiting = false;\n #closeToEnded = false;\n #paused = true;\n #currentTime = 0;\n #duration = NaN;\n #seeking = false;\n #config = null;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n async load() {\n var _a, _b, _c;\n if (this.#loadRequested) return;\n if (this.#hasLoaded) this.loadComplete = new PublicPromise();\n this.#hasLoaded = true;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.#isWaiting = false;\n this.#closeToEnded = false;\n this.#currentTime = 0;\n this.#duration = NaN;\n this.#seeking = false;\n this.dispatchEvent(new Event(\"emptied\"));\n let oldApi = this.api;\n this.api = null;\n if (!this.src) {\n return;\n }\n this.dispatchEvent(new Event(\"loadstart\"));\n const options = {\n t: (_a = this.config) == null ? void 0 : _a.startAt,\n theme: ((_b = this.config) == null ? void 0 : _b.theme) === \"dark\" ? \"0\" : null,\n preferVideo: (_c = this.config) == null ? void 0 : _c.preferVideo\n };\n if (this.#isInit) {\n this.api = oldApi;\n this.api.iframeElement.src = serializeIframeUrl(namedNodeMapToObject(this.attributes), this);\n } else {\n this.#isInit = true;\n if (!this.shadowRoot) {\n this.attachShadow({ mode: \"open\" });\n this.shadowRoot.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes), this);\n }\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n const Spotify = await loadScript(API_URL, API_GLOBAL, API_GLOBAL_READY);\n this.api = await new Promise((resolve) => Spotify.createController(iframe, options, resolve));\n this.api.iframeElement = iframe;\n this.api.addListener(\"ready\", () => {\n this.dispatchEvent(new Event(\"loadedmetadata\"));\n this.dispatchEvent(new Event(\"durationchange\"));\n this.dispatchEvent(new Event(\"volumechange\"));\n });\n this.api.addListener(\"playback_update\", (event) => {\n if (this.#closeToEnded && this.#paused && (event.data.isBuffering || !event.data.isPaused)) {\n this.#closeToEnded = false;\n this.currentTime = 1;\n return;\n }\n if (event.data.duration / 1e3 !== this.#duration) {\n this.#closeToEnded = false;\n this.#duration = event.data.duration / 1e3;\n this.dispatchEvent(new Event(\"durationchange\"));\n }\n if (event.data.position / 1e3 !== this.#currentTime) {\n this.#seeking = false;\n this.#closeToEnded = false;\n this.#currentTime = event.data.position / 1e3;\n this.dispatchEvent(new Event(\"timeupdate\"));\n }\n if (!this.#isWaiting && !this.#paused && event.data.isPaused) {\n this.#paused = true;\n this.dispatchEvent(new Event(\"pause\"));\n return;\n }\n if (this.#paused && (event.data.isBuffering || !event.data.isPaused)) {\n this.#paused = false;\n this.dispatchEvent(new Event(\"play\"));\n this.#isWaiting = event.data.isBuffering;\n if (this.#isWaiting) {\n this.dispatchEvent(new Event(\"waiting\"));\n } else {\n this.dispatchEvent(new Event(\"playing\"));\n }\n return;\n }\n if (this.#isWaiting && !event.data.isPaused) {\n this.#isWaiting = false;\n this.dispatchEvent(new Event(\"playing\"));\n return;\n }\n if (!this.paused && !this.seeking && !this.#closeToEnded && Math.ceil(this.currentTime) >= this.duration) {\n this.#closeToEnded = true;\n if (this.loop) {\n this.currentTime = 1;\n return;\n }\n if (!this.continuous) {\n this.pause();\n this.dispatchEvent(new Event(\"ended\"));\n }\n return;\n }\n });\n }\n this.loadComplete.resolve();\n await this.loadComplete;\n }\n async attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"src\": {\n this.load();\n return;\n }\n }\n }\n async play() {\n var _a;\n this.#paused = false;\n this.#isWaiting = true;\n this.dispatchEvent(new Event(\"play\"));\n await this.loadComplete;\n return (_a = this.api) == null ? void 0 : _a.resume();\n }\n async pause() {\n var _a;\n await this.loadComplete;\n return (_a = this.api) == null ? void 0 : _a.pause();\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n get paused() {\n return this.#paused ?? true;\n }\n get muted() {\n return false;\n }\n set muted(val) {\n }\n get volume() {\n return 1;\n }\n set volume(val) {\n }\n get ended() {\n return Math.ceil(this.currentTime) >= this.duration;\n }\n get seeking() {\n return this.#seeking;\n }\n get loop() {\n return this.hasAttribute(\"loop\");\n }\n set loop(val) {\n if (this.loop == val) return;\n this.toggleAttribute(\"loop\", Boolean(val));\n }\n get currentTime() {\n return this.#currentTime;\n }\n set currentTime(val) {\n if (this.currentTime == val) return;\n this.#seeking = true;\n let oldTime = this.#currentTime;\n this.#currentTime = val;\n this.dispatchEvent(new Event(\"timeupdate\"));\n this.#currentTime = oldTime;\n this.loadComplete.then(() => {\n var _a;\n (_a = this.api) == null ? void 0 : _a.seek(val);\n });\n }\n get duration() {\n return this.#duration;\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(val) {\n this.setAttribute(\"src\", `${val}`);\n }\n // This is a pattern to update property values that are set before\n // the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n #upgradeProperty(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n }\n}\nfunction serializeAttributes(attrs) {\n let html = \"\";\n for (const key in attrs) {\n const value = attrs[key];\n if (value === \"\") html += ` ${key}`;\n else html += ` ${key}=\"${value}\"`;\n }\n return html;\n}\nfunction serialize(props) {\n return String(new URLSearchParams(boolToBinary(props)));\n}\nfunction boolToBinary(props) {\n let p = {};\n for (let key in props) {\n let val = props[key];\n if (val === true || val === \"\") p[key] = 1;\n else if (val === false) p[key] = 0;\n else if (val != null) p[key] = val;\n }\n return p;\n}\nfunction namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nconst loadScriptCache = {};\nasync function loadScript(src, globalName, readyFnName) {\n if (loadScriptCache[src]) return loadScriptCache[src];\n if (globalName && self[globalName]) {\n return Promise.resolve(self[globalName]);\n }\n return loadScriptCache[src] = new Promise(function(resolve, reject) {\n const script = document.createElement(\"script\");\n script.src = src;\n const ready = (api) => resolve(api);\n if (readyFnName) self[readyFnName] = ready;\n script.onload = () => !readyFnName && ready();\n script.onerror = reject;\n document.head.append(script);\n });\n}\nclass PublicPromise extends Promise {\n constructor(executor = () => {\n }) {\n let res, rej;\n super((resolve, reject) => {\n executor(resolve, reject);\n res = resolve;\n rej = reject;\n });\n this.resolve = res;\n this.reject = rej;\n }\n}\nif (globalThis.customElements && !globalThis.customElements.get(\"spotify-audio\")) {\n globalThis.customElements.define(\"spotify-audio\", SpotifyAudioElement);\n}\nvar spotify_audio_element_default = SpotifyAudioElement;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3BvdGlmeS1hdWRpby1lbGVtZW50L2Rpc3Qvc3BvdGlmeS1hdWRpby1lbGVtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ2hvc3Rvcy8uL25vZGVfbW9kdWxlcy9zcG90aWZ5LWF1ZGlvLWVsZW1lbnQvZGlzdC9zcG90aWZ5LWF1ZGlvLWVsZW1lbnQuanM/MDExNCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFTUJFRF9CQVNFID0gXCJodHRwczovL29wZW4uc3BvdGlmeS5jb21cIjtcbmNvbnN0IE1BVENIX1NSQyA9IC9vcGVuXFwuc3BvdGlmeVxcLmNvbVxcLyhcXHcrKVxcLyhcXHcrKS9pO1xuY29uc3QgQVBJX1VSTCA9IFwiaHR0cHM6Ly9vcGVuLnNwb3RpZnkuY29tL2VtYmVkLXBvZGNhc3QvaWZyYW1lLWFwaS92MVwiO1xuY29uc3QgQVBJX0dMT0JBTCA9IFwiU3BvdGlmeUlmcmFtZUFwaVwiO1xuY29uc3QgQVBJX0dMT0JBTF9SRUFEWSA9IFwib25TcG90aWZ5SWZyYW1lQXBpUmVhZHlcIjtcbmZ1bmN0aW9uIGdldFRlbXBsYXRlSFRNTChhdHRycywgcHJvcHMgPSB7fSkge1xuICBjb25zdCBpZnJhbWVBdHRycyA9IHtcbiAgICBzcmM6IHNlcmlhbGl6ZUlmcmFtZVVybChhdHRycywgcHJvcHMpLFxuICAgIHNjcm9sbGluZzogXCJub1wiLFxuICAgIGZyYW1lYm9yZGVyOiAwLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIGFsbG93OiBcImFjY2VsZXJvbWV0ZXI7IGZ1bGxzY3JlZW47IGF1dG9wbGF5OyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlXCJcbiAgfTtcbiAgcmV0dXJuIChcbiAgICAvKmh0bWwqL1xuICAgIGBcbiAgICA8c3R5bGU+XG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICAgICAgbWluLWhlaWdodDogODBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgICAgaWZyYW1lIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgICA6aG9zdCg6bm90KFtjb250cm9sc10pKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICAgIDxpZnJhbWUke3NlcmlhbGl6ZUF0dHJpYnV0ZXMoaWZyYW1lQXR0cnMpfT48L2lmcmFtZT5cbiAgYFxuICApO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplSWZyYW1lVXJsKGF0dHJzLCBwcm9wcykge1xuICB2YXIgX2EsIF9iLCBfYztcbiAgaWYgKCFhdHRycy5zcmMpIHJldHVybjtcbiAgY29uc3QgbWF0Y2hlcyA9IGF0dHJzLnNyYy5tYXRjaChNQVRDSF9TUkMpO1xuICBjb25zdCB0eXBlID0gbWF0Y2hlcyAmJiBtYXRjaGVzWzFdO1xuICBjb25zdCBtZXRhSWQgPSBtYXRjaGVzICYmIG1hdGNoZXNbMl07XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICB0OiAoX2EgPSBwcm9wcy5jb25maWcpID09IG51bGwgPyB2b2lkIDAgOiBfYS5zdGFydEF0LFxuICAgIHRoZW1lOiAoKF9iID0gcHJvcHMuY29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogX2IudGhlbWUpID09PSBcImRhcmtcIiA/IFwiMFwiIDogbnVsbFxuICB9O1xuICBjb25zdCB2aWRlb1BhdGggPSAoKF9jID0gcHJvcHMuY29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogX2MucHJlZmVyVmlkZW8pID8gXCIvdmlkZW9cIiA6IFwiXCI7XG4gIHJldHVybiBgJHtFTUJFRF9CQVNFfS9lbWJlZC8ke3R5cGV9LyR7bWV0YUlkfSR7dmlkZW9QYXRofT8ke3NlcmlhbGl6ZShwYXJhbXMpfWA7XG59XG5jbGFzcyBTcG90aWZ5QXVkaW9FbGVtZW50IGV4dGVuZHMgKGdsb2JhbFRoaXMuSFRNTEVsZW1lbnQgPz8gY2xhc3Mge1xufSkge1xuICBzdGF0aWMgZ2V0VGVtcGxhdGVIVE1MID0gZ2V0VGVtcGxhdGVIVE1MO1xuICBzdGF0aWMgc2hhZG93Um9vdE9wdGlvbnMgPSB7IG1vZGU6IFwib3BlblwiIH07XG4gIHN0YXRpYyBvYnNlcnZlZEF0dHJpYnV0ZXMgPSBbXG4gICAgXCJjb250cm9sc1wiLFxuICAgIFwibG9vcFwiLFxuICAgIFwic3JjXCJcbiAgXTtcbiAgbG9hZENvbXBsZXRlID0gbmV3IFB1YmxpY1Byb21pc2UoKTtcbiAgI2xvYWRSZXF1ZXN0ZWQ7XG4gICNoYXNMb2FkZWQ7XG4gICNpc0luaXQ7XG4gICNpc1dhaXRpbmcgPSBmYWxzZTtcbiAgI2Nsb3NlVG9FbmRlZCA9IGZhbHNlO1xuICAjcGF1c2VkID0gdHJ1ZTtcbiAgI2N1cnJlbnRUaW1lID0gMDtcbiAgI2R1cmF0aW9uID0gTmFOO1xuICAjc2Vla2luZyA9IGZhbHNlO1xuICAjY29uZmlnID0gbnVsbDtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLiN1cGdyYWRlUHJvcGVydHkoXCJjb25maWdcIik7XG4gIH1cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBpZiAodGhpcy4jbG9hZFJlcXVlc3RlZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLiNoYXNMb2FkZWQpIHRoaXMubG9hZENvbXBsZXRlID0gbmV3IFB1YmxpY1Byb21pc2UoKTtcbiAgICB0aGlzLiNoYXNMb2FkZWQgPSB0cnVlO1xuICAgIGF3YWl0ICh0aGlzLiNsb2FkUmVxdWVzdGVkID0gUHJvbWlzZS5yZXNvbHZlKCkpO1xuICAgIHRoaXMuI2xvYWRSZXF1ZXN0ZWQgPSBudWxsO1xuICAgIHRoaXMuI2lzV2FpdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuI2Nsb3NlVG9FbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuI2N1cnJlbnRUaW1lID0gMDtcbiAgICB0aGlzLiNkdXJhdGlvbiA9IE5hTjtcbiAgICB0aGlzLiNzZWVraW5nID0gZmFsc2U7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImVtcHRpZWRcIikpO1xuICAgIGxldCBvbGRBcGkgPSB0aGlzLmFwaTtcbiAgICB0aGlzLmFwaSA9IG51bGw7XG4gICAgaWYgKCF0aGlzLnNyYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwibG9hZHN0YXJ0XCIpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdDogKF9hID0gdGhpcy5jb25maWcpID09IG51bGwgPyB2b2lkIDAgOiBfYS5zdGFydEF0LFxuICAgICAgdGhlbWU6ICgoX2IgPSB0aGlzLmNvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnRoZW1lKSA9PT0gXCJkYXJrXCIgPyBcIjBcIiA6IG51bGwsXG4gICAgICBwcmVmZXJWaWRlbzogKF9jID0gdGhpcy5jb25maWcpID09IG51bGwgPyB2b2lkIDAgOiBfYy5wcmVmZXJWaWRlb1xuICAgIH07XG4gICAgaWYgKHRoaXMuI2lzSW5pdCkge1xuICAgICAgdGhpcy5hcGkgPSBvbGRBcGk7XG4gICAgICB0aGlzLmFwaS5pZnJhbWVFbGVtZW50LnNyYyA9IHNlcmlhbGl6ZUlmcmFtZVVybChuYW1lZE5vZGVNYXBUb09iamVjdCh0aGlzLmF0dHJpYnV0ZXMpLCB0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jaXNJbml0ID0gdHJ1ZTtcbiAgICAgIGlmICghdGhpcy5zaGFkb3dSb290KSB7XG4gICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogXCJvcGVuXCIgfSk7XG4gICAgICAgIHRoaXMuc2hhZG93Um9vdC5pbm5lckhUTUwgPSBnZXRUZW1wbGF0ZUhUTUwobmFtZWROb2RlTWFwVG9PYmplY3QodGhpcy5hdHRyaWJ1dGVzKSwgdGhpcyk7XG4gICAgICB9XG4gICAgICBsZXQgaWZyYW1lID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoXCJpZnJhbWVcIik7XG4gICAgICBjb25zdCBTcG90aWZ5ID0gYXdhaXQgbG9hZFNjcmlwdChBUElfVVJMLCBBUElfR0xPQkFMLCBBUElfR0xPQkFMX1JFQURZKTtcbiAgICAgIHRoaXMuYXBpID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IFNwb3RpZnkuY3JlYXRlQ29udHJvbGxlcihpZnJhbWUsIG9wdGlvbnMsIHJlc29sdmUpKTtcbiAgICAgIHRoaXMuYXBpLmlmcmFtZUVsZW1lbnQgPSBpZnJhbWU7XG4gICAgICB0aGlzLmFwaS5hZGRMaXN0ZW5lcihcInJlYWR5XCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImxvYWRlZG1ldGFkYXRhXCIpKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImR1cmF0aW9uY2hhbmdlXCIpKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInZvbHVtZWNoYW5nZVwiKSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXBpLmFkZExpc3RlbmVyKFwicGxheWJhY2tfdXBkYXRlXCIsIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy4jY2xvc2VUb0VuZGVkICYmIHRoaXMuI3BhdXNlZCAmJiAoZXZlbnQuZGF0YS5pc0J1ZmZlcmluZyB8fCAhZXZlbnQuZGF0YS5pc1BhdXNlZCkpIHtcbiAgICAgICAgICB0aGlzLiNjbG9zZVRvRW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gMTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmRhdGEuZHVyYXRpb24gLyAxZTMgIT09IHRoaXMuI2R1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy4jY2xvc2VUb0VuZGVkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy4jZHVyYXRpb24gPSBldmVudC5kYXRhLmR1cmF0aW9uIC8gMWUzO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJkdXJhdGlvbmNoYW5nZVwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmRhdGEucG9zaXRpb24gLyAxZTMgIT09IHRoaXMuI2N1cnJlbnRUaW1lKSB7XG4gICAgICAgICAgdGhpcy4jc2Vla2luZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuI2Nsb3NlVG9FbmRlZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaW1lID0gZXZlbnQuZGF0YS5wb3NpdGlvbiAvIDFlMztcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwidGltZXVwZGF0ZVwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLiNpc1dhaXRpbmcgJiYgIXRoaXMuI3BhdXNlZCAmJiBldmVudC5kYXRhLmlzUGF1c2VkKSB7XG4gICAgICAgICAgdGhpcy4jcGF1c2VkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGF1c2VcIikpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy4jcGF1c2VkICYmIChldmVudC5kYXRhLmlzQnVmZmVyaW5nIHx8ICFldmVudC5kYXRhLmlzUGF1c2VkKSkge1xuICAgICAgICAgIHRoaXMuI3BhdXNlZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJwbGF5XCIpKTtcbiAgICAgICAgICB0aGlzLiNpc1dhaXRpbmcgPSBldmVudC5kYXRhLmlzQnVmZmVyaW5nO1xuICAgICAgICAgIGlmICh0aGlzLiNpc1dhaXRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJ3YWl0aW5nXCIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBsYXlpbmdcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuI2lzV2FpdGluZyAmJiAhZXZlbnQuZGF0YS5pc1BhdXNlZCkge1xuICAgICAgICAgIHRoaXMuI2lzV2FpdGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJwbGF5aW5nXCIpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCAmJiAhdGhpcy5zZWVraW5nICYmICF0aGlzLiNjbG9zZVRvRW5kZWQgJiYgTWF0aC5jZWlsKHRoaXMuY3VycmVudFRpbWUpID49IHRoaXMuZHVyYXRpb24pIHtcbiAgICAgICAgICB0aGlzLiNjbG9zZVRvRW5kZWQgPSB0cnVlO1xuICAgICAgICAgIGlmICh0aGlzLmxvb3ApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSAxO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMuY29udGludW91cykge1xuICAgICAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImVuZGVkXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5sb2FkQ29tcGxldGUucmVzb2x2ZSgpO1xuICAgIGF3YWl0IHRoaXMubG9hZENvbXBsZXRlO1xuICB9XG4gIGFzeW5jIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhhdHRyTmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKSB7XG4gICAgaWYgKG9sZFZhbHVlID09PSBuZXdWYWx1ZSkgcmV0dXJuO1xuICAgIHN3aXRjaCAoYXR0ck5hbWUpIHtcbiAgICAgIGNhc2UgXCJzcmNcIjoge1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBhc3luYyBwbGF5KCkge1xuICAgIHZhciBfYTtcbiAgICB0aGlzLiNwYXVzZWQgPSBmYWxzZTtcbiAgICB0aGlzLiNpc1dhaXRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJwbGF5XCIpKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRDb21wbGV0ZTtcbiAgICByZXR1cm4gKF9hID0gdGhpcy5hcGkpID09IG51bGwgPyB2b2lkIDAgOiBfYS5yZXN1bWUoKTtcbiAgfVxuICBhc3luYyBwYXVzZSgpIHtcbiAgICB2YXIgX2E7XG4gICAgYXdhaXQgdGhpcy5sb2FkQ29tcGxldGU7XG4gICAgcmV0dXJuIChfYSA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2EucGF1c2UoKTtcbiAgfVxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLiNjb25maWc7XG4gIH1cbiAgc2V0IGNvbmZpZyh2YWx1ZSkge1xuICAgIHRoaXMuI2NvbmZpZyA9IHZhbHVlO1xuICB9XG4gIGdldCBwYXVzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3BhdXNlZCA/PyB0cnVlO1xuICB9XG4gIGdldCBtdXRlZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc2V0IG11dGVkKHZhbCkge1xuICB9XG4gIGdldCB2b2x1bWUoKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgc2V0IHZvbHVtZSh2YWwpIHtcbiAgfVxuICBnZXQgZW5kZWQoKSB7XG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLmN1cnJlbnRUaW1lKSA+PSB0aGlzLmR1cmF0aW9uO1xuICB9XG4gIGdldCBzZWVraW5nKCkge1xuICAgIHJldHVybiB0aGlzLiNzZWVraW5nO1xuICB9XG4gIGdldCBsb29wKCkge1xuICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZShcImxvb3BcIik7XG4gIH1cbiAgc2V0IGxvb3AodmFsKSB7XG4gICAgaWYgKHRoaXMubG9vcCA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcImxvb3BcIiwgQm9vbGVhbih2YWwpKTtcbiAgfVxuICBnZXQgY3VycmVudFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2N1cnJlbnRUaW1lO1xuICB9XG4gIHNldCBjdXJyZW50VGltZSh2YWwpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50VGltZSA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLiNzZWVraW5nID0gdHJ1ZTtcbiAgICBsZXQgb2xkVGltZSA9IHRoaXMuI2N1cnJlbnRUaW1lO1xuICAgIHRoaXMuI2N1cnJlbnRUaW1lID0gdmFsO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJ0aW1ldXBkYXRlXCIpKTtcbiAgICB0aGlzLiNjdXJyZW50VGltZSA9IG9sZFRpbWU7XG4gICAgdGhpcy5sb2FkQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB2YXIgX2E7XG4gICAgICAoX2EgPSB0aGlzLmFwaSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnNlZWsodmFsKTtcbiAgICB9KTtcbiAgfVxuICBnZXQgZHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuI2R1cmF0aW9uO1xuICB9XG4gIGdldCBzcmMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKFwic3JjXCIpO1xuICB9XG4gIHNldCBzcmModmFsKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgYCR7dmFsfWApO1xuICB9XG4gIC8vIFRoaXMgaXMgYSBwYXR0ZXJuIHRvIHVwZGF0ZSBwcm9wZXJ0eSB2YWx1ZXMgdGhhdCBhcmUgc2V0IGJlZm9yZVxuICAvLyB0aGUgY3VzdG9tIGVsZW1lbnQgaXMgdXBncmFkZWQuXG4gIC8vIGh0dHBzOi8vd2ViLmRldi9jdXN0b20tZWxlbWVudHMtYmVzdC1wcmFjdGljZXMvI21ha2UtcHJvcGVydGllcy1sYXp5XG4gICN1cGdyYWRlUHJvcGVydHkocHJvcCkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcywgcHJvcCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1twcm9wXTtcbiAgICAgIGRlbGV0ZSB0aGlzW3Byb3BdO1xuICAgICAgdGhpc1twcm9wXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhhdHRycykge1xuICBsZXQgaHRtbCA9IFwiXCI7XG4gIGZvciAoY29uc3Qga2V5IGluIGF0dHJzKSB7XG4gICAgY29uc3QgdmFsdWUgPSBhdHRyc1trZXldO1xuICAgIGlmICh2YWx1ZSA9PT0gXCJcIikgaHRtbCArPSBgICR7a2V5fWA7XG4gICAgZWxzZSBodG1sICs9IGAgJHtrZXl9PVwiJHt2YWx1ZX1cImA7XG4gIH1cbiAgcmV0dXJuIGh0bWw7XG59XG5mdW5jdGlvbiBzZXJpYWxpemUocHJvcHMpIHtcbiAgcmV0dXJuIFN0cmluZyhuZXcgVVJMU2VhcmNoUGFyYW1zKGJvb2xUb0JpbmFyeShwcm9wcykpKTtcbn1cbmZ1bmN0aW9uIGJvb2xUb0JpbmFyeShwcm9wcykge1xuICBsZXQgcCA9IHt9O1xuICBmb3IgKGxldCBrZXkgaW4gcHJvcHMpIHtcbiAgICBsZXQgdmFsID0gcHJvcHNba2V5XTtcbiAgICBpZiAodmFsID09PSB0cnVlIHx8IHZhbCA9PT0gXCJcIikgcFtrZXldID0gMTtcbiAgICBlbHNlIGlmICh2YWwgPT09IGZhbHNlKSBwW2tleV0gPSAwO1xuICAgIGVsc2UgaWYgKHZhbCAhPSBudWxsKSBwW2tleV0gPSB2YWw7XG4gIH1cbiAgcmV0dXJuIHA7XG59XG5mdW5jdGlvbiBuYW1lZE5vZGVNYXBUb09iamVjdChuYW1lZE5vZGVNYXApIHtcbiAgbGV0IG9iaiA9IHt9O1xuICBmb3IgKGxldCBhdHRyIG9mIG5hbWVkTm9kZU1hcCkge1xuICAgIG9ialthdHRyLm5hbWVdID0gYXR0ci52YWx1ZTtcbiAgfVxuICByZXR1cm4gb2JqO1xufVxuY29uc3QgbG9hZFNjcmlwdENhY2hlID0ge307XG5hc3luYyBmdW5jdGlvbiBsb2FkU2NyaXB0KHNyYywgZ2xvYmFsTmFtZSwgcmVhZHlGbk5hbWUpIHtcbiAgaWYgKGxvYWRTY3JpcHRDYWNoZVtzcmNdKSByZXR1cm4gbG9hZFNjcmlwdENhY2hlW3NyY107XG4gIGlmIChnbG9iYWxOYW1lICYmIHNlbGZbZ2xvYmFsTmFtZV0pIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbGZbZ2xvYmFsTmFtZV0pO1xuICB9XG4gIHJldHVybiBsb2FkU2NyaXB0Q2FjaGVbc3JjXSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG4gICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICBjb25zdCByZWFkeSA9IChhcGkpID0+IHJlc29sdmUoYXBpKTtcbiAgICBpZiAocmVhZHlGbk5hbWUpIHNlbGZbcmVhZHlGbk5hbWVdID0gcmVhZHk7XG4gICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+ICFyZWFkeUZuTmFtZSAmJiByZWFkeSgpO1xuICAgIHNjcmlwdC5vbmVycm9yID0gcmVqZWN0O1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kKHNjcmlwdCk7XG4gIH0pO1xufVxuY2xhc3MgUHVibGljUHJvbWlzZSBleHRlbmRzIFByb21pc2Uge1xuICBjb25zdHJ1Y3RvcihleGVjdXRvciA9ICgpID0+IHtcbiAgfSkge1xuICAgIGxldCByZXMsIHJlajtcbiAgICBzdXBlcigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgcmVzID0gcmVzb2x2ZTtcbiAgICAgIHJlaiA9IHJlamVjdDtcbiAgICB9KTtcbiAgICB0aGlzLnJlc29sdmUgPSByZXM7XG4gICAgdGhpcy5yZWplY3QgPSByZWo7XG4gIH1cbn1cbmlmIChnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzICYmICFnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzLmdldChcInNwb3RpZnktYXVkaW9cIikpIHtcbiAgZ2xvYmFsVGhpcy5jdXN0b21FbGVtZW50cy5kZWZpbmUoXCJzcG90aWZ5LWF1ZGlvXCIsIFNwb3RpZnlBdWRpb0VsZW1lbnQpO1xufVxudmFyIHNwb3RpZnlfYXVkaW9fZWxlbWVudF9kZWZhdWx0ID0gU3BvdGlmeUF1ZGlvRWxlbWVudDtcbmV4cG9ydCB7XG4gIHNwb3RpZnlfYXVkaW9fZWxlbWVudF9kZWZhdWx0IGFzIGRlZmF1bHRcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/spotify-audio-element/dist/spotify-audio-element.js\n\n}");
30
-
31
- /***/ })
32
-
33
- };
@@ -1,33 +0,0 @@
1
- /*
2
- * ATTENTION: An "eval-source-map" devtool has been used.
3
- * This devtool is neither made for production nor for readable output files.
4
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
- * or disable the default devtool with "devtool: false".
7
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
- */
9
- export const __webpack_id__ = "reactPlayerTwitch";
10
- export const __webpack_ids__ = ["reactPlayerTwitch"];
11
- export const __webpack_modules__ = {
12
-
13
- /***/ "./node_modules/twitch-video-element/dist/react.js":
14
- /*!*********************************************************!*\
15
- !*** ./node_modules/twitch-video-element/dist/react.js ***!
16
- \*********************************************************/
17
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
18
-
19
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ react_default)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _twitch_video_element_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./twitch-video-element.js */ \"./node_modules/twitch-video-element/dist/twitch-video-element.js\");\n\"use client\";\n\n// dist/react.ts\n\n\n\n// ../../node_modules/ce-la-react/dist/ce-la-react.js\nvar reservedReactProps = /* @__PURE__ */ new Set([\n \"style\",\n \"children\",\n \"ref\",\n \"key\",\n \"suppressContentEditableWarning\",\n \"suppressHydrationWarning\",\n \"dangerouslySetInnerHTML\"\n]);\nvar reactPropToAttrNameMap = {\n className: \"class\",\n htmlFor: \"for\"\n};\nfunction defaultToAttributeName(propName) {\n return propName.toLowerCase();\n}\nfunction defaultToAttributeValue(propValue) {\n if (typeof propValue === \"boolean\") return propValue ? \"\" : void 0;\n if (typeof propValue === \"function\") return void 0;\n if (typeof propValue === \"object\" && propValue !== null) return void 0;\n return propValue;\n}\nfunction createComponent({\n react: React2,\n tagName,\n elementClass,\n events,\n displayName,\n defaultProps,\n toAttributeName = defaultToAttributeName,\n toAttributeValue = defaultToAttributeValue\n}) {\n const IS_REACT_19_OR_NEWER = Number.parseInt(React2.version) >= 19;\n const ReactComponent = React2.forwardRef((props, ref) => {\n var _a, _b;\n const elementRef = React2.useRef(null);\n const prevElemPropsRef = React2.useRef(/* @__PURE__ */ new Map());\n const eventProps = {};\n const attrs = {};\n const reactProps = {};\n const elementProps = {};\n for (const [k, v] of Object.entries(props)) {\n if (reservedReactProps.has(k)) {\n reactProps[k] = v;\n continue;\n }\n const attrName = toAttributeName(reactPropToAttrNameMap[k] ?? k);\n if (k in elementClass.prototype && !(k in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) && !((_b = elementClass.observedAttributes) == null ? void 0 : _b.some((attr) => attr === attrName))) {\n elementProps[k] = v;\n continue;\n }\n if (k.startsWith(\"on\")) {\n eventProps[k] = v;\n continue;\n }\n const attrValue = toAttributeValue(v);\n if (attrName && attrValue != null) {\n attrs[attrName] = String(attrValue);\n if (!IS_REACT_19_OR_NEWER) {\n reactProps[attrName] = attrValue;\n }\n }\n if (attrName && IS_REACT_19_OR_NEWER) {\n const attrValueFromDefault = defaultToAttributeValue(v);\n if (attrValue !== attrValueFromDefault) {\n reactProps[attrName] = attrValue;\n } else {\n reactProps[attrName] = v;\n }\n }\n }\n if (typeof window !== \"undefined\") {\n for (const propName in eventProps) {\n const callback = eventProps[propName];\n const useCapture = propName.endsWith(\"Capture\");\n const eventName = ((events == null ? void 0 : events[propName]) ?? propName.slice(2).toLowerCase()).slice(\n 0,\n useCapture ? -7 : void 0\n );\n React2.useLayoutEffect(() => {\n const eventTarget = elementRef == null ? void 0 : elementRef.current;\n if (!eventTarget || typeof callback !== \"function\") return;\n eventTarget.addEventListener(eventName, callback, useCapture);\n return () => {\n eventTarget.removeEventListener(eventName, callback, useCapture);\n };\n }, [elementRef == null ? void 0 : elementRef.current, callback]);\n }\n React2.useLayoutEffect(() => {\n if (elementRef.current === null) return;\n const newElemProps = /* @__PURE__ */ new Map();\n for (const key in elementProps) {\n setProperty(elementRef.current, key, elementProps[key]);\n prevElemPropsRef.current.delete(key);\n newElemProps.set(key, elementProps[key]);\n }\n for (const [key, _value] of prevElemPropsRef.current) {\n setProperty(elementRef.current, key, void 0);\n }\n prevElemPropsRef.current = newElemProps;\n });\n }\n if (typeof window === \"undefined\" && (elementClass == null ? void 0 : elementClass.getTemplateHTML) && (elementClass == null ? void 0 : elementClass.shadowRootOptions)) {\n const { mode, delegatesFocus } = elementClass.shadowRootOptions;\n const templateShadowRoot = React2.createElement(\"template\", {\n shadowrootmode: mode,\n shadowrootdelegatesfocus: delegatesFocus,\n dangerouslySetInnerHTML: {\n __html: elementClass.getTemplateHTML(attrs, props)\n }\n });\n reactProps.children = [templateShadowRoot, reactProps.children];\n }\n return React2.createElement(tagName, {\n ...defaultProps,\n ...reactProps,\n ref: React2.useCallback(\n (node) => {\n elementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n },\n [ref]\n )\n });\n });\n ReactComponent.displayName = displayName ?? elementClass.name;\n return ReactComponent;\n}\nfunction setProperty(node, name, value) {\n var _a;\n node[name] = value;\n if (value == null && name in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) {\n node.removeAttribute(name);\n }\n}\n\n// dist/react.ts\nvar react_default = createComponent({\n react: react__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n tagName: \"twitch-video\",\n elementClass: _twitch_video_element_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});\n\n/*! Bundled license information:\n\nce-la-react/dist/ce-la-react.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *\n * Modified version of `@lit/react` for vanilla custom elements with support for SSR.\n *)\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHdpdGNoLXZpZGVvLWVsZW1lbnQvZGlzdC9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9naG9zdG9zLy4vbm9kZV9tb2R1bGVzL3R3aXRjaC12aWRlby1lbGVtZW50L2Rpc3QvcmVhY3QuanM/NDc1OSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuLy8gZGlzdC9yZWFjdC50c1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEN1c3RvbU1lZGlhRWxlbWVudCBmcm9tIFwiLi90d2l0Y2gtdmlkZW8tZWxlbWVudC5qc1wiO1xuXG4vLyAuLi8uLi9ub2RlX21vZHVsZXMvY2UtbGEtcmVhY3QvZGlzdC9jZS1sYS1yZWFjdC5qc1xudmFyIHJlc2VydmVkUmVhY3RQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgXCJzdHlsZVwiLFxuICBcImNoaWxkcmVuXCIsXG4gIFwicmVmXCIsXG4gIFwia2V5XCIsXG4gIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIsXG4gIFwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIsXG4gIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIlxuXSk7XG52YXIgcmVhY3RQcm9wVG9BdHRyTmFtZU1hcCA9IHtcbiAgY2xhc3NOYW1lOiBcImNsYXNzXCIsXG4gIGh0bWxGb3I6IFwiZm9yXCJcbn07XG5mdW5jdGlvbiBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lKHByb3BOYW1lKSB7XG4gIHJldHVybiBwcm9wTmFtZS50b0xvd2VyQ2FzZSgpO1xufVxuZnVuY3Rpb24gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWUocHJvcFZhbHVlKSB7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImJvb2xlYW5cIikgcmV0dXJuIHByb3BWYWx1ZSA/IFwiXCIgOiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcIm9iamVjdFwiICYmIHByb3BWYWx1ZSAhPT0gbnVsbCkgcmV0dXJuIHZvaWQgMDtcbiAgcmV0dXJuIHByb3BWYWx1ZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudCh7XG4gIHJlYWN0OiBSZWFjdDIsXG4gIHRhZ05hbWUsXG4gIGVsZW1lbnRDbGFzcyxcbiAgZXZlbnRzLFxuICBkaXNwbGF5TmFtZSxcbiAgZGVmYXVsdFByb3BzLFxuICB0b0F0dHJpYnV0ZU5hbWUgPSBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lLFxuICB0b0F0dHJpYnV0ZVZhbHVlID0gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWVcbn0pIHtcbiAgY29uc3QgSVNfUkVBQ1RfMTlfT1JfTkVXRVIgPSBOdW1iZXIucGFyc2VJbnQoUmVhY3QyLnZlcnNpb24pID49IDE5O1xuICBjb25zdCBSZWFjdENvbXBvbmVudCA9IFJlYWN0Mi5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBlbGVtZW50UmVmID0gUmVhY3QyLnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2RWxlbVByb3BzUmVmID0gUmVhY3QyLnVzZVJlZigvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTtcbiAgICBjb25zdCBldmVudFByb3BzID0ge307XG4gICAgY29uc3QgYXR0cnMgPSB7fTtcbiAgICBjb25zdCByZWFjdFByb3BzID0ge307XG4gICAgY29uc3QgZWxlbWVudFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgICBpZiAocmVzZXJ2ZWRSZWFjdFByb3BzLmhhcyhrKSkge1xuICAgICAgICByZWFjdFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IHRvQXR0cmlidXRlTmFtZShyZWFjdFByb3BUb0F0dHJOYW1lTWFwW2tdID8/IGspO1xuICAgICAgaWYgKGsgaW4gZWxlbWVudENsYXNzLnByb3RvdHlwZSAmJiAhKGsgaW4gKCgoX2EgPSBnbG9iYWxUaGlzLkhUTUxFbGVtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EucHJvdG90eXBlKSA/PyB7fSkpICYmICEoKF9iID0gZWxlbWVudENsYXNzLm9ic2VydmVkQXR0cmlidXRlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnNvbWUoKGF0dHIpID0+IGF0dHIgPT09IGF0dHJOYW1lKSkpIHtcbiAgICAgICAgZWxlbWVudFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoay5zdGFydHNXaXRoKFwib25cIikpIHtcbiAgICAgICAgZXZlbnRQcm9wc1trXSA9IHY7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYXR0clZhbHVlID0gdG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgIGlmIChhdHRyTmFtZSAmJiBhdHRyVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICBhdHRyc1thdHRyTmFtZV0gPSBTdHJpbmcoYXR0clZhbHVlKTtcbiAgICAgICAgaWYgKCFJU19SRUFDVF8xOV9PUl9ORVdFUikge1xuICAgICAgICAgIHJlYWN0UHJvcHNbYXR0ck5hbWVdID0gYXR0clZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYXR0ck5hbWUgJiYgSVNfUkVBQ1RfMTlfT1JfTkVXRVIpIHtcbiAgICAgICAgY29uc3QgYXR0clZhbHVlRnJvbURlZmF1bHQgPSBkZWZhdWx0VG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgICAgaWYgKGF0dHJWYWx1ZSAhPT0gYXR0clZhbHVlRnJvbURlZmF1bHQpIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IGF0dHJWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IHY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gZXZlbnRQcm9wcykge1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IGV2ZW50UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCB1c2VDYXB0dXJlID0gcHJvcE5hbWUuZW5kc1dpdGgoXCJDYXB0dXJlXCIpO1xuICAgICAgICBjb25zdCBldmVudE5hbWUgPSAoKGV2ZW50cyA9PSBudWxsID8gdm9pZCAwIDogZXZlbnRzW3Byb3BOYW1lXSkgPz8gcHJvcE5hbWUuc2xpY2UoMikudG9Mb3dlckNhc2UoKSkuc2xpY2UoXG4gICAgICAgICAgMCxcbiAgICAgICAgICB1c2VDYXB0dXJlID8gLTcgOiB2b2lkIDBcbiAgICAgICAgKTtcbiAgICAgICAgUmVhY3QyLnVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnRUYXJnZXQgPSBlbGVtZW50UmVmID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgaWYgKCFldmVudFRhcmdldCB8fCB0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuO1xuICAgICAgICAgIGV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSwgW2VsZW1lbnRSZWYgPT0gbnVsbCA/IHZvaWQgMCA6IGVsZW1lbnRSZWYuY3VycmVudCwgY2FsbGJhY2tdKTtcbiAgICAgIH1cbiAgICAgIFJlYWN0Mi51c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudFJlZi5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0VsZW1Qcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVsZW1lbnRQcm9wcykge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgICAgcHJldkVsZW1Qcm9wc1JlZi5jdXJyZW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgIG5ld0VsZW1Qcm9wcy5zZXQoa2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBfdmFsdWVdIG9mIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCkge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCB2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCA9IG5ld0VsZW1Qcm9wcztcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKSAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnMpKSB7XG4gICAgICBjb25zdCB7IG1vZGUsIGRlbGVnYXRlc0ZvY3VzIH0gPSBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnM7XG4gICAgICBjb25zdCB0ZW1wbGF0ZVNoYWRvd1Jvb3QgPSBSZWFjdDIuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIsIHtcbiAgICAgICAgc2hhZG93cm9vdG1vZGU6IG1vZGUsXG4gICAgICAgIHNoYWRvd3Jvb3RkZWxlZ2F0ZXNmb2N1czogZGVsZWdhdGVzRm9jdXMsXG4gICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgX19odG1sOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKGF0dHJzLCBwcm9wcylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZWFjdFByb3BzLmNoaWxkcmVuID0gW3RlbXBsYXRlU2hhZG93Um9vdCwgcmVhY3RQcm9wcy5jaGlsZHJlbl07XG4gICAgfVxuICAgIHJldHVybiBSZWFjdDIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAuLi5yZWFjdFByb3BzLFxuICAgICAgcmVmOiBSZWFjdDIudXNlQ2FsbGJhY2soXG4gICAgICAgIChub2RlKSA9PiB7XG4gICAgICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtyZWZdXG4gICAgICApXG4gICAgfSk7XG4gIH0pO1xuICBSZWFjdENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lID8/IGVsZW1lbnRDbGFzcy5uYW1lO1xuICByZXR1cm4gUmVhY3RDb21wb25lbnQ7XG59XG5mdW5jdGlvbiBzZXRQcm9wZXJ0eShub2RlLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgX2E7XG4gIG5vZGVbbmFtZV0gPSB2YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwgJiYgbmFtZSBpbiAoKChfYSA9IGdsb2JhbFRoaXMuSFRNTEVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wcm90b3R5cGUpID8/IHt9KSkge1xuICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICB9XG59XG5cbi8vIGRpc3QvcmVhY3QudHNcbnZhciByZWFjdF9kZWZhdWx0ID0gY3JlYXRlQ29tcG9uZW50KHtcbiAgcmVhY3Q6IFJlYWN0LFxuICB0YWdOYW1lOiBcInR3aXRjaC12aWRlb1wiLFxuICBlbGVtZW50Q2xhc3M6IEN1c3RvbU1lZGlhRWxlbWVudFxufSk7XG5leHBvcnQge1xuICByZWFjdF9kZWZhdWx0IGFzIGRlZmF1bHRcbn07XG4vKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOlxuXG5jZS1sYS1yZWFjdC9kaXN0L2NlLWxhLXJlYWN0LmpzOlxuICAoKipcbiAgICogQGxpY2Vuc2VcbiAgICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQ1xuICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gICAqXG4gICAqIE1vZGlmaWVkIHZlcnNpb24gb2YgYEBsaXQvcmVhY3RgIGZvciB2YW5pbGxhIGN1c3RvbSBlbGVtZW50cyB3aXRoIHN1cHBvcnQgZm9yIFNTUi5cbiAgICopXG4qL1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/twitch-video-element/dist/react.js\n\n}");
20
-
21
- /***/ }),
22
-
23
- /***/ "./node_modules/twitch-video-element/dist/twitch-video-element.js":
24
- /*!************************************************************************!*\
25
- !*** ./node_modules/twitch-video-element/dist/twitch-video-element.js ***!
26
- \************************************************************************/
27
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28
-
29
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ twitch_video_element_default)\n/* harmony export */ });\nconst EMBED_BASE = \"https://player.twitch.tv\";\nconst MATCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/(?:videos?\\/|\\?video=)(\\d+)($|\\?)/;\nconst MATCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst PlaybackState = {\n IDLE: \"Idle\",\n READY: \"Ready\",\n BUFFERING: \"Buffering\",\n PLAYING: \"Playing\",\n ENDED: \"Ended\"\n};\nconst PlayerCommands = {\n DISABLE_CAPTIONS: 0,\n ENABLE_CAPTIONS: 1,\n PAUSE: 2,\n PLAY: 3,\n SEEK: 4,\n SET_CHANNEL: 5,\n SET_CHANNEL_ID: 6,\n SET_COLLECTION: 7,\n SET_QUALITY: 8,\n SET_VIDEO: 9,\n SET_MUTED: 10,\n SET_VOLUME: 11\n};\nfunction getTemplateHTML(attrs, props = {}) {\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n frameborder: \"0\",\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; fullscreen; autoplay; encrypted-media; picture-in-picture;\",\n sandbox: \"allow-modals allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\",\n scrolling: \"no\"\n };\n if (props.config) {\n iframeAttrs[\"data-config\"] = JSON.stringify(props.config);\n }\n return (\n /*html*/\n `\n <style>\n :host {\n display: inline-block;\n min-width: 300px;\n min-height: 150px;\n position: relative;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n :host(:not([controls])) {\n pointer-events: none;\n }\n </style>\n <iframe${serializeAttributes(iframeAttrs)}></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props) {\n var _a;\n if (!attrs.src) return;\n const videoMatch = attrs.src.match(MATCH_VIDEO);\n const channelMatch = attrs.src.match(MATCH_CHANNEL);\n const params = {\n parent: (_a = globalThis.location) == null ? void 0 : _a.hostname,\n // ?controls=true is enabled by default in the iframe\n controls: attrs.controls === \"\" ? null : false,\n autoplay: attrs.autoplay === \"\" ? null : false,\n muted: attrs.muted,\n preload: attrs.preload,\n ...props.config\n };\n if (videoMatch) {\n const videoId = videoMatch[1];\n return `${EMBED_BASE}/?video=v${videoId}&${serialize(params)}`;\n } else if (channelMatch) {\n const channel = channelMatch[1];\n return `${EMBED_BASE}/?channel=${channel}&${serialize(params)}`;\n }\n return \"\";\n}\nclass TwitchVideoElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static observedAttributes = [\n \"autoplay\",\n \"controls\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"preload\",\n \"src\"\n ];\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #embedWindow;\n #playerState = {};\n #currentTime = 0;\n #muted = false;\n #volume = 1;\n #paused = !this.autoplay;\n #seeking = false;\n #readyState = 0;\n #config = null;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n async load() {\n if (this.#loadRequested) return;\n if (!this.shadowRoot) {\n this.attachShadow({ mode: \"open\" });\n }\n const isFirstLoad = !this.#hasLoaded;\n if (this.#hasLoaded) {\n this.loadComplete = new PublicPromise();\n }\n this.#hasLoaded = true;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.#readyState = 0;\n this.dispatchEvent(new Event(\"emptied\"));\n if (!this.src) {\n this.shadowRoot.innerHTML = \"\";\n globalThis.removeEventListener(\"message\", this.#onMessage);\n return;\n }\n this.dispatchEvent(new Event(\"loadstart\"));\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n const attrs = namedNodeMapToObject(this.attributes);\n if (isFirstLoad && iframe) {\n this.#config = JSON.parse(iframe.getAttribute(\"data-config\") || \"{}\");\n }\n if (!(iframe == null ? void 0 : iframe.src) || iframe.src !== serializeIframeUrl(attrs, this)) {\n this.shadowRoot.innerHTML = getTemplateHTML(attrs, this);\n iframe = this.shadowRoot.querySelector(\"iframe\");\n this.#embedWindow = iframe.contentWindow;\n globalThis.addEventListener(\"message\", this.#onMessage);\n }\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"src\":\n case \"controls\": {\n this.load();\n break;\n }\n }\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n this.setAttribute(\"src\", value);\n }\n get readyState() {\n return this.#readyState;\n }\n get seeking() {\n return this.#seeking;\n }\n get buffered() {\n var _a, _b;\n return createTimeRanges(0, ((_b = (_a = this.#playerState.stats) == null ? void 0 : _a.videoStats) == null ? void 0 : _b.bufferSize) ?? 0);\n }\n get paused() {\n if (!this.#playerState.playback) return this.#paused;\n return this.#playerState.playback === PlaybackState.IDLE;\n }\n get ended() {\n if (!this.#playerState.playback) return false;\n return this.#playerState.playback === PlaybackState.ENDED;\n }\n get duration() {\n return this.#playerState.duration ?? NaN;\n }\n get autoplay() {\n return this.hasAttribute(\"autoplay\");\n }\n set autoplay(val) {\n if (this.autoplay == val) return;\n this.toggleAttribute(\"autoplay\", Boolean(val));\n }\n get controls() {\n return this.hasAttribute(\"controls\");\n }\n set controls(val) {\n if (this.controls == val) return;\n this.toggleAttribute(\"controls\", Boolean(val));\n }\n get currentTime() {\n if (!this.#playerState.currentTime) return this.#currentTime;\n return this.#playerState.currentTime;\n }\n set currentTime(val) {\n this.#currentTime = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SEEK, val);\n });\n }\n get defaultMuted() {\n return this.hasAttribute(\"muted\");\n }\n set defaultMuted(val) {\n this.toggleAttribute(\"muted\", Boolean(val));\n }\n get loop() {\n return this.hasAttribute(\"loop\");\n }\n set loop(val) {\n this.toggleAttribute(\"loop\", Boolean(val));\n }\n get muted() {\n return this.#muted;\n }\n set muted(val) {\n this.#muted = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SET_MUTED, val);\n });\n }\n get volume() {\n return this.#volume;\n }\n set volume(val) {\n this.#volume = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SET_VOLUME, val);\n });\n }\n get playsInline() {\n return this.hasAttribute(\"playsinline\");\n }\n set playsInline(val) {\n this.toggleAttribute(\"playsinline\", Boolean(val));\n }\n play() {\n this.#paused = false;\n this.#sendCommand(PlayerCommands.PLAY);\n }\n pause() {\n this.#paused = true;\n this.#sendCommand(PlayerCommands.PAUSE);\n }\n #onMessage = async (event) => {\n var _a, _b, _c, _d;\n if (!this.#embedWindow) return;\n const { data, source } = event;\n const isFromEmbedWindow = source === this.#embedWindow;\n if (!isFromEmbedWindow) return;\n if (data.namespace === \"twitch-embed\") {\n await new Promise((resolve) => setTimeout(resolve, 10));\n if (data.eventName === \"ready\") {\n this.dispatchEvent(new Event(\"loadcomplete\"));\n this.loadComplete.resolve();\n this.#readyState = 1;\n this.dispatchEvent(new Event(\"loadedmetadata\"));\n } else if (data.eventName === \"seek\") {\n this.#seeking = true;\n this.dispatchEvent(new Event(\"seeking\"));\n } else if (data.eventName === \"playing\") {\n if (this.#seeking) {\n this.#seeking = false;\n this.dispatchEvent(new Event(\"seeked\"));\n }\n this.#readyState = 3;\n this.dispatchEvent(new Event(\"playing\"));\n } else {\n this.dispatchEvent(new Event(data.eventName));\n }\n } else if (data.namespace === \"twitch-embed-player-proxy\" && data.eventName === \"UPDATE_STATE\") {\n const oldDuration = this.#playerState.duration;\n const oldCurrentTime = this.#playerState.currentTime;\n const oldVolume = this.#playerState.volume;\n const oldMuted = this.#playerState.muted;\n const oldBuffered = (_b = (_a = this.#playerState.stats) == null ? void 0 : _a.videoStats) == null ? void 0 : _b.bufferSize;\n this.#playerState = { ...this.#playerState, ...data.params };\n if (oldDuration !== this.#playerState.duration) {\n this.dispatchEvent(new Event(\"durationchange\"));\n }\n if (oldCurrentTime !== this.#playerState.currentTime) {\n this.dispatchEvent(new Event(\"timeupdate\"));\n }\n if (oldVolume !== this.#playerState.volume || oldMuted !== this.#playerState.muted) {\n this.dispatchEvent(new Event(\"volumechange\"));\n }\n if (oldBuffered !== ((_d = (_c = this.#playerState.stats) == null ? void 0 : _c.videoStats) == null ? void 0 : _d.bufferSize)) {\n this.dispatchEvent(new Event(\"progress\"));\n }\n }\n };\n #sendCommand(command, params) {\n if (!this.#embedWindow) return;\n const message = {\n eventName: command,\n params,\n namespace: \"twitch-embed-player-proxy\"\n };\n this.#embedWindow.postMessage(message, EMBED_BASE);\n }\n // This is a pattern to update property values that are set before\n // the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n #upgradeProperty(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n }\n}\nfunction namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nfunction serializeAttributes(attrs) {\n let html = \"\";\n for (const key in attrs) {\n const value = attrs[key];\n if (value === \"\") html += ` ${escapeHtml(key)}`;\n else html += ` ${escapeHtml(key)}=\"${escapeHtml(`${value}`)}\"`;\n }\n return html;\n}\nfunction escapeHtml(str) {\n return str.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&apos;\").replace(/`/g, \"&#x60;\");\n}\nfunction serialize(props) {\n return String(new URLSearchParams(filterParams(props)));\n}\nfunction filterParams(props) {\n let p = {};\n for (let key in props) {\n let val = props[key];\n if (val === true || val === \"\") p[key] = true;\n else if (val === false) p[key] = false;\n else if (val != null) p[key] = val;\n }\n return p;\n}\nclass PublicPromise extends Promise {\n constructor(executor = () => {\n }) {\n let res, rej;\n super((resolve, reject) => {\n executor(resolve, reject);\n res = resolve;\n rej = reject;\n });\n this.resolve = res;\n this.reject = rej;\n }\n}\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start == null || end == null || start === 0 && end === 0) {\n return createTimeRangesObj([[0, 0]]);\n }\n return createTimeRangesObj([[start, end]]);\n}\nfunction createTimeRangesObj(ranges) {\n Object.defineProperties(ranges, {\n start: {\n value: (i) => ranges[i][0]\n },\n end: {\n value: (i) => ranges[i][1]\n }\n });\n return ranges;\n}\nif (globalThis.customElements && !globalThis.customElements.get(\"twitch-video\")) {\n globalThis.customElements.define(\"twitch-video\", TwitchVideoElement);\n}\nvar twitch_video_element_default = TwitchVideoElement;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHdpdGNoLXZpZGVvLWVsZW1lbnQvZGlzdC90d2l0Y2gtdmlkZW8tZWxlbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ2hvc3Rvcy8uL25vZGVfbW9kdWxlcy90d2l0Y2gtdmlkZW8tZWxlbWVudC9kaXN0L3R3aXRjaC12aWRlby1lbGVtZW50LmpzPzAzNTAiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRU1CRURfQkFTRSA9IFwiaHR0cHM6Ly9wbGF5ZXIudHdpdGNoLnR2XCI7XG5jb25zdCBNQVRDSF9WSURFTyA9IC8oPzp3d3dcXC58Z29cXC4pP3R3aXRjaFxcLnR2XFwvKD86dmlkZW9zP1xcL3xcXD92aWRlbz0pKFxcZCspKCR8XFw/KS87XG5jb25zdCBNQVRDSF9DSEFOTkVMID0gLyg/Ond3d1xcLnxnb1xcLik/dHdpdGNoXFwudHZcXC8oW2EtekEtWjAtOV9dKykoJHxcXD8pLztcbmNvbnN0IFBsYXliYWNrU3RhdGUgPSB7XG4gIElETEU6IFwiSWRsZVwiLFxuICBSRUFEWTogXCJSZWFkeVwiLFxuICBCVUZGRVJJTkc6IFwiQnVmZmVyaW5nXCIsXG4gIFBMQVlJTkc6IFwiUGxheWluZ1wiLFxuICBFTkRFRDogXCJFbmRlZFwiXG59O1xuY29uc3QgUGxheWVyQ29tbWFuZHMgPSB7XG4gIERJU0FCTEVfQ0FQVElPTlM6IDAsXG4gIEVOQUJMRV9DQVBUSU9OUzogMSxcbiAgUEFVU0U6IDIsXG4gIFBMQVk6IDMsXG4gIFNFRUs6IDQsXG4gIFNFVF9DSEFOTkVMOiA1LFxuICBTRVRfQ0hBTk5FTF9JRDogNixcbiAgU0VUX0NPTExFQ1RJT046IDcsXG4gIFNFVF9RVUFMSVRZOiA4LFxuICBTRVRfVklERU86IDksXG4gIFNFVF9NVVRFRDogMTAsXG4gIFNFVF9WT0xVTUU6IDExXG59O1xuZnVuY3Rpb24gZ2V0VGVtcGxhdGVIVE1MKGF0dHJzLCBwcm9wcyA9IHt9KSB7XG4gIGNvbnN0IGlmcmFtZUF0dHJzID0ge1xuICAgIHNyYzogc2VyaWFsaXplSWZyYW1lVXJsKGF0dHJzLCBwcm9wcyksXG4gICAgZnJhbWVib3JkZXI6IFwiMFwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIGFsbG93OiBcImFjY2VsZXJvbWV0ZXI7IGZ1bGxzY3JlZW47IGF1dG9wbGF5OyBlbmNyeXB0ZWQtbWVkaWE7IHBpY3R1cmUtaW4tcGljdHVyZTtcIixcbiAgICBzYW5kYm94OiBcImFsbG93LW1vZGFscyBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXBvcHVwcyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3hcIixcbiAgICBzY3JvbGxpbmc6IFwibm9cIlxuICB9O1xuICBpZiAocHJvcHMuY29uZmlnKSB7XG4gICAgaWZyYW1lQXR0cnNbXCJkYXRhLWNvbmZpZ1wiXSA9IEpTT04uc3RyaW5naWZ5KHByb3BzLmNvbmZpZyk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICAvKmh0bWwqL1xuICAgIGBcbiAgICA8c3R5bGU+XG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgbWluLWhlaWdodDogMTUwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIGlmcmFtZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICAgOmhvc3QoOm5vdChbY29udHJvbHNdKSkge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICAgIDxpZnJhbWUke3NlcmlhbGl6ZUF0dHJpYnV0ZXMoaWZyYW1lQXR0cnMpfT48L2lmcmFtZT5cbiAgYFxuICApO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplSWZyYW1lVXJsKGF0dHJzLCBwcm9wcykge1xuICB2YXIgX2E7XG4gIGlmICghYXR0cnMuc3JjKSByZXR1cm47XG4gIGNvbnN0IHZpZGVvTWF0Y2ggPSBhdHRycy5zcmMubWF0Y2goTUFUQ0hfVklERU8pO1xuICBjb25zdCBjaGFubmVsTWF0Y2ggPSBhdHRycy5zcmMubWF0Y2goTUFUQ0hfQ0hBTk5FTCk7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBwYXJlbnQ6IChfYSA9IGdsb2JhbFRoaXMubG9jYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfYS5ob3N0bmFtZSxcbiAgICAvLyA/Y29udHJvbHM9dHJ1ZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGhlIGlmcmFtZVxuICAgIGNvbnRyb2xzOiBhdHRycy5jb250cm9scyA9PT0gXCJcIiA/IG51bGwgOiBmYWxzZSxcbiAgICBhdXRvcGxheTogYXR0cnMuYXV0b3BsYXkgPT09IFwiXCIgPyBudWxsIDogZmFsc2UsXG4gICAgbXV0ZWQ6IGF0dHJzLm11dGVkLFxuICAgIHByZWxvYWQ6IGF0dHJzLnByZWxvYWQsXG4gICAgLi4ucHJvcHMuY29uZmlnXG4gIH07XG4gIGlmICh2aWRlb01hdGNoKSB7XG4gICAgY29uc3QgdmlkZW9JZCA9IHZpZGVvTWF0Y2hbMV07XG4gICAgcmV0dXJuIGAke0VNQkVEX0JBU0V9Lz92aWRlbz12JHt2aWRlb0lkfSYke3NlcmlhbGl6ZShwYXJhbXMpfWA7XG4gIH0gZWxzZSBpZiAoY2hhbm5lbE1hdGNoKSB7XG4gICAgY29uc3QgY2hhbm5lbCA9IGNoYW5uZWxNYXRjaFsxXTtcbiAgICByZXR1cm4gYCR7RU1CRURfQkFTRX0vP2NoYW5uZWw9JHtjaGFubmVsfSYke3NlcmlhbGl6ZShwYXJhbXMpfWA7XG4gIH1cbiAgcmV0dXJuIFwiXCI7XG59XG5jbGFzcyBUd2l0Y2hWaWRlb0VsZW1lbnQgZXh0ZW5kcyAoZ2xvYmFsVGhpcy5IVE1MRWxlbWVudCA/PyBjbGFzcyB7XG59KSB7XG4gIHN0YXRpYyBnZXRUZW1wbGF0ZUhUTUwgPSBnZXRUZW1wbGF0ZUhUTUw7XG4gIHN0YXRpYyBzaGFkb3dSb290T3B0aW9ucyA9IHsgbW9kZTogXCJvcGVuXCIgfTtcbiAgc3RhdGljIG9ic2VydmVkQXR0cmlidXRlcyA9IFtcbiAgICBcImF1dG9wbGF5XCIsXG4gICAgXCJjb250cm9sc1wiLFxuICAgIFwibG9vcFwiLFxuICAgIFwibXV0ZWRcIixcbiAgICBcInBsYXlzaW5saW5lXCIsXG4gICAgXCJwcmVsb2FkXCIsXG4gICAgXCJzcmNcIlxuICBdO1xuICBsb2FkQ29tcGxldGUgPSBuZXcgUHVibGljUHJvbWlzZSgpO1xuICAjbG9hZFJlcXVlc3RlZDtcbiAgI2hhc0xvYWRlZDtcbiAgI2VtYmVkV2luZG93O1xuICAjcGxheWVyU3RhdGUgPSB7fTtcbiAgI2N1cnJlbnRUaW1lID0gMDtcbiAgI211dGVkID0gZmFsc2U7XG4gICN2b2x1bWUgPSAxO1xuICAjcGF1c2VkID0gIXRoaXMuYXV0b3BsYXk7XG4gICNzZWVraW5nID0gZmFsc2U7XG4gICNyZWFkeVN0YXRlID0gMDtcbiAgI2NvbmZpZyA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy4jdXBncmFkZVByb3BlcnR5KFwiY29uZmlnXCIpO1xuICB9XG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2NvbmZpZztcbiAgfVxuICBzZXQgY29uZmlnKHZhbHVlKSB7XG4gICAgdGhpcy4jY29uZmlnID0gdmFsdWU7XG4gIH1cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICBpZiAodGhpcy4jbG9hZFJlcXVlc3RlZCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5zaGFkb3dSb290KSB7XG4gICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6IFwib3BlblwiIH0pO1xuICAgIH1cbiAgICBjb25zdCBpc0ZpcnN0TG9hZCA9ICF0aGlzLiNoYXNMb2FkZWQ7XG4gICAgaWYgKHRoaXMuI2hhc0xvYWRlZCkge1xuICAgICAgdGhpcy5sb2FkQ29tcGxldGUgPSBuZXcgUHVibGljUHJvbWlzZSgpO1xuICAgIH1cbiAgICB0aGlzLiNoYXNMb2FkZWQgPSB0cnVlO1xuICAgIGF3YWl0ICh0aGlzLiNsb2FkUmVxdWVzdGVkID0gUHJvbWlzZS5yZXNvbHZlKCkpO1xuICAgIHRoaXMuI2xvYWRSZXF1ZXN0ZWQgPSBudWxsO1xuICAgIHRoaXMuI3JlYWR5U3RhdGUgPSAwO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJlbXB0aWVkXCIpKTtcbiAgICBpZiAoIXRoaXMuc3JjKSB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gXCJcIjtcbiAgICAgIGdsb2JhbFRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy4jb25NZXNzYWdlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImxvYWRzdGFydFwiKSk7XG4gICAgbGV0IGlmcmFtZSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFwiaWZyYW1lXCIpO1xuICAgIGNvbnN0IGF0dHJzID0gbmFtZWROb2RlTWFwVG9PYmplY3QodGhpcy5hdHRyaWJ1dGVzKTtcbiAgICBpZiAoaXNGaXJzdExvYWQgJiYgaWZyYW1lKSB7XG4gICAgICB0aGlzLiNjb25maWcgPSBKU09OLnBhcnNlKGlmcmFtZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWNvbmZpZ1wiKSB8fCBcInt9XCIpO1xuICAgIH1cbiAgICBpZiAoIShpZnJhbWUgPT0gbnVsbCA/IHZvaWQgMCA6IGlmcmFtZS5zcmMpIHx8IGlmcmFtZS5zcmMgIT09IHNlcmlhbGl6ZUlmcmFtZVVybChhdHRycywgdGhpcykpIHtcbiAgICAgIHRoaXMuc2hhZG93Um9vdC5pbm5lckhUTUwgPSBnZXRUZW1wbGF0ZUhUTUwoYXR0cnMsIHRoaXMpO1xuICAgICAgaWZyYW1lID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoXCJpZnJhbWVcIik7XG4gICAgICB0aGlzLiNlbWJlZFdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93O1xuICAgICAgZ2xvYmFsVGhpcy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLiNvbk1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soYXR0ck5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSkge1xuICAgIGlmIChvbGRWYWx1ZSA9PT0gbmV3VmFsdWUpIHJldHVybjtcbiAgICBzd2l0Y2ggKGF0dHJOYW1lKSB7XG4gICAgICBjYXNlIFwic3JjXCI6XG4gICAgICBjYXNlIFwiY29udHJvbHNcIjoge1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldCBzcmMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKFwic3JjXCIpO1xuICB9XG4gIHNldCBzcmModmFsdWUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShcInNyY1wiLCB2YWx1ZSk7XG4gIH1cbiAgZ2V0IHJlYWR5U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3JlYWR5U3RhdGU7XG4gIH1cbiAgZ2V0IHNlZWtpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3NlZWtpbmc7XG4gIH1cbiAgZ2V0IGJ1ZmZlcmVkKCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgcmV0dXJuIGNyZWF0ZVRpbWVSYW5nZXMoMCwgKChfYiA9IChfYSA9IHRoaXMuI3BsYXllclN0YXRlLnN0YXRzKSA9PSBudWxsID8gdm9pZCAwIDogX2EudmlkZW9TdGF0cykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmJ1ZmZlclNpemUpID8/IDApO1xuICB9XG4gIGdldCBwYXVzZWQoKSB7XG4gICAgaWYgKCF0aGlzLiNwbGF5ZXJTdGF0ZS5wbGF5YmFjaykgcmV0dXJuIHRoaXMuI3BhdXNlZDtcbiAgICByZXR1cm4gdGhpcy4jcGxheWVyU3RhdGUucGxheWJhY2sgPT09IFBsYXliYWNrU3RhdGUuSURMRTtcbiAgfVxuICBnZXQgZW5kZWQoKSB7XG4gICAgaWYgKCF0aGlzLiNwbGF5ZXJTdGF0ZS5wbGF5YmFjaykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLiNwbGF5ZXJTdGF0ZS5wbGF5YmFjayA9PT0gUGxheWJhY2tTdGF0ZS5FTkRFRDtcbiAgfVxuICBnZXQgZHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuI3BsYXllclN0YXRlLmR1cmF0aW9uID8/IE5hTjtcbiAgfVxuICBnZXQgYXV0b3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKFwiYXV0b3BsYXlcIik7XG4gIH1cbiAgc2V0IGF1dG9wbGF5KHZhbCkge1xuICAgIGlmICh0aGlzLmF1dG9wbGF5ID09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKFwiYXV0b3BsYXlcIiwgQm9vbGVhbih2YWwpKTtcbiAgfVxuICBnZXQgY29udHJvbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIik7XG4gIH1cbiAgc2V0IGNvbnRyb2xzKHZhbCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2xzID09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKFwiY29udHJvbHNcIiwgQm9vbGVhbih2YWwpKTtcbiAgfVxuICBnZXQgY3VycmVudFRpbWUoKSB7XG4gICAgaWYgKCF0aGlzLiNwbGF5ZXJTdGF0ZS5jdXJyZW50VGltZSkgcmV0dXJuIHRoaXMuI2N1cnJlbnRUaW1lO1xuICAgIHJldHVybiB0aGlzLiNwbGF5ZXJTdGF0ZS5jdXJyZW50VGltZTtcbiAgfVxuICBzZXQgY3VycmVudFRpbWUodmFsKSB7XG4gICAgdGhpcy4jY3VycmVudFRpbWUgPSB2YWw7XG4gICAgdGhpcy5sb2FkQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLiNzZW5kQ29tbWFuZChQbGF5ZXJDb21tYW5kcy5TRUVLLCB2YWwpO1xuICAgIH0pO1xuICB9XG4gIGdldCBkZWZhdWx0TXV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKFwibXV0ZWRcIik7XG4gIH1cbiAgc2V0IGRlZmF1bHRNdXRlZCh2YWwpIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcIm11dGVkXCIsIEJvb2xlYW4odmFsKSk7XG4gIH1cbiAgZ2V0IGxvb3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKFwibG9vcFwiKTtcbiAgfVxuICBzZXQgbG9vcCh2YWwpIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcImxvb3BcIiwgQm9vbGVhbih2YWwpKTtcbiAgfVxuICBnZXQgbXV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI211dGVkO1xuICB9XG4gIHNldCBtdXRlZCh2YWwpIHtcbiAgICB0aGlzLiNtdXRlZCA9IHZhbDtcbiAgICB0aGlzLmxvYWRDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuI3NlbmRDb21tYW5kKFBsYXllckNvbW1hbmRzLlNFVF9NVVRFRCwgdmFsKTtcbiAgICB9KTtcbiAgfVxuICBnZXQgdm9sdW1lKCkge1xuICAgIHJldHVybiB0aGlzLiN2b2x1bWU7XG4gIH1cbiAgc2V0IHZvbHVtZSh2YWwpIHtcbiAgICB0aGlzLiN2b2x1bWUgPSB2YWw7XG4gICAgdGhpcy5sb2FkQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLiNzZW5kQ29tbWFuZChQbGF5ZXJDb21tYW5kcy5TRVRfVk9MVU1FLCB2YWwpO1xuICAgIH0pO1xuICB9XG4gIGdldCBwbGF5c0lubGluZSgpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoXCJwbGF5c2lubGluZVwiKTtcbiAgfVxuICBzZXQgcGxheXNJbmxpbmUodmFsKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXCJwbGF5c2lubGluZVwiLCBCb29sZWFuKHZhbCkpO1xuICB9XG4gIHBsYXkoKSB7XG4gICAgdGhpcy4jcGF1c2VkID0gZmFsc2U7XG4gICAgdGhpcy4jc2VuZENvbW1hbmQoUGxheWVyQ29tbWFuZHMuUExBWSk7XG4gIH1cbiAgcGF1c2UoKSB7XG4gICAgdGhpcy4jcGF1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLiNzZW5kQ29tbWFuZChQbGF5ZXJDb21tYW5kcy5QQVVTRSk7XG4gIH1cbiAgI29uTWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBpZiAoIXRoaXMuI2VtYmVkV2luZG93KSByZXR1cm47XG4gICAgY29uc3QgeyBkYXRhLCBzb3VyY2UgfSA9IGV2ZW50O1xuICAgIGNvbnN0IGlzRnJvbUVtYmVkV2luZG93ID0gc291cmNlID09PSB0aGlzLiNlbWJlZFdpbmRvdztcbiAgICBpZiAoIWlzRnJvbUVtYmVkV2luZG93KSByZXR1cm47XG4gICAgaWYgKGRhdGEubmFtZXNwYWNlID09PSBcInR3aXRjaC1lbWJlZFwiKSB7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMCkpO1xuICAgICAgaWYgKGRhdGEuZXZlbnROYW1lID09PSBcInJlYWR5XCIpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImxvYWRjb21wbGV0ZVwiKSk7XG4gICAgICAgIHRoaXMubG9hZENvbXBsZXRlLnJlc29sdmUoKTtcbiAgICAgICAgdGhpcy4jcmVhZHlTdGF0ZSA9IDE7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJsb2FkZWRtZXRhZGF0YVwiKSk7XG4gICAgICB9IGVsc2UgaWYgKGRhdGEuZXZlbnROYW1lID09PSBcInNlZWtcIikge1xuICAgICAgICB0aGlzLiNzZWVraW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInNlZWtpbmdcIikpO1xuICAgICAgfSBlbHNlIGlmIChkYXRhLmV2ZW50TmFtZSA9PT0gXCJwbGF5aW5nXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuI3NlZWtpbmcpIHtcbiAgICAgICAgICB0aGlzLiNzZWVraW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInNlZWtlZFwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jcmVhZHlTdGF0ZSA9IDM7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJwbGF5aW5nXCIpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoZGF0YS5ldmVudE5hbWUpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRhdGEubmFtZXNwYWNlID09PSBcInR3aXRjaC1lbWJlZC1wbGF5ZXItcHJveHlcIiAmJiBkYXRhLmV2ZW50TmFtZSA9PT0gXCJVUERBVEVfU1RBVEVcIikge1xuICAgICAgY29uc3Qgb2xkRHVyYXRpb24gPSB0aGlzLiNwbGF5ZXJTdGF0ZS5kdXJhdGlvbjtcbiAgICAgIGNvbnN0IG9sZEN1cnJlbnRUaW1lID0gdGhpcy4jcGxheWVyU3RhdGUuY3VycmVudFRpbWU7XG4gICAgICBjb25zdCBvbGRWb2x1bWUgPSB0aGlzLiNwbGF5ZXJTdGF0ZS52b2x1bWU7XG4gICAgICBjb25zdCBvbGRNdXRlZCA9IHRoaXMuI3BsYXllclN0YXRlLm11dGVkO1xuICAgICAgY29uc3Qgb2xkQnVmZmVyZWQgPSAoX2IgPSAoX2EgPSB0aGlzLiNwbGF5ZXJTdGF0ZS5zdGF0cykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnZpZGVvU3RhdHMpID09IG51bGwgPyB2b2lkIDAgOiBfYi5idWZmZXJTaXplO1xuICAgICAgdGhpcy4jcGxheWVyU3RhdGUgPSB7IC4uLnRoaXMuI3BsYXllclN0YXRlLCAuLi5kYXRhLnBhcmFtcyB9O1xuICAgICAgaWYgKG9sZER1cmF0aW9uICE9PSB0aGlzLiNwbGF5ZXJTdGF0ZS5kdXJhdGlvbikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiZHVyYXRpb25jaGFuZ2VcIikpO1xuICAgICAgfVxuICAgICAgaWYgKG9sZEN1cnJlbnRUaW1lICE9PSB0aGlzLiNwbGF5ZXJTdGF0ZS5jdXJyZW50VGltZSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwidGltZXVwZGF0ZVwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2xkVm9sdW1lICE9PSB0aGlzLiNwbGF5ZXJTdGF0ZS52b2x1bWUgfHwgb2xkTXV0ZWQgIT09IHRoaXMuI3BsYXllclN0YXRlLm11dGVkKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJ2b2x1bWVjaGFuZ2VcIikpO1xuICAgICAgfVxuICAgICAgaWYgKG9sZEJ1ZmZlcmVkICE9PSAoKF9kID0gKF9jID0gdGhpcy4jcGxheWVyU3RhdGUuc3RhdHMpID09IG51bGwgPyB2b2lkIDAgOiBfYy52aWRlb1N0YXRzKSA9PSBudWxsID8gdm9pZCAwIDogX2QuYnVmZmVyU2l6ZSkpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInByb2dyZXNzXCIpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gICNzZW5kQ29tbWFuZChjb21tYW5kLCBwYXJhbXMpIHtcbiAgICBpZiAoIXRoaXMuI2VtYmVkV2luZG93KSByZXR1cm47XG4gICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgIGV2ZW50TmFtZTogY29tbWFuZCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIG5hbWVzcGFjZTogXCJ0d2l0Y2gtZW1iZWQtcGxheWVyLXByb3h5XCJcbiAgICB9O1xuICAgIHRoaXMuI2VtYmVkV2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsIEVNQkVEX0JBU0UpO1xuICB9XG4gIC8vIFRoaXMgaXMgYSBwYXR0ZXJuIHRvIHVwZGF0ZSBwcm9wZXJ0eSB2YWx1ZXMgdGhhdCBhcmUgc2V0IGJlZm9yZVxuICAvLyB0aGUgY3VzdG9tIGVsZW1lbnQgaXMgdXBncmFkZWQuXG4gIC8vIGh0dHBzOi8vd2ViLmRldi9jdXN0b20tZWxlbWVudHMtYmVzdC1wcmFjdGljZXMvI21ha2UtcHJvcGVydGllcy1sYXp5XG4gICN1cGdyYWRlUHJvcGVydHkocHJvcCkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcywgcHJvcCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1twcm9wXTtcbiAgICAgIGRlbGV0ZSB0aGlzW3Byb3BdO1xuICAgICAgdGhpc1twcm9wXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbmFtZWROb2RlTWFwVG9PYmplY3QobmFtZWROb2RlTWFwKSB7XG4gIGxldCBvYmogPSB7fTtcbiAgZm9yIChsZXQgYXR0ciBvZiBuYW1lZE5vZGVNYXApIHtcbiAgICBvYmpbYXR0ci5uYW1lXSA9IGF0dHIudmFsdWU7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZXMoYXR0cnMpIHtcbiAgbGV0IGh0bWwgPSBcIlwiO1xuICBmb3IgKGNvbnN0IGtleSBpbiBhdHRycykge1xuICAgIGNvbnN0IHZhbHVlID0gYXR0cnNba2V5XTtcbiAgICBpZiAodmFsdWUgPT09IFwiXCIpIGh0bWwgKz0gYCAke2VzY2FwZUh0bWwoa2V5KX1gO1xuICAgIGVsc2UgaHRtbCArPSBgICR7ZXNjYXBlSHRtbChrZXkpfT1cIiR7ZXNjYXBlSHRtbChgJHt2YWx1ZX1gKX1cImA7XG4gIH1cbiAgcmV0dXJuIGh0bWw7XG59XG5mdW5jdGlvbiBlc2NhcGVIdG1sKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyYvZywgXCImYW1wO1wiKS5yZXBsYWNlKC88L2csIFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csIFwiJmd0O1wiKS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKS5yZXBsYWNlKC8nL2csIFwiJmFwb3M7XCIpLnJlcGxhY2UoL2AvZywgXCImI3g2MDtcIik7XG59XG5mdW5jdGlvbiBzZXJpYWxpemUocHJvcHMpIHtcbiAgcmV0dXJuIFN0cmluZyhuZXcgVVJMU2VhcmNoUGFyYW1zKGZpbHRlclBhcmFtcyhwcm9wcykpKTtcbn1cbmZ1bmN0aW9uIGZpbHRlclBhcmFtcyhwcm9wcykge1xuICBsZXQgcCA9IHt9O1xuICBmb3IgKGxldCBrZXkgaW4gcHJvcHMpIHtcbiAgICBsZXQgdmFsID0gcHJvcHNba2V5XTtcbiAgICBpZiAodmFsID09PSB0cnVlIHx8IHZhbCA9PT0gXCJcIikgcFtrZXldID0gdHJ1ZTtcbiAgICBlbHNlIGlmICh2YWwgPT09IGZhbHNlKSBwW2tleV0gPSBmYWxzZTtcbiAgICBlbHNlIGlmICh2YWwgIT0gbnVsbCkgcFtrZXldID0gdmFsO1xuICB9XG4gIHJldHVybiBwO1xufVxuY2xhc3MgUHVibGljUHJvbWlzZSBleHRlbmRzIFByb21pc2Uge1xuICBjb25zdHJ1Y3RvcihleGVjdXRvciA9ICgpID0+IHtcbiAgfSkge1xuICAgIGxldCByZXMsIHJlajtcbiAgICBzdXBlcigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgcmVzID0gcmVzb2x2ZTtcbiAgICAgIHJlaiA9IHJlamVjdDtcbiAgICB9KTtcbiAgICB0aGlzLnJlc29sdmUgPSByZXM7XG4gICAgdGhpcy5yZWplY3QgPSByZWo7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZVRpbWVSYW5nZXMoc3RhcnQsIGVuZCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShzdGFydCkpIHtcbiAgICByZXR1cm4gY3JlYXRlVGltZVJhbmdlc09iaihzdGFydCk7XG4gIH0gZWxzZSBpZiAoc3RhcnQgPT0gbnVsbCB8fCBlbmQgPT0gbnVsbCB8fCBzdGFydCA9PT0gMCAmJiBlbmQgPT09IDApIHtcbiAgICByZXR1cm4gY3JlYXRlVGltZVJhbmdlc09iaihbWzAsIDBdXSk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVRpbWVSYW5nZXNPYmooW1tzdGFydCwgZW5kXV0pO1xufVxuZnVuY3Rpb24gY3JlYXRlVGltZVJhbmdlc09iaihyYW5nZXMpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmFuZ2VzLCB7XG4gICAgc3RhcnQ6IHtcbiAgICAgIHZhbHVlOiAoaSkgPT4gcmFuZ2VzW2ldWzBdXG4gICAgfSxcbiAgICBlbmQ6IHtcbiAgICAgIHZhbHVlOiAoaSkgPT4gcmFuZ2VzW2ldWzFdXG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJhbmdlcztcbn1cbmlmIChnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzICYmICFnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzLmdldChcInR3aXRjaC12aWRlb1wiKSkge1xuICBnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzLmRlZmluZShcInR3aXRjaC12aWRlb1wiLCBUd2l0Y2hWaWRlb0VsZW1lbnQpO1xufVxudmFyIHR3aXRjaF92aWRlb19lbGVtZW50X2RlZmF1bHQgPSBUd2l0Y2hWaWRlb0VsZW1lbnQ7XG5leHBvcnQge1xuICB0d2l0Y2hfdmlkZW9fZWxlbWVudF9kZWZhdWx0IGFzIGRlZmF1bHRcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/twitch-video-element/dist/twitch-video-element.js\n\n}");
30
-
31
- /***/ })
32
-
33
- };