@playkit-js/playkit-js-dual-screen 3.1.7 → 3.1.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"playkit-dual-screen.js","mappings":"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","sources":["./dualscreen/../node_modules/@playkit-js/common/dist/components/button/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/hoc/a11y-wrapper/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/add.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/close.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/download.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/expand.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/message.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/minimizedVideo.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/more.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/pictureInPicture.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/print.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/quiz.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/related.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/share.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/switch.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/utils-common/utils.js","./dualscreen/../node_modules/classnames/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/components/button/Button.scss","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icon.scss","./dualscreen/./components/drag-and-snap-manager/drag-and-snap-manager.scss","./dualscreen/./components/multiscreen/multiscreen.scss","./dualscreen/./components/pip-minimized/pip-minimized.scss","./dualscreen/./components/pip/pip.scss","./dualscreen/./components/side-by-side/side-by-side.scss","./dualscreen/./image-player/image-player.scss","./dualscreen/./styles/global.scss","./dualscreen/../node_modules/css-loader/dist/runtime/api.js","./dualscreen/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://KalturaPlayer.plugins.dualscreen/../node_modules/@playkit-js/common/dist/components/button/Button.scss?6bdc","webpack://KalturaPlayer.plugins.dualscreen/../node_modules/@playkit-js/common/dist/icon/icon.scss?f778","webpack://KalturaPlayer.plugins.dualscreen/./components/drag-and-snap-manager/drag-and-snap-manager.scss?74d3","webpack://KalturaPlayer.plugins.dualscreen/./components/multiscreen/multiscreen.scss?24ff","webpack://KalturaPlayer.plugins.dualscreen/./components/pip-minimized/pip-minimized.scss?b562","webpack://KalturaPlayer.plugins.dualscreen/./components/pip/pip.scss?29d1","webpack://KalturaPlayer.plugins.dualscreen/./components/side-by-side/side-by-side.scss?78e8","webpack://KalturaPlayer.plugins.dualscreen/./image-player/image-player.scss?eaa3","webpack://KalturaPlayer.plugins.dualscreen/./styles/global.scss?e9e0","./dualscreen/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","./dualscreen/./components/drag-and-snap-manager/drag-and-snap-manager.tsx","./dualscreen/./components/drag-and-snap-manager/index.ts","./dualscreen/./components/multiscreen/index.ts","./dualscreen/./components/multiscreen/multiscreen.tsx","./dualscreen/./components/pip-minimized/index.ts","./dualscreen/./components/pip-minimized/pip-minimized.tsx","./dualscreen/./components/pip/index.ts","./dualscreen/./components/pip/pip-child.tsx","./dualscreen/./components/pip/pip-parent.tsx","./dualscreen/./components/responsive-manager/index.ts","./dualscreen/./components/responsive-manager/responsive-manager.tsx","./dualscreen/./components/side-by-side/side-by-side-wrapper.tsx","./dualscreen/./components/side-by-side/side-by-side.tsx","./dualscreen/./dualscreen-engine-decorator.ts","./dualscreen/./dualscreen.tsx","./dualscreen/./enums/animation.ts","./dualscreen/./enums/buttons.ts","./dualscreen/./enums/index.ts","./dualscreen/./enums/layoutEnum.ts","./dualscreen/./enums/players.ts","./dualscreen/./enums/reservedPresetAreasEnum.ts","./dualscreen/./icons.ts","./dualscreen/./image-player/image-player.tsx","./dualscreen/./image-player/index.ts","./dualscreen/./image-sync-manager.ts","./dualscreen/./providers/secondary-media-loader.ts","./dualscreen/./utils/index.ts","./dualscreen/./video-sync-manager.ts","./dualscreen/external root \"KalturaPlayer\"","./dualscreen/external root \"KalturaPlayer.ui.preact\"","./dualscreen/webpack/bootstrap","./dualscreen/webpack/runtime/compat get default export","./dualscreen/webpack/runtime/define property getters","./dualscreen/webpack/runtime/hasOwnProperty shorthand","./dualscreen/webpack/runtime/make namespace object","./dualscreen/webpack/runtime/nonce","./dualscreen/./index.ts"],"sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Button = exports.ButtonType = exports.ButtonSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar a11y_wrapper_1 = require(\"../../hoc/a11y-wrapper\");\nvar icon_1 = require(\"../../icon\");\nvar styles = require(\"./Button.scss\");\nvar Tooltip = kaltura_player_js_1.ui.Components.Tooltip;\nvar ButtonSize;\n(function (ButtonSize) {\n ButtonSize[\"small\"] = \"small\";\n ButtonSize[\"medium\"] = \"medium\";\n ButtonSize[\"large\"] = \"large\";\n})(ButtonSize = exports.ButtonSize || (exports.ButtonSize = {}));\nvar ButtonType;\n(function (ButtonType) {\n ButtonType[\"primary\"] = \"primary\";\n ButtonType[\"danger\"] = \"danger\";\n ButtonType[\"translucent\"] = \"translucent\";\n ButtonType[\"borderless\"] = \"borderless\";\n})(ButtonType = exports.ButtonType || (exports.ButtonType = {}));\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buttonRef = (0, preact_1.createRef)();\n _this.renderButton = function () {\n var _a;\n var props = _this.props;\n var classNames = classnames(styles.button, styles[props.size], styles[props.type], props.className, (_a = {},\n _a[styles.disabled] = props.disabled,\n _a[styles.withIcon] = props.children && props.icon,\n _a[styles.iconOnly] = !props.children && props.icon,\n _a));\n var buttonProps = __assign(__assign({ ref: _this.buttonRef, disabled: props.disabled, 'aria-disabled': props.disabled, tabIndex: props.tabIndex, className: classNames }, (props.ariaLabel ? { 'aria-label': props.ariaLabel } : {})), (props.testId ? { 'data-testid': props.testId } : {}));\n var buttonContent = ((0, preact_1.h)(\"button\", __assign({}, buttonProps),\n (0, preact_1.h)(preact_1.Fragment, null,\n props.icon && (0, preact_1.h)(icon_1.Icon, { name: props.icon, size: icon_1.IconSize[props.size] }),\n props.children && (0, preact_1.h)(\"span\", null, props.children))));\n return props.onClick ? (0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: props.onClick }, buttonContent) : buttonContent;\n };\n return _this;\n }\n Button.prototype.componentDidMount = function () {\n var _a;\n if (this.props.focusOnMount)\n (_a = this.buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n };\n Button.prototype.render = function (props) {\n if (props.tooltip) {\n var tooltipProps = __assign(__assign({ label: props.tooltip.label }, (props.tooltip.type ? { type: props.tooltip.type } : {})), (props.tooltip.className ? { classNames: props.tooltip.className } : {}));\n return (0, preact_1.h)(Tooltip, __assign({}, tooltipProps), this.renderButton());\n }\n return this.renderButton();\n };\n return Button;\n}(preact_1.Component));\nexports.Button = Button;\nButton.defaultProps = {\n disabled: false,\n focusOnMount: false,\n tabIndex: 0,\n children: null,\n size: ButtonSize.medium,\n icon: null,\n type: ButtonType.primary\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.A11yWrapper = exports.isKeyboardEvent = void 0;\nvar preact_1 = require(\"preact\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar _a = kaltura_player_js_1.ui.utils.KeyMap, ENTER = _a.ENTER, SPACE = _a.SPACE, UP = _a.UP, DOWN = _a.DOWN, LEFT = _a.LEFT, RIGHT = _a.RIGHT;\nvar stopEvent = function (e) {\n e.preventDefault();\n e.stopPropagation();\n};\nvar isKeyboardEvent = function (e) {\n // space/enter keyEvent is swallowed by NVDA (https://github.com/nvaccess/nvda/issues/7898)\n // check offsetX and offsetY to define keyboard event triggered by NVDA\n return e instanceof KeyboardEvent || [e.offsetX, e.offsetY].every(function (offset) { return offset === 0; });\n};\nexports.isKeyboardEvent = isKeyboardEvent;\nvar A11yWrapper = function (_a) {\n var children = _a.children, onClick = _a.onClick, onUpKeyPressed = _a.onUpKeyPressed, onDownKeyPressed = _a.onDownKeyPressed, onLeftKeyPressed = _a.onLeftKeyPressed, onRightKeyPressed = _a.onRightKeyPressed, role = _a.role, type = _a.type;\n var props = {\n onKeyDown: function (e) {\n if (e.keyCode === SPACE || e.keyCode === ENTER) {\n stopEvent(e);\n onClick(e, true);\n }\n else if (e.keyCode === UP && onUpKeyPressed) {\n stopEvent(e);\n onUpKeyPressed(e);\n }\n else if (e.keyCode === DOWN && onDownKeyPressed) {\n stopEvent(e);\n onDownKeyPressed(e);\n }\n else if (e.keyCode === LEFT && onLeftKeyPressed) {\n stopEvent(e);\n onLeftKeyPressed(e);\n }\n else if (e.keyCode === RIGHT && onRightKeyPressed) {\n stopEvent(e);\n onRightKeyPressed(e);\n }\n },\n onClick: function (e) {\n e.stopPropagation();\n onClick(e, (0, exports.isKeyboardEvent)(e));\n },\n role: role\n };\n if (children.type === 'button') {\n props.type = type || 'button';\n }\n return (0, preact_1.cloneElement)(children, props);\n};\nexports.A11yWrapper = A11yWrapper;\nexports.A11yWrapper.defaultProps = {\n role: 'button'\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Add = void 0;\nvar preact_1 = require(\"preact\");\nvar Add = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M21.8083 4C22.4665 4 23 4.55964 23 5.25V18.75C23 19.4404 22.4665 20 21.8083 20H2.19167C1.53353 20 1 19.4404 1 18.75V5.25C1 4.55964 1.53353 4 2.19167 4H21.8083ZM15 6H3V18H15V6ZM12.999 8.967L13 9L12.998 8.94L12.999 8.967L13 9V15C13 15.5523 12.5523 16 12 16C11.4872 16 11.0645 15.614 11.0067 15.1166L11 15V11.414L6.70711 15.7071C6.34662 16.0676 5.77939 16.0953 5.3871 15.7903L5.29289 15.7071C4.93241 15.3466 4.90468 14.7794 5.2097 14.3871L5.29289 14.2929L9.584 10H6C5.48716 10 5.06449 9.61396 5.00673 9.11662L5 9C5 8.44772 5.44772 8 6 8L12.0193 8.00018C12.0427 8.00063 12.066 8.00189 12.0893 8.00397C12.1097 8.00575 12.1294 8.0081 12.149 8.01102C12.1659 8.01363 12.1834 8.0167 12.2007 8.02024C12.2227 8.02464 12.2444 8.02983 12.2658 8.03572C12.2815 8.0401 12.2969 8.04473 12.3121 8.04974C12.3318 8.05612 12.3516 8.06332 12.3711 8.0711L12.4232 8.09367C12.4439 8.10338 12.4643 8.11379 12.4843 8.12488C12.4964 8.1315 12.5086 8.13861 12.5207 8.146C12.5463 8.16172 12.5711 8.17849 12.5952 8.19631L12.6525 8.24221L12.6167 8.21279C12.6802 8.26255 12.7374 8.31982 12.7872 8.38325C12.7927 8.39016 12.7982 8.3974 12.8037 8.40469C12.8215 8.42887 12.8383 8.45372 12.8539 8.47934L12.8753 8.51594C12.8862 8.53571 12.8966 8.55611 12.9063 8.5769L12.9288 8.62866C12.9367 8.64842 12.9439 8.6682 12.9505 8.68826C12.9553 8.70315 12.9599 8.71854 12.9642 8.73401C12.9702 8.75556 12.9754 8.77725 12.9798 8.79921C12.9833 8.81662 12.9864 8.83405 12.989 8.85153L12.9972 8.92482L12.998 8.94L12.999 8.967Z\", fill: \"white\" }))); };\nexports.Add = Add;\n//# sourceMappingURL=add.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Close = void 0;\nvar preact_1 = require(\"preact\");\nvar Close = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M11.6592 10.245L6.70483 5.29061C6.31701 4.9028 5.68581 4.90476 5.29528 5.29528C4.90204 5.68853 4.90267 6.31688 5.29061 6.70483L10.245 11.6592L5.29061 16.6137C4.9028 17.0015 4.90476 17.6327 5.29528 18.0232C5.68853 18.4165 6.31688 18.4158 6.70483 18.0279L11.6592 13.0735L16.6137 18.0279C17.0015 18.4157 17.6327 18.4137 18.0232 18.0232C18.4165 17.63 18.4158 17.0016 18.0279 16.6137L13.0735 11.6592L18.0279 6.70483C18.4157 6.31701 18.4137 5.68581 18.0232 5.29528C17.63 4.90204 17.0016 4.90267 16.6137 5.29061L11.6592 10.245Z\", fill: \"white\" }))); };\nexports.Close = Close;\n//# sourceMappingURL=close.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Download = void 0;\nvar preact_1 = require(\"preact\");\nvar Download = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.5 6C17.5 5.44772 17.0523 5 16.5 5L16.3834 5.00673C15.886 5.06449 15.5 5.48716 15.5 6L15.4997 17.693L9.71029 12.2702C9.30721 11.8926 8.67439 11.9133 8.29683 12.3164C7.91928 12.7195 7.93998 13.3523 8.34306 13.7298L15.8164 20.7298C15.8212 20.7343 15.826 20.7387 15.8308 20.7431L15.8164 20.7298L15.9035 20.8027C15.9034 20.8026 15.9037 20.8028 15.9035 20.8027C15.9135 20.8101 15.9231 20.817 15.9333 20.824C15.956 20.8397 15.9793 20.8544 16.0038 20.8684C16.0148 20.8747 16.0259 20.8808 16.0366 20.8864C16.0596 20.8984 16.0832 20.9096 16.1077 20.9201C16.1223 20.9263 16.1371 20.9322 16.1515 20.9376C16.1769 20.947 16.2028 20.9555 16.2299 20.963C16.2399 20.9658 16.25 20.9684 16.2595 20.9709C16.3365 20.9899 16.4171 21 16.5 21C16.5804 21 16.6585 20.9905 16.7336 20.9725C16.7521 20.968 16.7706 20.963 16.7889 20.9576C16.8097 20.9514 16.8303 20.9444 16.8507 20.9367C16.8632 20.932 16.8756 20.9271 16.8878 20.922C16.9121 20.9118 16.936 20.9006 16.9596 20.8883C16.9735 20.8812 16.9872 20.8736 17.0007 20.8658C17.0223 20.8533 17.0434 20.84 17.0636 20.8262C17.0764 20.8174 17.0891 20.8083 17.1021 20.7985C17.1224 20.7831 17.1422 20.767 17.161 20.7504C17.1685 20.7437 17.176 20.737 17.1834 20.7301L24.6619 13.7301C25.0651 13.3527 25.086 12.7198 24.7086 12.3166L24.6172 12.2304C24.2352 11.9126 23.6674 11.9215 23.2952 12.2699L17.4997 17.694L17.5 6Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M27 26C27 26.5523 26.5523 27 26 27H7C6.44772 27 6 26.5523 6 26C6 25.4477 6.44772 25 7 25H26C26.5523 25 27 25.4477 27 26Z\", fill: \"white\" }))); };\nexports.Download = Download;\n//# sourceMappingURL=download.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Expand = void 0;\nvar preact_1 = require(\"preact\");\nvar Expand = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M20.997 3.924L20.998 3.945L20.999 3.98L21 4V10C21 10.5523 20.5523 11 20 11C19.4872 11 19.0645 10.614 19.0067 10.1166L19 10V6.416L14.7071 10.7071C14.3466 11.0676 13.7794 11.0953 13.3871 10.7903L13.2929 10.7071C12.9324 10.3466 12.9047 9.77939 13.2097 9.3871L13.2929 9.29289L17.586 5H14C13.4872 5 13.0645 4.61396 13.0067 4.11662L13 4C13 3.48716 13.386 3.06449 13.8834 3.00673L14 3L20.0332 3.00054C20.0503 3.00109 20.0683 3.00216 20.0862 3.0037C20.1079 3.00553 20.1285 3.00797 20.149 3.01102C20.166 3.01363 20.1834 3.0167 20.2007 3.02024C20.2227 3.02464 20.2444 3.02983 20.2658 3.03572C20.2815 3.0401 20.2969 3.04473 20.3121 3.04974C20.3318 3.05612 20.3516 3.06332 20.3711 3.0711L20.4232 3.09367C20.4439 3.10338 20.4643 3.11379 20.4843 3.12488C20.4964 3.1315 20.5086 3.13861 20.5207 3.146C20.5463 3.16172 20.5711 3.17849 20.5952 3.19631L20.6525 3.24221L20.6168 3.21279C20.6802 3.26255 20.7374 3.31982 20.7872 3.38325C20.7927 3.39016 20.7982 3.3974 20.8037 3.40469C20.8215 3.42887 20.8383 3.45373 20.8539 3.47934L20.8753 3.51594C20.8862 3.53571 20.8966 3.55611 20.9063 3.5769L20.9288 3.62866C20.9367 3.64842 20.9439 3.6682 20.9505 3.68826C20.9553 3.70315 20.9599 3.71854 20.9642 3.73401C20.9702 3.75556 20.9754 3.77725 20.9798 3.79921C20.9833 3.81662 20.9864 3.83405 20.989 3.85153L20.996 3.91075L20.996 3.919L20.997 3.921V3.924ZM3.002 20.059V20.071L3.00175 20.0593C3.00122 20.0503 3.00081 20.0413 3.00052 20.0323L3 14C3 13.4477 3.44772 13 4 13C4.51284 13 4.93551 13.386 4.99327 13.8834L5 14V17.586L9.29289 13.2929C9.65338 12.9324 10.2206 12.9047 10.6129 13.2097L10.7071 13.2929C11.0676 13.6534 11.0953 14.2206 10.7903 14.6129L10.7071 14.7071L6.416 19H10C10.5128 19 10.9355 19.386 10.9933 19.8834L11 20C11 20.5128 10.614 20.9355 10.1166 20.9933L10 21H4C3.99354 21 3.98709 20.9999 3.98066 20.9998C3.95732 20.9994 3.93401 20.9981 3.91075 20.996C3.89031 20.9943 3.87058 20.9919 3.85104 20.989C3.83405 20.9864 3.81662 20.9833 3.79927 20.9798C3.77725 20.9754 3.75556 20.9702 3.73416 20.9643C3.71854 20.9599 3.70315 20.9553 3.68786 20.9503C3.6682 20.9439 3.64842 20.9367 3.62894 20.9289L3.57678 20.9063C3.55611 20.8966 3.53571 20.8862 3.51572 20.8751C3.50361 20.8685 3.49139 20.8614 3.47929 20.854C3.45373 20.8383 3.42887 20.8215 3.40484 20.8037L3.34745 20.7578L3.38325 20.7872C3.31982 20.7374 3.26255 20.6802 3.21279 20.6168C3.20728 20.6098 3.20175 20.6026 3.19633 20.5953C3.17849 20.5711 3.16172 20.5463 3.14607 20.5207L3.12467 20.4841C3.11379 20.4643 3.10338 20.4439 3.09365 20.4231L3.07123 20.3713C3.06332 20.3516 3.05612 20.3318 3.04955 20.3117C3.04473 20.2969 3.0401 20.2815 3.03585 20.266C3.02983 20.2444 3.02464 20.2227 3.02017 20.2008C3.0167 20.1834 3.01363 20.1659 3.01102 20.1485L3.0037 20.0862L3.002 20.059Z\", fill: \"white\" }))); };\nexports.Expand = Expand;\n//# sourceMappingURL=expand.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icons = void 0;\nvar close_1 = require(\"./close\");\nvar print_1 = require(\"./print\");\nvar download_1 = require(\"./download\");\nvar related_1 = require(\"./related\");\nvar message_1 = require(\"./message\");\nvar share_1 = require(\"./share\");\nvar more_1 = require(\"./more\");\nvar quiz_1 = require(\"./quiz\");\nvar switch_1 = require(\"./switch\");\nvar add_1 = require(\"./add\");\nvar minimizedVideo_1 = require(\"./minimizedVideo\");\nvar pictureInPicture_1 = require(\"./pictureInPicture\");\nvar expand_1 = require(\"./expand\");\nexports.Icons = {\n close: close_1.Close,\n print: print_1.Print,\n download: download_1.Download,\n related: related_1.Related,\n message: message_1.Message,\n share: share_1.Share,\n more: more_1.More,\n quiz: quiz_1.QuizIcon,\n switch: switch_1.Switch,\n add: add_1.Add,\n minimizedVideo: minimizedVideo_1.MinimizedVideo,\n pictureInPicture: pictureInPicture_1.PictureInPicture,\n expand: expand_1.Expand\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Message = void 0;\nvar preact_1 = require(\"preact\");\nvar Message = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M25 5C27.2091 5 29 6.75035 29 8.90952V18.6833C29 20.8425 27.2091 22.5928 25 22.5928H14.985L10.7019 26.7188C10.546 26.8689 10.3449 26.9641 10.1302 26.9917L10 27C9.44772 27 9 26.5624 9 26.0226V22.5928H7C4.79086 22.5928 3 20.8425 3 18.6833V8.90952C3 6.75035 4.79086 5 7 5H25ZM25 6.95476H7C5.89543 6.95476 5 7.82994 5 8.90952V18.6833C5 19.7629 5.89543 20.6381 7 20.6381H11V23.687L14.1651 20.6381H25C26.1046 20.6381 27 19.7629 27 18.6833V8.90952C27 7.82994 26.1046 6.95476 25 6.95476ZM19 14.7738C19.5523 14.7738 20 15.2114 20 15.7512C20 16.291 19.5523 16.7286 19 16.7286H10C9.44772 16.7286 9 16.291 9 15.7512C9 15.2114 9.44772 14.7738 10 14.7738H19ZM23 10.8643C23.5523 10.8643 24 11.3019 24 11.8417C24 12.3815 23.5523 12.819 23 12.819H10C9.44772 12.819 9 12.3815 9 11.8417C9 11.3019 9.44772 10.8643 10 10.8643H23Z\", fill: \"white\" }))); };\nexports.Message = Message;\n//# sourceMappingURL=message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MinimizedVideo = void 0;\nvar preact_1 = require(\"preact\");\nvar MinimizedVideo = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M5.25 4.5H18.75C19.9926 4.5 21 5.50736 21 6.75V17.25C21 18.4926 19.9926 19.5 18.75 19.5H5.25C4.00736 19.5 3 18.4926 3 17.25V6.75C3 5.50736 4.00736 4.5 5.25 4.5ZM5.25 6C4.83579 6 4.5 6.33579 4.5 6.75V17.25C4.5 17.6642 4.83579 18 5.25 18H18.75C19.1642 18 19.5 17.6642 19.5 17.25V6.75C19.5 6.33579 19.1642 6 18.75 6H5.25ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.MinimizedVideo = MinimizedVideo;\n//# sourceMappingURL=minimizedVideo.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.More = void 0;\nvar preact_1 = require(\"preact\");\nvar More = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M8 12C8 13.1046 7.10457 14 6 14C4.89543 14 4 13.1046 4 12C4 10.8954 4.89543 10 6 10C7.10457 10 8 10.8954 8 12ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12ZM20 12C20 13.1046 19.1046 14 18 14C16.8954 14 16 13.1046 16 12C16 10.8954 16.8954 10 18 10C19.1046 10 20 10.8954 20 12Z\", fill: \"white\" }))); };\nexports.More = More;\n//# sourceMappingURL=more.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PictureInPicture = void 0;\nvar preact_1 = require(\"preact\");\nvar PictureInPicture = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M18.75 4.5H5.25C4.00736 4.5 3 5.50736 3 6.75V17.25C3 18.4926 4.00736 19.5 5.25 19.5H18.75C19.9926 19.5 21 18.4926 21 17.25V6.75C21 5.50736 19.9926 4.5 18.75 4.5ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.PictureInPicture = PictureInPicture;\n//# sourceMappingURL=pictureInPicture.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Print = void 0;\nvar preact_1 = require(\"preact\");\nvar Print = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M23 23H26C27.1046 23 28 22.1046 28 21V11C28 9.89543 27.1046 9 26 9H23V5C23 3.89543 22.1046 3 21 3H11C9.89543 3 9 3.89543 9 5V9H6C4.89543 9 4 9.89543 4 11V21C4 22.1046 4.89543 23 6 23H9V28C9 29.1046 9.89543 30 11 30H21C22.1046 30 23 29.1046 23 28V23ZM6 11V21H9V19C8.44772 19 8 18.5523 8 18C8 17.4477 8.44772 17 9 17H23C23.5523 17 24 17.4477 24 18C24 18.5523 23.5523 19 23 19V21H26V11H6ZM21 9V5H11V9H21ZM11 19V28H21V19H11Z\", fill: \"white\" }))); };\nexports.Print = Print;\n//# sourceMappingURL=print.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuizIcon = void 0;\nvar preact_1 = require(\"preact\");\nvar QuizIcon = function () {\n return ((0, preact_1.h)(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8.49857 2.11499L12.7442 4.2052C12.9162 4.28987 12.9812 4.48721 12.8895 4.64597C12.8594 4.69807 12.8145 4.74163 12.7597 4.77201L8.54484 7.10634C8.20953 7.29205 7.79063 7.29205 7.45532 7.10634L3.2405 4.77202C3.07335 4.67945 3.01915 4.47933 3.11944 4.32505C3.15235 4.27441 3.19956 4.23299 3.256 4.2052L7.50203 2.11498C7.81345 1.96167 8.18715 1.96168 8.49857 2.11499ZM14 6.02878V10.7642C14 11.1075 13.8049 11.4256 13.486 11.6022L9.24043 13.9536C9.07328 14.0461 8.85649 13.9961 8.7562 13.8418C8.72329 13.7912 8.7059 13.7333 8.7059 13.6742V8.93882C8.7059 8.59551 8.90104 8.27738 9.21997 8.10075L13.4655 5.74942C13.6326 5.65685 13.8494 5.70688 13.9497 5.86116C13.9826 5.91179 14 5.96973 14 6.02878ZM6.5145 8.31192L2.50483 6.04476C2.45303 6.01547 2.39375 6 2.33333 6C2.14924 6 2 6.14064 2 6.31412V10.88C2 11.211 2.1843 11.5178 2.4855 11.6881L6.49517 13.9552C6.54697 13.9845 6.60625 14 6.66667 14C6.85076 14 7 13.8594 7 13.6859V9.12C7 8.78898 6.8157 8.48223 6.5145 8.31192Z\", fill: \"white\" })));\n};\nexports.QuizIcon = QuizIcon;\n//# sourceMappingURL=quiz.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Related = void 0;\nvar preact_1 = require(\"preact\");\nvar Related = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 7H12C13.1046 7 14 7.89543 14 9V13C14 14.1046 13.1046 15 12 15H8C6.89543 15 6 14.1046 6 13V9C6 7.89543 6.89543 7 8 7ZM8 13H12V9H8V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 18H12C13.1046 18 14 18.8954 14 20V24C14 25.1046 13.1046 26 12 26H8C6.89543 26 6 25.1046 6 24V20C6 18.8954 6.89543 18 8 18ZM8 24H12V20H8V24Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M24 7H20C18.8954 7 18 7.89543 18 9V13C18 14.1046 18.8954 15 20 15H24C25.1046 15 26 14.1046 26 13V9C26 7.89543 25.1046 7 24 7ZM24 13H20V9H24V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M20 18H24C25.1046 18 26 18.8954 26 20V24C26 25.1046 25.1046 26 24 26H20C18.8954 26 18 25.1046 18 24V20C18 18.8954 18.8954 18 20 18ZM20 24H24V20H20V24Z\", fill: \"white\" }))); };\nexports.Related = Related;\n//# sourceMappingURL=related.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Share = void 0;\nvar preact_1 = require(\"preact\");\nvar Share = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M22.6667 12.6667C24.5076 12.6667 26 11.1743 26 9.33333C26 7.49238 24.5076 6 22.6667 6C20.8257 6 19.3333 7.49238 19.3333 9.33333C19.3333 9.38882 19.3347 9.44399 19.3374 9.49881L11.9575 13.9443C11.3473 13.1665 10.3987 12.6667 9.33333 12.6667C7.49238 12.6667 6 14.1591 6 16C6 17.8409 7.49238 19.3333 9.33333 19.3333C10.3981 19.3333 11.3462 18.8341 11.9564 18.057L19.3374 22.5013C19.3347 22.5561 19.3333 22.6112 19.3333 22.6667C19.3333 24.5076 20.8257 26 22.6667 26C24.5076 26 26 24.5076 26 22.6667C26 20.8257 24.5076 19.3333 22.6667 19.3333C21.6074 19.3333 20.6636 19.8274 20.053 20.5976L12.864 16.2689L12.8651 15.7324L20.0531 11.4025C20.6637 12.1727 21.6075 12.6667 22.6667 12.6667ZM22.6667 10.6667C21.9303 10.6667 21.3333 10.0697 21.3333 9.33333C21.3333 8.59695 21.9303 8 22.6667 8C23.403 8 24 8.59695 24 9.33333C24 10.0697 23.403 10.6667 22.6667 10.6667ZM9.33333 17.3333C8.59695 17.3333 8 16.7364 8 16C8 15.2636 8.59695 14.6667 9.33333 14.6667C10.0697 14.6667 10.6667 15.2636 10.6667 16C10.6667 16.7364 10.0697 17.3333 9.33333 17.3333ZM21.3333 22.6667C21.3333 23.403 21.9303 24 22.6667 24C23.403 24 24 23.403 24 22.6667C24 21.9303 23.403 21.3333 22.6667 21.3333C21.9303 21.3333 21.3333 21.9303 21.3333 22.6667Z\", fill: \"white\" }))); };\nexports.Share = Share;\n//# sourceMappingURL=share.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Switch = void 0;\nvar preact_1 = require(\"preact\");\nvar Switch = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.6744 9.27934L21.7563 13.3632L21.8282 13.4537L21.887 13.5492L21.9333 13.6489L21.9684 13.7556L21.9824 13.8172L21.9974 13.929L22 14L21.9897 14.1405L21.9824 14.1828L21.9535 14.2949L21.9231 14.3759L21.887 14.4508L21.8281 14.5463L21.7763 14.6137L21.7207 14.6744L17.6744 18.7207C17.3019 19.0931 16.6981 19.0931 16.3256 18.7207C15.9818 18.3769 15.9554 17.8359 16.2463 17.4617L16.3256 17.3719L18.7439 14.9536L12.9537 14.9537C12.4675 14.9537 12.0663 14.5899 12.0074 14.1196L12 14C12 13.5109 12.3682 13.1078 12.8425 13.0527L12.9537 13.0463L18.7426 13.0451L16.3256 10.6281C15.9798 10.2823 15.9551 9.73687 16.2515 9.36252L16.3256 9.27934C16.6981 8.90689 17.3019 8.90689 17.6744 9.27934ZM6.32562 5.27934C6.69807 4.90689 7.30193 4.90689 7.67438 5.27934L7.74849 5.36252C8.04493 5.73687 8.02023 6.28225 7.67438 6.6281L5.2574 9.04508L11.0463 9.04628L11.1575 9.0527C11.6318 9.10779 12 9.5109 12 10L11.9926 10.1196C11.9337 10.5899 11.5325 10.9537 11.0463 10.9537L5.25605 10.9536L7.67438 13.3719L7.75372 13.4617C8.04463 13.8359 8.01818 14.3769 7.67438 14.7207C7.30193 15.0931 6.69807 15.0931 6.32562 14.7207L2.25793 10.6523L2.18664 10.5668L2.12413 10.4708L2.07695 10.3759L2.03697 10.2639L2.01028 10.1405L2 10C2 9.95226 2.00351 9.90534 2.01036 9.85937L2.01758 9.81716L2.04651 9.70514L2.08932 9.59642L2.12415 9.52899L2.18631 9.43351L2.24369 9.36325L6.32562 5.27934Z\", fill: \"white\" }))); };\nexports.Switch = Switch;\n//# sourceMappingURL=switch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icon = exports.IconSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar icons_1 = require(\"./icons\");\nvar styles = require(\"./icon.scss\");\nvar IconSize;\n(function (IconSize) {\n IconSize[\"small\"] = \"small\";\n IconSize[\"medium\"] = \"medium\";\n IconSize[\"large\"] = \"large\";\n})(IconSize = exports.IconSize || (exports.IconSize = {}));\nvar Icon = function (props) {\n var Icon = icons_1.Icons[props.name];\n if (!Icon) {\n return null;\n }\n return ((0, preact_1.h)(\"div\", { className: classnames(styles.iconWrapper, styles[props.size]) },\n (0, preact_1.h)(Icon, null)));\n};\nexports.Icon = Icon;\nexports.Icon.defaultProps = {\n size: IconSize.medium\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.debounce = exports.getQnaUserId = exports.getUserId = exports.generateId = void 0;\nvar generateId = function () {\n return new Date().getTime().toString(36) + Math.random().toString(36).slice(2);\n};\nexports.generateId = generateId;\nvar generateNumberedId = function () {\n var uuid = (0, exports.generateId)();\n var numStr = '';\n for (var i = 0; i < uuid.length; i++) {\n var char = uuid.charAt(i);\n numStr += Number.isNaN(+char) ? char.charCodeAt(0) : char;\n }\n return numStr;\n};\nfunction getUserId() {\n if (typeof Storage === 'undefined') {\n // No web storage Support, just generate and return a anonymous user id\n return _generateAnonymousUserId();\n }\n // Web storage is supported\n var anonymousUserId;\n anonymousUserId = localStorage.getItem('anonymousUserId');\n if (!anonymousUserId) {\n anonymousUserId = _generateAnonymousUserId();\n localStorage.setItem('anonymousUserId', anonymousUserId);\n }\n return anonymousUserId;\n}\nexports.getUserId = getUserId;\n// makes uniq user id for push notification client\nvar getQnaUserId = function (player) {\n var _a, _b, _c, _d;\n var _e = player, config = _e.config, plugins = _e.plugins;\n var session = (config === null || config === void 0 ? void 0 : config.session) || {};\n var userRole = ((_b = (_a = plugins === null || plugins === void 0 ? void 0 : plugins.qna) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.userRole) || session.userRole;\n if (!userRole || userRole === 'anonymousRole') {\n return getUserId();\n }\n return ((_d = (_c = plugins === null || plugins === void 0 ? void 0 : plugins.qna) === null || _c === void 0 ? void 0 : _c.config) === null || _d === void 0 ? void 0 : _d.userId) || session.userId;\n};\nexports.getQnaUserId = getQnaUserId;\nfunction _generateAnonymousUserId() {\n var HashSeparatorText = 'HashSeparator';\n var DefaultAnonymousPrefix = 'Guest';\n return \"##\".concat(DefaultAnonymousPrefix).concat(HashSeparatorText).concat(generateNumberedId(), \"##\");\n}\nfunction debounce(func, waitMilliseconds, options) {\n if (waitMilliseconds === void 0) { waitMilliseconds = 50; }\n if (options === void 0) { options = {\n isImmediate: false\n }; }\n var timeoutId;\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var doLater = function () {\n timeoutId = undefined;\n if (!options.isImmediate) {\n func.apply(_this, args);\n }\n };\n var shouldCallNow = options.isImmediate && timeoutId === undefined;\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(doLater, waitMilliseconds);\n if (shouldCallNow) {\n func.apply(this, args);\n }\n };\n}\nexports.debounce = debounce;\n//# sourceMappingURL=utils.js.map","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".Button__button___NM3Vl{display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;font-weight:700;border:1px solid rgba(0,0,0,0);border-radius:4px;cursor:pointer}.Button__button___NM3Vl.Button__primary___vkWyL{background-color:var(--playkit-primary-color);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-primary-darker-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-primary-brighter-color)}.Button__button___NM3Vl.Button__danger___lCKPq{background-color:var(--playkit-danger-color);color:var(--playkit-danger-text-contrast-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-danger-darker-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-danger-brighter-color)}.Button__button___NM3Vl.Button__translucent___nSc5h{background-color:rgba(0,0,0,.6);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__borderless___sov7o{background-color:rgba(0,0,0,0);color:var(--playkit-tone-1-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-tone-4-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-tone-6-color)}.Button__button___NM3Vl.Button__small____SSTu{height:24px;font-size:13px;line-height:16px;padding:0 4px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV{padding-right:8px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV>span{margin-left:2px}.Button__button___NM3Vl.Button__small____SSTu.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__medium___psqY1{height:32px;font-size:14px;line-height:17px;padding:0 8px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV{padding-right:12px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__medium___psqY1.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__large___ftsNW{height:40px;font-size:16px;line-height:19px;padding:0 16px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV{padding-left:12px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__large___ftsNW.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__disabled___j4KjS{background-color:rgba(0,0,0,0);color:var(--playkit-tone-4-color);border-color:var(--playkit-tone-4-color);cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/components/button/Button.scss\",\"webpack://./../node_modules/@playkit-js/common/dist/components/variables.scss\",\"webpack://./../node_modules/@playkit-js/common/node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAGA,wBACE,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAAA,CACA,eAAA,CACA,8BAAA,CACA,iBCPY,CDQZ,cAAA,CACA,gDACE,6CEVY,CFWZ,gDER0B,CFUxB,qFACE,oDEbe,CFejB,qFACE,sDEfiB,CFmBvB,+CACE,4CENW,CFOX,+CEJyB,CFMvB,oFACE,mDETc,CFWhB,oFACE,qDEXgB,CFetB,oDACE,+BAAA,CACA,gDEhC0B,CFkC5B,mDACE,8BAAA,CACA,iCEZW,CFcT,wFACE,4CEZO,CFcT,wFACE,4CEbO,CFiBb,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,+CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,wEACE,kBAAA,CACA,6EACE,eAAA,CAGJ,wEACE,aAAA,CAGJ,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,iDACE,8BAAA,CACA,iCElEW,CFmEX,wCEnEW,CFoEX,cAAA\",\"sourcesContent\":[\"@import '../variables.scss';\\n\\n// https://www.figma.com/file/GYMv1jsthckOnKmCrdQJY3/%E2%8F%AF-Player-v7-(Guidelines)?node-id=21%3A1943&t=ywdMo875C6kzd7pN-0\\n.button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-wrap: nowrap;\\n font-weight: 700;\\n border: 1px solid transparent;\\n border-radius: $roundness-1;\\n cursor: pointer;\\n &.primary {\\n background-color: $primary-color;\\n color: $primary-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $primary-darker-color;\\n }\\n &:focus {\\n background-color: $primary-brighter-color;\\n }\\n }\\n }\\n &.danger {\\n background-color: $danger-color;\\n color: $danger-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $danger-darker-color;\\n }\\n &:focus {\\n background-color: $danger-brighter-color;\\n }\\n }\\n }\\n &.translucent {\\n background-color: rgba(0, 0, 0, 0.6);\\n color: $primary-text-contrast-color;\\n }\\n &.borderless {\\n background-color: transparent;\\n color: $tone-1-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $tone-4-color;\\n }\\n &:focus {\\n background-color: $tone-6-color;\\n }\\n }\\n }\\n &.small {\\n height: 24px;\\n font-size: 13px;\\n line-height: 16px;\\n padding: 0 4px;\\n &.withIcon {\\n padding-right: 8px;\\n > span {\\n margin-left: 2px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.medium {\\n height: 32px;\\n font-size: 14px;\\n line-height: 17px;\\n padding: 0 8px;\\n &.withIcon {\\n padding-right: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.large {\\n height: 40px;\\n font-size: 16px;\\n line-height: 19px;\\n padding: 0 16px;\\n &.withIcon {\\n padding-left: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.disabled {\\n background-color: transparent;\\n color: $tone-4-color;\\n border-color: $tone-4-color;\\n cursor: default;\\n }\\n}\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\\n// colors\\n$white: #ffffff;\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"button\": \"Button__button___NM3Vl\",\n\t\"primary\": \"Button__primary___vkWyL\",\n\t\"disabled\": \"Button__disabled___j4KjS\",\n\t\"danger\": \"Button__danger___lCKPq\",\n\t\"translucent\": \"Button__translucent___nSc5h\",\n\t\"borderless\": \"Button__borderless___sov7o\",\n\t\"small\": \"Button__small____SSTu\",\n\t\"withIcon\": \"Button__withIcon___c3vxV\",\n\t\"iconOnly\": \"Button__iconOnly___dISNi\",\n\t\"medium\": \"Button__medium___psqY1\",\n\t\"large\": \"Button__large___ftsNW\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon__iconWrapper___O5uqn.icon__small___IddLg{width:16px;height:16px}.icon__iconWrapper___O5uqn.icon__medium___llFxB{width:24px;height:24px}.icon__iconWrapper___O5uqn.icon__large___Q96VN{width:32px;height:32px}.icon__iconWrapper___O5uqn>svg{width:100%;height:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/icon/icon.scss\"],\"names\":[],\"mappings\":\"AACE,+CACE,UAAA,CACA,WAAA,CAEF,gDACE,UAAA,CACA,WAAA,CAEF,+CACE,UAAA,CACA,WAAA,CAEF,+BACE,UAAA,CACA,WAAA\",\"sourcesContent\":[\".iconWrapper {\\n &.small {\\n width: 16px;\\n height: 16px;\\n }\\n &.medium {\\n width: 24px;\\n height: 24px;\\n }\\n &.large {\\n width: 32px;\\n height: 32px;\\n }\\n > svg {\\n width: 100%;\\n height: 100%;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconWrapper\": \"icon__iconWrapper___O5uqn\",\n\t\"small\": \"icon__small___IddLg\",\n\t\"medium\": \"icon__medium___llFxB\",\n\t\"large\": \"icon__large___Q96VN\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".drag-and-snap-manager__draggableArea___l89tg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.drag-and-snap-manager__draggableItem___NyUod{position:absolute;pointer-events:auto}.drag-and-snap-manager__draggableItem___NyUod.drag-and-snap-manager__dragging___LyNPo{cursor:grabbing}.drag-and-snap-manager__draggableItem___NyUod:not(.drag-and-snap-manager__dragging___LyNPo){transition:top .3s ease-in,right .3s ease-in,bottom .3s ease-in}.drag-and-snap-manager__draggableItem___NyUod.drag-and-snap-manager__prePlayback___MGwKC{bottom:-50px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/drag-and-snap-manager/drag-and-snap-manager.scss\"],\"names\":[],\"mappings\":\"AAEA,8CACE,iBAAA,CACA,MAAA,CACA,KAAA,CACA,UAAA,CACA,WAAA,CACA,mBAAA,CAEF,8CACE,iBAAA,CACA,mBAAA,CACA,sFACE,eAAA,CAEF,4FACE,+DAAA,CAEF,yFACE,YAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.draggableArea {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: none;\\n}\\n.draggableItem {\\n position: absolute;\\n pointer-events: auto;\\n &.dragging {\\n cursor: grabbing;\\n }\\n &:not(.dragging) {\\n transition: top $animation-duration ease-in, right $animation-duration ease-in, bottom $animation-duration ease-in;\\n }\\n &.prePlayback {\\n bottom: -50px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"draggableArea\": \"drag-and-snap-manager__draggableArea___l89tg\",\n\t\"draggableItem\": \"drag-and-snap-manager__draggableItem___NyUod\",\n\t\"dragging\": \"drag-and-snap-manager__dragging___LyNPo\",\n\t\"prePlayback\": \"drag-and-snap-manager__prePlayback___MGwKC\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".multiscreen__multiscreenWrapper___aYICw{position:relative}.multiscreen__multiscreenWrapper___aYICw .multiscreen__active___MLEYJ{background-color:var(--playkit-tone-6-color)}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG{position:absolute;display:flex;flex-direction:row;bottom:calc(-1*(10px + 58px));visibility:hidden}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG.multiscreen__visible___TQjC1{visibility:visible}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG .multiscreen__multiscreenPlayer___Tbp6V{display:flex;flex-direction:column;position:relative;width:104px;height:58px;border-radius:4px;overflow:hidden;margin:0px 4px}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG .multiscreen__multiscreenPlayer___Tbp6V .multiscreen__multiscreenButtonsWrapper___dmhZ4{position:absolute;top:0;right:0;width:100%;height:100%;display:flex;padding:0px 16px;justify-content:center;align-items:center;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%)}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG .multiscreen__multiscreenPlayer___Tbp6V .multiscreen__multiscreenButtonsWrapper___dmhZ4>button:nth-child(2){margin-left:auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/multiscreen/multiscreen.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\"],\"names\":[],\"mappings\":\"AAIA,yCACE,iBAAA,CAEA,sEACE,4CC2BW,CDzBb,yFACE,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,iBAAA,CAEA,sHACE,kBAAA,CAGF,iIACE,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,WAAA,CACA,WAxBsB,CAyBtB,iBEpBQ,CFqBR,eAAA,CACA,cAAA,CAEA,iLACE,iBAAA,CACA,KAAA,CACA,OAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,gBAAA,CACA,sBAAA,CACA,kBAAA,CACA,gFAAA,CAEA,qMACE,gBAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n$multiscreen-player-height: 58px;\\n\\n.multiscreenWrapper {\\n position: relative;\\n\\n .active {\\n background-color: $tone-6-color;\\n }\\n .multiscreenPlayersWrapper {\\n position: absolute;\\n display: flex;\\n flex-direction: row;\\n bottom: calc(-1 * (10px + #{$multiscreen-player-height}));\\n visibility: hidden;\\n\\n &.visible {\\n visibility: visible;\\n }\\n\\n .multiscreenPlayer {\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n width: 104px;\\n height: $multiscreen-player-height;\\n border-radius: $roundness-1;\\n overflow: hidden;\\n margin: 0px 4px;\\n\\n .multiscreenButtonsWrapper {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n padding: 0px 16px;\\n justify-content: center;\\n align-items: center;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n\\n & > button:nth-child(2) {\\n margin-left: auto;\\n }\\n }\\n }\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"multiscreenWrapper\": \"multiscreen__multiscreenWrapper___aYICw\",\n\t\"active\": \"multiscreen__active___MLEYJ\",\n\t\"multiscreenPlayersWrapper\": \"multiscreen__multiscreenPlayersWrapper___b3fWG\",\n\t\"visible\": \"multiscreen__visible___TQjC1\",\n\t\"multiscreenPlayer\": \"multiscreen__multiscreenPlayer___Tbp6V\",\n\t\"multiscreenButtonsWrapper\": \"multiscreen__multiscreenButtonsWrapper___dmhZ4\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".pip-minimized__iconContainer___n8Sl3{opacity:.8;cursor:pointer}.pip-minimized__innerButtons___nk206{display:flex;position:absolute;left:0px;top:0px;padding:10px 8px;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);width:100%}.pip-minimized__innerButtons___nk206 .pip-minimized__iconContainer___n8Sl3:hover{background:var(--playkit-tone-4-color);border-radius:4px;opacity:1}.pip-minimized__childPlayerContainer___NvZS3{display:flex;flex-direction:row;position:absolute;top:0;right:0;transform:translateY(-100%);animation:pip-minimized__fading___UFcX6 .3s linear}.pip-minimized__childPlayerContainer___NvZS3:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.pip-minimized__childPlayerContainer___NvZS3 video{position:relative;object-fit:cover;width:auto}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__childPlayer___U64DT{position:relative;margin-left:8px;width:auto;height:60px;box-shadow:0px 0px 0px 1px rgba(0,0,0,.2),0px 8px 60px -16px rgba(0,0,0,.2);border-radius:8px;-webkit-mask-image:-webkit-radial-gradient(white, black);overflow:hidden}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__childPlayer___U64DT.pip-minimized__tinyChildPlayer___a5mJk{height:34px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__childPlayer___U64DT img{width:auto}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT{position:absolute;width:70px;right:0px;top:calc((32px + 5px)*-1);font-style:normal;font-weight:400}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT:hover{background:rgba(0,0,0,.7)}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT span{display:flex}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT span .pip-minimized__iconContainer___n8Sl3{height:16px;width:16px;margin-right:6px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__innerButtons___nk206{border-radius:8px;justify-content:center;align-items:center;height:60px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__innerButtons___nk206.pip-minimized__tinyInnerButtons___nW8jU{height:34px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__innerButtons___nk206 .pip-minimized__iconContainer___n8Sl3:hover{background:rgba(0,0,0,0)}@keyframes pip-minimized__fading___UFcX6{0%{opacity:0}100%{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/_styles.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\",\"webpack://./components/pip-minimized/pip-minimized.scss\"],\"names\":[],\"mappings\":\"AAEA,sCACE,UAAA,CACA,cAAA,CAGF,qCACE,YAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,gBAAA,CACA,gFAAA,CACA,UAAA,CAGE,iFACE,sCCeS,CDdT,iBEZQ,CFaR,SAAA,CGdN,6CAEE,YAAA,CACA,kBAAA,CAOA,iBAAA,CACA,KAAA,CACA,OAAA,CACA,2BAAA,CACA,kDAAA,CHMA,sFAEE,iBAAA,CGjBF,mDACE,iBAAA,CACA,gBAAA,CACA,UAAA,CAQF,iFACE,iBAAA,CACA,eAAA,CACA,UAAA,CACA,WAAA,CACA,2EAAA,CACA,iBDpBU,CCqBV,wDAAA,CACA,eAAA,CACA,wHACE,WAAA,CAEF,qFACE,UAAA,CAIJ,mFACE,iBAAA,CACA,UAAA,CACA,SAAA,CACA,yBAAA,CAEA,iBAAA,CACA,eAAA,CAEA,yFACE,yBAAA,CAGF,wFACE,YAAA,CAEA,8HACE,WAAA,CACA,UAAA,CACA,gBAAA,CAKN,kFACE,iBDxDU,CCyDV,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,0HACE,WAAA,CAEF,8HACE,wBAAA,CAKN,yCACE,GACE,SAAA,CAEF,KACE,SAAA,CAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.iconContainer {\\n opacity: 0.8;\\n cursor: pointer;\\n}\\n\\n.innerButtons {\\n display: flex;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n padding: 10px 8px;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n width: 100%;\\n\\n .iconContainer {\\n &:hover {\\n background: $tone-4-color;\\n border-radius: $roundness-1;\\n opacity: 1;\\n }\\n }\\n}\\n\\n@mixin hideImagePlayer {\\n &:has(:global(.playkit-image-player > img[src=''])) {\\n // hide image player container if image haven't loaded\\n visibility: hidden;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\",\"@import '~styles/styles';\\n@import '~styles/variables';\\n\\n$show-container-height: 32px;\\n$show-container-gap: 5px;\\n\\n.childPlayerContainer {\\n @include hideImagePlayer;\\n display: flex;\\n flex-direction: row;\\n\\n video {\\n position: relative;\\n object-fit: cover;\\n width: auto;\\n }\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translateY(-100%);\\n animation: fading $animation-duration linear;\\n\\n .childPlayer {\\n position: relative;\\n margin-left: 8px;\\n width: auto;\\n height: 60px;\\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), 0px 8px 60px -16px rgba(0, 0, 0, 0.2);\\n border-radius: $roundness-2;\\n -webkit-mask-image: -webkit-radial-gradient(white, black);\\n overflow: hidden;\\n &.tinyChildPlayer {\\n height: 34px;\\n }\\n :global(img) {\\n width: auto;\\n }\\n }\\n\\n .showContainer {\\n position: absolute;\\n width: 70px;\\n right: 0px;\\n top: calc((#{$show-container-height} + #{$show-container-gap}) * -1);\\n\\n font-style: normal;\\n font-weight: 400;\\n\\n &:hover {\\n background: rgba(0, 0, 0, 0.7);\\n }\\n\\n span {\\n display: flex;\\n\\n .iconContainer {\\n height: 16px;\\n width: 16px;\\n margin-right: 6px;\\n }\\n }\\n }\\n\\n .innerButtons {\\n border-radius: $roundness-2;\\n justify-content: center;\\n align-items: center;\\n height: 60px;\\n &.tinyInnerButtons {\\n height: 34px;\\n }\\n .iconContainer:hover {\\n background: transparent;\\n }\\n }\\n}\\n\\n@keyframes fading {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconContainer\": \"pip-minimized__iconContainer___n8Sl3\",\n\t\"innerButtons\": \"pip-minimized__innerButtons___nk206\",\n\t\"childPlayerContainer\": \"pip-minimized__childPlayerContainer___NvZS3\",\n\t\"fading\": \"pip-minimized__fading___UFcX6\",\n\t\"childPlayer\": \"pip-minimized__childPlayer___U64DT\",\n\t\"tinyChildPlayer\": \"pip-minimized__tinyChildPlayer___a5mJk\",\n\t\"showContainer\": \"pip-minimized__showContainer___rkJyT\",\n\t\"tinyInnerButtons\": \"pip-minimized__tinyInnerButtons___nW8jU\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".pip__iconContainer___jm6Xi{opacity:.8;cursor:pointer}.pip__innerButtons___Jii5b{display:flex;position:absolute;left:0px;top:0px;padding:10px 8px;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);width:100%}.pip__innerButtons___Jii5b .pip__iconContainer___jm6Xi:hover{background:var(--playkit-tone-4-color);border-radius:4px;opacity:1}.pip__parentPlayer___AdbJg{width:100%;height:100%;position:absolute;left:0}.pip__parentPlayer___AdbJg:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.pip__childPlayer___RdLI5{position:relative}.pip__childPlayer___RdLI5 video{position:relative;object-fit:cover;width:auto}.pip__childPlayer___RdLI5:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.pip__childPlayer___RdLI5.pip__hideButtons___Tnnc1 .pip__innerButtons___Jii5b,.pip__childPlayer___RdLI5.pip__dragging___f2Va1 .pip__innerButtons___Jii5b{display:none}.pip__childPlayer___RdLI5.pip__hideButtons___Tnnc1 .pip__hideContainer___dlNww{display:none}.pip__childPlayer___RdLI5.pip__dragging___f2Va1 .pip__hideContainer___dlNww{visibility:hidden}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww{position:relative;width:66px;margin:0px 0px 5px auto;font-style:normal;font-weight:400}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww:hover{background:rgba(0,0,0,.7)}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww span{display:flex}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww span .pip__iconContainer___jm6Xi{margin:0px 6px 0px 0px;height:16px;width:16px}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK{position:relative}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__playerContainer___wCgn0{box-shadow:0 0 40px 0 rgba(0,0,0,.2),0 0 4px 0 rgba(0,0,0,.3);border-radius:8px;overflow:hidden}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__playerContainer___wCgn0 .playkit-image-player img{width:auto}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b{flex-direction:row;justify-content:flex-end;align-items:flex-start;pointer-events:none;border-top-left-radius:8px;border-top-right-radius:8px}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b *{pointer-events:auto}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b .playkit-tooltip{width:auto}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b.pip__verticalPlayer____Qk58 .playkit-tooltip span{max-width:100px !important}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b .pip__buttonWrapper___IUCs5{margin-left:8px}.pip__animatedFade___ROECY{animation:pip__fading___Et7y9 .3s linear}.pip__animatedScaleRight___fhIvC{animation:pip__scalingRight___iE8kT .3s linear}.pip__animatedScaleLeft___WNtSv{animation:pip__scalingLeft___Yh6Pb .3s linear}@keyframes pip__scalingRight___iE8kT{0%{transform:scale(0.5) translate(-50%)}100%{transform:scale(1) translate(0%)}}@keyframes pip__scalingLeft___Yh6Pb{0%{transform:scale(0.5) translate(50%)}100%{transform:scale(1) translate(0%)}}@keyframes pip__fading___Et7y9{0%{opacity:0}100%{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/_styles.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\",\"webpack://./components/pip/pip.scss\"],\"names\":[],\"mappings\":\"AAEA,4BACE,UAAA,CACA,cAAA,CAGF,2BACE,YAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,gBAAA,CACA,gFAAA,CACA,UAAA,CAGE,6DACE,sCCeS,CDdT,iBEZQ,CFaR,SAAA,CGdN,2BACE,UAAA,CACA,WAAA,CACA,iBAAA,CACA,MAAA,CHgBA,oEAEE,iBAAA,CGfJ,0BACE,iBAAA,CACA,gCACE,iBAAA,CACA,gBAAA,CACA,UAAA,CHQF,mEAEE,iBAAA,CGJA,yJACE,YAAA,CAGJ,+EACE,YAAA,CAEF,4EACE,iBAAA,CAGF,sDACE,iBAAA,CACA,UAAA,CACA,uBAAA,CACA,iBAAA,CACA,eAAA,CAEA,4DACE,yBAAA,CAGF,2DACE,YAAA,CAEA,uFACE,sBAAA,CACA,WDhDkB,CCiDlB,UDjDkB,CCsDxB,sDACE,iBAAA,CACA,oFACE,6DAAA,CACA,iBDrDQ,CCsDR,eAAA,CACA,8GACE,UAAA,CAGJ,iFACE,kBAAA,CACA,wBAAA,CACA,sBAAA,CACA,mBAAA,CACA,0BDhEQ,CCiER,2BDjEQ,CCkER,mFACE,mBAAA,CAEF,kGACE,UAAA,CAGA,mIACE,0BAAA,CAIJ,6GACE,eAAA,CAMR,2BACE,wCAAA,CAGF,iCACE,8CAAA,CAGF,gCACE,6CAAA,CAGF,qCACE,GACE,oCAAA,CAEF,KACE,gCAAA,CAAA,CAIJ,oCACE,GACE,mCAAA,CAEF,KACE,gCAAA,CAAA,CAIJ,+BACE,GACE,SAAA,CAEF,KACE,SAAA,CAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.iconContainer {\\n opacity: 0.8;\\n cursor: pointer;\\n}\\n\\n.innerButtons {\\n display: flex;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n padding: 10px 8px;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n width: 100%;\\n\\n .iconContainer {\\n &:hover {\\n background: $tone-4-color;\\n border-radius: $roundness-1;\\n opacity: 1;\\n }\\n }\\n}\\n\\n@mixin hideImagePlayer {\\n &:has(:global(.playkit-image-player > img[src=''])) {\\n // hide image player container if image haven't loaded\\n visibility: hidden;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\",\"@import '~styles/variables';\\n@import '~styles/styles';\\n\\n$hide-container-height: 32px;\\n$hide-container-gap: 5px;\\n\\n.parentPlayer {\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n left: 0;\\n @include hideImagePlayer;\\n}\\n.childPlayer {\\n position: relative;\\n video {\\n position: relative;\\n object-fit: cover;\\n width: auto;\\n }\\n @include hideImagePlayer;\\n\\n &.hideButtons,\\n &.dragging {\\n .innerButtons {\\n display: none;\\n }\\n }\\n &.hideButtons .hideContainer {\\n display: none;\\n }\\n &.dragging .hideContainer {\\n visibility: hidden;\\n }\\n\\n .hideContainer {\\n position: relative;\\n width: 66px;\\n margin: 0px 0px $hide-container-gap auto;\\n font-style: normal;\\n font-weight: 400;\\n\\n &:hover {\\n background: rgba(0, 0, 0, 0.7);\\n }\\n\\n span {\\n display: flex;\\n\\n .iconContainer {\\n margin: 0px 6px 0px 0px;\\n height: $smallBorderLessIconSize;\\n width: $smallBorderLessIconSize;\\n }\\n }\\n }\\n\\n .playerWrapper {\\n position: relative;\\n .playerContainer {\\n box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.2), 0 0 4px 0 rgba(0, 0, 0, 0.3);\\n border-radius: $roundness-2;\\n overflow: hidden;\\n :global(.playkit-image-player img) {\\n width: auto;\\n }\\n }\\n .innerButtons {\\n flex-direction: row;\\n justify-content: flex-end;\\n align-items: flex-start;\\n pointer-events: none;\\n border-top-left-radius: $roundness-2;\\n border-top-right-radius: $roundness-2;\\n * {\\n pointer-events: auto;\\n }\\n :global(.playkit-tooltip) {\\n width: auto;\\n }\\n &.verticalPlayer {\\n :global(.playkit-tooltip span) {\\n max-width: 100px !important;\\n }\\n }\\n\\n .buttonWrapper {\\n margin-left: 8px;\\n }\\n }\\n }\\n}\\n\\n.animatedFade {\\n animation: fading $animation-duration linear;\\n}\\n\\n.animatedScaleRight {\\n animation: scalingRight $animation-duration linear;\\n}\\n\\n.animatedScaleLeft {\\n animation: scalingLeft $animation-duration linear;\\n}\\n\\n@keyframes scalingRight {\\n 0% {\\n transform: scale(0.5) translate(-50%);\\n }\\n 100% {\\n transform: scale(1) translate(0%);\\n }\\n}\\n\\n@keyframes scalingLeft {\\n 0% {\\n transform: scale(0.5) translate(50%);\\n }\\n 100% {\\n transform: scale(1) translate(0%);\\n }\\n}\\n\\n@keyframes fading {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconContainer\": \"pip__iconContainer___jm6Xi\",\n\t\"innerButtons\": \"pip__innerButtons___Jii5b\",\n\t\"parentPlayer\": \"pip__parentPlayer___AdbJg\",\n\t\"childPlayer\": \"pip__childPlayer___RdLI5\",\n\t\"hideButtons\": \"pip__hideButtons___Tnnc1\",\n\t\"dragging\": \"pip__dragging___f2Va1\",\n\t\"hideContainer\": \"pip__hideContainer___dlNww\",\n\t\"playerWrapper\": \"pip__playerWrapper___viiaK\",\n\t\"playerContainer\": \"pip__playerContainer___wCgn0\",\n\t\"verticalPlayer\": \"pip__verticalPlayer____Qk58\",\n\t\"buttonWrapper\": \"pip__buttonWrapper___IUCs5\",\n\t\"animatedFade\": \"pip__animatedFade___ROECY\",\n\t\"fading\": \"pip__fading___Et7y9\",\n\t\"animatedScaleRight\": \"pip__animatedScaleRight___fhIvC\",\n\t\"scalingRight\": \"pip__scalingRight___iE8kT\",\n\t\"animatedScaleLeft\": \"pip__animatedScaleLeft___WNtSv\",\n\t\"scalingLeft\": \"pip__scalingLeft___Yh6Pb\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".side-by-side__iconContainer___JKAC3{opacity:.8;cursor:pointer}.side-by-side__innerButtons___mnxhf{display:flex;position:absolute;left:0px;top:0px;padding:10px 8px;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);width:100%}.side-by-side__innerButtons___mnxhf .side-by-side__iconContainer___JKAC3:hover{background:var(--playkit-tone-4-color);border-radius:4px;opacity:1}.side-by-side__sideBySideWrapper___y0NU9{width:100%;height:100%;position:absolute;left:0;display:flex}.side-by-side__player___NGiFu{position:relative;margin:auto;flex:1}.side-by-side__player___NGiFu:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.side-by-side__player___NGiFu .side-by-side__innerButtons___mnxhf{z-index:1;padding:16px;justify-content:flex-end;animation:side-by-side__appears___xfiqx .3s linear}.side-by-side__player___NGiFu .side-by-side__innerButtons___mnxhf .side-by-side__buttonWrapper___RrwS_{margin-left:8px}.side-by-side__animatedScale___RLVnM{animation:side-by-side__scaling___BLBYq .3s linear}.side-by-side__animatedFade___bD2re{animation:side-by-side__fading___BzZbY .3s linear}@keyframes side-by-side__appears___xfiqx{0%{opacity:0}99%{opacity:0}100%{opacity:1}}@keyframes side-by-side__scaling___BLBYq{0%{transform:scale(2) translate(25%);z-index:100}100%{transform:scale(1) translate(0%);z-index:0}}@keyframes side-by-side__fading___BzZbY{0%{opacity:0}100%{opacity:1}}.has-dual-screen-plugin-overlay.playkit-hover .playkit-side-panel{z-index:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/_styles.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\",\"webpack://./components/side-by-side/side-by-side.scss\"],\"names\":[],\"mappings\":\"AAEA,qCACE,UAAA,CACA,cAAA,CAGF,oCACE,YAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,gBAAA,CACA,gFAAA,CACA,UAAA,CAGE,+EACE,sCCeS,CDdT,iBEZQ,CFaR,SAAA,CGjBN,yCACE,UAAA,CACA,WAAA,CACA,iBAAA,CACA,MAAA,CACA,YAAA,CAGF,8BACE,iBAAA,CACA,WAAA,CACA,MAAA,CHYA,uEAEE,iBAAA,CGXF,kEACE,SAAA,CACA,YAAA,CACA,wBAAA,CACA,kDAAA,CACA,uGACE,eAAA,CAKN,qCACE,kDAAA,CAGF,oCACE,iDAAA,CAGF,yCACE,GACE,SAAA,CAEF,IACE,SAAA,CAEF,KACE,SAAA,CAAA,CAIJ,yCACE,GACE,iCAAA,CACA,WAAA,CAEF,KACE,gCAAA,CACA,SAAA,CAAA,CAIJ,wCACE,GACE,SAAA,CAEF,KACE,SAAA,CAAA,CAIJ,kEAEE,SAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.iconContainer {\\n opacity: 0.8;\\n cursor: pointer;\\n}\\n\\n.innerButtons {\\n display: flex;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n padding: 10px 8px;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n width: 100%;\\n\\n .iconContainer {\\n &:hover {\\n background: $tone-4-color;\\n border-radius: $roundness-1;\\n opacity: 1;\\n }\\n }\\n}\\n\\n@mixin hideImagePlayer {\\n &:has(:global(.playkit-image-player > img[src=''])) {\\n // hide image player container if image haven't loaded\\n visibility: hidden;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\",\"@import '~styles/variables';\\n@import '~styles/styles';\\n\\n.sideBySideWrapper {\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n left: 0;\\n display: flex;\\n}\\n\\n.player {\\n position: relative;\\n margin: auto;\\n flex: 1;\\n @include hideImagePlayer;\\n\\n .innerButtons {\\n z-index: 1;\\n padding: 16px;\\n justify-content: flex-end;\\n animation: appears $animation-duration linear;\\n .buttonWrapper {\\n margin-left: 8px;\\n }\\n }\\n}\\n\\n.animatedScale {\\n animation: scaling $animation-duration linear;\\n}\\n\\n.animatedFade {\\n animation: fading $animation-duration linear;\\n}\\n\\n@keyframes appears {\\n 0% {\\n opacity: 0;\\n }\\n 99% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes scaling {\\n 0% {\\n transform: scale(2) translate(25%);\\n z-index: 100;\\n }\\n 100% {\\n transform: scale(1) translate(0%);\\n z-index: 0;\\n }\\n}\\n\\n@keyframes fading {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n:global(.has-dual-screen-plugin-overlay.playkit-hover .playkit-side-panel) {\\n // prevent displaying innerButtons over playkit-side-panel\\n z-index: 1;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconContainer\": \"side-by-side__iconContainer___JKAC3\",\n\t\"innerButtons\": \"side-by-side__innerButtons___mnxhf\",\n\t\"sideBySideWrapper\": \"side-by-side__sideBySideWrapper___y0NU9\",\n\t\"player\": \"side-by-side__player___NGiFu\",\n\t\"appears\": \"side-by-side__appears___xfiqx\",\n\t\"buttonWrapper\": \"side-by-side__buttonWrapper___RrwS_\",\n\t\"animatedScale\": \"side-by-side__animatedScale___RLVnM\",\n\t\"scaling\": \"side-by-side__scaling___BLBYq\",\n\t\"animatedFade\": \"side-by-side__animatedFade___bD2re\",\n\t\"fading\": \"side-by-side__fading___BzZbY\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".playkit-image-player{width:100%;height:100%;background:#000}.playkit-image-player img{width:100%;height:100%;object-fit:contain;position:relative;top:0px;left:0px;pointer-events:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./image-player/image-player.scss\"],\"names\":[],\"mappings\":\"AACE,sBACE,UAAA,CACA,WAAA,CACA,eAAA,CACA,0BACE,UAAA,CACA,WAAA,CACA,kBAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,mBAAA\",\"sourcesContent\":[\":global {\\n .playkit-image-player {\\n width:100%;\\n height:100%;\\n background: #000000;\\n img {\\n width:100%;\\n height:100%;\\n object-fit: contain;\\n position: relative;\\n top: 0px;\\n left: 0px;\\n pointer-events: none;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".playkit-player.has-dual-screen-plugin-overlay .playkit-subtitles{z-index:1}.playkit-player.has-dual-screen-plugin-overlay .playkit-slideIn{z-index:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/global.scss\"],\"names\":[],\"mappings\":\"AACE,kEACE,SAAA,CAEF,gEACE,SAAA\",\"sourcesContent\":[\":global(.playkit-player.has-dual-screen-plugin-overlay) {\\n :global(.playkit-subtitles) {\\n z-index: 1;\\n }\\n :global(.playkit-slideIn) {\\n z-index: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./Button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../sass-loader/dist/cjs.js!./icon.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./drag-and-snap-manager.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./multiscreen.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./pip-minimized.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./pip.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./side-by-side.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/sass-loader/dist/cjs.js!./image-player.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/sass-loader/dist/cjs.js!./global.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","import {h, Component, cloneElement, VNode, createRef} from 'preact';\nimport {PlaykitUI, Logger} from '@playkit-js/kaltura-player-js';\nimport {Position} from '../../enums';\nimport {getClientX, getClientY, dimensionStyleToString} from '../../utils';\nimport * as styles from './drag-and-snap-manager.scss';\n\nconst {\n redux: {connect}\n} = KalturaPlayer.ui;\n\ntype OnPositionChangedCallback = (newPosition: Position) => void;\nenum DragEvents {\n MouseDown = 'mousedown',\n MouseMove = 'mousemove',\n MouseUp = 'mouseup',\n\n TouchStart = 'touchstart',\n TouchMove = 'touchmove',\n TouchEnd = 'touchend'\n}\nconst DRAG_THROTTLE_MS = 30;\nconst PRE_PLAYBACK_POSITION = -130;\n\ninterface DragAndSnapManagerOwnProps {\n children: VNode;\n onPositionChanged: OnPositionChangedCallback;\n getPosition: () => Position;\n eventManager: PlaykitUI.EventManager;\n logger: Logger;\n}\ninterface DragAndSnapManagerConnectProps {\n prePlayback?: boolean;\n}\ntype DragAndSnapManagerProps = DragAndSnapManagerOwnProps & DragAndSnapManagerConnectProps;\ninterface DragAndSnapManagerState {\n isDragging: boolean;\n}\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n prePlayback: state.engine.prePlayback\n});\n@connect(mapStateToProps)\nexport class DragAndSnapManager extends Component<DragAndSnapManagerProps, DragAndSnapManagerState> {\n private _draggableTargetRef = createRef<HTMLDivElement>();\n private _draggableItemRef = createRef<HTMLDivElement>();\n private _draggableAreaRef = createRef<HTMLDivElement>();\n private _currMousePos: {x: number; y: number} = {x: 0, y: 0};\n private _throttleWait: boolean = false;\n state = {\n isDragging: false\n };\n\n componentDidMount() {\n this._setRelativeStyles();\n }\n\n componentWillUnmount() {\n const {eventManager} = this.props;\n eventManager.unlisten(document, DragEvents.MouseMove);\n eventManager.unlisten(document, DragEvents.TouchMove);\n eventManager.unlisten(document, DragEvents.MouseUp);\n eventManager.unlisten(document, DragEvents.TouchEnd);\n eventManager.unlisten(this._draggableTargetRef.current!, DragEvents.MouseDown);\n eventManager.unlisten(this._draggableTargetRef.current!, DragEvents.TouchStart);\n }\n\n private _renderChildComponent = (): VNode => {\n const {children} = this.props;\n return cloneElement(children, {isDragging: this.state.isDragging, setDraggableTarget: this._setDraggableTarget});\n };\n\n private _setDraggableTarget = (targetEl: HTMLDivElement) => {\n this._draggableTargetRef.current = targetEl;\n this._addListeners();\n };\n\n private _handleChangePosition = (position: Position) => {\n this._setAbsoluteStyles(position);\n this.props.onPositionChanged(position);\n };\n\n private _onStartDrag = () => {\n this._setAbsoluteStyles(this.props.getPosition());\n this.setState({\n isDragging: true\n });\n };\n\n private _addListeners = () => {\n this.props.eventManager.listen(this._draggableTargetRef.current!, DragEvents.MouseDown, e => {\n this._startDrag(e, DragEvents.MouseMove, DragEvents.MouseUp);\n });\n this.props.eventManager.listen(this._draggableTargetRef.current!, DragEvents.TouchStart, e => {\n this.props.eventManager.unlisten(this._draggableTargetRef.current!, DragEvents.MouseDown);\n this._startDrag(e, DragEvents.TouchMove, DragEvents.TouchEnd);\n });\n };\n\n private _startDrag(e: MouseEvent | TouchEvent, moveEventName: string, endEventName: string) {\n this.props.eventManager.listenOnce(document, endEventName, this._stopDrag);\n\n // get the mouse cursor position at startup:\n this._currMousePos.x = getClientX(e);\n this._currMousePos.y = getClientY(e);\n\n this.props.eventManager.listenOnce(document, moveEventName, this._onStartDrag);\n this.props.eventManager.listen(document, moveEventName, this._moveDrag);\n }\n\n private _moveDrag = (e: MouseEvent | TouchEvent) => {\n if (this._throttleWait) {\n return;\n }\n e = e || window.event;\n // calculate the new cursor position:\n const deltaMousePosX = this._currMousePos.x - getClientX(e);\n const deltaMousePosY = this._currMousePos.y - getClientY(e);\n this._currMousePos.x = getClientX(e);\n this._currMousePos.y = getClientY(e);\n // set the element's new position\n if (this._draggableItemRef.current && this._draggableAreaRef.current) {\n let top = parseInt(this._draggableItemRef.current!.style.top, 10);\n let right = parseInt(this._draggableItemRef.current!.style.right, 10);\n this._draggableItemRef.current!.style.right = dimensionStyleToString(right + deltaMousePosX);\n this._draggableItemRef.current!.style.top = dimensionStyleToString(top - deltaMousePosY);\n }\n // handle throttling to avoid performance issues on dragging\n this._throttleWait = true;\n setTimeout(() => {\n this._throttleWait = false;\n }, DRAG_THROTTLE_MS);\n };\n\n private _getBoundingClientRects = (): [DOMRect, DOMRect] => {\n return [this._draggableItemRef.current!.getBoundingClientRect(), this._draggableAreaRef.current!.getBoundingClientRect()];\n };\n\n // relative styles: top, right, bottom, left\n private _applyRelativeStyles = (top: number | null, right: number | null, bottom: number | null, left: number | null) => {\n this._draggableItemRef.current!.style.top = top !== null ? dimensionStyleToString(top) : '';\n this._draggableItemRef.current!.style.right = right !== null ? dimensionStyleToString(right) : '';\n this._draggableItemRef.current!.style.bottom = bottom !== null ? dimensionStyleToString(bottom) : '';\n this._draggableItemRef.current!.style.left = left !== null ? dimensionStyleToString(left) : '';\n };\n private _setRelativeStyles = () => {\n switch (this.props.getPosition()) {\n case Position.BottomRight:\n this._setRelativeBottomRightStyles();\n break;\n case Position.BottomLeft:\n this._setRelativeBottomLeftStyles();\n break;\n case Position.TopRight:\n this._setRelativeTopRightStyles();\n break;\n case Position.TopLeft:\n this._setRelativeTopLeftStyles();\n }\n };\n private _setRelativeBottomRightStyles = () => {\n this._applyRelativeStyles(null, 0, this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, null);\n };\n private _setRelativeBottomLeftStyles = () => {\n this._applyRelativeStyles(null, null, this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, 0);\n };\n private _setRelativeTopRightStyles = () => {\n this._applyRelativeStyles(this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, 0, null, null);\n };\n private _setRelativeTopLeftStyles = () => {\n this._applyRelativeStyles(this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, null, null, 0);\n };\n\n // absolute styles: top, right\n private _applyAbsoluteStyles = (top: number, right: number) => {\n this._draggableItemRef.current!.style.top = dimensionStyleToString(top);\n this._draggableItemRef.current!.style.right = dimensionStyleToString(right);\n };\n private _setAbsoluteStyles = (position: Position) => {\n switch (position) {\n case Position.BottomRight:\n this._setAbsoluteBottomRightStyles();\n break;\n case Position.BottomLeft:\n this._setAbsoluteBottomLeftStyles();\n break;\n case Position.TopRight:\n this._setAbsoluteTopRightStyles();\n break;\n case Position.TopLeft:\n this._setAbsoluteTopLeftStyles();\n }\n this._draggableItemRef.current!.style.bottom = '';\n this._draggableItemRef.current!.style.left = '';\n };\n private _setAbsoluteBottomRightStyles = () => {\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n this._applyAbsoluteStyles(draggableAreaBoundClientRect.height - draggableItemBoundClientRect.height, 0);\n };\n private _setAbsoluteBottomLeftStyles = () => {\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n this._applyAbsoluteStyles(\n draggableAreaBoundClientRect.height - draggableItemBoundClientRect.height,\n draggableAreaBoundClientRect.width - draggableItemBoundClientRect.width\n );\n };\n private _setAbsoluteTopRightStyles = () => {\n this._applyAbsoluteStyles(0, 0);\n };\n private _setAbsoluteTopLeftStyles = () => {\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n this._applyAbsoluteStyles(0, draggableAreaBoundClientRect.width - draggableItemBoundClientRect.width);\n };\n\n private _stopDrag = () => {\n // stop moving when mouse button is released:\n this.setState({\n isDragging: false\n });\n this.props.eventManager.unlisten(document, DragEvents.MouseMove);\n this.props.eventManager.unlisten(document, DragEvents.TouchMove);\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n const draggableContainerCenterX = draggableItemBoundClientRect.x + draggableItemBoundClientRect.width / 2;\n const draggableContainerCenterY = draggableItemBoundClientRect.y + draggableItemBoundClientRect.height / 2;\n const guiClientCenterX = draggableAreaBoundClientRect.x + draggableAreaBoundClientRect.width / 2;\n const guiClientCenterY = draggableAreaBoundClientRect.y + draggableAreaBoundClientRect.height / 2;\n if (draggableContainerCenterX > guiClientCenterX) {\n if (draggableContainerCenterY > guiClientCenterY) {\n this._handleChangePosition(Position.BottomRight);\n } else {\n this._handleChangePosition(Position.TopRight);\n }\n } else {\n if (draggableContainerCenterY > guiClientCenterY) {\n this._handleChangePosition(Position.BottomLeft);\n } else {\n this._handleChangePosition(Position.TopLeft);\n }\n }\n };\n\n render() {\n const draggableItemStyles = [styles.draggableItem];\n if (this.state.isDragging) {\n draggableItemStyles.push(styles.dragging);\n }\n return (\n <div id=\"draggeble-area\" className={styles.draggableArea} ref={this._draggableAreaRef}>\n <div id=\"draggable-item\" ref={this._draggableItemRef} className={draggableItemStyles.join(' ')} onTransitionEnd={this._setRelativeStyles}>\n {this._renderChildComponent()}\n </div>\n </div>\n );\n }\n}\n","export * from './drag-and-snap-manager';\n","export * from \"./multiscreen\";","import {h, Component, RefObject, createRef} from 'preact';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClickEvent} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Position} from '../../enums';\nimport {PlaykitUI} from '@playkit-js/kaltura-player-js';\nimport {MultiscreenPlayer} from '../../types';\nimport * as styles from './multiscreen.scss';\n\nconst {Tooltip} = KalturaPlayer.ui.components;\nconst {withEventManager} = KalturaPlayer.ui.Event;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst CLOSE_EVENT = 'closeMultiScreenPopup';\n\nconst translates = {\n multiscreenLabel: <Text id=\"dualScreen.multiscreen\">Show more screens</Text>,\n switchScreen: <Text id=\"dualScreen.switch_screen\">Switch Screen</Text>,\n switchToSecondary: <Text id=\"dualScreen.switch_to_secondary_screen\">Switch to secondary screen</Text>,\n switchToPrimary: <Text id=\"dualScreen.switch_to_primary_screen\">Switch to primary screen</Text>\n};\ninterface MultiscreenProps {\n players: Array<MultiscreenPlayer>;\n sbsLayout?: boolean;\n eventManager?: PlaykitUI.EventManager;\n multiscreenLabel?: string;\n switchScreen?: string;\n switchToSecondary?: string;\n switchToPrimary?: string;\n getParentRef?: () => RefObject<HTMLDivElement>;\n getPosition?: () => Position;\n}\ninterface MultiscreenState {\n isOpen: boolean;\n xPosition: number;\n}\n\nlet focusOnMultiscreenButton = false;\n\n@withText(translates)\n@withEventManager\nexport class Multiscreen extends Component<MultiscreenProps, MultiscreenState> {\n private _multiscreenPlayersRefs: Array<RefObject<HTMLDivElement>> = [];\n private _multiscreenPlayersWrapperRef = createRef<HTMLDivElement>();\n\n state = {isOpen: false, xPosition: 0};\n\n componentDidMount(): void {\n this._attachVideoElements();\n if (this.props.getParentRef) {\n const parentRef = this.props.getParentRef().current!;\n this.props.eventManager?.listen(parentRef, CLOSE_EVENT, this._closePupup);\n }\n }\n\n componentDidUpdate(previousProps: Readonly<MultiscreenProps>, previousState: Readonly<MultiscreenState>): void {\n if (!previousState.isOpen && this.state.isOpen) {\n if (this.props.sbsLayout) {\n // re-attach video elements for SbS layout\n this._attachVideoElements();\n }\n if (this.props.getParentRef && this.props.getPosition) {\n // check if multiscreen container inside PiP container for left positons\n if ([Position.TopLeft, Position.BottomLeft].includes(this.props.getPosition())) {\n const parentLeftPostion = this.props.getParentRef().current?.getBoundingClientRect().left || 0;\n const multiscreenLeftPostion = this._multiscreenPlayersWrapperRef.current?.getBoundingClientRect().left || 0;\n const rightShift = multiscreenLeftPostion - parentLeftPostion;\n if (rightShift < 0) {\n this.setState({xPosition: rightShift});\n }\n } else if (this.state.xPosition !== 0) {\n this.setState({xPosition: 0});\n }\n }\n }\n }\n\n componentWillUnmount() {\n this._multiscreenPlayersRefs = [];\n }\n\n private _attachVideoElements = () => {\n this._multiscreenPlayersRefs.forEach((ref, index) => {\n const videoElement = this.props.players[index].player.getVideoElement();\n videoElement.tabIndex = -1;\n ref.current!.prepend(videoElement);\n });\n };\n\n private _closePupup = () => {\n this.setState({isOpen: false});\n this.props.eventManager?.unlisten(document, 'click', this._closePupup);\n };\n\n private _openPopup = () => {\n this.props.eventManager?.listenOnce(document, 'click', this._closePupup);\n this.setState({isOpen: true});\n };\n\n private _handleClick = (event: OnClickEvent, byKeyboard = false) => {\n focusOnMultiscreenButton = byKeyboard;\n if (this.props.getParentRef) {\n // a11y wrapper prevents propagation of click event, so parent node uses to handle close\n this.props.getParentRef().current?.dispatchEvent(new Event(CLOSE_EVENT));\n }\n if (!this.state.isOpen) {\n this._openPopup();\n }\n };\n\n private _handleLayoutChange = (byKeyboard: boolean, cb: () => void) => {\n if (byKeyboard) {\n focusOnMultiscreenButton = byKeyboard;\n }\n cb();\n };\n\n render(props: MultiscreenProps) {\n if (!props.players.length) {\n return null;\n }\n const popoverMenuButton = (\n <Button\n className={this.state.isOpen ? styles.active : ''}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'more'}\n onClick={this._handleClick}\n focusOnMount={focusOnMultiscreenButton}\n testId=\"dualscreen_multiscreenButton\"\n />\n );\n\n return (\n <div className={styles.multiscreenWrapper} data-testid=\"dualscreen_multiscreenWrapper\">\n {this.state.isOpen ? (\n popoverMenuButton\n ) : (\n <Tooltip type=\"bottom-left\" label={this.props.multiscreenLabel}>\n {popoverMenuButton}\n </Tooltip>\n )}\n\n <div\n style={{right: `${this.state.xPosition}px`}}\n className={[styles.multiscreenPlayersWrapper, this.state.isOpen ? styles.visible : ''].join(' ')}\n ref={this._multiscreenPlayersWrapperRef}\n data-testid=\"dualscreen_multiscreen\">\n {props.players.map((player, index) => {\n const ref = createRef<HTMLDivElement>();\n this._multiscreenPlayersRefs[index] = ref;\n return (\n <div ref={ref} className={styles.multiscreenPlayer} data-testid=\"dualscreen_multiscreenPlayer\">\n <div className={styles.multiscreenButtonsWrapper}>\n <Button\n onClick={(event: OnClickEvent, byKeyboard = false) => this._handleLayoutChange(byKeyboard, player.setPrimary)}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={player.setSecondary ? 'pictureInPicture' : 'switch'}\n ariaLabel={player.setSecondary ? this.props.switchToPrimary : this.props.switchScreen}\n testId=\"dualscreen_multiscreenSwitchScreen\"\n />\n {player.setSecondary && (\n <Button\n onClick={(event: OnClickEvent, byKeyboard = false) => this._handleLayoutChange(byKeyboard, player.setSecondary!)}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'minimizedVideo'}\n ariaLabel={this.props.switchToSecondary}\n testId=\"dualscreen_multiscreenSetSecondary\"\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n}\n","export * from './pip-minimized';\n","import {h, createRef, Component, Fragment, RefObject} from 'preact';\nimport * as styles from './pip-minimized.scss';\nimport {icons} from '../../icons';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {ButtonsEnum} from '../../enums';\nimport {MultiscreenPlayer} from '../../types';\nconst {\n components: {Icon}\n} = KalturaPlayer.ui;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst translates = () => {\n return {\n showLabel: <Text id=\"dualScreen.show\">Show</Text>,\n showAriaLabel: <Text id=\"dualScreen.show_label\">Show dual screen</Text>,\n switchScreen: <Text id=\"dualScreen.switch_screen\">Switch Screen</Text>\n };\n};\n\ninterface PIPMinimizedOwnProps {\n players: MultiscreenPlayer[];\n show: OnClick;\n hideButtons?: boolean;\n focusOnButton?: ButtonsEnum;\n}\ninterface PIPMinimizedConnectProps {\n playerSize?: string;\n}\ninterface PIPMinimizedTranslates {\n showLabel?: string;\n showAriaLabel?: string;\n switchScreen?: string;\n}\ntype PIPMinimizedProps = PIPMinimizedOwnProps & PIPMinimizedConnectProps & PIPMinimizedTranslates;\n\n@withText(translates)\nexport class PipMinimized extends Component<PIPMinimizedProps> {\n _multiscreenPlayersRefs: Array<RefObject<HTMLDivElement>> = [];\n\n componentDidMount() {\n this._multiscreenPlayersRefs.forEach((ref, index) => {\n const videoElement = this.props.players[index].player.getVideoElement();\n videoElement.tabIndex = -1;\n ref.current!.prepend(videoElement);\n });\n }\n\n private _renderHoverButton = () => {\n const {show, hideButtons, focusOnButton} = this.props;\n return (\n <Fragment>\n {!hideButtons && (\n <Button\n onClick={show}\n className={styles.showContainer}\n ariaLabel={this.props.showAriaLabel}\n focusOnMount={focusOnButton === ButtonsEnum.Show}\n testId=\"dualscreen_switchToPIP\"\n type={ButtonType.translucent}>\n <Fragment>\n <div className={styles.iconContainer}>\n <Icon\n id=\"dualscreen-pip-minimized-show\"\n height={icons.SmallSize}\n width={icons.SmallSize}\n viewBox={`0 0 ${icons.SmallSize} ${icons.SmallSize}`}\n path={icons.SHOW_ICON_PATH}\n />\n </div>\n {this.props.showLabel}\n </Fragment>\n </Button>\n )}\n </Fragment>\n );\n };\n\n render(props: PIPMinimizedProps) {\n return (\n <div className={styles.childPlayerContainer} data-testid=\"dualscreen_pipMinimized\">\n {this.props.players.map((player, index) => {\n const ref = createRef<HTMLDivElement>();\n this._multiscreenPlayersRefs[index] = ref;\n return (\n <div\n ref={ref}\n className={[styles.childPlayer, props.hideButtons ? styles.tinyChildPlayer : ''].join(' ')}\n data-testid=\"dualscreen_pipMinimizedPlayer\">\n <div className={[styles.innerButtons, this.props.hideButtons ? styles.tinyInnerButtons : ''].join(' ')}>\n <Button\n onClick={player.setPrimary}\n focusOnMount={this.props.focusOnButton === ButtonsEnum.SwitchScreen}\n ariaLabel={this.props.switchScreen}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'switch'}\n testId=\"dualscreen_switchToPrimary\"\n />\n </div>\n </div>\n );\n })}\n {this._renderHoverButton()}\n </div>\n );\n }\n}\n","export * from './pip-child';\nexport * from './pip-parent';\n","import {h, createRef, Component, Fragment, VNode, cloneElement} from 'preact';\nimport * as styles from './pip.scss';\nimport {Animations, ButtonsEnum, Layout} from '../../enums';\nimport {icons} from '../../icons';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nconst {connect} = KalturaPlayer.ui.redux;\nconst {utils, reducers} = KalturaPlayer.ui;\nconst {Icon} = KalturaPlayer.ui.components;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst translates = ({layout}: PIPChildComponentOwnProps) => {\n return {\n sideBySide: <Text id=\"dualScreen.side_by_side\">Side by side screens</Text>,\n switchScreen:\n layout === Layout.PIP ? (\n <Text id=\"dualScreen.switch_to_secondary_screen\">Switch to secondary screen</Text>\n ) : (\n <Text id=\"dualScreen.switch_to_primary_screen\">Switch to primary screen</Text>\n ),\n hideLabel: <Text id=\"dualScreen.hide\">Hide</Text>,\n hideAriaLabel: <Text id=\"dualScreen.hide_label\">Hide dual screen</Text>\n };\n};\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n showUi: state.shell.playerHover || state.shell.playerNav,\n playerHeight: state.shell.guiClientRect.height,\n prePlayback: state.engine.prePlayback\n});\n\ninterface PIPChildComponentOwnProps {\n multiscreen: VNode;\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n playerSizePercentage: number;\n hide: OnClick;\n onSideBySideSwitch: OnClick;\n onInversePIP: OnClick;\n animation: Animations;\n isDragging?: boolean;\n setDraggableTarget?: (targetEl: HTMLDivElement) => void;\n portrait?: boolean;\n aspectRatio: {\n width: number;\n height: number;\n };\n focusOnButton?: ButtonsEnum;\n layout: Layout;\n}\ninterface PIPChildComponentConnectProps {\n playerHeight?: number;\n showUi?: boolean;\n prePlayback?: boolean;\n}\ninterface PIPChildComponentTranslates {\n sideBySide?: string;\n switchScreen?: string;\n hideLabel?: string;\n hideAriaLabel?: string;\n}\n\ntype PIPChildComponentProps = PIPChildComponentOwnProps & PIPChildComponentConnectProps & PIPChildComponentTranslates;\n\n@withText(translates)\n@connect(mapStateToProps, utils.bindActions(reducers.shell.actions))\nexport class PipChild extends Component<PIPChildComponentProps> {\n playerContainerRef = createRef<HTMLDivElement>();\n pipContainerRef = createRef<HTMLDivElement>();\n\n componentDidMount() {\n const {player} = this.props;\n const videoElement = player.getVideoElement();\n videoElement.tabIndex = -1;\n this.playerContainerRef.current!.prepend(videoElement);\n this.props.setDraggableTarget!(this.playerContainerRef.current!);\n }\n\n private _renderInnerButtons() {\n const {onSideBySideSwitch, onInversePIP, focusOnButton, multiscreen} = this.props;\n return (\n <div className={[styles.innerButtons, this.props.portrait ? styles.verticalPlayer : ''].join(' ')}>\n <div className={styles.buttonWrapper}>{cloneElement(multiscreen, {getParentRef: () => this.pipContainerRef})}</div>\n <div className={styles.buttonWrapper}>\n <Button\n icon={'add'}\n onClick={onSideBySideSwitch}\n tooltip={{label: this.props.sideBySide!, type: 'bottom-left'}}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n focusOnMount={focusOnButton === ButtonsEnum.SideBySide}\n ariaLabel={this.props.sideBySide!}\n testId=\"dualscreen_switchToSideBySide\"\n />\n </div>\n <div className={styles.buttonWrapper}>\n <Button\n onClick={onInversePIP}\n tooltip={{label: this.props.switchScreen!, type: 'bottom-left'}}\n focusOnMount={focusOnButton === ButtonsEnum.SwitchScreen}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'switch'}\n ariaLabel={this.props.switchScreen!}\n testId=\"dualscreen_inversePIP\"\n />\n </div>\n </div>\n );\n }\n\n private _renderHideButton() {\n const {hide, focusOnButton} = this.props;\n return (\n <Button\n className={styles.hideContainer}\n testId=\"dualscreen_switchToSingleMedia\"\n onClick={hide}\n ariaLabel={this.props.hideAriaLabel}\n focusOnMount={focusOnButton === ButtonsEnum.Hide}\n type={ButtonType.translucent}>\n <Fragment>\n <div className={styles.iconContainer}>\n <Icon\n id=\"dualscreen-pip-hide\"\n height={icons.SmallSize}\n width={icons.SmallSize}\n viewBox={`0 0 ${icons.SmallSize} ${icons.SmallSize}`}\n path={icons.HIDE_ICON_PATH}\n />\n </div>\n {this.props.hideLabel}\n </Fragment>\n </Button>\n );\n }\n\n render(props: PIPChildComponentProps) {\n const styleClass = [styles.childPlayer];\n\n if (props.isDragging) {\n styleClass.push(styles.dragging);\n }\n if (!props.showUi) {\n styleClass.push(styles.hideButtons);\n }\n\n if (!props.prePlayback && props.animation) {\n switch (props.animation) {\n case Animations.Fade:\n styleClass.push(styles.animatedFade);\n break;\n case Animations.ScaleRight:\n styleClass.push(styles.animatedScaleRight);\n break;\n case Animations.ScaleLeft:\n styleClass.push(styles.animatedScaleLeft);\n break;\n }\n }\n\n const height: number = (props.playerHeight! * props.playerSizePercentage) / 100;\n const width: number = (height * props.aspectRatio.width) / props.aspectRatio.height;\n const playerContainerStyles = {\n height: `${props.portrait ? width : height}px`\n };\n\n return (\n <div className={styleClass.join(' ')} ref={this.pipContainerRef} data-testid=\"dualscreen_pipChildren\">\n {this._renderHideButton()}\n <div className={styles.playerWrapper}>\n <div className={styles.playerContainer} style={playerContainerStyles} ref={this.playerContainerRef} />\n {this._renderInnerButtons()}\n </div>\n </div>\n );\n }\n}\n","import {h, createRef, Component} from 'preact';\nimport * as styles from './pip.scss';\nimport {Animations} from '../../enums';\nconst {connect} = KalturaPlayer.ui.redux;\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n prePlayback: state.engine.prePlayback\n});\n\ninterface PIPParentComponentOwnProps {\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n animation: Animations;\n}\ninterface PIPParentComponentConnectProps {\n prePlayback?: boolean;\n}\n\ntype PIPParentComponentProps = PIPParentComponentOwnProps & PIPParentComponentConnectProps;\n@connect(mapStateToProps)\nexport class PipParent extends Component<PIPParentComponentProps> {\n videoContainerRef = createRef<HTMLDivElement>();\n\n componentDidMount() {\n const {player} = this.props;\n this.videoContainerRef?.current?.appendChild(player.getVideoElement());\n }\n\n render(props: PIPParentComponentProps) {\n let styleClass = [styles.videoContainer, styles.parentPlayer];\n\n if (!props.prePlayback && props.animation) {\n switch (props.animation) {\n case Animations.Fade:\n styleClass.push(styles.animatedFade);\n break;\n case Animations.ScaleRight:\n styleClass.push(styles.animatedScaleRight);\n break;\n case Animations.ScaleLeft:\n styleClass.push(styles.animatedScaleLeft);\n break;\n }\n }\n\n return <div className={styleClass.join(' ')} ref={this.videoContainerRef} data-testid=\"dualscreen_pipParent\" />;\n }\n}\n","export * from './responsive-manager';\n","import {h, Component, cloneElement, VNode} from 'preact';\nconst {\n redux: {connect},\n components: {PLAYER_SIZE}\n} = KalturaPlayer.ui;\n\nconst HIDE_BUTTON_MODES = [PLAYER_SIZE.EXTRA_SMALL, PLAYER_SIZE.SMALL, PLAYER_SIZE.TINY];\nconst MIN_SIZES = [PLAYER_SIZE.EXTRA_SMALL, PLAYER_SIZE.SMALL];\n\ninterface ResponsiveManagerOwnProps {\n children: VNode;\n onMinSize: () => void;\n onDefaultSize: () => void;\n}\ninterface ResponsiveManagerConnectProps {\n playerSize?: string;\n}\n\ntype ResponsiveManagerProps = ResponsiveManagerOwnProps & ResponsiveManagerConnectProps;\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n playerSize: state.shell.playerSize\n});\n@connect(mapStateToProps)\nexport class ResponsiveManager extends Component<ResponsiveManagerProps> {\n static defaultProps = {\n onMinSize: () => {}\n };\n componentDidMount() {\n const {playerSize, onMinSize} = this.props;\n if (MIN_SIZES.includes(playerSize!)) {\n onMinSize();\n }\n }\n componentDidUpdate(prevProps: ResponsiveManagerProps) {\n const {playerSize, onMinSize, onDefaultSize} = this.props;\n if (playerSize === PLAYER_SIZE.TINY) {\n return;\n }\n if (MIN_SIZES.includes(playerSize!) && !MIN_SIZES.includes(prevProps.playerSize!)) {\n onMinSize();\n return;\n }\n if (!MIN_SIZES.includes(playerSize!) && MIN_SIZES.includes(prevProps.playerSize!)) {\n onDefaultSize();\n }\n }\n private _renderChildComponent = (): VNode => {\n const {children, playerSize} = this.props;\n return cloneElement(children, {hideButtons: HIDE_BUTTON_MODES.includes(playerSize!)});\n };\n render({playerSize}: ResponsiveManagerProps) {\n return playerSize === PLAYER_SIZE.TINY ? null : this._renderChildComponent();\n }\n}\n","import {Component, h, VNode, createRef} from 'preact';\nimport {SideBySide} from './side-by-side';\nimport {Animations, Layout, StreamMode} from '../../enums';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {ResponsiveManager} from '../responsive-manager';\nimport * as styles from './side-by-side.scss';\n\ninterface SideProps {\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n onExpand: OnClick;\n focusOnButton?: boolean;\n multiscreen: VNode;\n animation: Animations;\n}\n\ninterface SideBySideWrapperComponentProps {\n leftSideProps: SideProps;\n rightSideProps: SideProps;\n layout: Layout;\n onSizeChange: () => void;\n onMinSize: () => void;\n}\nexport class SideBySideWrapper extends Component<SideBySideWrapperComponentProps> {\n sbsWrapperRef = createRef<HTMLDivElement>();\n\n render({leftSideProps, rightSideProps, layout, onSizeChange, onMinSize}: SideBySideWrapperComponentProps) {\n return (\n <ResponsiveManager\n onMinSize={() => {\n onMinSize();\n }}\n onDefaultSize={onSizeChange}>\n <div className={styles.sideBySideWrapper} ref={this.sbsWrapperRef} data-testid=\"dualscreen_sideBySideWrapper\">\n <SideBySide\n {...leftSideProps}\n streamMode={layout === Layout.SideBySide ? StreamMode.Primary : StreamMode.Secondary}\n getParentRef={() => this.sbsWrapperRef}\n />\n <SideBySide\n {...rightSideProps}\n streamMode={layout === Layout.SideBySide ? StreamMode.Secondary : StreamMode.Primary}\n getParentRef={() => this.sbsWrapperRef}\n />\n </div>\n </ResponsiveManager>\n );\n }\n}\n","import {h, createRef, Component, VNode, Fragment, RefObject, cloneElement} from 'preact';\nimport * as styles from './side-by-side.scss';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Animations, StreamMode} from './../../enums';\nconst {connect} = KalturaPlayer.ui.redux;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst translates = ({streamMode}: SideBySideComponentOwnProps) => {\n return {\n expandScreen:\n streamMode === StreamMode.Primary ? (\n <Text id=\"dualScreen.expand_primary_screen\">Expand primary screen</Text>\n ) : (\n <Text id=\"dualScreen.expand_secondary_screen\">Expand secondary screen</Text>\n )\n };\n};\n\ninterface SideBySideComponentOwnProps {\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n onExpand: OnClick;\n animation: Animations;\n focusOnButton?: boolean;\n streamMode: StreamMode;\n multiscreen: VNode;\n getParentRef: () => RefObject<HTMLDivElement>;\n}\ninterface SideBySideComponentConnectProps {\n playerWidth?: number;\n showUi?: boolean;\n}\ninterface SideBySideComponentTranslates {\n expandScreen?: string;\n}\n\ntype SideBySideComponentProps = SideBySideComponentOwnProps & SideBySideComponentConnectProps & SideBySideComponentTranslates;\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n playerWidth: state.shell.guiClientRect.width,\n showUi: state.shell.playerHover || state.shell.playerNav\n});\n\n@withText(translates)\n@connect(mapStateToProps)\nexport class SideBySide extends Component<SideBySideComponentProps> {\n ref = createRef();\n\n componentDidMount() {\n const videoElement = this.props.player.getVideoElement();\n videoElement.tabIndex = -1;\n this.ref.current.prepend(videoElement);\n }\n\n private _renderHoverButton() {\n const {onExpand, showUi, focusOnButton, multiscreen} = this.props;\n if (showUi) {\n return (\n <Fragment>\n <div className={styles.innerButtons}>\n <div className={styles.buttonWrapper}>{cloneElement(multiscreen, {getParentRef: this.props.getParentRef, sbsLayout: true})}</div>\n <div className={styles.buttonWrapper}>\n <Button\n className={styles.iconContainer}\n onClick={onExpand}\n tooltip={{label: this.props.expandScreen!, type: 'bottom-left'}}\n focusOnMount={focusOnButton}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'switch'}\n testId=\"dualscreen_switchToPIP\"\n />\n </div>\n </div>\n </Fragment>\n );\n }\n return null;\n }\n\n render({playerWidth, animation}: SideBySideComponentProps) {\n const playerContainerStyles = {\n height: (playerWidth! / 2 / 16) * 9\n };\n const classNames = [styles.player];\n if (animation === Animations.ScaleLeft) {\n classNames.push(styles.animatedScale);\n } else {\n classNames.push(styles.animatedFade);\n }\n return (\n <div ref={this.ref} className={classNames.join(' ')} style={playerContainerStyles} data-testid=\"dualscreen_sbs\">\n {this._renderHoverButton()}\n </div>\n );\n }\n}\n","// @ts-ignore\nimport {core} from '@playkit-js/kaltura-player-js';\nimport {DualScreen} from './dualscreen';\nimport {PlayerType, PlayerContainers} from './enums';\n\nconst {FakeEvent, EventType} = core;\n\n// @ts-ignore\nexport class DualScreenEngineDecorator implements IEngineDecorator {\n private _plugin: DualScreen;\n private _isActive = false;\n private _dispatcher: Function;\n\n constructor(engine: any, plugin: DualScreen, dispatcher: Function) {\n this._plugin = plugin;\n this._dispatcher = dispatcher;\n\n plugin.eventManager.listen(plugin.player, EventType.SEEKING, () => {\n // activate decorator only if secondary entry is media, so decorator can handle SEEKED event from secondary player\n // @ts-ignore\n this._isActive = !!this.secondaryPlayer?.src;\n });\n plugin.eventManager.listen(plugin.player, EventType.SEEKED, () => {\n this._isActive = false;\n });\n }\n\n get active(): boolean {\n // @ts-ignore\n return this._isActive && !this.secondaryPlayer.ended;\n }\n\n get secondaryPlayer() {\n return this._plugin.getActiveDualScreenPlayer(PlayerContainers.secondary);\n }\n\n dispatchEvent(event: FakeEvent): boolean {\n if (event.type === EventType.SEEKED) {\n if (this.secondaryPlayer?.type === PlayerType.VIDEO)\n // @ts-ignore\n this._plugin.eventManager.listenOnce(secondaryPlayer.player, EventType.SEEKED, () => {\n this._dispatcher(event);\n });\n return true;\n }\n return this._dispatcher(event);\n }\n}\n","import {h} from 'preact';\nimport {DualScreenConfig, DualScreenPlayer, MultiscreenPlayer} from './types';\nimport {PipChild, PipParent} from './components/pip';\nimport {Multiscreen} from './components/multiscreen';\nimport {PipMinimized} from './components/pip-minimized';\nimport {\n Animations,\n Layout,\n PlayerType,\n Position,\n ReservedPresetAreas,\n ExternalLayout,\n ButtonsEnum,\n PlayerContainers,\n LayoutChangeProps\n} from './enums';\nimport {VideoSyncManager} from './video-sync-manager';\nimport {ImageSyncManager} from './image-sync-manager';\nimport {ResponsiveManager} from './components/responsive-manager';\nimport {SecondaryMediaLoader} from './providers/secondary-media-loader';\nimport {DragAndSnapManager} from './components/drag-and-snap-manager';\nimport {SideBySideWrapper} from './components/side-by-side/side-by-side-wrapper';\nimport {getValueOrUndefined} from './utils';\nimport {DualScreenEngineDecorator} from './dualscreen-engine-decorator';\nimport {ImagePlayer, SlideItem} from './image-player';\n// @ts-ignore\nimport {core, ui, BasePlugin, IEngineDecoratorProvider, KalturaPlayer} from '@playkit-js/kaltura-player-js';\nimport {OnClickEvent} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport './styles/global.scss';\n\nconst {\n reducers: {shell}\n} = ui;\nconst {EventType} = core;\n\nconst HAS_DUAL_SCREEN_PLUGIN_OVERLAY = 'has-dual-screen-plugin-overlay';\nconst PRESETS = ['Playback', 'Live', 'Ads'];\nconst IMAGE_PLAYER_ID = 'imagePlayer';\nconst MAIN_PLAYER_ID = 'mainPlayer';\n\nexport class DualScreen extends BasePlugin<DualScreenConfig> implements IEngineDecoratorProvider {\n private _layout: Layout;\n private _externalLayout: ExternalLayout | null = null;\n private _pipPosition: Position = Position.BottomRight;\n private _removeActivesArr: Function[] = [];\n private _imageSyncManager?: ImageSyncManager;\n private _playbackEnded = false;\n private _resolveReadyPromise = () => {};\n private _readyPromise: Promise<void>;\n private _pipPortraitMode = false;\n private _originalVideoElementParent?: HTMLElement;\n private _undoRemoveSettings?: Function | null = null;\n private _dualScreenPlayers: Array<DualScreenPlayer> = [];\n private _currentMultiscreenPlayers: MultiscreenPlayer[] = [];\n\n /**\n * The default configuration of the plugin.\n * @type {VisibilityConfigObject}\n * @static\n */\n static defaultConfig: DualScreenConfig = {\n layout: Layout.PIP,\n childSizePercentage: 30,\n childAspectRatio: {\n width: 16,\n height: 9\n },\n position: Position.BottomRight,\n slidesPreloadEnabled: true,\n removePlayerSettings: false\n };\n\n constructor(name: string, player: KalturaPlayer, config: DualScreenConfig) {\n super(name, player, config);\n this._readyPromise = this._makeReadyPromise();\n this._layout = Layout.Hidden;\n this._pipPosition = this.config.position;\n }\n\n getEngineDecorator(engine: any, dispatcher: Function) {\n return new DualScreenEngineDecorator(engine, this, dispatcher);\n }\n\n get ready() {\n return this._readyPromise;\n }\n\n private _removeSettingsComponent = () => {\n if (!this._undoRemoveSettings) {\n const removeSettings = {\n presets: PRESETS,\n container: ReservedPresetAreas.BottomBarRightControls,\n // @ts-ignore\n get: ui.Components.Remove,\n // @ts-ignore\n replaceComponent: ui.Components.Settings.displayName\n };\n this._undoRemoveSettings = this.player.ui.addComponent(removeSettings);\n }\n };\n\n loadMedia(): void {\n const imagePlayer = new ImagePlayer(this._onActiveSlideChanged, this.config.slidesPreloadEnabled);\n this._dualScreenPlayers = [\n {\n id: MAIN_PLAYER_ID,\n type: PlayerType.VIDEO,\n container: PlayerContainers.primary,\n player: this.player\n },\n {\n id: IMAGE_PLAYER_ID,\n type: PlayerType.IMAGE,\n container: PlayerContainers.none,\n player: imagePlayer\n }\n ];\n this._addBindings();\n const kalturaCuePointService: any = this.player.getService('kalturaCuepoints');\n this._getSecondaryMedia();\n if (kalturaCuePointService) {\n kalturaCuePointService?.registerTypes([kalturaCuePointService.CuepointType.SLIDE, kalturaCuePointService.CuepointType.VIEW_CHANGE]);\n const imagePlayer = this.getDualScreenPlayer(IMAGE_PLAYER_ID)?.player as ImagePlayer;\n this._imageSyncManager = new ImageSyncManager(this.eventManager, this.player, imagePlayer as any, this.logger, this._onSlideViewChanged);\n } else {\n this.logger.warn('kalturaCuepoints service is not registered');\n }\n }\n\n reset(): void {\n this._setDefaultMode();\n this._layout = Layout.Hidden;\n this._dualScreenPlayers.forEach(dualScreenPlayer => {\n if (dualScreenPlayer.id !== MAIN_PLAYER_ID) {\n const player = dualScreenPlayer.player as any;\n player.destroy();\n if (dualScreenPlayer.type === PlayerType.VIDEO) {\n this._removeSecondaryPlaceholder(player.config?.targetId);\n }\n }\n });\n this._imageSyncManager?.reset();\n this._imageSyncManager = undefined;\n this._readyPromise = this._makeReadyPromise();\n if (this._undoRemoveSettings) {\n this._undoRemoveSettings();\n this._undoRemoveSettings = null;\n }\n this._dualScreenPlayers = [];\n this._currentMultiscreenPlayers = [];\n this.eventManager.removeAll();\n }\n\n private _removeSecondaryPlaceholder(id: string) {\n const secondaryPlaceholderEl = document.getElementById(id);\n if (secondaryPlaceholderEl) {\n document.body.removeChild(secondaryPlaceholderEl);\n }\n }\n\n private _makeReadyPromise = () => {\n return new Promise<void>(res => {\n this._resolveReadyPromise = res;\n });\n };\n\n private _addBindings() {\n this.eventManager.listen(this.player, EventType.PLAYBACK_ENDED, () => {\n this._playbackEnded = true;\n });\n this.eventManager.listenOnce(this.player, EventType.FIRST_PLAY, () => {\n this._originalVideoElementParent = this.player.getVideoElement().parentElement!;\n });\n this.eventManager.listen(this.player, EventType.PLAY, () => {\n if (this._playbackEnded) {\n // reset mode and pip-position on replay\n this._playbackEnded = false;\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary) as DualScreenPlayer;\n if (secondaryPlayer.type === PlayerType.IMAGE && !(secondaryPlayer.player as ImagePlayer).active) {\n this._switchToHidden();\n } else {\n this._setDefaultMode();\n this._setMode();\n }\n }\n });\n }\n\n public getDualScreenPlayer = (id: string) => {\n return this._dualScreenPlayers.find(dualScreenPlayer => {\n return dualScreenPlayer.id === id;\n });\n };\n\n public getActiveDualScreenPlayer = (container: PlayerContainers.primary | PlayerContainers.secondary) => {\n return this._dualScreenPlayers.find(dualScreenPlayer => {\n return dualScreenPlayer.container === container;\n });\n };\n\n private _setActiveDualScreenPlayer = (id: string, container: PlayerContainers.primary | PlayerContainers.secondary) => {\n if (this.getActiveDualScreenPlayer(container)?.id === id) {\n // prevent set player to the same container\n return;\n }\n const resetPlayer = this._dualScreenPlayers.find(dualScreenPlayer => dualScreenPlayer.container === container);\n this._dualScreenPlayers = this._dualScreenPlayers.map(dualScreenPlayer => {\n if (resetPlayer && dualScreenPlayer.id === resetPlayer.id) {\n return {\n ...dualScreenPlayer,\n container: PlayerContainers.none\n };\n }\n return {\n ...dualScreenPlayer,\n container: dualScreenPlayer.id === id ? container : dualScreenPlayer.container\n };\n });\n };\n\n private _getMultiscreenPlayers = () => {\n return this._dualScreenPlayers.filter(dualScreenPlayer => {\n if (dualScreenPlayer.container === PlayerContainers.none) {\n if (dualScreenPlayer.type === PlayerType.IMAGE && !(dualScreenPlayer.player as ImagePlayer).active) {\n return false;\n }\n return true;\n }\n });\n };\n\n private _makeMultiscreenPlayers = (multiscreenPlayers: DualScreenPlayer[], invert = false): MultiscreenPlayer[] => {\n this._currentMultiscreenPlayers = multiscreenPlayers.map(dualScreenPlayer => {\n if (this._layout === Layout.PIP) {\n return {\n player: dualScreenPlayer.player,\n setSecondary: () => {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, PlayerContainers.secondary);\n this._setMode(true);\n },\n setPrimary: () => {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, PlayerContainers.primary);\n this._setMode(true);\n }\n };\n } else if (this._layout === Layout.SideBySide) {\n return {\n player: dualScreenPlayer.player,\n setSecondary: null,\n setPrimary: () => {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, invert ? PlayerContainers.secondary : PlayerContainers.primary);\n this._setMode(true);\n }\n };\n } else {\n return {\n player: dualScreenPlayer.player,\n setSecondary: null,\n setPrimary: () => {\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary)!;\n if (secondaryPlayer.id === dualScreenPlayer.id) {\n this._applyInverse();\n } else {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, PlayerContainers.primary);\n }\n this._setMode(true);\n }\n };\n }\n });\n return this._currentMultiscreenPlayers;\n };\n\n private _setMode = (force?: boolean) => {\n switch (this._layout) {\n case Layout.PIP:\n this._switchToPIP({force});\n break;\n case Layout.PIPInverse:\n this._applyInverse();\n this._switchToPIP({force});\n break;\n case Layout.SingleMedia:\n this._switchToSingleMedia({force});\n break;\n case Layout.SingleMediaInverse:\n this._applyInverse();\n this._switchToSingleMedia({force});\n break;\n case Layout.SideBySide:\n this._switchToSideBySide({force});\n break;\n case Layout.SideBySideInverse:\n this._applyInverse();\n this._switchToSideBySide({force});\n break;\n case Layout.Hidden:\n this._switchToHidden();\n break;\n default:\n this.logger.warn('unrecognized layout, got:', this._layout);\n }\n };\n\n private _setDefaultMode = () => {\n this._switchToHidden();\n const configLayouts = [Layout.PIP, Layout.PIPInverse, Layout.SideBySide, Layout.SideBySideInverse, Layout.SingleMedia, Layout.SingleMediaInverse];\n this._layout = configLayouts.includes(this.config.layout) ? this.config.layout : Layout.Hidden;\n this._pipPosition = this.config.position;\n this._pipPortraitMode = false;\n this._externalLayout = null;\n };\n\n private _addActives(...removeActives: Array<Function>) {\n const {\n store: {dispatch}\n } = this.player.ui;\n // @ts-ignore\n dispatch(shell.actions.addPlayerClass(HAS_DUAL_SCREEN_PLUGIN_OVERLAY));\n this._removeActives();\n this._removeActivesArr = removeActives;\n }\n\n private _removeActives() {\n this._removeActivesArr.forEach(value => {\n value();\n });\n this._removeActivesArr = [];\n }\n\n private _setPipPosition = (position: Position) => {\n this._pipPosition = position;\n };\n\n public getPipPosition = (): Position => {\n return this._pipPosition;\n };\n\n private _applyInverse = () => {\n this._dualScreenPlayers = this._dualScreenPlayers.map(dualScreenPlayer => {\n if (dualScreenPlayer.container === PlayerContainers.none) {\n return dualScreenPlayer;\n }\n return {\n ...dualScreenPlayer,\n container: dualScreenPlayer.container === PlayerContainers.primary ? PlayerContainers.secondary : PlayerContainers.primary\n };\n });\n };\n\n private _switchToHidden = () => {\n const {\n store: {dispatch}\n } = this.player.ui;\n this._layout = Layout.Hidden;\n // @ts-ignore\n dispatch(shell.actions.removePlayerClass(HAS_DUAL_SCREEN_PLUGIN_OVERLAY));\n this._removeActives();\n if (this._originalVideoElementParent) {\n this._originalVideoElementParent.prepend(this.player.getVideoElement());\n }\n };\n\n private _switchToPIP = ({animation = Animations.None, focusOnButton, force}: LayoutChangeProps = {}) => {\n const imagePlayer = this.getDualScreenPlayer(IMAGE_PLAYER_ID)?.player as ImagePlayer;\n if (!force && this._layout === Layout.PIP && this._removeActivesArr.length && imagePlayer.active?.portrait === this._pipPortraitMode) {\n return;\n }\n this._layout = Layout.PIP;\n this._setPipPortraitMode();\n\n this._addActives(\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip',\n presets: PRESETS,\n container: ReservedPresetAreas.VideoContainer,\n get: () => <PipParent animation={animation} player={this.getActiveDualScreenPlayer(PlayerContainers.primary)!.player as any} />\n }),\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip',\n presets: PRESETS,\n container: ReservedPresetAreas.InteractiveArea,\n get: () => (\n <ResponsiveManager\n onMinSize={() => {\n this._switchToSingleMedia();\n }}\n onDefaultSize={this._setMode}>\n <DragAndSnapManager\n eventManager={this.eventManager}\n logger={this.logger}\n getPosition={this.getPipPosition}\n onPositionChanged={this._setPipPosition}>\n <PipChild\n animation={Animations.Fade}\n playerSizePercentage={this.config.childSizePercentage}\n player={this.getActiveDualScreenPlayer(PlayerContainers.secondary)!.player as any}\n hide={(event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToSingleMedia({animation: Animations.None, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.Show)})\n }\n onSideBySideSwitch={(event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToSideBySide({focusOnButton: byKeyboard ? ButtonsEnum.SideBySide : undefined, animation: Animations.ScaleLeft})\n }\n onInversePIP={(event: OnClickEvent, byKeyboard: boolean) => {\n this._applyInverse();\n this._layout = Layout.PIPInverse; // toggle layout change\n this._switchToPIP({animation: Animations.Fade, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.SwitchScreen)});\n }}\n portrait={this._pipPortraitMode}\n aspectRatio={this.config.childAspectRatio}\n focusOnButton={focusOnButton}\n layout={this._layout}\n multiscreen={<Multiscreen players={this._makeMultiscreenPlayers(this._getMultiscreenPlayers())} getPosition={this.getPipPosition} />}\n />\n </DragAndSnapManager>\n </ResponsiveManager>\n )\n })\n );\n };\n\n private _switchToSingleMedia = ({animation = Animations.None, focusOnButton, force}: LayoutChangeProps = {}) => {\n if (!force && this._layout === Layout.SingleMedia && this._removeActivesArr.length) {\n return;\n }\n this._layout = Layout.SingleMedia;\n\n this._addActives(\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip',\n presets: PRESETS,\n container: ReservedPresetAreas.VideoContainer,\n get: () => <PipParent animation={animation} player={this.getActiveDualScreenPlayer(PlayerContainers.primary)!.player as any} />\n }),\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip-minimized',\n presets: PRESETS,\n container: ReservedPresetAreas.BottomBar,\n get: () => (\n <ResponsiveManager onDefaultSize={this._setMode}>\n <PipMinimized\n show={(event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToPIP({animation: Animations.None, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.Hide)})\n }\n players={this._makeMultiscreenPlayers([...this._getMultiscreenPlayers(), this.getActiveDualScreenPlayer(PlayerContainers.secondary)!])}\n focusOnButton={focusOnButton}\n />\n </ResponsiveManager>\n )\n })\n );\n };\n\n private _switchToSideBySide = ({animation = Animations.Fade, focusOnButton, force}: LayoutChangeProps = {}) => {\n if (!force && this._layout === Layout.SideBySide && this._removeActivesArr.length) {\n return;\n }\n this._layout = Layout.SideBySide;\n\n const leftSideProps = {\n player: this.getActiveDualScreenPlayer(PlayerContainers.primary)!.player as any,\n onExpand: (event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToPIP({animation: Animations.ScaleRight, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.SideBySide)}),\n focusOnButton: Boolean(focusOnButton),\n animation,\n multiscreen: <Multiscreen players={this._makeMultiscreenPlayers(this._getMultiscreenPlayers())} />\n };\n const rightSideProps = {\n player: this.getActiveDualScreenPlayer(PlayerContainers.secondary)!.player as any,\n onExpand: (event: OnClickEvent, byKeyboard: boolean) => {\n this._applyInverse();\n this._switchToPIP({animation: Animations.ScaleLeft, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.SideBySide)});\n },\n animation: Animations.Fade,\n multiscreen: <Multiscreen players={this._makeMultiscreenPlayers(this._getMultiscreenPlayers(), true)} />\n };\n\n this._addActives(\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-side-by-side',\n presets: PRESETS,\n container: ReservedPresetAreas.VideoContainer,\n get: () => (\n <SideBySideWrapper\n leftSideProps={leftSideProps}\n rightSideProps={rightSideProps}\n layout={this._layout}\n onSizeChange={this._setMode}\n onMinSize={this._switchToSingleMedia}\n />\n )\n })\n );\n };\n\n private _onActiveSlideChanged = (slideItem: SlideItem | null) => {\n if (!slideItem) {\n // deactivate dual-screen layout\n this._switchToHidden();\n return;\n }\n\n let originalHiddenLayout = false;\n if (this._layout === Layout.Hidden && !this._externalLayout) {\n originalHiddenLayout = true;\n this._setDefaultMode();\n }\n\n if (this._layout === Layout.Hidden && this._externalLayout) {\n this._applyExternalLayout();\n }\n\n let portraitModeChanged = false;\n if (slideItem.portrait !== this._pipPortraitMode) {\n portraitModeChanged = true;\n }\n\n let refreshMultiscreen = true;\n if (\n this.getDualScreenPlayer(IMAGE_PLAYER_ID)?.container !== PlayerContainers.none ||\n this._currentMultiscreenPlayers.find(multiscreenPlayer => multiscreenPlayer.player instanceof ImagePlayer)\n ) {\n // no needs to update multiscreen layout, image player already visible\n refreshMultiscreen = false;\n }\n\n if (originalHiddenLayout || (portraitModeChanged && this._layout === Layout.PIP) || refreshMultiscreen) {\n // refresh dual-screen layouts\n this._setMode(true);\n }\n if (this.config.removePlayerSettings) {\n this._removeSettingsComponent();\n }\n };\n\n private _onSlideViewChanged = (viewChange: ExternalLayout) => {\n if (this._externalLayout === viewChange) {\n return;\n }\n this._externalLayout = viewChange;\n this._applyExternalLayout();\n };\n\n private _applyExternalLayout = () => {\n // external layout applies by Kaltura Webcast Studion app, that support only 1 media and slides\n const primaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.primary);\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary);\n const _checkPlayerContainers = (inverse?: boolean) => {\n return primaryPlayer?.id === inverse ? IMAGE_PLAYER_ID : MAIN_PLAYER_ID && secondaryPlayer?.id === inverse ? MAIN_PLAYER_ID : IMAGE_PLAYER_ID;\n };\n const _applyPlayerContainers = (inverse?: boolean) => {\n this._setActiveDualScreenPlayer(MAIN_PLAYER_ID, inverse ? PlayerContainers.secondary : PlayerContainers.primary);\n this._setActiveDualScreenPlayer(IMAGE_PLAYER_ID, inverse ? PlayerContainers.primary : PlayerContainers.secondary);\n };\n switch (this._externalLayout) {\n case ExternalLayout.Hidden:\n this._switchToHidden();\n break;\n case ExternalLayout.SingleMedia:\n if (this._layout !== Layout.SingleMedia || !_checkPlayerContainers()) {\n _applyPlayerContainers();\n this._switchToSingleMedia({force: true});\n }\n break;\n case ExternalLayout.SingleMediaInverse:\n if (this._layout !== Layout.SingleMediaInverse || !_checkPlayerContainers(true)) {\n _applyPlayerContainers(true);\n this._switchToSingleMedia({force: true});\n }\n break;\n case ExternalLayout.PIP:\n if (this._layout !== Layout.PIP || !_checkPlayerContainers()) {\n _applyPlayerContainers();\n this._switchToPIP({force: true});\n }\n break;\n case ExternalLayout.PIPInverse:\n if (this._layout !== Layout.PIPInverse || !_checkPlayerContainers(true)) {\n _applyPlayerContainers(true);\n this._switchToPIP({force: true});\n }\n break;\n case ExternalLayout.SideBySide:\n if (this._layout !== Layout.SideBySide || !_checkPlayerContainers()) {\n _applyPlayerContainers();\n this._switchToSideBySide({force: true});\n }\n break;\n case ExternalLayout.SideBySideInverse:\n if (this._layout !== Layout.SideBySideInverse || !_checkPlayerContainers(true)) {\n _applyPlayerContainers(true);\n this._switchToSideBySide({force: true});\n }\n break;\n }\n };\n\n private _getSecondaryMedia() {\n // @ts-ignore\n this.player.provider\n // @ts-ignore\n .doRequest([{loader: SecondaryMediaLoader, params: {parentEntryId: this.player.sources.id}}])\n .then((data: Map<string, any>) => {\n if (data && data.has(SecondaryMediaLoader.id)) {\n const secondaryMediaLoader = data.get(SecondaryMediaLoader.id);\n const secondaryMedias = secondaryMediaLoader?.response?.entries || [];\n secondaryMedias.forEach((mediaEntry: any, index: number) => {\n const kalturaPlayer = this._createSecondaryPlayer(mediaEntry.id);\n this._dualScreenPlayers.push({\n id: mediaEntry.id,\n player: kalturaPlayer,\n type: PlayerType.VIDEO,\n container: index === 0 ? PlayerContainers.secondary : PlayerContainers.none\n });\n new VideoSyncManager(this.eventManager, this.player, kalturaPlayer, this.logger);\n });\n if (secondaryMedias.length) {\n if (this.config.removePlayerSettings) {\n this._removeSettingsComponent();\n }\n\n const secondaryPlayer: any = this.getActiveDualScreenPlayer(PlayerContainers.secondary)?.player;\n this.eventManager.listenOnce(secondaryPlayer, EventType.CHANGE_SOURCE_ENDED, () => {\n this._resolveReadyPromise();\n });\n this.eventManager.listenOnce(secondaryPlayer, EventType.FIRST_PLAYING, () => {\n this.logger.debug('secondary player first playing - show dual mode');\n this._setDefaultMode();\n this._setMode();\n });\n } else {\n this._setActiveDualScreenPlayer(IMAGE_PLAYER_ID, PlayerContainers.secondary);\n this.logger.trace('child media not found');\n this._resolveReadyPromise();\n }\n } else {\n this.logger.warn('SecondaryMediaLoader does not exist');\n this._resolveReadyPromise();\n this.eventManager.removeAll();\n }\n })\n .catch((e: any) => {\n this.logger.error(e);\n this._resolveReadyPromise();\n });\n }\n\n private _createSecondaryPlayer(entryId: string): KalturaPlayer {\n const targetId = `secondaryPlaceholder-${entryId}`;\n let secondaryPlaceholder = document.createElement('div');\n secondaryPlaceholder.setAttribute('id', targetId);\n secondaryPlaceholder.style.width = '240px';\n secondaryPlaceholder.style.height = '135px';\n secondaryPlaceholder.hidden = true;\n document.body.appendChild(secondaryPlaceholder);\n const secondaryPlayerConfig = {\n targetId,\n disableUserCache: true,\n playback: {\n muted: true,\n autoplay: false\n },\n ui: {\n disable: true\n },\n provider: {\n // @ts-ignore\n ...this.player.config.provider,\n ignoreServerConfig: true\n },\n plugins: {\n 'kaltura-live': {\n // @ts-ignore\n ...(this.player.plugins['kaltura-live']?.config || {})\n }\n }\n };\n const secondaryPlayer = (window as any).KalturaPlayer.setup(secondaryPlayerConfig);\n // @ts-ignore\n secondaryPlayer.loadMedia({entryId, ks: this.player.config.session.isAnonymous ? '' : this.player.config.session.ks});\n return secondaryPlayer;\n }\n\n /**\n * @static\n * @public\n * @returns {boolean} - Whether the plugin is valid.\n */\n static isValid(): boolean {\n return true;\n }\n\n destroy(): void {\n this.eventManager.destroy();\n }\n\n private _setPipPortraitMode() {\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary) as DualScreenPlayer;\n if (secondaryPlayer.type === PlayerType.VIDEO && secondaryPlayer.player) {\n const secondaryVideoWidth = (secondaryPlayer.player as KalturaPlayer).getVideoElement().videoWidth;\n const secondaryVideoHeight = (secondaryPlayer.player as KalturaPlayer).getVideoElement().videoHeight;\n this._pipPortraitMode = secondaryVideoWidth < secondaryVideoHeight || this._pipPortraitMode;\n } else {\n this._pipPortraitMode = (secondaryPlayer.player as ImagePlayer).active\n ? (secondaryPlayer.player as ImagePlayer).active!.portrait\n : this._pipPortraitMode;\n }\n }\n}\n","export enum Animations {\n None = 'None',\n Fade = 'Fade',\n ScaleRight = 'ScaleRight',\n ScaleLeft = 'ScaleLeft',\n Slide = 'Slide'\n}\n","export enum ButtonsEnum {\n Hide,\n Show,\n ExpandScreen,\n SideBySide,\n SwitchScreen\n}\n","export * from './animation';\nexport * from './layoutEnum';\nexport * from './reservedPresetAreasEnum';\nexport * from './buttons';\nexport * from './players';\n","import {Animations} from './animation';\nimport {ButtonsEnum} from './buttons';\n\nexport enum Layout {\n PIP = 'PIP',\n PIPInverse = 'PIPInverse',\n SingleMedia = 'SingleMedia',\n SingleMediaInverse = 'SingleMediaInverse',\n SideBySide = 'SideBySide',\n SideBySideInverse = 'SideBySideInverse',\n Hidden = 'Hidden'\n}\n\nexport enum Position {\n BottomLeft = 'bottom-left',\n BottomRight = 'bottom-right',\n TopLeft = 'top-left',\n TopRight = 'top-right'\n}\n\nexport enum ExternalLayout {\n Hidden = 'locked',\n SingleMedia = 'parent-only',\n SingleMediaInverse = 'no-parent',\n PIP = 'pip-parent-in-large',\n PIPInverse = 'pip-parent-in-small',\n SideBySide = 'sbs-parent-in-left',\n SideBySideInverse = 'sbs-parent-in-right'\n}\n\nexport enum ViewModeLockState {\n Locked = 'locked',\n Unlocked = 'unlocked'\n}\n\nexport enum StreamMode {\n Primary = 'Primary',\n Secondary = 'Secondary'\n}\n\nexport enum PlayerContainers {\n none = 'none',\n primary = 'primary',\n secondary = 'secondary'\n}\n\nexport interface LayoutChangeProps {\n animation?: Animations;\n focusOnButton?: ButtonsEnum;\n force?: boolean;\n}\n","export enum PlayerType {\n IMAGE = 'image',\n VIDEO = 'video'\n}\n","export enum ReservedPresetAreas {\n PresetFloating = 'PresetFloating',\n BottomBar = 'BottomBar',\n BottomBarLeftControls = 'BottomBarLeftControls',\n BottomBarRightControls = 'BottomBarRightControls',\n TopBarLeftControls = 'TopBarLeftControls',\n TopBarRightControls = 'TopBarRightControls',\n SidePanelTop = 'SidePanelTop',\n InteractiveAreaSidePanelLeft = 'SidePanelLeft',\n SidePanelRight = 'SidePanelRight',\n SidePanelBottom = 'SidePanelBottom',\n PresetArea = 'PresetArea',\n InteractiveArea = 'InteractiveArea',\n PlayerArea = 'PlayerArea',\n VideoArea = 'VideoArea',\n VideoContainer = 'VideoContainer'\n}\n","export namespace icons {\n export const HIDE_ICON_PATH =\n 'M4.29289 6.29289C4.68342 5.90237 5.31658 5.90237 5.70711 6.29289L8 8.58579L10.2929 6.29289C10.6834 5.90237 11.3166 5.90237 11.7071 6.29289C12.0976 6.68342 12.0976 7.31658 11.7071 7.70711L8.70711 10.7071C8.31658 11.0976 7.68342 11.0976 7.29289 10.7071L4.29289 7.70711C3.90237 7.31658 3.90237 6.68342 4.29289 6.29289Z';\n export const SHOW_ICON_PATH =\n 'M4.29289 10.7071C4.65338 11.0676 5.22061 11.0953 5.6129 10.7903L5.70711 10.7071L8 8.415L10.2929 10.7071C10.6534 11.0676 11.2206 11.0953 11.6129 10.7903L11.7071 10.7071C12.0676 10.3466 12.0953 9.77939 11.7903 9.3871L11.7071 9.29289L8.70711 6.29289C8.34662 5.93241 7.77939 5.90468 7.3871 6.2097L7.29289 6.29289L4.29289 9.29289C3.90237 9.68342 3.90237 10.3166 4.29289 10.7071Z';\n export const MediumSize = 24;\n export const SmallSize = 16;\n}\n","import './image-player.scss';\n\nconst MAX_RETRY_ATTEMPTS = 3;\nconst RETRY_DELAY = 2000;\n\ntype OnActiveChange = (imageItem: SlideItem | null) => void;\n\nexport interface RawSlideItem {\n id: string;\n imageUrl: string;\n alt: string;\n}\n\nexport interface SlideItem extends RawSlideItem {\n index: number;\n loading: boolean;\n loaded: boolean;\n portrait: boolean;\n ready: Promise<void>;\n setReady: () => void;\n retryAttempts: number;\n}\n\nexport class ImagePlayer {\n private _images: Array<SlideItem> = [];\n private _imagePlayer: HTMLDivElement;\n private _activeImage: SlideItem | null = null;\n private _onActiveChange: OnActiveChange;\n private _retryTimeout: any;\n private _preloadEnabled: boolean = true;\n\n constructor(onActiveChanged: OnActiveChange, preloadEnabled: boolean) {\n this._imagePlayer = this._createImagePlayer();\n this._onActiveChange = onActiveChanged;\n this._preloadEnabled = preloadEnabled;\n }\n\n get active() {\n return this._activeImage;\n }\n\n public preLoadImages = () => {\n const isPreloadingActive = this._images.some(slide => slide.loading);\n if (!this._preloadEnabled || isPreloadingActive) {\n // preload feature disabled or preloading currently in progress\n return;\n }\n const startIndex = this._activeImage ? this._activeImage.index : 0;\n for (let i = startIndex; i < this._images.length; i++) {\n const preloadCandidate = this._images[i];\n if (!this._isSlideItemPreloded(preloadCandidate)) {\n this._preLoadImage(preloadCandidate);\n // preload candidate found, interrupt search\n return;\n }\n }\n // preloadCandidate haven't found, try find nextPreloadCandidate from beginnig of array\n const nextPreloadCandidate = this._images.find(slideItem => {\n return !this._isSlideItemPreloded(slideItem);\n });\n if (nextPreloadCandidate) {\n this._preLoadImage(nextPreloadCandidate);\n }\n };\n\n public addImage = (item: RawSlideItem) => {\n if (this._images.find(slideItem => slideItem.id === item.id)) {\n // prevent add duplications\n return;\n }\n let setReadyFn = () => {};\n const readyPromise = new Promise<void>(setReady => {\n setReadyFn = setReady;\n });\n const slideItem: SlideItem = {\n ...item,\n index: this._images.length,\n loading: false,\n loaded: false,\n portrait: false,\n retryAttempts: 0,\n ready: readyPromise,\n setReady: setReadyFn\n };\n this._images.push(slideItem);\n };\n\n public setActive = (activeId: string | null) => {\n if (!activeId) {\n if (!this._activeImage) {\n // prevent remove image if active is null\n return;\n }\n // remove active image\n (this._imagePlayer.firstChild! as HTMLImageElement).setAttribute('src', '');\n (this._imagePlayer.firstChild! as HTMLImageElement).setAttribute('alt', '');\n this._activeImage = null;\n this._onActiveChange(null);\n return;\n }\n if (this._activeImage && activeId === this._activeImage.id) {\n // prevent set the same active image\n return;\n }\n clearTimeout(this._retryTimeout);\n this._images.find(item => {\n if (activeId === item.id) {\n this._preLoadImage(item);\n this._activeImage = item;\n item.ready.then(() => {\n // check that during loading active image haven't changed\n if (this._activeImage?.id === item.id) {\n this._onActiveChange(item);\n (this._imagePlayer.firstChild! as HTMLImageElement).setAttribute('src', item.imageUrl);\n }\n });\n return true;\n }\n return false;\n });\n };\n\n public getVideoElement = () => {\n return this._imagePlayer;\n };\n\n private _isSlideItemPreloded = (item: SlideItem) => {\n return item.loaded || item.loading || item.retryAttempts >= MAX_RETRY_ATTEMPTS;\n };\n\n private _createImagePlayer = () => {\n const imagePlayer = document.createElement('div');\n const img = document.createElement('img');\n img.src = '';\n img.alt = '';\n imagePlayer.appendChild(img);\n imagePlayer.classList.add('playkit-image-player');\n imagePlayer.dataset.testid = 'dualscreen_imagePlayer';\n return imagePlayer;\n };\n\n private _preLoadImage = (item: SlideItem) => {\n if (this._isSlideItemPreloded(item)) {\n // current item already preloaded, try next\n this.preLoadImages();\n return;\n }\n item.retryAttempts++;\n item.loading = true;\n const img = new Image();\n img.onload = () => {\n item.loading = false;\n item.loaded = true;\n item.portrait = img.width < img.height;\n item.setReady();\n this.preLoadImages();\n };\n img.onerror = () => {\n item.loading = false;\n this._retryTimeout = setTimeout(() => {\n this._preLoadImage(item);\n }, RETRY_DELAY);\n };\n img.src = item.imageUrl;\n };\n\n public reset = () => {\n this._activeImage = null;\n this._images = [];\n clearTimeout(this._retryTimeout);\n };\n\n public destroy = () => {\n this.reset();\n };\n}\n","export * from './image-player';\n","// @ts-ignore\nimport {core, PlaykitUI, Logger, KalturaPlayer} from '@playkit-js/kaltura-player-js';\nimport {ExternalLayout, ViewModeLockState} from './enums';\nimport {ImagePlayer} from './image-player';\nimport {debounce} from '@playkit-js/common/dist/utils-common/utils';\n\nconst {TimedMetadata, EventType} = core;\n\ninterface TimedMetadataEvent {\n payload: {\n cues: Array<typeof TimedMetadata>;\n };\n}\n\nexport interface ViewChangeData {\n playerViewModeId?: ExternalLayout;\n viewModeLockState?: string;\n}\n\nconst DEBOUNCE_TIMEOUT = 200;\n\nexport class ImageSyncManager {\n _eventManager: PlaykitUI.EventManager;\n _mainPlayer: KalturaPlayer;\n _imagePlayer: ImagePlayer;\n _logger: Logger;\n _onSlideViewChanged: (viewChangeData: ExternalLayout) => void;\n _kalturaCuePointService: any;\n _firstPlaying: boolean = false;\n _lock: boolean = false;\n private _debouncedSetActive: (slideId: string | null) => void;\n\n constructor(\n eventManager: PlaykitUI.EventManager,\n mainPlayer: KalturaPlayer,\n imagePlayer: ImagePlayer,\n logger: Logger,\n onSlideViewChanged: (viewChangeData: ExternalLayout) => void\n ) {\n this._eventManager = eventManager;\n this._mainPlayer = mainPlayer;\n this._imagePlayer = imagePlayer;\n this._logger = logger;\n this._onSlideViewChanged = onSlideViewChanged;\n this._syncEvents();\n this._kalturaCuePointService = this._mainPlayer.getService('kalturaCuepoints');\n this._debouncedSetActive = debounce(this._imagePlayer.setActive, DEBOUNCE_TIMEOUT);\n }\n\n private _syncEvents = () => {\n this._eventManager.listen(this._mainPlayer, EventType.TIMED_METADATA_CHANGE, this._onTimedMetadataChange);\n this._eventManager.listen(this._mainPlayer, EventType.TIMED_METADATA_ADDED, this._onTimedMetadataAdded);\n this._eventManager.listen(this._mainPlayer, EventType.FIRST_PLAYING, this._onFirstPlaying);\n };\n\n private _onFirstPlaying = () => {\n this._firstPlaying = true;\n this._imagePlayer.preLoadImages();\n };\n\n private _onTimedMetadataChange = ({payload}: TimedMetadataEvent) => {\n const {cues: activeCuePoints} = payload;\n const {activeSlide, externalLayout} = activeCuePoints.reduce<{activeSlide: string | null; externalLayout: ExternalLayout | null}>(\n (acc, cue) => {\n if (this._isSlideCuePoint(cue)) {\n return {...acc, activeSlide: cue.id};\n }\n if (cue.metadata?.cuePointType === this._kalturaCuePointService.KalturaCuePointType.CODE && cue.metadata?.tags === 'change-view-mode') {\n const {playerViewModeId, viewModeLockState} = cue.metadata!.partnerData;\n if (playerViewModeId) {\n return {...acc, externalLayout: viewModeLockState === ViewModeLockState.Locked ? ExternalLayout.Hidden : playerViewModeId};\n }\n }\n return acc;\n },\n {\n activeSlide: null,\n externalLayout: null\n }\n );\n\n if (externalLayout) {\n this._onSlideViewChanged(externalLayout);\n }\n this._debouncedSetActive(externalLayout === ExternalLayout.Hidden ? null : activeSlide);\n };\n\n private _onTimedMetadataAdded = ({payload}: TimedMetadataEvent) => {\n const slides = payload.cues.map(cue => {\n if (this._isSlideCuePoint(cue)) {\n this._imagePlayer.addImage({\n id: cue.id,\n imageUrl: cue.metadata!.assetUrl,\n alt: cue.metadata!.title || cue.metadata!.description\n });\n return cue;\n }\n });\n\n if (slides.length && this._firstPlaying) {\n this._imagePlayer.preLoadImages();\n }\n };\n\n private _isSlideCuePoint(cue: any) {\n return (\n cue?.type === TimedMetadata.TYPE.CUE_POINT &&\n cue.metadata?.cuePointType === this._kalturaCuePointService.KalturaCuePointType.THUMB &&\n cue.metadata?.subType === this._kalturaCuePointService.KalturaThumbCuePointSubType.SLIDE\n );\n }\n\n reset() {\n this._firstPlaying = false;\n }\n}\n","import ILoader = KalturaPlayerTypes.ILoader;\n\nconst {RequestBuilder, ResponseTypes} = KalturaPlayer.providers;\n\ninterface SecondaryMediaLoaderParams {\n parentEntryId: string;\n}\n\nexport class SecondaryMediaLoader implements ILoader {\n _parentEntryId: string = '';\n _requests: any[] = [];\n _response: any = {\n entries: []\n };\n\n static get id(): string {\n return 'dualscreen';\n }\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: SecondaryMediaLoaderParams) {\n this._parentEntryId = params.parentEntryId;\n const headers: Map<string, string> = new Map();\n const request = new RequestBuilder(headers);\n const INCLUDE_FIELDS = 1;\n request.service = 'baseEntry';\n request.action = 'list';\n request.params = {\n filter: {\n objectType: 'KalturaBaseEntryFilter',\n parentEntryIdEqual: this._parentEntryId,\n typeIn: `${ResponseTypes.KalturaMediaEntry.MediaType.VIDEO.value},7` // VOD and LIVE\n },\n responseProfile: {\n type: INCLUDE_FIELDS,\n fields: 'id'\n }\n };\n this.requests.push(request);\n }\n\n set requests(requests: any[]) {\n this._requests = requests;\n }\n\n get requests(): any[] {\n return this._requests;\n }\n\n set response(response: any) {\n const mediaEntryListResponse = new ResponseTypes.KalturaBaseEntryListResponse(response[0]?.data);\n if (mediaEntryListResponse.totalCount) {\n this._response.entries = mediaEntryListResponse?.entries;\n }\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._parentEntryId;\n }\n}\n","export const isInInterval = (num: number, lower: number, upper: number) => {\n return !isNaN(num) && !isNaN(lower) && !isNaN(upper) && lower <= upper && num >= lower && num <= upper;\n};\n\nexport const getClientX = (e: MouseEvent | TouchEvent): number => {\n if (e instanceof MouseEvent) {\n return e.clientX;\n }\n return e.changedTouches && e.changedTouches[0] && e.changedTouches[0].clientX;\n};\n\nexport const getClientY = (e: MouseEvent | TouchEvent): number => {\n if (e instanceof MouseEvent) {\n return e.clientY;\n }\n return e.changedTouches && e.changedTouches[0] && e.changedTouches[0].clientY;\n};\n\nexport const dimensionStyleToString = (value: number): string => {\n return `${value}px`;\n};\n\nexport const getValueOrUndefined = <T>(condition: boolean, value: T) => {\n return condition ? value : undefined;\n};\n","import {isInInterval} from './utils';\n// @ts-ignore\nimport {core, PlaykitUI, Logger, KalturaPlayer} from '@playkit-js/kaltura-player-js';\nimport {debounce} from '@playkit-js/common/dist/utils-common/utils';\nconst {EventType, FakeEvent, Error, StateType} = core;\n\nconst MIN_PLAYBACK_RATE = 0.1; // browsers throws a \"NotSupportedError\" DOMException if playback rate not supported by the user agent\nconst DEBOUNCE_SEEK_INTERVAL = 1000;\nconst SYNC_INTERVAL = 1000;\n\nexport class VideoSyncManager {\n private _isSyncDelay = false;\n private _debouncedSeekSecondaryPlayer: (aheadTime?: number) => void;\n\n _eventManager: PlaykitUI.EventManager;\n _mainPlayer: KalturaPlayer;\n _secondaryPlayer: KalturaPlayer;\n _logger: Logger;\n\n constructor(eventManager: PlaykitUI.EventManager, mainPlayer: KalturaPlayer, secondaryPlayer: KalturaPlayer, logger: KalturaPlayerTypes.Logger) {\n this._eventManager = eventManager;\n this._mainPlayer = mainPlayer;\n this._secondaryPlayer = secondaryPlayer;\n this._logger = logger;\n this._syncEvents();\n this._errorHandling();\n this._debouncedSeekSecondaryPlayer = debounce(this._seekSecondaryPlayer, DEBOUNCE_SEEK_INTERVAL);\n }\n\n private _errorHandling = () => {\n this._eventManager.listen(this._secondaryPlayer, EventType.ERROR, (e: Error) => {\n this._logger.debug('errorHandling :: secondary player got error');\n const error = new Error(Error.Severity.CRITICAL, Error.Category.PLAYER, Error.Code.VIDEO_ERROR, e);\n this._mainPlayer.pause();\n // @ts-ignore\n this._mainPlayer.dispatchEvent(new FakeEvent(EventType.ERROR, error));\n });\n this._eventManager.listen(this._mainPlayer, EventType.ERROR, () => {\n this._logger.debug('errorHandling :: main player got error');\n this._secondaryPlayer.reset();\n });\n };\n\n private _syncEvents = () => {\n let lastSync = 0;\n this._eventManager.listen(this._mainPlayer, EventType.PLAY, () => {\n this._logger.debug('syncEvents :: secondary player play');\n this._secondaryPlayer.play();\n });\n this._eventManager.listen(this._mainPlayer, EventType.PAUSE, () => {\n this._logger.debug('syncEvents :: secondary player pause');\n this._secondaryPlayer.pause();\n });\n this._eventManager.listenOnce(this._secondaryPlayer, EventType.CHANGE_SOURCE_ENDED, () => {\n const isLive = this._secondaryPlayer.isLive();\n const isDvr = this._secondaryPlayer.isDvr();\n if (!isLive) {\n this._logger.debug('syncEvents :: subscribe on time update for accurate sync');\n this._eventManager.listen(this._mainPlayer, EventType.TIME_UPDATE, () => {\n if (!this._isSyncDelay) {\n const now = Date.now();\n if (now - lastSync > SYNC_INTERVAL || this._mainPlayer.paused) {\n lastSync = now;\n this._mediaSync();\n }\n }\n });\n } else if (isDvr) {\n // for live entry use raw sync only\n this._eventManager.listen(this._secondaryPlayer, EventType.VIDEO_TRACK_CHANGED, () => {\n this._logger.debug('syncEvents :: make raw initial sync for live media');\n this._debouncedSeekSecondaryPlayer();\n });\n }\n\n if (!isLive || isDvr) {\n this._eventManager.listen(this._mainPlayer, EventType.SEEKING, () => {\n this._logger.debug(`syncEvents :: seek secondary player to ${this._mainPlayer}`);\n this._secondaryPlayer.pause();\n this._debouncedSeekSecondaryPlayer();\n });\n }\n });\n this._eventManager.listen(this._mainPlayer, EventType.ENDED, () => {\n this._logger.debug('syncEvents :: secondary player pause + seek to 0.01');\n this._secondaryPlayer.pause();\n this._seekSecondaryPlayer(0.01);\n });\n this._eventManager.listen(\n this._mainPlayer,\n EventType.PLAYER_STATE_CHANGED,\n ({payload}: {payload: {newState: {type: typeof StateType}; oldState: {type: typeof StateType}}}) => {\n if (\n payload.newState.type === StateType.BUFFERING &&\n // @ts-ignore\n !(this._mainPlayer.seeking || this._mainPlayer.paused) &&\n !this._secondaryPlayer.paused\n ) {\n this._logger.debug('syncEvents :: main player got BUFFERING');\n this._secondaryPlayer.pause();\n return;\n }\n if (payload.newState.type === StateType.PLAYING && payload.oldState.type === StateType.BUFFERING && this._secondaryPlayer.paused) {\n this._logger.debug('syncEvents :: main player resume PLAYING');\n this._secondaryPlayer.play();\n }\n }\n );\n };\n\n private _mediaSync = () => {\n // @ts-ignore\n if (this._isSyncDelay || (this._mainPlayer.paused && !this._mainPlayer.seeking)) {\n return;\n }\n const synchDelayThresholdPositive = 0.03;\n const synchDelayThresholdNegative = -0.03;\n const maxGap = 4;\n const seekAhead = 0.25; // s\n\n if (this._secondaryPlayer) {\n let doSeek = false;\n const synchDelay = this._getSyncDelay();\n this._logger.debug(`mediaSync :: synchDelay is ${synchDelay}`);\n let playbackRateChange = 0;\n const adaptivePlaybackRate = Math.round(Math.abs(synchDelay) * 100) / 100;\n if (synchDelay > synchDelayThresholdPositive) {\n playbackRateChange = -1 * adaptivePlaybackRate;\n } else if (synchDelay < synchDelayThresholdNegative) {\n playbackRateChange = adaptivePlaybackRate;\n }\n if (playbackRateChange !== 0) {\n if (Math.abs(synchDelay) < maxGap) {\n // @ts-ignore\n let newPlaybackRate = this._mainPlayer.playbackRate + playbackRateChange;\n if (newPlaybackRate < MIN_PLAYBACK_RATE) {\n newPlaybackRate = MIN_PLAYBACK_RATE;\n }\n this._logger.debug(`mediaSync :: Adjusting slave playbackRateChange = ${newPlaybackRate}`);\n // set a slower playback rate for the video to let the master video catch up\n // @ts-ignore\n this._secondaryPlayer.playbackRate = newPlaybackRate;\n } else {\n this._logger.debug('mediaSync :: Adjusting secondary player playbackRateChange to main player and flagging for seek');\n // set playback rate back to normal\n // @ts-ignore\n this._secondaryPlayer.playbackRate = this._mainPlayer.playbackRate;\n // mark for seeking\n doSeek = true;\n }\n }\n // everything is fine\n else if (!this._mainPlayer.paused) {\n // @ts-ignore\n if (this._secondaryPlayer.playbackRate !== this._mainPlayer.playbackRate) {\n this._logger.debug('mediaSync :: Main player and secondary player sync, adjusting secondary player playback rate to main player rate');\n // set playback rate back to normal\n // @ts-ignore\n this._secondaryPlayer.playbackRate = this._mainPlayer.playbackRate;\n }\n if (this._secondaryPlayer.paused) {\n // play the video\n this._secondaryPlayer.play();\n }\n }\n\n // if marked for seeking\n if (doSeek) {\n // @ts-ignore\n this._logger.debug(`mediaSync :: Seeking secondary player to ${this._mainPlayer.currentTime + seekAhead}`);\n this._seekSecondaryPlayer(seekAhead);\n }\n }\n };\n\n private _getSyncDelay = () => {\n // @ts-ignore\n const ctMaster = this._mainPlayer.currentTime; // current time in seconds\n // @ts-ignore\n const ct = this._secondaryPlayer.currentTime; // current time in seconds\n const syncGap = 0; // s\n if (ctMaster != -1 && ct != -1 && !isInInterval(ct, ctMaster - syncGap, ctMaster)) {\n return ct - ctMaster; // time difference\n }\n return 0; // delay is acceptable\n };\n\n private _seekSecondaryPlayer = (aheadTime: number = 0) => {\n // @ts-ignore\n const seekTime = this._mainPlayer.currentTime < 0 ? 0 : this._mainPlayer.currentTime;\n // @ts-ignore\n if (this._secondaryPlayer.ended && this._secondaryPlayer.duration && Math.ceil(seekTime) > this._secondaryPlayer.duration) {\n // trying to seek out of bounds after secondary Player already ended\n // pause secondary Player\n // @ts-ignore\n this._logger.debug(`seekSecondaryPlayer :: seekTime ${seekTime} is out of bounds 0..${this._secondaryPlayer.duration}. pause secondary player`);\n this._secondaryPlayer.pause();\n return;\n }\n this._logger.debug(`seekSecondaryPlayer :: seeking to=${seekTime}, ahead=${aheadTime}`);\n // @ts-ignore\n this._secondaryPlayer.currentTime = seekTime + aheadTime;\n if (this._mainPlayer.paused) {\n this._secondaryPlayer.pause();\n } else {\n this._secondaryPlayer.play();\n }\n };\n}\n","module.exports = KalturaPlayer;","module.exports = KalturaPlayer.ui.preact;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/// <reference path=\"./global.d.ts\" />\n\nimport {DualScreen} from './dualscreen';\n\ndeclare var __VERSION__: string;\ndeclare var __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport {DualScreen as Plugin};\nexport {VERSION, NAME};\n\nconst pluginName: string = 'dualscreen';\nKalturaPlayer.core.registerPlugin(pluginName, DualScreen);\n"],"names":["extendStatics","__extends","this","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","defineProperty","exports","value","Button","ButtonType","ButtonSize","preact_1","classnames","kaltura_player_js_1","a11y_wrapper_1","icon_1","styles","Tooltip","ui","Components","_super","_this","buttonRef","createRef","renderButton","_a","props","classNames","button","size","type","className","disabled","withIcon","children","icon","iconOnly","buttonProps","ref","tabIndex","ariaLabel","testId","buttonContent","h","Fragment","Icon","name","IconSize","onClick","A11yWrapper","componentDidMount","focusOnMount","current","focus","render","tooltip","tooltipProps","label","Component","defaultProps","medium","primary","isKeyboardEvent","utils","KeyMap","ENTER","SPACE","UP","DOWN","LEFT","RIGHT","stopEvent","e","preventDefault","stopPropagation","KeyboardEvent","offsetX","offsetY","every","offset","onUpKeyPressed","onDownKeyPressed","onLeftKeyPressed","onRightKeyPressed","role","onKeyDown","keyCode","cloneElement","Add","width","height","viewBox","fill","xmlns","Close","Download","Expand","Icons","close_1","print_1","download_1","related_1","message_1","share_1","more_1","quiz_1","switch_1","add_1","minimizedVideo_1","pictureInPicture_1","expand_1","close","print","Print","download","related","Related","message","Message","share","Share","more","More","quiz","QuizIcon","switch","Switch","add","minimizedVideo","MinimizedVideo","pictureInPicture","PictureInPicture","expand","icons_1","iconWrapper","debounce","getQnaUserId","getUserId","generateId","Date","getTime","toString","Math","random","slice","generateNumberedId","uuid","numStr","char","charAt","Number","isNaN","charCodeAt","Storage","_generateAnonymousUserId","anonymousUserId","localStorage","getItem","setItem","concat","player","_b","_c","_d","_e","config","plugins","session","userRole","qna","userId","func","waitMilliseconds","options","timeoutId","isImmediate","args","_i","shouldCallNow","undefined","clearTimeout","setTimeout","hasOwn","classes","arg","argType","push","isArray","inner","includes","key","join","module","default","___CSS_LOADER_EXPORT___","id","locals","cssWithMappingToString","list","map","item","content","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","api","__esModule","memo","getTarget","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","index","obj","css","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","Boolean","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","bind","parentNode","removeStyleElement","newObj","all","atob","lastIdentifiers","newList","newLastIdentifiers","_index","splice","DragEvents","connect","KalturaPlayer","PRE_PLAYBACK_POSITION","mapStateToProps","state","prePlayback","engine","_draggableTargetRef","_draggableItemRef","_draggableAreaRef","_currMousePos","x","y","_throttleWait","isDragging","_renderChildComponent","setDraggableTarget","_setDraggableTarget","targetEl","_addListeners","_handleChangePosition","position","_setAbsoluteStyles","onPositionChanged","_onStartDrag","getPosition","setState","eventManager","listen","MouseDown","_startDrag","MouseMove","MouseUp","TouchStart","unlisten","TouchMove","TouchEnd","_moveDrag","event","deltaMousePosX","getClientX","deltaMousePosY","getClientY","parseInt","top","right","dimensionStyleToString","_getBoundingClientRects","getBoundingClientRect","_applyRelativeStyles","bottom","left","_setRelativeStyles","Position","BottomRight","_setRelativeBottomRightStyles","BottomLeft","_setRelativeBottomLeftStyles","TopRight","_setRelativeTopRightStyles","TopLeft","_setRelativeTopLeftStyles","_applyAbsoluteStyles","_setAbsoluteBottomRightStyles","_setAbsoluteBottomLeftStyles","_setAbsoluteTopRightStyles","_setAbsoluteTopLeftStyles","draggableItemBoundClientRect","draggableAreaBoundClientRect","_stopDrag","draggableContainerCenterX","draggableContainerCenterY","guiClientCenterX","guiClientCenterY","componentWillUnmount","moveEventName","endEventName","listenOnce","draggableItemStyles","draggableItem","dragging","draggableArea","onTransitionEnd","DragAndSnapManager","components","withEventManager","Event","preacti18n","withText","Text","CLOSE_EVENT","translates","multiscreenLabel","switchScreen","switchToSecondary","switchToPrimary","focusOnMultiscreenButton","_multiscreenPlayersRefs","_multiscreenPlayersWrapperRef","isOpen","xPosition","_attachVideoElements","videoElement","players","getVideoElement","prepend","_closePupup","_openPopup","_handleClick","byKeyboard","getParentRef","dispatchEvent","_handleLayoutChange","cb","parentRef","componentDidUpdate","previousProps","previousState","sbsLayout","parentLeftPostion","rightShift","popoverMenuButton","active","borderless","multiscreenWrapper","multiscreenPlayersWrapper","visible","multiscreenPlayer","multiscreenButtonsWrapper","setPrimary","setSecondary","Multiscreen","showLabel","showAriaLabel","_renderHoverButton","show","hideButtons","focusOnButton","showContainer","ButtonsEnum","Show","translucent","iconContainer","icons","SmallSize","path","SHOW_ICON_PATH","childPlayerContainer","childPlayer","tinyChildPlayer","innerButtons","tinyInnerButtons","SwitchScreen","PipMinimized","redux","reducers","layout","sideBySide","Layout","PIP","hideLabel","hideAriaLabel","showUi","shell","playerHover","playerNav","playerHeight","guiClientRect","playerContainerRef","pipContainerRef","_renderInnerButtons","onSideBySideSwitch","onInversePIP","multiscreen","portrait","verticalPlayer","buttonWrapper","SideBySide","_renderHideButton","hide","hideContainer","Hide","HIDE_ICON_PATH","styleClass","animation","Animations","Fade","animatedFade","ScaleRight","animatedScaleRight","ScaleLeft","animatedScaleLeft","playerSizePercentage","aspectRatio","playerContainerStyles","playerWrapper","playerContainer","bindActions","actions","PipChild","videoContainerRef","videoContainer","parentPlayer","PipParent","PLAYER_SIZE","HIDE_BUTTON_MODES","EXTRA_SMALL","SMALL","TINY","MIN_SIZES","playerSize","onMinSize","prevProps","onDefaultSize","ResponsiveManager","sbsWrapperRef","leftSideProps","rightSideProps","onSizeChange","sideBySideWrapper","streamMode","StreamMode","Primary","Secondary","SideBySideWrapper","expandScreen","playerWidth","onExpand","animatedScale","EventType","core","plugin","dispatcher","_isActive","_plugin","_dispatcher","SEEKING","secondaryPlayer","src","SEEKED","ended","getActiveDualScreenPlayer","PlayerContainers","secondary","PlayerType","VIDEO","DualScreenEngineDecorator","HAS_DUAL_SCREEN_PLUGIN_OVERLAY","PRESETS","IMAGE_PLAYER_ID","MAIN_PLAYER_ID","_externalLayout","_pipPosition","_removeActivesArr","_playbackEnded","_resolveReadyPromise","_pipPortraitMode","_undoRemoveSettings","_dualScreenPlayers","_currentMultiscreenPlayers","_removeSettingsComponent","removeSettings","presets","container","ReservedPresetAreas","BottomBarRightControls","get","Remove","replaceComponent","Settings","displayName","addComponent","_makeReadyPromise","Promise","res","getDualScreenPlayer","find","dualScreenPlayer","_setActiveDualScreenPlayer","resetPlayer","none","_getMultiscreenPlayers","IMAGE","_makeMultiscreenPlayers","multiscreenPlayers","invert","_layout","_setMode","_applyInverse","force","_switchToPIP","PIPInverse","SingleMedia","_switchToSingleMedia","SingleMediaInverse","_switchToSideBySide","SideBySideInverse","Hidden","_switchToHidden","logger","warn","_setDefaultMode","configLayouts","_setPipPosition","getPipPosition","dispatch","removePlayerClass","_removeActives","_originalVideoElementParent","None","imagePlayer","_setPipPortraitMode","_addActives","VideoContainer","InteractiveArea","childSizePercentage","getValueOrUndefined","childAspectRatio","BottomBar","_onActiveSlideChanged","slideItem","originalHiddenLayout","_applyExternalLayout","portraitModeChanged","refreshMultiscreen","ImagePlayer","removePlayerSettings","_onSlideViewChanged","viewChange","primaryPlayer","_checkPlayerContainers","inverse","_applyPlayerContainers","ExternalLayout","_readyPromise","getEngineDecorator","loadMedia","slidesPreloadEnabled","_addBindings","kalturaCuePointService","getService","_getSecondaryMedia","registerTypes","CuepointType","SLIDE","VIEW_CHANGE","_imageSyncManager","ImageSyncManager","reset","destroy","_removeSecondaryPlaceholder","targetId","removeAll","secondaryPlaceholderEl","getElementById","body","PLAYBACK_ENDED","FIRST_PLAY","parentElement","PLAY","addPlayerClass","removeActives","provider","doRequest","loader","SecondaryMediaLoader","params","parentEntryId","sources","then","has","secondaryMediaLoader","secondaryMedias","response","entries","mediaEntry","kalturaPlayer","_createSecondaryPlayer","VideoSyncManager","CHANGE_SOURCE_ENDED","FIRST_PLAYING","debug","trace","catch","error","entryId","secondaryPlaceholder","hidden","secondaryPlayerConfig","disableUserCache","playback","muted","autoplay","disable","ignoreServerConfig","setup","ks","isAnonymous","isValid","secondaryVideoWidth","videoWidth","secondaryVideoHeight","videoHeight","defaultConfig","BasePlugin","DualScreen","ViewModeLockState","MediumSize","onActiveChanged","preloadEnabled","_images","_activeImage","_preloadEnabled","preLoadImages","isPreloadingActive","some","slide","loading","preloadCandidate","_isSlideItemPreloded","_preLoadImage","nextPreloadCandidate","addImage","setReadyFn","readyPromise","setReady","loaded","retryAttempts","ready","setActive","activeId","_imagePlayer","_onActiveChange","_retryTimeout","imageUrl","_createImagePlayer","img","alt","classList","dataset","testid","Image","onload","onerror","TimedMetadata","mainPlayer","onSlideViewChanged","_firstPlaying","_lock","_syncEvents","_eventManager","_mainPlayer","TIMED_METADATA_CHANGE","_onTimedMetadataChange","TIMED_METADATA_ADDED","_onTimedMetadataAdded","_onFirstPlaying","reduce","acc","cue","_isSlideCuePoint","activeSlide","metadata","cuePointType","_kalturaCuePointService","KalturaCuePointType","CODE","tags","partnerData","playerViewModeId","viewModeLockState","externalLayout","Locked","_debouncedSetActive","cues","assetUrl","title","description","_logger","TYPE","CUE_POINT","THUMB","subType","KalturaThumbCuePointSubType","providers","RequestBuilder","ResponseTypes","_parentEntryId","_requests","_response","headers","Map","request","service","action","objectType","parentEntryIdEqual","typeIn","KalturaMediaEntry","MediaType","responseProfile","fields","requests","mediaEntryListResponse","KalturaBaseEntryListResponse","totalCount","isInInterval","num","lower","upper","MouseEvent","clientX","changedTouches","clientY","condition","FakeEvent","StateType","_isSyncDelay","_errorHandling","_secondaryPlayer","ERROR","Severity","CRITICAL","Category","PLAYER","Code","VIDEO_ERROR","pause","lastSync","play","PAUSE","isLive","isDvr","VIDEO_TRACK_CHANGED","_debouncedSeekSecondaryPlayer","TIME_UPDATE","now","paused","_mediaSync","ENDED","_seekSecondaryPlayer","PLAYER_STATE_CHANGED","payload","newState","BUFFERING","seeking","PLAYING","oldState","doSeek","synchDelay","_getSyncDelay","playbackRateChange","adaptivePlaybackRate","round","abs","newPlaybackRate","playbackRate","currentTime","ctMaster","ct","aheadTime","seekTime","duration","ceil","preact","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","a","definition","o","enumerable","prop","r","Symbol","toStringTag","nc","VERSION","NAME","registerPlugin"],"sourceRoot":""}
1
+ {"version":3,"file":"playkit-dual-screen.js","mappings":"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","sources":["./dualscreen/../node_modules/@playkit-js/common/dist/components/button/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/hoc/a11y-wrapper/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/add.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/close.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/download.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/expand.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/message.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/minimizedVideo.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/more.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/pictureInPicture.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/print.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/quiz.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/related.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/share.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icons/switch.js","./dualscreen/../node_modules/@playkit-js/common/dist/icon/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/utils-common/utils.js","./dualscreen/../node_modules/classnames/index.js","./dualscreen/../node_modules/@playkit-js/common/dist/components/button/Button.scss","./dualscreen/../node_modules/@playkit-js/common/dist/icon/icon.scss","./dualscreen/./components/drag-and-snap-manager/drag-and-snap-manager.scss","./dualscreen/./components/multiscreen/multiscreen.scss","./dualscreen/./components/pip-minimized/pip-minimized.scss","./dualscreen/./components/pip/pip.scss","./dualscreen/./components/side-by-side/side-by-side.scss","./dualscreen/./image-player/image-player.scss","./dualscreen/./styles/global.scss","./dualscreen/../node_modules/css-loader/dist/runtime/api.js","./dualscreen/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://KalturaPlayer.plugins.dualscreen/../node_modules/@playkit-js/common/dist/components/button/Button.scss?6bdc","webpack://KalturaPlayer.plugins.dualscreen/../node_modules/@playkit-js/common/dist/icon/icon.scss?f778","webpack://KalturaPlayer.plugins.dualscreen/./components/drag-and-snap-manager/drag-and-snap-manager.scss?74d3","webpack://KalturaPlayer.plugins.dualscreen/./components/multiscreen/multiscreen.scss?24ff","webpack://KalturaPlayer.plugins.dualscreen/./components/pip-minimized/pip-minimized.scss?b562","webpack://KalturaPlayer.plugins.dualscreen/./components/pip/pip.scss?29d1","webpack://KalturaPlayer.plugins.dualscreen/./components/side-by-side/side-by-side.scss?78e8","webpack://KalturaPlayer.plugins.dualscreen/./image-player/image-player.scss?eaa3","webpack://KalturaPlayer.plugins.dualscreen/./styles/global.scss?e9e0","./dualscreen/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","./dualscreen/./components/drag-and-snap-manager/drag-and-snap-manager.tsx","./dualscreen/./components/drag-and-snap-manager/index.ts","./dualscreen/./components/multiscreen/index.ts","./dualscreen/./components/multiscreen/multiscreen.tsx","./dualscreen/./components/pip-minimized/index.ts","./dualscreen/./components/pip-minimized/pip-minimized.tsx","./dualscreen/./components/pip/index.ts","./dualscreen/./components/pip/pip-child.tsx","./dualscreen/./components/pip/pip-parent.tsx","./dualscreen/./components/responsive-manager/index.ts","./dualscreen/./components/responsive-manager/responsive-manager.tsx","./dualscreen/./components/side-by-side/side-by-side-wrapper.tsx","./dualscreen/./components/side-by-side/side-by-side.tsx","./dualscreen/./dualscreen-engine-decorator.ts","./dualscreen/./dualscreen.tsx","./dualscreen/./enums/animation.ts","./dualscreen/./enums/buttons.ts","./dualscreen/./enums/index.ts","./dualscreen/./enums/layoutEnum.ts","./dualscreen/./enums/players.ts","./dualscreen/./enums/reservedPresetAreasEnum.ts","./dualscreen/./icons.ts","./dualscreen/./image-player/image-player.tsx","./dualscreen/./image-player/index.ts","./dualscreen/./image-sync-manager.ts","./dualscreen/./providers/secondary-media-loader.ts","./dualscreen/./utils/index.ts","./dualscreen/./video-sync-manager.ts","./dualscreen/external root \"KalturaPlayer\"","./dualscreen/external root \"KalturaPlayer.ui.preact\"","./dualscreen/webpack/bootstrap","./dualscreen/webpack/runtime/compat get default export","./dualscreen/webpack/runtime/define property getters","./dualscreen/webpack/runtime/hasOwnProperty shorthand","./dualscreen/webpack/runtime/make namespace object","./dualscreen/webpack/runtime/nonce","./dualscreen/./index.ts"],"sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Button = exports.ButtonType = exports.ButtonSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar a11y_wrapper_1 = require(\"../../hoc/a11y-wrapper\");\nvar icon_1 = require(\"../../icon\");\nvar styles = require(\"./Button.scss\");\nvar Tooltip = kaltura_player_js_1.ui.Components.Tooltip;\nvar ButtonSize;\n(function (ButtonSize) {\n ButtonSize[\"small\"] = \"small\";\n ButtonSize[\"medium\"] = \"medium\";\n ButtonSize[\"large\"] = \"large\";\n})(ButtonSize = exports.ButtonSize || (exports.ButtonSize = {}));\nvar ButtonType;\n(function (ButtonType) {\n ButtonType[\"primary\"] = \"primary\";\n ButtonType[\"danger\"] = \"danger\";\n ButtonType[\"translucent\"] = \"translucent\";\n ButtonType[\"borderless\"] = \"borderless\";\n})(ButtonType = exports.ButtonType || (exports.ButtonType = {}));\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buttonRef = (0, preact_1.createRef)();\n _this.renderButton = function () {\n var _a;\n var props = _this.props;\n var classNames = classnames(styles.button, styles[props.size], styles[props.type], props.className, (_a = {},\n _a[styles.disabled] = props.disabled,\n _a[styles.withIcon] = props.children && props.icon,\n _a[styles.iconOnly] = !props.children && props.icon,\n _a));\n var buttonProps = __assign(__assign({ ref: _this.buttonRef, disabled: props.disabled, 'aria-disabled': props.disabled, tabIndex: props.tabIndex, className: classNames }, (props.ariaLabel ? { 'aria-label': props.ariaLabel } : {})), (props.testId ? { 'data-testid': props.testId } : {}));\n var buttonContent = ((0, preact_1.h)(\"button\", __assign({}, buttonProps),\n (0, preact_1.h)(preact_1.Fragment, null,\n props.icon && (0, preact_1.h)(icon_1.Icon, { name: props.icon, size: icon_1.IconSize[props.size] }),\n props.children && (0, preact_1.h)(\"span\", null, props.children))));\n return props.onClick ? (0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: props.onClick }, buttonContent) : buttonContent;\n };\n return _this;\n }\n Button.prototype.componentDidMount = function () {\n var _a;\n if (this.props.focusOnMount)\n (_a = this.buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n };\n Button.prototype.render = function (props) {\n if (props.tooltip) {\n var tooltipProps = __assign(__assign({ label: props.tooltip.label }, (props.tooltip.type ? { type: props.tooltip.type } : {})), (props.tooltip.className ? { classNames: props.tooltip.className } : {}));\n return (0, preact_1.h)(Tooltip, __assign({}, tooltipProps), this.renderButton());\n }\n return this.renderButton();\n };\n return Button;\n}(preact_1.Component));\nexports.Button = Button;\nButton.defaultProps = {\n disabled: false,\n focusOnMount: false,\n tabIndex: 0,\n children: null,\n size: ButtonSize.medium,\n icon: null,\n type: ButtonType.primary\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.A11yWrapper = exports.isKeyboardEvent = void 0;\nvar preact_1 = require(\"preact\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar _a = kaltura_player_js_1.ui.utils.KeyMap, ENTER = _a.ENTER, SPACE = _a.SPACE, UP = _a.UP, DOWN = _a.DOWN, LEFT = _a.LEFT, RIGHT = _a.RIGHT;\nvar stopEvent = function (e) {\n e.preventDefault();\n e.stopPropagation();\n};\nvar isKeyboardEvent = function (e) {\n // space/enter keyEvent is swallowed by NVDA (https://github.com/nvaccess/nvda/issues/7898)\n // check offsetX and offsetY to define keyboard event triggered by NVDA\n return e instanceof KeyboardEvent || [e.offsetX, e.offsetY].every(function (offset) { return offset === 0; });\n};\nexports.isKeyboardEvent = isKeyboardEvent;\nvar A11yWrapper = function (_a) {\n var children = _a.children, onClick = _a.onClick, onUpKeyPressed = _a.onUpKeyPressed, onDownKeyPressed = _a.onDownKeyPressed, onLeftKeyPressed = _a.onLeftKeyPressed, onRightKeyPressed = _a.onRightKeyPressed, role = _a.role, type = _a.type;\n var props = {\n onKeyDown: function (e) {\n if (e.keyCode === SPACE || e.keyCode === ENTER) {\n stopEvent(e);\n onClick(e, true);\n }\n else if (e.keyCode === UP && onUpKeyPressed) {\n stopEvent(e);\n onUpKeyPressed(e);\n }\n else if (e.keyCode === DOWN && onDownKeyPressed) {\n stopEvent(e);\n onDownKeyPressed(e);\n }\n else if (e.keyCode === LEFT && onLeftKeyPressed) {\n stopEvent(e);\n onLeftKeyPressed(e);\n }\n else if (e.keyCode === RIGHT && onRightKeyPressed) {\n stopEvent(e);\n onRightKeyPressed(e);\n }\n },\n onClick: function (e) {\n e.stopPropagation();\n onClick(e, (0, exports.isKeyboardEvent)(e));\n },\n role: role\n };\n if (children.type === 'button') {\n props.type = type || 'button';\n }\n return (0, preact_1.cloneElement)(children, props);\n};\nexports.A11yWrapper = A11yWrapper;\nexports.A11yWrapper.defaultProps = {\n role: 'button'\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Add = void 0;\nvar preact_1 = require(\"preact\");\nvar Add = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M21.8083 4C22.4665 4 23 4.55964 23 5.25V18.75C23 19.4404 22.4665 20 21.8083 20H2.19167C1.53353 20 1 19.4404 1 18.75V5.25C1 4.55964 1.53353 4 2.19167 4H21.8083ZM15 6H3V18H15V6ZM12.999 8.967L13 9L12.998 8.94L12.999 8.967L13 9V15C13 15.5523 12.5523 16 12 16C11.4872 16 11.0645 15.614 11.0067 15.1166L11 15V11.414L6.70711 15.7071C6.34662 16.0676 5.77939 16.0953 5.3871 15.7903L5.29289 15.7071C4.93241 15.3466 4.90468 14.7794 5.2097 14.3871L5.29289 14.2929L9.584 10H6C5.48716 10 5.06449 9.61396 5.00673 9.11662L5 9C5 8.44772 5.44772 8 6 8L12.0193 8.00018C12.0427 8.00063 12.066 8.00189 12.0893 8.00397C12.1097 8.00575 12.1294 8.0081 12.149 8.01102C12.1659 8.01363 12.1834 8.0167 12.2007 8.02024C12.2227 8.02464 12.2444 8.02983 12.2658 8.03572C12.2815 8.0401 12.2969 8.04473 12.3121 8.04974C12.3318 8.05612 12.3516 8.06332 12.3711 8.0711L12.4232 8.09367C12.4439 8.10338 12.4643 8.11379 12.4843 8.12488C12.4964 8.1315 12.5086 8.13861 12.5207 8.146C12.5463 8.16172 12.5711 8.17849 12.5952 8.19631L12.6525 8.24221L12.6167 8.21279C12.6802 8.26255 12.7374 8.31982 12.7872 8.38325C12.7927 8.39016 12.7982 8.3974 12.8037 8.40469C12.8215 8.42887 12.8383 8.45372 12.8539 8.47934L12.8753 8.51594C12.8862 8.53571 12.8966 8.55611 12.9063 8.5769L12.9288 8.62866C12.9367 8.64842 12.9439 8.6682 12.9505 8.68826C12.9553 8.70315 12.9599 8.71854 12.9642 8.73401C12.9702 8.75556 12.9754 8.77725 12.9798 8.79921C12.9833 8.81662 12.9864 8.83405 12.989 8.85153L12.9972 8.92482L12.998 8.94L12.999 8.967Z\", fill: \"white\" }))); };\nexports.Add = Add;\n//# sourceMappingURL=add.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Close = void 0;\nvar preact_1 = require(\"preact\");\nvar Close = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M11.6592 10.245L6.70483 5.29061C6.31701 4.9028 5.68581 4.90476 5.29528 5.29528C4.90204 5.68853 4.90267 6.31688 5.29061 6.70483L10.245 11.6592L5.29061 16.6137C4.9028 17.0015 4.90476 17.6327 5.29528 18.0232C5.68853 18.4165 6.31688 18.4158 6.70483 18.0279L11.6592 13.0735L16.6137 18.0279C17.0015 18.4157 17.6327 18.4137 18.0232 18.0232C18.4165 17.63 18.4158 17.0016 18.0279 16.6137L13.0735 11.6592L18.0279 6.70483C18.4157 6.31701 18.4137 5.68581 18.0232 5.29528C17.63 4.90204 17.0016 4.90267 16.6137 5.29061L11.6592 10.245Z\", fill: \"white\" }))); };\nexports.Close = Close;\n//# sourceMappingURL=close.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Download = void 0;\nvar preact_1 = require(\"preact\");\nvar Download = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.5 6C17.5 5.44772 17.0523 5 16.5 5L16.3834 5.00673C15.886 5.06449 15.5 5.48716 15.5 6L15.4997 17.693L9.71029 12.2702C9.30721 11.8926 8.67439 11.9133 8.29683 12.3164C7.91928 12.7195 7.93998 13.3523 8.34306 13.7298L15.8164 20.7298C15.8212 20.7343 15.826 20.7387 15.8308 20.7431L15.8164 20.7298L15.9035 20.8027C15.9034 20.8026 15.9037 20.8028 15.9035 20.8027C15.9135 20.8101 15.9231 20.817 15.9333 20.824C15.956 20.8397 15.9793 20.8544 16.0038 20.8684C16.0148 20.8747 16.0259 20.8808 16.0366 20.8864C16.0596 20.8984 16.0832 20.9096 16.1077 20.9201C16.1223 20.9263 16.1371 20.9322 16.1515 20.9376C16.1769 20.947 16.2028 20.9555 16.2299 20.963C16.2399 20.9658 16.25 20.9684 16.2595 20.9709C16.3365 20.9899 16.4171 21 16.5 21C16.5804 21 16.6585 20.9905 16.7336 20.9725C16.7521 20.968 16.7706 20.963 16.7889 20.9576C16.8097 20.9514 16.8303 20.9444 16.8507 20.9367C16.8632 20.932 16.8756 20.9271 16.8878 20.922C16.9121 20.9118 16.936 20.9006 16.9596 20.8883C16.9735 20.8812 16.9872 20.8736 17.0007 20.8658C17.0223 20.8533 17.0434 20.84 17.0636 20.8262C17.0764 20.8174 17.0891 20.8083 17.1021 20.7985C17.1224 20.7831 17.1422 20.767 17.161 20.7504C17.1685 20.7437 17.176 20.737 17.1834 20.7301L24.6619 13.7301C25.0651 13.3527 25.086 12.7198 24.7086 12.3166L24.6172 12.2304C24.2352 11.9126 23.6674 11.9215 23.2952 12.2699L17.4997 17.694L17.5 6Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M27 26C27 26.5523 26.5523 27 26 27H7C6.44772 27 6 26.5523 6 26C6 25.4477 6.44772 25 7 25H26C26.5523 25 27 25.4477 27 26Z\", fill: \"white\" }))); };\nexports.Download = Download;\n//# sourceMappingURL=download.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Expand = void 0;\nvar preact_1 = require(\"preact\");\nvar Expand = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M20.997 3.924L20.998 3.945L20.999 3.98L21 4V10C21 10.5523 20.5523 11 20 11C19.4872 11 19.0645 10.614 19.0067 10.1166L19 10V6.416L14.7071 10.7071C14.3466 11.0676 13.7794 11.0953 13.3871 10.7903L13.2929 10.7071C12.9324 10.3466 12.9047 9.77939 13.2097 9.3871L13.2929 9.29289L17.586 5H14C13.4872 5 13.0645 4.61396 13.0067 4.11662L13 4C13 3.48716 13.386 3.06449 13.8834 3.00673L14 3L20.0332 3.00054C20.0503 3.00109 20.0683 3.00216 20.0862 3.0037C20.1079 3.00553 20.1285 3.00797 20.149 3.01102C20.166 3.01363 20.1834 3.0167 20.2007 3.02024C20.2227 3.02464 20.2444 3.02983 20.2658 3.03572C20.2815 3.0401 20.2969 3.04473 20.3121 3.04974C20.3318 3.05612 20.3516 3.06332 20.3711 3.0711L20.4232 3.09367C20.4439 3.10338 20.4643 3.11379 20.4843 3.12488C20.4964 3.1315 20.5086 3.13861 20.5207 3.146C20.5463 3.16172 20.5711 3.17849 20.5952 3.19631L20.6525 3.24221L20.6168 3.21279C20.6802 3.26255 20.7374 3.31982 20.7872 3.38325C20.7927 3.39016 20.7982 3.3974 20.8037 3.40469C20.8215 3.42887 20.8383 3.45373 20.8539 3.47934L20.8753 3.51594C20.8862 3.53571 20.8966 3.55611 20.9063 3.5769L20.9288 3.62866C20.9367 3.64842 20.9439 3.6682 20.9505 3.68826C20.9553 3.70315 20.9599 3.71854 20.9642 3.73401C20.9702 3.75556 20.9754 3.77725 20.9798 3.79921C20.9833 3.81662 20.9864 3.83405 20.989 3.85153L20.996 3.91075L20.996 3.919L20.997 3.921V3.924ZM3.002 20.059V20.071L3.00175 20.0593C3.00122 20.0503 3.00081 20.0413 3.00052 20.0323L3 14C3 13.4477 3.44772 13 4 13C4.51284 13 4.93551 13.386 4.99327 13.8834L5 14V17.586L9.29289 13.2929C9.65338 12.9324 10.2206 12.9047 10.6129 13.2097L10.7071 13.2929C11.0676 13.6534 11.0953 14.2206 10.7903 14.6129L10.7071 14.7071L6.416 19H10C10.5128 19 10.9355 19.386 10.9933 19.8834L11 20C11 20.5128 10.614 20.9355 10.1166 20.9933L10 21H4C3.99354 21 3.98709 20.9999 3.98066 20.9998C3.95732 20.9994 3.93401 20.9981 3.91075 20.996C3.89031 20.9943 3.87058 20.9919 3.85104 20.989C3.83405 20.9864 3.81662 20.9833 3.79927 20.9798C3.77725 20.9754 3.75556 20.9702 3.73416 20.9643C3.71854 20.9599 3.70315 20.9553 3.68786 20.9503C3.6682 20.9439 3.64842 20.9367 3.62894 20.9289L3.57678 20.9063C3.55611 20.8966 3.53571 20.8862 3.51572 20.8751C3.50361 20.8685 3.49139 20.8614 3.47929 20.854C3.45373 20.8383 3.42887 20.8215 3.40484 20.8037L3.34745 20.7578L3.38325 20.7872C3.31982 20.7374 3.26255 20.6802 3.21279 20.6168C3.20728 20.6098 3.20175 20.6026 3.19633 20.5953C3.17849 20.5711 3.16172 20.5463 3.14607 20.5207L3.12467 20.4841C3.11379 20.4643 3.10338 20.4439 3.09365 20.4231L3.07123 20.3713C3.06332 20.3516 3.05612 20.3318 3.04955 20.3117C3.04473 20.2969 3.0401 20.2815 3.03585 20.266C3.02983 20.2444 3.02464 20.2227 3.02017 20.2008C3.0167 20.1834 3.01363 20.1659 3.01102 20.1485L3.0037 20.0862L3.002 20.059Z\", fill: \"white\" }))); };\nexports.Expand = Expand;\n//# sourceMappingURL=expand.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icons = void 0;\nvar close_1 = require(\"./close\");\nvar print_1 = require(\"./print\");\nvar download_1 = require(\"./download\");\nvar related_1 = require(\"./related\");\nvar message_1 = require(\"./message\");\nvar share_1 = require(\"./share\");\nvar more_1 = require(\"./more\");\nvar quiz_1 = require(\"./quiz\");\nvar switch_1 = require(\"./switch\");\nvar add_1 = require(\"./add\");\nvar minimizedVideo_1 = require(\"./minimizedVideo\");\nvar pictureInPicture_1 = require(\"./pictureInPicture\");\nvar expand_1 = require(\"./expand\");\nexports.Icons = {\n close: close_1.Close,\n print: print_1.Print,\n download: download_1.Download,\n related: related_1.Related,\n message: message_1.Message,\n share: share_1.Share,\n more: more_1.More,\n quiz: quiz_1.QuizIcon,\n switch: switch_1.Switch,\n add: add_1.Add,\n minimizedVideo: minimizedVideo_1.MinimizedVideo,\n pictureInPicture: pictureInPicture_1.PictureInPicture,\n expand: expand_1.Expand\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Message = void 0;\nvar preact_1 = require(\"preact\");\nvar Message = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M25 5C27.2091 5 29 6.75035 29 8.90952V18.6833C29 20.8425 27.2091 22.5928 25 22.5928H14.985L10.7019 26.7188C10.546 26.8689 10.3449 26.9641 10.1302 26.9917L10 27C9.44772 27 9 26.5624 9 26.0226V22.5928H7C4.79086 22.5928 3 20.8425 3 18.6833V8.90952C3 6.75035 4.79086 5 7 5H25ZM25 6.95476H7C5.89543 6.95476 5 7.82994 5 8.90952V18.6833C5 19.7629 5.89543 20.6381 7 20.6381H11V23.687L14.1651 20.6381H25C26.1046 20.6381 27 19.7629 27 18.6833V8.90952C27 7.82994 26.1046 6.95476 25 6.95476ZM19 14.7738C19.5523 14.7738 20 15.2114 20 15.7512C20 16.291 19.5523 16.7286 19 16.7286H10C9.44772 16.7286 9 16.291 9 15.7512C9 15.2114 9.44772 14.7738 10 14.7738H19ZM23 10.8643C23.5523 10.8643 24 11.3019 24 11.8417C24 12.3815 23.5523 12.819 23 12.819H10C9.44772 12.819 9 12.3815 9 11.8417C9 11.3019 9.44772 10.8643 10 10.8643H23Z\", fill: \"white\" }))); };\nexports.Message = Message;\n//# sourceMappingURL=message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MinimizedVideo = void 0;\nvar preact_1 = require(\"preact\");\nvar MinimizedVideo = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M5.25 4.5H18.75C19.9926 4.5 21 5.50736 21 6.75V17.25C21 18.4926 19.9926 19.5 18.75 19.5H5.25C4.00736 19.5 3 18.4926 3 17.25V6.75C3 5.50736 4.00736 4.5 5.25 4.5ZM5.25 6C4.83579 6 4.5 6.33579 4.5 6.75V17.25C4.5 17.6642 4.83579 18 5.25 18H18.75C19.1642 18 19.5 17.6642 19.5 17.25V6.75C19.5 6.33579 19.1642 6 18.75 6H5.25ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.MinimizedVideo = MinimizedVideo;\n//# sourceMappingURL=minimizedVideo.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.More = void 0;\nvar preact_1 = require(\"preact\");\nvar More = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M8 12C8 13.1046 7.10457 14 6 14C4.89543 14 4 13.1046 4 12C4 10.8954 4.89543 10 6 10C7.10457 10 8 10.8954 8 12ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12ZM20 12C20 13.1046 19.1046 14 18 14C16.8954 14 16 13.1046 16 12C16 10.8954 16.8954 10 18 10C19.1046 10 20 10.8954 20 12Z\", fill: \"white\" }))); };\nexports.More = More;\n//# sourceMappingURL=more.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PictureInPicture = void 0;\nvar preact_1 = require(\"preact\");\nvar PictureInPicture = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M18.75 4.5H5.25C4.00736 4.5 3 5.50736 3 6.75V17.25C3 18.4926 4.00736 19.5 5.25 19.5H18.75C19.9926 19.5 21 18.4926 21 17.25V6.75C21 5.50736 19.9926 4.5 18.75 4.5ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.PictureInPicture = PictureInPicture;\n//# sourceMappingURL=pictureInPicture.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Print = void 0;\nvar preact_1 = require(\"preact\");\nvar Print = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M23 23H26C27.1046 23 28 22.1046 28 21V11C28 9.89543 27.1046 9 26 9H23V5C23 3.89543 22.1046 3 21 3H11C9.89543 3 9 3.89543 9 5V9H6C4.89543 9 4 9.89543 4 11V21C4 22.1046 4.89543 23 6 23H9V28C9 29.1046 9.89543 30 11 30H21C22.1046 30 23 29.1046 23 28V23ZM6 11V21H9V19C8.44772 19 8 18.5523 8 18C8 17.4477 8.44772 17 9 17H23C23.5523 17 24 17.4477 24 18C24 18.5523 23.5523 19 23 19V21H26V11H6ZM21 9V5H11V9H21ZM11 19V28H21V19H11Z\", fill: \"white\" }))); };\nexports.Print = Print;\n//# sourceMappingURL=print.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuizIcon = void 0;\nvar preact_1 = require(\"preact\");\nvar QuizIcon = function () {\n return ((0, preact_1.h)(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8.49857 2.11499L12.7442 4.2052C12.9162 4.28987 12.9812 4.48721 12.8895 4.64597C12.8594 4.69807 12.8145 4.74163 12.7597 4.77201L8.54484 7.10634C8.20953 7.29205 7.79063 7.29205 7.45532 7.10634L3.2405 4.77202C3.07335 4.67945 3.01915 4.47933 3.11944 4.32505C3.15235 4.27441 3.19956 4.23299 3.256 4.2052L7.50203 2.11498C7.81345 1.96167 8.18715 1.96168 8.49857 2.11499ZM14 6.02878V10.7642C14 11.1075 13.8049 11.4256 13.486 11.6022L9.24043 13.9536C9.07328 14.0461 8.85649 13.9961 8.7562 13.8418C8.72329 13.7912 8.7059 13.7333 8.7059 13.6742V8.93882C8.7059 8.59551 8.90104 8.27738 9.21997 8.10075L13.4655 5.74942C13.6326 5.65685 13.8494 5.70688 13.9497 5.86116C13.9826 5.91179 14 5.96973 14 6.02878ZM6.5145 8.31192L2.50483 6.04476C2.45303 6.01547 2.39375 6 2.33333 6C2.14924 6 2 6.14064 2 6.31412V10.88C2 11.211 2.1843 11.5178 2.4855 11.6881L6.49517 13.9552C6.54697 13.9845 6.60625 14 6.66667 14C6.85076 14 7 13.8594 7 13.6859V9.12C7 8.78898 6.8157 8.48223 6.5145 8.31192Z\", fill: \"white\" })));\n};\nexports.QuizIcon = QuizIcon;\n//# sourceMappingURL=quiz.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Related = void 0;\nvar preact_1 = require(\"preact\");\nvar Related = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 7H12C13.1046 7 14 7.89543 14 9V13C14 14.1046 13.1046 15 12 15H8C6.89543 15 6 14.1046 6 13V9C6 7.89543 6.89543 7 8 7ZM8 13H12V9H8V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 18H12C13.1046 18 14 18.8954 14 20V24C14 25.1046 13.1046 26 12 26H8C6.89543 26 6 25.1046 6 24V20C6 18.8954 6.89543 18 8 18ZM8 24H12V20H8V24Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M24 7H20C18.8954 7 18 7.89543 18 9V13C18 14.1046 18.8954 15 20 15H24C25.1046 15 26 14.1046 26 13V9C26 7.89543 25.1046 7 24 7ZM24 13H20V9H24V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M20 18H24C25.1046 18 26 18.8954 26 20V24C26 25.1046 25.1046 26 24 26H20C18.8954 26 18 25.1046 18 24V20C18 18.8954 18.8954 18 20 18ZM20 24H24V20H20V24Z\", fill: \"white\" }))); };\nexports.Related = Related;\n//# sourceMappingURL=related.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Share = void 0;\nvar preact_1 = require(\"preact\");\nvar Share = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M22.6667 12.6667C24.5076 12.6667 26 11.1743 26 9.33333C26 7.49238 24.5076 6 22.6667 6C20.8257 6 19.3333 7.49238 19.3333 9.33333C19.3333 9.38882 19.3347 9.44399 19.3374 9.49881L11.9575 13.9443C11.3473 13.1665 10.3987 12.6667 9.33333 12.6667C7.49238 12.6667 6 14.1591 6 16C6 17.8409 7.49238 19.3333 9.33333 19.3333C10.3981 19.3333 11.3462 18.8341 11.9564 18.057L19.3374 22.5013C19.3347 22.5561 19.3333 22.6112 19.3333 22.6667C19.3333 24.5076 20.8257 26 22.6667 26C24.5076 26 26 24.5076 26 22.6667C26 20.8257 24.5076 19.3333 22.6667 19.3333C21.6074 19.3333 20.6636 19.8274 20.053 20.5976L12.864 16.2689L12.8651 15.7324L20.0531 11.4025C20.6637 12.1727 21.6075 12.6667 22.6667 12.6667ZM22.6667 10.6667C21.9303 10.6667 21.3333 10.0697 21.3333 9.33333C21.3333 8.59695 21.9303 8 22.6667 8C23.403 8 24 8.59695 24 9.33333C24 10.0697 23.403 10.6667 22.6667 10.6667ZM9.33333 17.3333C8.59695 17.3333 8 16.7364 8 16C8 15.2636 8.59695 14.6667 9.33333 14.6667C10.0697 14.6667 10.6667 15.2636 10.6667 16C10.6667 16.7364 10.0697 17.3333 9.33333 17.3333ZM21.3333 22.6667C21.3333 23.403 21.9303 24 22.6667 24C23.403 24 24 23.403 24 22.6667C24 21.9303 23.403 21.3333 22.6667 21.3333C21.9303 21.3333 21.3333 21.9303 21.3333 22.6667Z\", fill: \"white\" }))); };\nexports.Share = Share;\n//# sourceMappingURL=share.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Switch = void 0;\nvar preact_1 = require(\"preact\");\nvar Switch = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.6744 9.27934L21.7563 13.3632L21.8282 13.4537L21.887 13.5492L21.9333 13.6489L21.9684 13.7556L21.9824 13.8172L21.9974 13.929L22 14L21.9897 14.1405L21.9824 14.1828L21.9535 14.2949L21.9231 14.3759L21.887 14.4508L21.8281 14.5463L21.7763 14.6137L21.7207 14.6744L17.6744 18.7207C17.3019 19.0931 16.6981 19.0931 16.3256 18.7207C15.9818 18.3769 15.9554 17.8359 16.2463 17.4617L16.3256 17.3719L18.7439 14.9536L12.9537 14.9537C12.4675 14.9537 12.0663 14.5899 12.0074 14.1196L12 14C12 13.5109 12.3682 13.1078 12.8425 13.0527L12.9537 13.0463L18.7426 13.0451L16.3256 10.6281C15.9798 10.2823 15.9551 9.73687 16.2515 9.36252L16.3256 9.27934C16.6981 8.90689 17.3019 8.90689 17.6744 9.27934ZM6.32562 5.27934C6.69807 4.90689 7.30193 4.90689 7.67438 5.27934L7.74849 5.36252C8.04493 5.73687 8.02023 6.28225 7.67438 6.6281L5.2574 9.04508L11.0463 9.04628L11.1575 9.0527C11.6318 9.10779 12 9.5109 12 10L11.9926 10.1196C11.9337 10.5899 11.5325 10.9537 11.0463 10.9537L5.25605 10.9536L7.67438 13.3719L7.75372 13.4617C8.04463 13.8359 8.01818 14.3769 7.67438 14.7207C7.30193 15.0931 6.69807 15.0931 6.32562 14.7207L2.25793 10.6523L2.18664 10.5668L2.12413 10.4708L2.07695 10.3759L2.03697 10.2639L2.01028 10.1405L2 10C2 9.95226 2.00351 9.90534 2.01036 9.85937L2.01758 9.81716L2.04651 9.70514L2.08932 9.59642L2.12415 9.52899L2.18631 9.43351L2.24369 9.36325L6.32562 5.27934Z\", fill: \"white\" }))); };\nexports.Switch = Switch;\n//# sourceMappingURL=switch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icon = exports.IconSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar icons_1 = require(\"./icons\");\nvar styles = require(\"./icon.scss\");\nvar IconSize;\n(function (IconSize) {\n IconSize[\"small\"] = \"small\";\n IconSize[\"medium\"] = \"medium\";\n IconSize[\"large\"] = \"large\";\n})(IconSize = exports.IconSize || (exports.IconSize = {}));\nvar Icon = function (props) {\n var Icon = icons_1.Icons[props.name];\n if (!Icon) {\n return null;\n }\n return ((0, preact_1.h)(\"div\", { className: classnames(styles.iconWrapper, styles[props.size]) },\n (0, preact_1.h)(Icon, null)));\n};\nexports.Icon = Icon;\nexports.Icon.defaultProps = {\n size: IconSize.medium\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.debounce = exports.getQnaUserId = exports.getUserId = exports.generateId = void 0;\nvar generateId = function () {\n return new Date().getTime().toString(36) + Math.random().toString(36).slice(2);\n};\nexports.generateId = generateId;\nvar generateNumberedId = function () {\n var uuid = (0, exports.generateId)();\n var numStr = '';\n for (var i = 0; i < uuid.length; i++) {\n var char = uuid.charAt(i);\n numStr += Number.isNaN(+char) ? char.charCodeAt(0) : char;\n }\n return numStr;\n};\nfunction getUserId() {\n if (typeof Storage === 'undefined') {\n // No web storage Support, just generate and return a anonymous user id\n return _generateAnonymousUserId();\n }\n // Web storage is supported\n var anonymousUserId;\n anonymousUserId = localStorage.getItem('anonymousUserId');\n if (!anonymousUserId) {\n anonymousUserId = _generateAnonymousUserId();\n localStorage.setItem('anonymousUserId', anonymousUserId);\n }\n return anonymousUserId;\n}\nexports.getUserId = getUserId;\n// makes uniq user id for push notification client\nvar getQnaUserId = function (player) {\n var _a, _b, _c, _d;\n var _e = player, config = _e.config, plugins = _e.plugins;\n var session = (config === null || config === void 0 ? void 0 : config.session) || {};\n var userRole = ((_b = (_a = plugins === null || plugins === void 0 ? void 0 : plugins.qna) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.userRole) || session.userRole;\n if (!userRole || userRole === 'anonymousRole') {\n return getUserId();\n }\n return ((_d = (_c = plugins === null || plugins === void 0 ? void 0 : plugins.qna) === null || _c === void 0 ? void 0 : _c.config) === null || _d === void 0 ? void 0 : _d.userId) || session.userId;\n};\nexports.getQnaUserId = getQnaUserId;\nfunction _generateAnonymousUserId() {\n var HashSeparatorText = 'HashSeparator';\n var DefaultAnonymousPrefix = 'Guest';\n return \"##\".concat(DefaultAnonymousPrefix).concat(HashSeparatorText).concat(generateNumberedId(), \"##\");\n}\nfunction debounce(func, waitMilliseconds, options) {\n if (waitMilliseconds === void 0) { waitMilliseconds = 50; }\n if (options === void 0) { options = {\n isImmediate: false\n }; }\n var timeoutId;\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var doLater = function () {\n timeoutId = undefined;\n if (!options.isImmediate) {\n func.apply(_this, args);\n }\n };\n var shouldCallNow = options.isImmediate && timeoutId === undefined;\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(doLater, waitMilliseconds);\n if (shouldCallNow) {\n func.apply(this, args);\n }\n };\n}\nexports.debounce = debounce;\n//# sourceMappingURL=utils.js.map","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".Button__button___NM3Vl{display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;font-weight:700;border:1px solid rgba(0,0,0,0);border-radius:4px;cursor:pointer}.Button__button___NM3Vl.Button__primary___vkWyL{background-color:var(--playkit-primary-color);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-primary-darker-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-primary-brighter-color)}.Button__button___NM3Vl.Button__danger___lCKPq{background-color:var(--playkit-danger-color);color:var(--playkit-danger-text-contrast-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-danger-darker-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-danger-brighter-color)}.Button__button___NM3Vl.Button__translucent___nSc5h{background-color:rgba(0,0,0,.6);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__borderless___sov7o{background-color:rgba(0,0,0,0);color:var(--playkit-tone-1-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-tone-4-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-tone-6-color)}.Button__button___NM3Vl.Button__small____SSTu{height:24px;font-size:13px;line-height:16px;padding:0 4px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV{padding-right:8px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV>span{margin-left:2px}.Button__button___NM3Vl.Button__small____SSTu.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__medium___psqY1{height:32px;font-size:14px;line-height:17px;padding:0 8px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV{padding-right:12px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__medium___psqY1.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__large___ftsNW{height:40px;font-size:16px;line-height:19px;padding:0 16px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV{padding-left:12px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__large___ftsNW.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__disabled___j4KjS{background-color:rgba(0,0,0,0);color:var(--playkit-tone-4-color);border-color:var(--playkit-tone-4-color);cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/components/button/Button.scss\",\"webpack://./../node_modules/@playkit-js/common/dist/components/variables.scss\",\"webpack://./../node_modules/@playkit-js/common/node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAGA,wBACE,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAAA,CACA,eAAA,CACA,8BAAA,CACA,iBCPY,CDQZ,cAAA,CACA,gDACE,6CEVY,CFWZ,gDER0B,CFUxB,qFACE,oDEbe,CFejB,qFACE,sDEfiB,CFmBvB,+CACE,4CENW,CFOX,+CEJyB,CFMvB,oFACE,mDETc,CFWhB,oFACE,qDEXgB,CFetB,oDACE,+BAAA,CACA,gDEhC0B,CFkC5B,mDACE,8BAAA,CACA,iCEZW,CFcT,wFACE,4CEZO,CFcT,wFACE,4CEbO,CFiBb,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,+CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,wEACE,kBAAA,CACA,6EACE,eAAA,CAGJ,wEACE,aAAA,CAGJ,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,iDACE,8BAAA,CACA,iCElEW,CFmEX,wCEnEW,CFoEX,cAAA\",\"sourcesContent\":[\"@import '../variables.scss';\\n\\n// https://www.figma.com/file/GYMv1jsthckOnKmCrdQJY3/%E2%8F%AF-Player-v7-(Guidelines)?node-id=21%3A1943&t=ywdMo875C6kzd7pN-0\\n.button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-wrap: nowrap;\\n font-weight: 700;\\n border: 1px solid transparent;\\n border-radius: $roundness-1;\\n cursor: pointer;\\n &.primary {\\n background-color: $primary-color;\\n color: $primary-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $primary-darker-color;\\n }\\n &:focus {\\n background-color: $primary-brighter-color;\\n }\\n }\\n }\\n &.danger {\\n background-color: $danger-color;\\n color: $danger-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $danger-darker-color;\\n }\\n &:focus {\\n background-color: $danger-brighter-color;\\n }\\n }\\n }\\n &.translucent {\\n background-color: rgba(0, 0, 0, 0.6);\\n color: $primary-text-contrast-color;\\n }\\n &.borderless {\\n background-color: transparent;\\n color: $tone-1-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $tone-4-color;\\n }\\n &:focus {\\n background-color: $tone-6-color;\\n }\\n }\\n }\\n &.small {\\n height: 24px;\\n font-size: 13px;\\n line-height: 16px;\\n padding: 0 4px;\\n &.withIcon {\\n padding-right: 8px;\\n > span {\\n margin-left: 2px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.medium {\\n height: 32px;\\n font-size: 14px;\\n line-height: 17px;\\n padding: 0 8px;\\n &.withIcon {\\n padding-right: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.large {\\n height: 40px;\\n font-size: 16px;\\n line-height: 19px;\\n padding: 0 16px;\\n &.withIcon {\\n padding-left: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.disabled {\\n background-color: transparent;\\n color: $tone-4-color;\\n border-color: $tone-4-color;\\n cursor: default;\\n }\\n}\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\\n// colors\\n$white: #ffffff;\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"button\": \"Button__button___NM3Vl\",\n\t\"primary\": \"Button__primary___vkWyL\",\n\t\"disabled\": \"Button__disabled___j4KjS\",\n\t\"danger\": \"Button__danger___lCKPq\",\n\t\"translucent\": \"Button__translucent___nSc5h\",\n\t\"borderless\": \"Button__borderless___sov7o\",\n\t\"small\": \"Button__small____SSTu\",\n\t\"withIcon\": \"Button__withIcon___c3vxV\",\n\t\"iconOnly\": \"Button__iconOnly___dISNi\",\n\t\"medium\": \"Button__medium___psqY1\",\n\t\"large\": \"Button__large___ftsNW\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon__iconWrapper___O5uqn.icon__small___IddLg{width:16px;height:16px}.icon__iconWrapper___O5uqn.icon__medium___llFxB{width:24px;height:24px}.icon__iconWrapper___O5uqn.icon__large___Q96VN{width:32px;height:32px}.icon__iconWrapper___O5uqn>svg{width:100%;height:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/icon/icon.scss\"],\"names\":[],\"mappings\":\"AACE,+CACE,UAAA,CACA,WAAA,CAEF,gDACE,UAAA,CACA,WAAA,CAEF,+CACE,UAAA,CACA,WAAA,CAEF,+BACE,UAAA,CACA,WAAA\",\"sourcesContent\":[\".iconWrapper {\\n &.small {\\n width: 16px;\\n height: 16px;\\n }\\n &.medium {\\n width: 24px;\\n height: 24px;\\n }\\n &.large {\\n width: 32px;\\n height: 32px;\\n }\\n > svg {\\n width: 100%;\\n height: 100%;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconWrapper\": \"icon__iconWrapper___O5uqn\",\n\t\"small\": \"icon__small___IddLg\",\n\t\"medium\": \"icon__medium___llFxB\",\n\t\"large\": \"icon__large___Q96VN\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".drag-and-snap-manager__draggableArea___l89tg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.drag-and-snap-manager__draggableItem___NyUod{position:absolute;pointer-events:auto}.drag-and-snap-manager__draggableItem___NyUod.drag-and-snap-manager__dragging___LyNPo{cursor:grabbing}.drag-and-snap-manager__draggableItem___NyUod:not(.drag-and-snap-manager__dragging___LyNPo){transition:top .3s ease-in,right .3s ease-in,bottom .3s ease-in}.drag-and-snap-manager__draggableItem___NyUod.drag-and-snap-manager__prePlayback___MGwKC{bottom:-50px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/drag-and-snap-manager/drag-and-snap-manager.scss\"],\"names\":[],\"mappings\":\"AAEA,8CACE,iBAAA,CACA,MAAA,CACA,KAAA,CACA,UAAA,CACA,WAAA,CACA,mBAAA,CAEF,8CACE,iBAAA,CACA,mBAAA,CACA,sFACE,eAAA,CAEF,4FACE,+DAAA,CAEF,yFACE,YAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.draggableArea {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: none;\\n}\\n.draggableItem {\\n position: absolute;\\n pointer-events: auto;\\n &.dragging {\\n cursor: grabbing;\\n }\\n &:not(.dragging) {\\n transition: top $animation-duration ease-in, right $animation-duration ease-in, bottom $animation-duration ease-in;\\n }\\n &.prePlayback {\\n bottom: -50px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"draggableArea\": \"drag-and-snap-manager__draggableArea___l89tg\",\n\t\"draggableItem\": \"drag-and-snap-manager__draggableItem___NyUod\",\n\t\"dragging\": \"drag-and-snap-manager__dragging___LyNPo\",\n\t\"prePlayback\": \"drag-and-snap-manager__prePlayback___MGwKC\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".multiscreen__multiscreenWrapper___aYICw{position:relative}.multiscreen__multiscreenWrapper___aYICw .multiscreen__active___MLEYJ{background-color:var(--playkit-tone-6-color)}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG{position:absolute;display:flex;flex-direction:row;bottom:calc(-1*(10px + 58px));visibility:hidden}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG.multiscreen__visible___TQjC1{visibility:visible}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG .multiscreen__multiscreenPlayer___Tbp6V{display:flex;flex-direction:column;position:relative;width:104px;height:58px;border-radius:4px;overflow:hidden;margin:0px 4px}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG .multiscreen__multiscreenPlayer___Tbp6V .multiscreen__multiscreenButtonsWrapper___dmhZ4{position:absolute;top:0;right:0;width:100%;height:100%;display:flex;padding:0px 16px;justify-content:center;align-items:center;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%)}.multiscreen__multiscreenWrapper___aYICw .multiscreen__multiscreenPlayersWrapper___b3fWG .multiscreen__multiscreenPlayer___Tbp6V .multiscreen__multiscreenButtonsWrapper___dmhZ4>button:nth-child(2){margin-left:auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/multiscreen/multiscreen.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\"],\"names\":[],\"mappings\":\"AAIA,yCACE,iBAAA,CAEA,sEACE,4CC2BW,CDzBb,yFACE,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,iBAAA,CAEA,sHACE,kBAAA,CAGF,iIACE,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,WAAA,CACA,WAxBsB,CAyBtB,iBEpBQ,CFqBR,eAAA,CACA,cAAA,CAEA,iLACE,iBAAA,CACA,KAAA,CACA,OAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,gBAAA,CACA,sBAAA,CACA,kBAAA,CACA,gFAAA,CAEA,qMACE,gBAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n$multiscreen-player-height: 58px;\\n\\n.multiscreenWrapper {\\n position: relative;\\n\\n .active {\\n background-color: $tone-6-color;\\n }\\n .multiscreenPlayersWrapper {\\n position: absolute;\\n display: flex;\\n flex-direction: row;\\n bottom: calc(-1 * (10px + #{$multiscreen-player-height}));\\n visibility: hidden;\\n\\n &.visible {\\n visibility: visible;\\n }\\n\\n .multiscreenPlayer {\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n width: 104px;\\n height: $multiscreen-player-height;\\n border-radius: $roundness-1;\\n overflow: hidden;\\n margin: 0px 4px;\\n\\n .multiscreenButtonsWrapper {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n padding: 0px 16px;\\n justify-content: center;\\n align-items: center;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n\\n & > button:nth-child(2) {\\n margin-left: auto;\\n }\\n }\\n }\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"multiscreenWrapper\": \"multiscreen__multiscreenWrapper___aYICw\",\n\t\"active\": \"multiscreen__active___MLEYJ\",\n\t\"multiscreenPlayersWrapper\": \"multiscreen__multiscreenPlayersWrapper___b3fWG\",\n\t\"visible\": \"multiscreen__visible___TQjC1\",\n\t\"multiscreenPlayer\": \"multiscreen__multiscreenPlayer___Tbp6V\",\n\t\"multiscreenButtonsWrapper\": \"multiscreen__multiscreenButtonsWrapper___dmhZ4\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".pip-minimized__iconContainer___n8Sl3{opacity:.8;cursor:pointer}.pip-minimized__innerButtons___nk206{display:flex;position:absolute;left:0px;top:0px;padding:10px 8px;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);width:100%}.pip-minimized__innerButtons___nk206 .pip-minimized__iconContainer___n8Sl3:hover{background:var(--playkit-tone-4-color);border-radius:4px;opacity:1}.pip-minimized__childPlayerContainer___NvZS3{display:flex;flex-direction:row;position:absolute;top:0;right:0;transform:translateY(-100%);animation:pip-minimized__fading___UFcX6 .3s linear}.pip-minimized__childPlayerContainer___NvZS3:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.pip-minimized__childPlayerContainer___NvZS3 video{position:relative;object-fit:cover;width:auto}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__childPlayer___U64DT{position:relative;margin-left:8px;width:auto;height:60px;box-shadow:0px 0px 0px 1px rgba(0,0,0,.2),0px 8px 60px -16px rgba(0,0,0,.2);border-radius:8px;-webkit-mask-image:-webkit-radial-gradient(white, black);overflow:hidden}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__childPlayer___U64DT.pip-minimized__tinyChildPlayer___a5mJk{height:34px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__childPlayer___U64DT img{width:auto}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT{position:absolute;width:70px;right:0px;top:calc((32px + 5px)*-1);font-style:normal;font-weight:400}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT:hover{background:rgba(0,0,0,.7)}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT span{display:flex}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__showContainer___rkJyT span .pip-minimized__iconContainer___n8Sl3{height:16px;width:16px;margin-right:6px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__innerButtons___nk206{border-radius:8px;justify-content:center;align-items:center;height:60px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__innerButtons___nk206.pip-minimized__tinyInnerButtons___nW8jU{height:34px}.pip-minimized__childPlayerContainer___NvZS3 .pip-minimized__innerButtons___nk206 .pip-minimized__iconContainer___n8Sl3:hover{background:rgba(0,0,0,0)}@keyframes pip-minimized__fading___UFcX6{0%{opacity:0}100%{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/_styles.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\",\"webpack://./components/pip-minimized/pip-minimized.scss\"],\"names\":[],\"mappings\":\"AAEA,sCACE,UAAA,CACA,cAAA,CAGF,qCACE,YAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,gBAAA,CACA,gFAAA,CACA,UAAA,CAGE,iFACE,sCCeS,CDdT,iBEZQ,CFaR,SAAA,CGdN,6CAEE,YAAA,CACA,kBAAA,CAOA,iBAAA,CACA,KAAA,CACA,OAAA,CACA,2BAAA,CACA,kDAAA,CHMA,sFAEE,iBAAA,CGjBF,mDACE,iBAAA,CACA,gBAAA,CACA,UAAA,CAQF,iFACE,iBAAA,CACA,eAAA,CACA,UAAA,CACA,WAAA,CACA,2EAAA,CACA,iBDpBU,CCqBV,wDAAA,CACA,eAAA,CACA,wHACE,WAAA,CAEF,qFACE,UAAA,CAIJ,mFACE,iBAAA,CACA,UAAA,CACA,SAAA,CACA,yBAAA,CAEA,iBAAA,CACA,eAAA,CAEA,yFACE,yBAAA,CAGF,wFACE,YAAA,CAEA,8HACE,WAAA,CACA,UAAA,CACA,gBAAA,CAKN,kFACE,iBDxDU,CCyDV,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,0HACE,WAAA,CAEF,8HACE,wBAAA,CAKN,yCACE,GACE,SAAA,CAEF,KACE,SAAA,CAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.iconContainer {\\n opacity: 0.8;\\n cursor: pointer;\\n}\\n\\n.innerButtons {\\n display: flex;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n padding: 10px 8px;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n width: 100%;\\n\\n .iconContainer {\\n &:hover {\\n background: $tone-4-color;\\n border-radius: $roundness-1;\\n opacity: 1;\\n }\\n }\\n}\\n\\n@mixin hideImagePlayer {\\n &:has(:global(.playkit-image-player > img[src=''])) {\\n // hide image player container if image haven't loaded\\n visibility: hidden;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\",\"@import '~styles/styles';\\n@import '~styles/variables';\\n\\n$show-container-height: 32px;\\n$show-container-gap: 5px;\\n\\n.childPlayerContainer {\\n @include hideImagePlayer;\\n display: flex;\\n flex-direction: row;\\n\\n video {\\n position: relative;\\n object-fit: cover;\\n width: auto;\\n }\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translateY(-100%);\\n animation: fading $animation-duration linear;\\n\\n .childPlayer {\\n position: relative;\\n margin-left: 8px;\\n width: auto;\\n height: 60px;\\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), 0px 8px 60px -16px rgba(0, 0, 0, 0.2);\\n border-radius: $roundness-2;\\n -webkit-mask-image: -webkit-radial-gradient(white, black);\\n overflow: hidden;\\n &.tinyChildPlayer {\\n height: 34px;\\n }\\n :global(img) {\\n width: auto;\\n }\\n }\\n\\n .showContainer {\\n position: absolute;\\n width: 70px;\\n right: 0px;\\n top: calc((#{$show-container-height} + #{$show-container-gap}) * -1);\\n\\n font-style: normal;\\n font-weight: 400;\\n\\n &:hover {\\n background: rgba(0, 0, 0, 0.7);\\n }\\n\\n span {\\n display: flex;\\n\\n .iconContainer {\\n height: 16px;\\n width: 16px;\\n margin-right: 6px;\\n }\\n }\\n }\\n\\n .innerButtons {\\n border-radius: $roundness-2;\\n justify-content: center;\\n align-items: center;\\n height: 60px;\\n &.tinyInnerButtons {\\n height: 34px;\\n }\\n .iconContainer:hover {\\n background: transparent;\\n }\\n }\\n}\\n\\n@keyframes fading {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconContainer\": \"pip-minimized__iconContainer___n8Sl3\",\n\t\"innerButtons\": \"pip-minimized__innerButtons___nk206\",\n\t\"childPlayerContainer\": \"pip-minimized__childPlayerContainer___NvZS3\",\n\t\"fading\": \"pip-minimized__fading___UFcX6\",\n\t\"childPlayer\": \"pip-minimized__childPlayer___U64DT\",\n\t\"tinyChildPlayer\": \"pip-minimized__tinyChildPlayer___a5mJk\",\n\t\"showContainer\": \"pip-minimized__showContainer___rkJyT\",\n\t\"tinyInnerButtons\": \"pip-minimized__tinyInnerButtons___nW8jU\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".pip__iconContainer___jm6Xi{opacity:.8;cursor:pointer}.pip__innerButtons___Jii5b{display:flex;position:absolute;left:0px;top:0px;padding:10px 8px;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);width:100%}.pip__innerButtons___Jii5b .pip__iconContainer___jm6Xi:hover{background:var(--playkit-tone-4-color);border-radius:4px;opacity:1}.pip__parentPlayer___AdbJg{width:100%;height:100%;position:absolute;left:0}.pip__parentPlayer___AdbJg:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.pip__childPlayer___RdLI5{position:relative}.pip__childPlayer___RdLI5 video{position:relative;object-fit:cover;width:auto}.pip__childPlayer___RdLI5:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.pip__childPlayer___RdLI5.pip__hideButtons___Tnnc1 .pip__innerButtons___Jii5b,.pip__childPlayer___RdLI5.pip__dragging___f2Va1 .pip__innerButtons___Jii5b{display:none}.pip__childPlayer___RdLI5.pip__hideButtons___Tnnc1 .pip__hideContainer___dlNww{display:none}.pip__childPlayer___RdLI5.pip__dragging___f2Va1 .pip__hideContainer___dlNww{visibility:hidden}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww{position:relative;width:66px;margin:0px 0px 5px auto;font-style:normal;font-weight:400}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww:hover{background:rgba(0,0,0,.7)}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww span{display:flex}.pip__childPlayer___RdLI5 .pip__hideContainer___dlNww span .pip__iconContainer___jm6Xi{margin:0px 6px 0px 0px;height:16px;width:16px}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK{position:relative}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__playerContainer___wCgn0{box-shadow:0 0 40px 0 rgba(0,0,0,.2),0 0 4px 0 rgba(0,0,0,.3);border-radius:8px;overflow:hidden}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__playerContainer___wCgn0 .playkit-image-player img{width:auto}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b{flex-direction:row;justify-content:flex-end;align-items:flex-start;pointer-events:none;border-top-left-radius:8px;border-top-right-radius:8px}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b *{pointer-events:auto}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b .playkit-tooltip{width:auto}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b.pip__verticalPlayer____Qk58 .playkit-tooltip span{max-width:100px !important}.pip__childPlayer___RdLI5 .pip__playerWrapper___viiaK .pip__innerButtons___Jii5b .pip__buttonWrapper___IUCs5{margin-left:8px}.pip__animatedFade___ROECY{animation:pip__fading___Et7y9 .3s linear}.pip__animatedScaleRight___fhIvC{animation:pip__scalingRight___iE8kT .3s linear}.pip__animatedScaleLeft___WNtSv{animation:pip__scalingLeft___Yh6Pb .3s linear}@keyframes pip__scalingRight___iE8kT{0%{transform:scale(0.5) translate(-50%)}100%{transform:scale(1) translate(0%)}}@keyframes pip__scalingLeft___Yh6Pb{0%{transform:scale(0.5) translate(50%)}100%{transform:scale(1) translate(0%)}}@keyframes pip__fading___Et7y9{0%{opacity:0}100%{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/_styles.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\",\"webpack://./components/pip/pip.scss\"],\"names\":[],\"mappings\":\"AAEA,4BACE,UAAA,CACA,cAAA,CAGF,2BACE,YAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,gBAAA,CACA,gFAAA,CACA,UAAA,CAGE,6DACE,sCCeS,CDdT,iBEZQ,CFaR,SAAA,CGdN,2BACE,UAAA,CACA,WAAA,CACA,iBAAA,CACA,MAAA,CHgBA,oEAEE,iBAAA,CGfJ,0BACE,iBAAA,CACA,gCACE,iBAAA,CACA,gBAAA,CACA,UAAA,CHQF,mEAEE,iBAAA,CGJA,yJACE,YAAA,CAGJ,+EACE,YAAA,CAEF,4EACE,iBAAA,CAGF,sDACE,iBAAA,CACA,UAAA,CACA,uBAAA,CACA,iBAAA,CACA,eAAA,CAEA,4DACE,yBAAA,CAGF,2DACE,YAAA,CAEA,uFACE,sBAAA,CACA,WDhDkB,CCiDlB,UDjDkB,CCsDxB,sDACE,iBAAA,CACA,oFACE,6DAAA,CACA,iBDrDQ,CCsDR,eAAA,CACA,8GACE,UAAA,CAGJ,iFACE,kBAAA,CACA,wBAAA,CACA,sBAAA,CACA,mBAAA,CACA,0BDhEQ,CCiER,2BDjEQ,CCkER,mFACE,mBAAA,CAEF,kGACE,UAAA,CAGA,mIACE,0BAAA,CAIJ,6GACE,eAAA,CAMR,2BACE,wCAAA,CAGF,iCACE,8CAAA,CAGF,gCACE,6CAAA,CAGF,qCACE,GACE,oCAAA,CAEF,KACE,gCAAA,CAAA,CAIJ,oCACE,GACE,mCAAA,CAEF,KACE,gCAAA,CAAA,CAIJ,+BACE,GACE,SAAA,CAEF,KACE,SAAA,CAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.iconContainer {\\n opacity: 0.8;\\n cursor: pointer;\\n}\\n\\n.innerButtons {\\n display: flex;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n padding: 10px 8px;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n width: 100%;\\n\\n .iconContainer {\\n &:hover {\\n background: $tone-4-color;\\n border-radius: $roundness-1;\\n opacity: 1;\\n }\\n }\\n}\\n\\n@mixin hideImagePlayer {\\n &:has(:global(.playkit-image-player > img[src=''])) {\\n // hide image player container if image haven't loaded\\n visibility: hidden;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\",\"@import '~styles/variables';\\n@import '~styles/styles';\\n\\n$hide-container-height: 32px;\\n$hide-container-gap: 5px;\\n\\n.parentPlayer {\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n left: 0;\\n @include hideImagePlayer;\\n}\\n.childPlayer {\\n position: relative;\\n video {\\n position: relative;\\n object-fit: cover;\\n width: auto;\\n }\\n @include hideImagePlayer;\\n\\n &.hideButtons,\\n &.dragging {\\n .innerButtons {\\n display: none;\\n }\\n }\\n &.hideButtons .hideContainer {\\n display: none;\\n }\\n &.dragging .hideContainer {\\n visibility: hidden;\\n }\\n\\n .hideContainer {\\n position: relative;\\n width: 66px;\\n margin: 0px 0px $hide-container-gap auto;\\n font-style: normal;\\n font-weight: 400;\\n\\n &:hover {\\n background: rgba(0, 0, 0, 0.7);\\n }\\n\\n span {\\n display: flex;\\n\\n .iconContainer {\\n margin: 0px 6px 0px 0px;\\n height: $smallBorderLessIconSize;\\n width: $smallBorderLessIconSize;\\n }\\n }\\n }\\n\\n .playerWrapper {\\n position: relative;\\n .playerContainer {\\n box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.2), 0 0 4px 0 rgba(0, 0, 0, 0.3);\\n border-radius: $roundness-2;\\n overflow: hidden;\\n :global(.playkit-image-player img) {\\n width: auto;\\n }\\n }\\n .innerButtons {\\n flex-direction: row;\\n justify-content: flex-end;\\n align-items: flex-start;\\n pointer-events: none;\\n border-top-left-radius: $roundness-2;\\n border-top-right-radius: $roundness-2;\\n * {\\n pointer-events: auto;\\n }\\n :global(.playkit-tooltip) {\\n width: auto;\\n }\\n &.verticalPlayer {\\n :global(.playkit-tooltip span) {\\n max-width: 100px !important;\\n }\\n }\\n\\n .buttonWrapper {\\n margin-left: 8px;\\n }\\n }\\n }\\n}\\n\\n.animatedFade {\\n animation: fading $animation-duration linear;\\n}\\n\\n.animatedScaleRight {\\n animation: scalingRight $animation-duration linear;\\n}\\n\\n.animatedScaleLeft {\\n animation: scalingLeft $animation-duration linear;\\n}\\n\\n@keyframes scalingRight {\\n 0% {\\n transform: scale(0.5) translate(-50%);\\n }\\n 100% {\\n transform: scale(1) translate(0%);\\n }\\n}\\n\\n@keyframes scalingLeft {\\n 0% {\\n transform: scale(0.5) translate(50%);\\n }\\n 100% {\\n transform: scale(1) translate(0%);\\n }\\n}\\n\\n@keyframes fading {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconContainer\": \"pip__iconContainer___jm6Xi\",\n\t\"innerButtons\": \"pip__innerButtons___Jii5b\",\n\t\"parentPlayer\": \"pip__parentPlayer___AdbJg\",\n\t\"childPlayer\": \"pip__childPlayer___RdLI5\",\n\t\"hideButtons\": \"pip__hideButtons___Tnnc1\",\n\t\"dragging\": \"pip__dragging___f2Va1\",\n\t\"hideContainer\": \"pip__hideContainer___dlNww\",\n\t\"playerWrapper\": \"pip__playerWrapper___viiaK\",\n\t\"playerContainer\": \"pip__playerContainer___wCgn0\",\n\t\"verticalPlayer\": \"pip__verticalPlayer____Qk58\",\n\t\"buttonWrapper\": \"pip__buttonWrapper___IUCs5\",\n\t\"animatedFade\": \"pip__animatedFade___ROECY\",\n\t\"fading\": \"pip__fading___Et7y9\",\n\t\"animatedScaleRight\": \"pip__animatedScaleRight___fhIvC\",\n\t\"scalingRight\": \"pip__scalingRight___iE8kT\",\n\t\"animatedScaleLeft\": \"pip__animatedScaleLeft___WNtSv\",\n\t\"scalingLeft\": \"pip__scalingLeft___Yh6Pb\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".side-by-side__iconContainer___JKAC3{opacity:.8;cursor:pointer}.side-by-side__innerButtons___mnxhf{display:flex;position:absolute;left:0px;top:0px;padding:10px 8px;background:linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);width:100%}.side-by-side__innerButtons___mnxhf .side-by-side__iconContainer___JKAC3:hover{background:var(--playkit-tone-4-color);border-radius:4px;opacity:1}.side-by-side__sideBySideWrapper___y0NU9{width:100%;height:100%;position:absolute;left:0;display:flex}.side-by-side__player___NGiFu{position:relative;margin:auto;flex:1}.side-by-side__player___NGiFu:has(.playkit-image-player > img[src=\\\"\\\"]){visibility:hidden}.side-by-side__player___NGiFu .side-by-side__innerButtons___mnxhf{z-index:1;padding:16px;justify-content:flex-end;animation:side-by-side__appears___xfiqx .3s linear}.side-by-side__player___NGiFu .side-by-side__innerButtons___mnxhf .side-by-side__buttonWrapper___RrwS_{margin-left:8px}.side-by-side__animatedScale___RLVnM{animation:side-by-side__scaling___BLBYq .3s linear}.side-by-side__animatedFade___bD2re{animation:side-by-side__fading___BzZbY .3s linear}@keyframes side-by-side__appears___xfiqx{0%{opacity:0}99%{opacity:0}100%{opacity:1}}@keyframes side-by-side__scaling___BLBYq{0%{transform:scale(2) translate(25%);z-index:100}100%{transform:scale(1) translate(0%);z-index:0}}@keyframes side-by-side__fading___BzZbY{0%{opacity:0}100%{opacity:1}}.has-dual-screen-plugin-overlay.playkit-hover .playkit-side-panel{z-index:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/_styles.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./styles/_variables.scss\",\"webpack://./components/side-by-side/side-by-side.scss\"],\"names\":[],\"mappings\":\"AAEA,qCACE,UAAA,CACA,cAAA,CAGF,oCACE,YAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,gBAAA,CACA,gFAAA,CACA,UAAA,CAGE,+EACE,sCCeS,CDdT,iBEZQ,CFaR,SAAA,CGjBN,yCACE,UAAA,CACA,WAAA,CACA,iBAAA,CACA,MAAA,CACA,YAAA,CAGF,8BACE,iBAAA,CACA,WAAA,CACA,MAAA,CHYA,uEAEE,iBAAA,CGXF,kEACE,SAAA,CACA,YAAA,CACA,wBAAA,CACA,kDAAA,CACA,uGACE,eAAA,CAKN,qCACE,kDAAA,CAGF,oCACE,iDAAA,CAGF,yCACE,GACE,SAAA,CAEF,IACE,SAAA,CAEF,KACE,SAAA,CAAA,CAIJ,yCACE,GACE,iCAAA,CACA,WAAA,CAEF,KACE,gCAAA,CACA,SAAA,CAAA,CAIJ,wCACE,GACE,SAAA,CAEF,KACE,SAAA,CAAA,CAIJ,kEAEE,SAAA\",\"sourcesContent\":[\"@import '~styles/variables';\\n\\n.iconContainer {\\n opacity: 0.8;\\n cursor: pointer;\\n}\\n\\n.innerButtons {\\n display: flex;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n padding: 10px 8px;\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);\\n width: 100%;\\n\\n .iconContainer {\\n &:hover {\\n background: $tone-4-color;\\n border-radius: $roundness-1;\\n opacity: 1;\\n }\\n }\\n}\\n\\n@mixin hideImagePlayer {\\n &:has(:global(.playkit-image-player > img[src=''])) {\\n // hide image player container if image haven't loaded\\n visibility: hidden;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n$smallIconSize: 28px;\\n$smallBorderLessIconSize: 16px;\\n$animation-duration: 0.3s;\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\",\"@import '~styles/variables';\\n@import '~styles/styles';\\n\\n.sideBySideWrapper {\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n left: 0;\\n display: flex;\\n}\\n\\n.player {\\n position: relative;\\n margin: auto;\\n flex: 1;\\n @include hideImagePlayer;\\n\\n .innerButtons {\\n z-index: 1;\\n padding: 16px;\\n justify-content: flex-end;\\n animation: appears $animation-duration linear;\\n .buttonWrapper {\\n margin-left: 8px;\\n }\\n }\\n}\\n\\n.animatedScale {\\n animation: scaling $animation-duration linear;\\n}\\n\\n.animatedFade {\\n animation: fading $animation-duration linear;\\n}\\n\\n@keyframes appears {\\n 0% {\\n opacity: 0;\\n }\\n 99% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes scaling {\\n 0% {\\n transform: scale(2) translate(25%);\\n z-index: 100;\\n }\\n 100% {\\n transform: scale(1) translate(0%);\\n z-index: 0;\\n }\\n}\\n\\n@keyframes fading {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n:global(.has-dual-screen-plugin-overlay.playkit-hover .playkit-side-panel) {\\n // prevent displaying innerButtons over playkit-side-panel\\n z-index: 1;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconContainer\": \"side-by-side__iconContainer___JKAC3\",\n\t\"innerButtons\": \"side-by-side__innerButtons___mnxhf\",\n\t\"sideBySideWrapper\": \"side-by-side__sideBySideWrapper___y0NU9\",\n\t\"player\": \"side-by-side__player___NGiFu\",\n\t\"appears\": \"side-by-side__appears___xfiqx\",\n\t\"buttonWrapper\": \"side-by-side__buttonWrapper___RrwS_\",\n\t\"animatedScale\": \"side-by-side__animatedScale___RLVnM\",\n\t\"scaling\": \"side-by-side__scaling___BLBYq\",\n\t\"animatedFade\": \"side-by-side__animatedFade___bD2re\",\n\t\"fading\": \"side-by-side__fading___BzZbY\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".playkit-image-player{width:100%;height:100%;background:#000}.playkit-image-player img{width:100%;height:100%;object-fit:contain;position:relative;top:0px;left:0px;pointer-events:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./image-player/image-player.scss\"],\"names\":[],\"mappings\":\"AACE,sBACE,UAAA,CACA,WAAA,CACA,eAAA,CACA,0BACE,UAAA,CACA,WAAA,CACA,kBAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,mBAAA\",\"sourcesContent\":[\":global {\\n .playkit-image-player {\\n width:100%;\\n height:100%;\\n background: #000000;\\n img {\\n width:100%;\\n height:100%;\\n object-fit: contain;\\n position: relative;\\n top: 0px;\\n left: 0px;\\n pointer-events: none;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".playkit-player.has-dual-screen-plugin-overlay .playkit-subtitles{z-index:1}.playkit-player.has-dual-screen-plugin-overlay .playkit-slideIn{z-index:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./styles/global.scss\"],\"names\":[],\"mappings\":\"AACE,kEACE,SAAA,CAEF,gEACE,SAAA\",\"sourcesContent\":[\":global(.playkit-player.has-dual-screen-plugin-overlay) {\\n :global(.playkit-subtitles) {\\n z-index: 1;\\n }\\n :global(.playkit-slideIn) {\\n z-index: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./Button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../sass-loader/dist/cjs.js!./icon.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./drag-and-snap-manager.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./multiscreen.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./pip-minimized.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./pip.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./side-by-side.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/sass-loader/dist/cjs.js!./image-player.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/sass-loader/dist/cjs.js!./global.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","import {h, Component, cloneElement, VNode, createRef} from 'preact';\nimport {PlaykitUI, Logger} from '@playkit-js/kaltura-player-js';\nimport {Position} from '../../enums';\nimport {getClientX, getClientY, dimensionStyleToString} from '../../utils';\nimport * as styles from './drag-and-snap-manager.scss';\n\nconst {\n redux: {connect}\n} = KalturaPlayer.ui;\n\ntype OnPositionChangedCallback = (newPosition: Position) => void;\nenum DragEvents {\n MouseDown = 'mousedown',\n MouseMove = 'mousemove',\n MouseUp = 'mouseup',\n\n TouchStart = 'touchstart',\n TouchMove = 'touchmove',\n TouchEnd = 'touchend'\n}\nconst DRAG_THROTTLE_MS = 30;\nconst PRE_PLAYBACK_POSITION = -130;\n\ninterface DragAndSnapManagerOwnProps {\n children: VNode;\n onPositionChanged: OnPositionChangedCallback;\n getPosition: () => Position;\n eventManager: PlaykitUI.EventManager;\n logger: Logger;\n}\ninterface DragAndSnapManagerConnectProps {\n prePlayback?: boolean;\n}\ntype DragAndSnapManagerProps = DragAndSnapManagerOwnProps & DragAndSnapManagerConnectProps;\ninterface DragAndSnapManagerState {\n isDragging: boolean;\n}\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n prePlayback: state.engine.prePlayback\n});\n@connect(mapStateToProps)\nexport class DragAndSnapManager extends Component<DragAndSnapManagerProps, DragAndSnapManagerState> {\n private _draggableTargetRef = createRef<HTMLDivElement>();\n private _draggableItemRef = createRef<HTMLDivElement>();\n private _draggableAreaRef = createRef<HTMLDivElement>();\n private _currMousePos: {x: number; y: number} = {x: 0, y: 0};\n private _throttleWait: boolean = false;\n state = {\n isDragging: false\n };\n\n componentDidMount() {\n this._setRelativeStyles();\n }\n\n componentWillUnmount() {\n const {eventManager} = this.props;\n eventManager.unlisten(document, DragEvents.MouseMove);\n eventManager.unlisten(document, DragEvents.TouchMove);\n eventManager.unlisten(document, DragEvents.MouseUp);\n eventManager.unlisten(document, DragEvents.TouchEnd);\n eventManager.unlisten(this._draggableTargetRef.current!, DragEvents.MouseDown);\n eventManager.unlisten(this._draggableTargetRef.current!, DragEvents.TouchStart);\n }\n\n private _renderChildComponent = (): VNode => {\n const {children} = this.props;\n return cloneElement(children, {isDragging: this.state.isDragging, setDraggableTarget: this._setDraggableTarget});\n };\n\n private _setDraggableTarget = (targetEl: HTMLDivElement) => {\n this._draggableTargetRef.current = targetEl;\n this._addListeners();\n };\n\n private _handleChangePosition = (position: Position) => {\n this._setAbsoluteStyles(position);\n this.props.onPositionChanged(position);\n };\n\n private _onStartDrag = () => {\n this._setAbsoluteStyles(this.props.getPosition());\n this.setState({\n isDragging: true\n });\n };\n\n private _addListeners = () => {\n this.props.eventManager.listen(this._draggableTargetRef.current!, DragEvents.MouseDown, e => {\n this._startDrag(e, DragEvents.MouseMove, DragEvents.MouseUp);\n });\n this.props.eventManager.listen(this._draggableTargetRef.current!, DragEvents.TouchStart, e => {\n this.props.eventManager.unlisten(this._draggableTargetRef.current!, DragEvents.MouseDown);\n this._startDrag(e, DragEvents.TouchMove, DragEvents.TouchEnd);\n });\n };\n\n private _startDrag(e: MouseEvent | TouchEvent, moveEventName: string, endEventName: string) {\n this.props.eventManager.listenOnce(document, endEventName, this._stopDrag);\n\n // get the mouse cursor position at startup:\n this._currMousePos.x = getClientX(e);\n this._currMousePos.y = getClientY(e);\n\n this.props.eventManager.listenOnce(document, moveEventName, this._onStartDrag);\n this.props.eventManager.listen(document, moveEventName, this._moveDrag);\n }\n\n private _moveDrag = (e: MouseEvent | TouchEvent) => {\n if (this._throttleWait) {\n return;\n }\n e = e || window.event;\n // calculate the new cursor position:\n const deltaMousePosX = this._currMousePos.x - getClientX(e);\n const deltaMousePosY = this._currMousePos.y - getClientY(e);\n this._currMousePos.x = getClientX(e);\n this._currMousePos.y = getClientY(e);\n // set the element's new position\n if (this._draggableItemRef.current && this._draggableAreaRef.current) {\n let top = parseInt(this._draggableItemRef.current!.style.top, 10);\n let right = parseInt(this._draggableItemRef.current!.style.right, 10);\n this._draggableItemRef.current!.style.right = dimensionStyleToString(right + deltaMousePosX);\n this._draggableItemRef.current!.style.top = dimensionStyleToString(top - deltaMousePosY);\n }\n // handle throttling to avoid performance issues on dragging\n this._throttleWait = true;\n setTimeout(() => {\n this._throttleWait = false;\n }, DRAG_THROTTLE_MS);\n };\n\n private _getBoundingClientRects = (): [DOMRect, DOMRect] => {\n return [this._draggableItemRef.current!.getBoundingClientRect(), this._draggableAreaRef.current!.getBoundingClientRect()];\n };\n\n // relative styles: top, right, bottom, left\n private _applyRelativeStyles = (top: number | null, right: number | null, bottom: number | null, left: number | null) => {\n this._draggableItemRef.current!.style.top = top !== null ? dimensionStyleToString(top) : '';\n this._draggableItemRef.current!.style.right = right !== null ? dimensionStyleToString(right) : '';\n this._draggableItemRef.current!.style.bottom = bottom !== null ? dimensionStyleToString(bottom) : '';\n this._draggableItemRef.current!.style.left = left !== null ? dimensionStyleToString(left) : '';\n };\n private _setRelativeStyles = () => {\n switch (this.props.getPosition()) {\n case Position.BottomRight:\n this._setRelativeBottomRightStyles();\n break;\n case Position.BottomLeft:\n this._setRelativeBottomLeftStyles();\n break;\n case Position.TopRight:\n this._setRelativeTopRightStyles();\n break;\n case Position.TopLeft:\n this._setRelativeTopLeftStyles();\n }\n };\n private _setRelativeBottomRightStyles = () => {\n this._applyRelativeStyles(null, 0, this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, null);\n };\n private _setRelativeBottomLeftStyles = () => {\n this._applyRelativeStyles(null, null, this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, 0);\n };\n private _setRelativeTopRightStyles = () => {\n this._applyRelativeStyles(this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, 0, null, null);\n };\n private _setRelativeTopLeftStyles = () => {\n this._applyRelativeStyles(this.props.prePlayback ? PRE_PLAYBACK_POSITION : 0, null, null, 0);\n };\n\n // absolute styles: top, right\n private _applyAbsoluteStyles = (top: number, right: number) => {\n this._draggableItemRef.current!.style.top = dimensionStyleToString(top);\n this._draggableItemRef.current!.style.right = dimensionStyleToString(right);\n };\n private _setAbsoluteStyles = (position: Position) => {\n switch (position) {\n case Position.BottomRight:\n this._setAbsoluteBottomRightStyles();\n break;\n case Position.BottomLeft:\n this._setAbsoluteBottomLeftStyles();\n break;\n case Position.TopRight:\n this._setAbsoluteTopRightStyles();\n break;\n case Position.TopLeft:\n this._setAbsoluteTopLeftStyles();\n }\n this._draggableItemRef.current!.style.bottom = '';\n this._draggableItemRef.current!.style.left = '';\n };\n private _setAbsoluteBottomRightStyles = () => {\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n this._applyAbsoluteStyles(draggableAreaBoundClientRect.height - draggableItemBoundClientRect.height, 0);\n };\n private _setAbsoluteBottomLeftStyles = () => {\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n this._applyAbsoluteStyles(\n draggableAreaBoundClientRect.height - draggableItemBoundClientRect.height,\n draggableAreaBoundClientRect.width - draggableItemBoundClientRect.width\n );\n };\n private _setAbsoluteTopRightStyles = () => {\n this._applyAbsoluteStyles(0, 0);\n };\n private _setAbsoluteTopLeftStyles = () => {\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n this._applyAbsoluteStyles(0, draggableAreaBoundClientRect.width - draggableItemBoundClientRect.width);\n };\n\n private _stopDrag = () => {\n // stop moving when mouse button is released:\n this.setState({\n isDragging: false\n });\n this.props.eventManager.unlisten(document, DragEvents.MouseMove);\n this.props.eventManager.unlisten(document, DragEvents.TouchMove);\n const [draggableItemBoundClientRect, draggableAreaBoundClientRect] = this._getBoundingClientRects();\n const draggableContainerCenterX = draggableItemBoundClientRect.x + draggableItemBoundClientRect.width / 2;\n const draggableContainerCenterY = draggableItemBoundClientRect.y + draggableItemBoundClientRect.height / 2;\n const guiClientCenterX = draggableAreaBoundClientRect.x + draggableAreaBoundClientRect.width / 2;\n const guiClientCenterY = draggableAreaBoundClientRect.y + draggableAreaBoundClientRect.height / 2;\n if (draggableContainerCenterX > guiClientCenterX) {\n if (draggableContainerCenterY > guiClientCenterY) {\n this._handleChangePosition(Position.BottomRight);\n } else {\n this._handleChangePosition(Position.TopRight);\n }\n } else {\n if (draggableContainerCenterY > guiClientCenterY) {\n this._handleChangePosition(Position.BottomLeft);\n } else {\n this._handleChangePosition(Position.TopLeft);\n }\n }\n };\n\n render() {\n const draggableItemStyles = [styles.draggableItem];\n if (this.state.isDragging) {\n draggableItemStyles.push(styles.dragging);\n }\n return (\n <div id=\"draggeble-area\" className={styles.draggableArea} ref={this._draggableAreaRef}>\n <div id=\"draggable-item\" ref={this._draggableItemRef} className={draggableItemStyles.join(' ')} onTransitionEnd={this._setRelativeStyles}>\n {this._renderChildComponent()}\n </div>\n </div>\n );\n }\n}\n","export * from './drag-and-snap-manager';\n","export * from \"./multiscreen\";","import {h, Component, RefObject, createRef} from 'preact';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClickEvent} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Position} from '../../enums';\nimport {PlaykitUI} from '@playkit-js/kaltura-player-js';\nimport {MultiscreenPlayer} from '../../types';\nimport * as styles from './multiscreen.scss';\n\nconst {Tooltip} = KalturaPlayer.ui.components;\nconst {withEventManager} = KalturaPlayer.ui.Event;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst CLOSE_EVENT = 'closeMultiScreenPopup';\n\nconst translates = {\n multiscreenLabel: <Text id=\"dualScreen.multiscreen\">Show more screens</Text>,\n switchScreen: <Text id=\"dualScreen.switch_screen\">Switch Screen</Text>,\n switchToSecondary: <Text id=\"dualScreen.switch_to_secondary_screen\">Switch to secondary screen</Text>,\n switchToPrimary: <Text id=\"dualScreen.switch_to_primary_screen\">Switch to primary screen</Text>\n};\ninterface MultiscreenProps {\n players: Array<MultiscreenPlayer>;\n sbsLayout?: boolean;\n eventManager?: PlaykitUI.EventManager;\n multiscreenLabel?: string;\n switchScreen?: string;\n switchToSecondary?: string;\n switchToPrimary?: string;\n getParentRef?: () => RefObject<HTMLDivElement>;\n getPosition?: () => Position;\n}\ninterface MultiscreenState {\n isOpen: boolean;\n xPosition: number;\n}\n\nlet focusOnMultiscreenButton = false;\n\n@withText(translates)\n@withEventManager\nexport class Multiscreen extends Component<MultiscreenProps, MultiscreenState> {\n private _multiscreenPlayersRefs: Array<RefObject<HTMLDivElement>> = [];\n private _multiscreenPlayersWrapperRef = createRef<HTMLDivElement>();\n\n state = {isOpen: false, xPosition: 0};\n\n componentDidMount(): void {\n this._attachVideoElements();\n if (this.props.getParentRef) {\n const parentRef = this.props.getParentRef().current!;\n this.props.eventManager?.listen(parentRef, CLOSE_EVENT, this._closePupup);\n }\n }\n\n componentDidUpdate(previousProps: Readonly<MultiscreenProps>, previousState: Readonly<MultiscreenState>): void {\n if (!previousState.isOpen && this.state.isOpen) {\n if (this.props.sbsLayout) {\n // re-attach video elements for SbS layout\n this._attachVideoElements();\n }\n if (this.props.getParentRef && this.props.getPosition) {\n // check if multiscreen container inside PiP container for left positons\n if ([Position.TopLeft, Position.BottomLeft].includes(this.props.getPosition())) {\n const parentLeftPostion = this.props.getParentRef().current?.getBoundingClientRect().left || 0;\n const multiscreenLeftPostion = this._multiscreenPlayersWrapperRef.current?.getBoundingClientRect().left || 0;\n const rightShift = multiscreenLeftPostion - parentLeftPostion;\n if (rightShift < 0) {\n this.setState({xPosition: rightShift});\n }\n } else if (this.state.xPosition !== 0) {\n this.setState({xPosition: 0});\n }\n }\n }\n }\n\n componentWillUnmount() {\n this._multiscreenPlayersRefs = [];\n }\n\n private _attachVideoElements = () => {\n this._multiscreenPlayersRefs.forEach((ref, index) => {\n const videoElement = this.props.players[index].player.getVideoElement();\n videoElement.tabIndex = -1;\n ref.current!.prepend(videoElement);\n });\n };\n\n private _closePupup = () => {\n this.setState({isOpen: false});\n this.props.eventManager?.unlisten(document, 'click', this._closePupup);\n };\n\n private _openPopup = () => {\n this.props.eventManager?.listenOnce(document, 'click', this._closePupup);\n this.setState({isOpen: true});\n };\n\n private _handleClick = (event: OnClickEvent, byKeyboard = false) => {\n focusOnMultiscreenButton = byKeyboard;\n if (this.props.getParentRef) {\n // a11y wrapper prevents propagation of click event, so parent node uses to handle close\n this.props.getParentRef().current?.dispatchEvent(new Event(CLOSE_EVENT));\n }\n if (!this.state.isOpen) {\n this._openPopup();\n }\n };\n\n private _handleLayoutChange = (byKeyboard: boolean, cb: () => void) => {\n if (byKeyboard) {\n focusOnMultiscreenButton = byKeyboard;\n }\n cb();\n };\n\n render(props: MultiscreenProps) {\n if (!props.players.length) {\n return null;\n }\n const popoverMenuButton = (\n <Button\n className={this.state.isOpen ? styles.active : ''}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'more'}\n onClick={this._handleClick}\n focusOnMount={focusOnMultiscreenButton}\n testId=\"dualscreen_multiscreenButton\"\n />\n );\n\n return (\n <div className={styles.multiscreenWrapper} data-testid=\"dualscreen_multiscreenWrapper\">\n {this.state.isOpen ? (\n popoverMenuButton\n ) : (\n <Tooltip type=\"bottom-left\" label={this.props.multiscreenLabel}>\n {popoverMenuButton}\n </Tooltip>\n )}\n\n <div\n style={{right: `${this.state.xPosition}px`}}\n className={[styles.multiscreenPlayersWrapper, this.state.isOpen ? styles.visible : ''].join(' ')}\n ref={this._multiscreenPlayersWrapperRef}\n data-testid=\"dualscreen_multiscreen\">\n {props.players.map((player, index) => {\n const ref = createRef<HTMLDivElement>();\n this._multiscreenPlayersRefs[index] = ref;\n return (\n <div ref={ref} className={styles.multiscreenPlayer} data-testid=\"dualscreen_multiscreenPlayer\">\n <div className={styles.multiscreenButtonsWrapper}>\n <Button\n onClick={(event: OnClickEvent, byKeyboard = false) => this._handleLayoutChange(byKeyboard, player.setPrimary)}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={player.setSecondary ? 'pictureInPicture' : 'switch'}\n ariaLabel={player.setSecondary ? this.props.switchToPrimary : this.props.switchScreen}\n testId=\"dualscreen_multiscreenSwitchScreen\"\n />\n {player.setSecondary && (\n <Button\n onClick={(event: OnClickEvent, byKeyboard = false) => this._handleLayoutChange(byKeyboard, player.setSecondary!)}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'minimizedVideo'}\n ariaLabel={this.props.switchToSecondary}\n testId=\"dualscreen_multiscreenSetSecondary\"\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n}\n","export * from './pip-minimized';\n","import {h, createRef, Component, Fragment, RefObject} from 'preact';\nimport * as styles from './pip-minimized.scss';\nimport {icons} from '../../icons';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {ButtonsEnum} from '../../enums';\nimport {MultiscreenPlayer} from '../../types';\nconst {\n components: {Icon}\n} = KalturaPlayer.ui;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst translates = () => {\n return {\n showLabel: <Text id=\"dualScreen.show\">Show</Text>,\n showAriaLabel: <Text id=\"dualScreen.show_label\">Show dual screen</Text>,\n switchScreen: <Text id=\"dualScreen.switch_screen\">Switch Screen</Text>\n };\n};\n\ninterface PIPMinimizedOwnProps {\n players: MultiscreenPlayer[];\n show: OnClick;\n hideButtons?: boolean;\n focusOnButton?: ButtonsEnum;\n}\ninterface PIPMinimizedConnectProps {\n playerSize?: string;\n}\ninterface PIPMinimizedTranslates {\n showLabel?: string;\n showAriaLabel?: string;\n switchScreen?: string;\n}\ntype PIPMinimizedProps = PIPMinimizedOwnProps & PIPMinimizedConnectProps & PIPMinimizedTranslates;\n\n@withText(translates)\nexport class PipMinimized extends Component<PIPMinimizedProps> {\n _multiscreenPlayersRefs: Array<RefObject<HTMLDivElement>> = [];\n\n componentDidMount() {\n this._multiscreenPlayersRefs.forEach((ref, index) => {\n const videoElement = this.props.players[index].player.getVideoElement();\n videoElement.tabIndex = -1;\n ref.current!.prepend(videoElement);\n });\n }\n\n private _renderHoverButton = () => {\n const {show, hideButtons, focusOnButton} = this.props;\n return (\n <Fragment>\n {!hideButtons && (\n <Button\n onClick={show}\n className={styles.showContainer}\n ariaLabel={this.props.showAriaLabel}\n focusOnMount={focusOnButton === ButtonsEnum.Show}\n testId=\"dualscreen_switchToPIP\"\n type={ButtonType.translucent}>\n <Fragment>\n <div className={styles.iconContainer}>\n <Icon\n id=\"dualscreen-pip-minimized-show\"\n height={icons.SmallSize}\n width={icons.SmallSize}\n viewBox={`0 0 ${icons.SmallSize} ${icons.SmallSize}`}\n path={icons.SHOW_ICON_PATH}\n />\n </div>\n {this.props.showLabel}\n </Fragment>\n </Button>\n )}\n </Fragment>\n );\n };\n\n render(props: PIPMinimizedProps) {\n return (\n <div className={styles.childPlayerContainer} data-testid=\"dualscreen_pipMinimized\">\n {this.props.players.map((player, index) => {\n const ref = createRef<HTMLDivElement>();\n this._multiscreenPlayersRefs[index] = ref;\n return (\n <div\n ref={ref}\n className={[styles.childPlayer, props.hideButtons ? styles.tinyChildPlayer : ''].join(' ')}\n data-testid=\"dualscreen_pipMinimizedPlayer\">\n <div className={[styles.innerButtons, this.props.hideButtons ? styles.tinyInnerButtons : ''].join(' ')}>\n <Button\n onClick={player.setPrimary}\n focusOnMount={this.props.focusOnButton === ButtonsEnum.SwitchScreen}\n ariaLabel={this.props.switchScreen}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'switch'}\n testId=\"dualscreen_switchToPrimary\"\n />\n </div>\n </div>\n );\n })}\n {this._renderHoverButton()}\n </div>\n );\n }\n}\n","export * from './pip-child';\nexport * from './pip-parent';\n","import {h, createRef, Component, Fragment, VNode, cloneElement} from 'preact';\nimport * as styles from './pip.scss';\nimport {Animations, ButtonsEnum, Layout} from '../../enums';\nimport {icons} from '../../icons';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nconst {connect} = KalturaPlayer.ui.redux;\nconst {utils, reducers} = KalturaPlayer.ui;\nconst {Icon} = KalturaPlayer.ui.components;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst translates = ({layout}: PIPChildComponentOwnProps) => {\n return {\n sideBySide: <Text id=\"dualScreen.side_by_side\">Side by side screens</Text>,\n switchScreen:\n layout === Layout.PIP ? (\n <Text id=\"dualScreen.switch_to_secondary_screen\">Switch to secondary screen</Text>\n ) : (\n <Text id=\"dualScreen.switch_to_primary_screen\">Switch to primary screen</Text>\n ),\n hideLabel: <Text id=\"dualScreen.hide\">Hide</Text>,\n hideAriaLabel: <Text id=\"dualScreen.hide_label\">Hide dual screen</Text>\n };\n};\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n showUi: state.shell.playerHover || state.shell.playerNav,\n playerHeight: state.shell.guiClientRect.height,\n prePlayback: state.engine.prePlayback\n});\n\ninterface PIPChildComponentOwnProps {\n multiscreen: VNode;\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n playerSizePercentage: number;\n hide: OnClick;\n onSideBySideSwitch: OnClick;\n onInversePIP: OnClick;\n animation: Animations;\n isDragging?: boolean;\n setDraggableTarget?: (targetEl: HTMLDivElement) => void;\n portrait?: boolean;\n aspectRatio: {\n width: number;\n height: number;\n };\n focusOnButton?: ButtonsEnum;\n layout: Layout;\n}\ninterface PIPChildComponentConnectProps {\n playerHeight?: number;\n showUi?: boolean;\n prePlayback?: boolean;\n}\ninterface PIPChildComponentTranslates {\n sideBySide?: string;\n switchScreen?: string;\n hideLabel?: string;\n hideAriaLabel?: string;\n}\n\ntype PIPChildComponentProps = PIPChildComponentOwnProps & PIPChildComponentConnectProps & PIPChildComponentTranslates;\n\n@withText(translates)\n@connect(mapStateToProps, utils.bindActions(reducers.shell.actions))\nexport class PipChild extends Component<PIPChildComponentProps> {\n playerContainerRef = createRef<HTMLDivElement>();\n pipContainerRef = createRef<HTMLDivElement>();\n\n componentDidMount() {\n const {player} = this.props;\n const videoElement = player.getVideoElement();\n videoElement.tabIndex = -1;\n this.playerContainerRef.current!.prepend(videoElement);\n this.props.setDraggableTarget!(this.playerContainerRef.current!);\n }\n\n private _renderInnerButtons() {\n const {onSideBySideSwitch, onInversePIP, focusOnButton, multiscreen} = this.props;\n return (\n <div className={[styles.innerButtons, this.props.portrait ? styles.verticalPlayer : ''].join(' ')}>\n <div className={styles.buttonWrapper}>{cloneElement(multiscreen, {getParentRef: () => this.pipContainerRef})}</div>\n <div className={styles.buttonWrapper}>\n <Button\n icon={'add'}\n onClick={onSideBySideSwitch}\n tooltip={{label: this.props.sideBySide!, type: 'bottom-left'}}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n focusOnMount={focusOnButton === ButtonsEnum.SideBySide}\n ariaLabel={this.props.sideBySide!}\n testId=\"dualscreen_switchToSideBySide\"\n />\n </div>\n <div className={styles.buttonWrapper}>\n <Button\n onClick={onInversePIP}\n tooltip={{label: this.props.switchScreen!, type: 'bottom-left'}}\n focusOnMount={focusOnButton === ButtonsEnum.SwitchScreen}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'switch'}\n ariaLabel={this.props.switchScreen!}\n testId=\"dualscreen_inversePIP\"\n />\n </div>\n </div>\n );\n }\n\n private _renderHideButton() {\n const {hide, focusOnButton} = this.props;\n return (\n <Button\n className={styles.hideContainer}\n testId=\"dualscreen_switchToSingleMedia\"\n onClick={hide}\n ariaLabel={this.props.hideAriaLabel}\n focusOnMount={focusOnButton === ButtonsEnum.Hide}\n type={ButtonType.translucent}>\n <Fragment>\n <div className={styles.iconContainer}>\n <Icon\n id=\"dualscreen-pip-hide\"\n height={icons.SmallSize}\n width={icons.SmallSize}\n viewBox={`0 0 ${icons.SmallSize} ${icons.SmallSize}`}\n path={icons.HIDE_ICON_PATH}\n />\n </div>\n {this.props.hideLabel}\n </Fragment>\n </Button>\n );\n }\n\n render(props: PIPChildComponentProps) {\n const styleClass = [styles.childPlayer];\n\n if (props.isDragging) {\n styleClass.push(styles.dragging);\n }\n if (!props.showUi) {\n styleClass.push(styles.hideButtons);\n }\n\n if (!props.prePlayback && props.animation) {\n switch (props.animation) {\n case Animations.Fade:\n styleClass.push(styles.animatedFade);\n break;\n case Animations.ScaleRight:\n styleClass.push(styles.animatedScaleRight);\n break;\n case Animations.ScaleLeft:\n styleClass.push(styles.animatedScaleLeft);\n break;\n }\n }\n\n const height: number = (props.playerHeight! * props.playerSizePercentage) / 100;\n const width: number = (height * props.aspectRatio.width) / props.aspectRatio.height;\n const playerContainerStyles = {\n height: `${props.portrait ? width : height}px`\n };\n\n return (\n <div className={styleClass.join(' ')} ref={this.pipContainerRef} data-testid=\"dualscreen_pipChildren\">\n {this._renderHideButton()}\n <div className={styles.playerWrapper}>\n <div className={styles.playerContainer} style={playerContainerStyles} ref={this.playerContainerRef} />\n {this._renderInnerButtons()}\n </div>\n </div>\n );\n }\n}\n","import {h, createRef, Component} from 'preact';\nimport * as styles from './pip.scss';\nimport {Animations} from '../../enums';\nconst {connect} = KalturaPlayer.ui.redux;\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n prePlayback: state.engine.prePlayback\n});\n\ninterface PIPParentComponentOwnProps {\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n animation: Animations;\n}\ninterface PIPParentComponentConnectProps {\n prePlayback?: boolean;\n}\n\ntype PIPParentComponentProps = PIPParentComponentOwnProps & PIPParentComponentConnectProps;\n@connect(mapStateToProps)\nexport class PipParent extends Component<PIPParentComponentProps> {\n videoContainerRef = createRef<HTMLDivElement>();\n\n componentDidMount() {\n const {player} = this.props;\n this.videoContainerRef?.current?.appendChild(player.getVideoElement());\n }\n\n render(props: PIPParentComponentProps) {\n let styleClass = [styles.videoContainer, styles.parentPlayer];\n\n if (!props.prePlayback && props.animation) {\n switch (props.animation) {\n case Animations.Fade:\n styleClass.push(styles.animatedFade);\n break;\n case Animations.ScaleRight:\n styleClass.push(styles.animatedScaleRight);\n break;\n case Animations.ScaleLeft:\n styleClass.push(styles.animatedScaleLeft);\n break;\n }\n }\n\n return <div className={styleClass.join(' ')} ref={this.videoContainerRef} data-testid=\"dualscreen_pipParent\" />;\n }\n}\n","export * from './responsive-manager';\n","import {h, Component, cloneElement, VNode} from 'preact';\nconst {\n redux: {connect},\n components: {PLAYER_SIZE}\n} = KalturaPlayer.ui;\n\nconst HIDE_BUTTON_MODES = [PLAYER_SIZE.EXTRA_SMALL, PLAYER_SIZE.SMALL, PLAYER_SIZE.TINY];\nconst MIN_SIZES = [PLAYER_SIZE.EXTRA_SMALL, PLAYER_SIZE.SMALL];\n\ninterface ResponsiveManagerOwnProps {\n children: VNode;\n onMinSize: () => void;\n onDefaultSize: () => void;\n}\ninterface ResponsiveManagerConnectProps {\n playerSize?: string;\n}\n\ntype ResponsiveManagerProps = ResponsiveManagerOwnProps & ResponsiveManagerConnectProps;\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n playerSize: state.shell.playerSize\n});\n@connect(mapStateToProps)\nexport class ResponsiveManager extends Component<ResponsiveManagerProps> {\n static defaultProps = {\n onMinSize: () => {}\n };\n componentDidMount() {\n const {playerSize, onMinSize} = this.props;\n if (MIN_SIZES.includes(playerSize!)) {\n onMinSize();\n }\n }\n componentDidUpdate(prevProps: ResponsiveManagerProps) {\n const {playerSize, onMinSize, onDefaultSize} = this.props;\n if (playerSize === PLAYER_SIZE.TINY) {\n return;\n }\n if (MIN_SIZES.includes(playerSize!) && !MIN_SIZES.includes(prevProps.playerSize!)) {\n onMinSize();\n return;\n }\n if (!MIN_SIZES.includes(playerSize!) && MIN_SIZES.includes(prevProps.playerSize!)) {\n onDefaultSize();\n }\n }\n private _renderChildComponent = (): VNode => {\n const {children, playerSize} = this.props;\n return cloneElement(children, {hideButtons: HIDE_BUTTON_MODES.includes(playerSize!)});\n };\n render({playerSize}: ResponsiveManagerProps) {\n return playerSize === PLAYER_SIZE.TINY ? null : this._renderChildComponent();\n }\n}\n","import {Component, h, VNode, createRef} from 'preact';\nimport {SideBySide} from './side-by-side';\nimport {Animations, Layout, StreamMode} from '../../enums';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {ResponsiveManager} from '../responsive-manager';\nimport * as styles from './side-by-side.scss';\n\ninterface SideProps {\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n onExpand: OnClick;\n focusOnButton?: boolean;\n multiscreen: VNode;\n animation: Animations;\n}\n\ninterface SideBySideWrapperComponentProps {\n leftSideProps: SideProps;\n rightSideProps: SideProps;\n layout: Layout;\n onSizeChange: () => void;\n onMinSize: () => void;\n}\nexport class SideBySideWrapper extends Component<SideBySideWrapperComponentProps> {\n sbsWrapperRef = createRef<HTMLDivElement>();\n\n render({leftSideProps, rightSideProps, layout, onSizeChange, onMinSize}: SideBySideWrapperComponentProps) {\n return (\n <ResponsiveManager\n onMinSize={() => {\n onMinSize();\n }}\n onDefaultSize={onSizeChange}>\n <div className={styles.sideBySideWrapper} ref={this.sbsWrapperRef} data-testid=\"dualscreen_sideBySideWrapper\">\n <SideBySide\n {...leftSideProps}\n streamMode={layout === Layout.SideBySide ? StreamMode.Primary : StreamMode.Secondary}\n getParentRef={() => this.sbsWrapperRef}\n />\n <SideBySide\n {...rightSideProps}\n streamMode={layout === Layout.SideBySide ? StreamMode.Secondary : StreamMode.Primary}\n getParentRef={() => this.sbsWrapperRef}\n />\n </div>\n </ResponsiveManager>\n );\n }\n}\n","import {h, createRef, Component, VNode, Fragment, RefObject, cloneElement} from 'preact';\nimport * as styles from './side-by-side.scss';\nimport {Button, ButtonSize, ButtonType} from '@playkit-js/common/dist/components/button';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Animations, StreamMode} from './../../enums';\nconst {connect} = KalturaPlayer.ui.redux;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst translates = ({streamMode}: SideBySideComponentOwnProps) => {\n return {\n expandScreen:\n streamMode === StreamMode.Primary ? (\n <Text id=\"dualScreen.expand_primary_screen\">Expand primary screen</Text>\n ) : (\n <Text id=\"dualScreen.expand_secondary_screen\">Expand secondary screen</Text>\n )\n };\n};\n\ninterface SideBySideComponentOwnProps {\n player: KalturaPlayerTypes.Player | KalturaPlayerTypes.ImagePlayer;\n onExpand: OnClick;\n animation: Animations;\n focusOnButton?: boolean;\n streamMode: StreamMode;\n multiscreen: VNode;\n getParentRef: () => RefObject<HTMLDivElement>;\n}\ninterface SideBySideComponentConnectProps {\n playerWidth?: number;\n showUi?: boolean;\n}\ninterface SideBySideComponentTranslates {\n expandScreen?: string;\n}\n\ntype SideBySideComponentProps = SideBySideComponentOwnProps & SideBySideComponentConnectProps & SideBySideComponentTranslates;\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n playerWidth: state.shell.guiClientRect.width,\n showUi: state.shell.playerHover || state.shell.playerNav\n});\n\n@withText(translates)\n@connect(mapStateToProps)\nexport class SideBySide extends Component<SideBySideComponentProps> {\n ref = createRef();\n\n componentDidMount() {\n const videoElement = this.props.player.getVideoElement();\n videoElement.tabIndex = -1;\n this.ref.current.prepend(videoElement);\n }\n\n private _renderHoverButton() {\n const {onExpand, showUi, focusOnButton, multiscreen} = this.props;\n if (showUi) {\n return (\n <Fragment>\n <div className={styles.innerButtons}>\n <div className={styles.buttonWrapper}>{cloneElement(multiscreen, {getParentRef: this.props.getParentRef, sbsLayout: true})}</div>\n <div className={styles.buttonWrapper}>\n <Button\n className={styles.iconContainer}\n onClick={onExpand}\n tooltip={{label: this.props.expandScreen!, type: 'bottom-left'}}\n focusOnMount={focusOnButton}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n icon={'expand'}\n testId=\"dualscreen_switchToPIP\"\n />\n </div>\n </div>\n </Fragment>\n );\n }\n return null;\n }\n\n render({playerWidth, animation}: SideBySideComponentProps) {\n const playerContainerStyles = {\n height: (playerWidth! / 2 / 16) * 9\n };\n const classNames = [styles.player];\n if (animation === Animations.ScaleLeft) {\n classNames.push(styles.animatedScale);\n } else {\n classNames.push(styles.animatedFade);\n }\n return (\n <div ref={this.ref} className={classNames.join(' ')} style={playerContainerStyles} data-testid=\"dualscreen_sbs\">\n {this._renderHoverButton()}\n </div>\n );\n }\n}\n","// @ts-ignore\nimport {core} from '@playkit-js/kaltura-player-js';\nimport {DualScreen} from './dualscreen';\nimport {PlayerType, PlayerContainers} from './enums';\n\nconst {FakeEvent, EventType} = core;\n\n// @ts-ignore\nexport class DualScreenEngineDecorator implements IEngineDecorator {\n private _plugin: DualScreen;\n private _isActive = false;\n private _dispatcher: Function;\n\n constructor(engine: any, plugin: DualScreen, dispatcher: Function) {\n this._plugin = plugin;\n this._dispatcher = dispatcher;\n\n plugin.eventManager.listen(plugin.player, EventType.SEEKING, () => {\n // activate decorator only if secondary entry is media, so decorator can handle SEEKED event from secondary player\n // @ts-ignore\n this._isActive = !!this.secondaryPlayer?.src;\n });\n plugin.eventManager.listen(plugin.player, EventType.SEEKED, () => {\n this._isActive = false;\n });\n }\n\n get active(): boolean {\n // @ts-ignore\n return this._isActive && !this.secondaryPlayer.ended;\n }\n\n get secondaryPlayer() {\n return this._plugin.getActiveDualScreenPlayer(PlayerContainers.secondary);\n }\n\n dispatchEvent(event: FakeEvent): boolean {\n if (event.type === EventType.SEEKED) {\n if (this.secondaryPlayer?.type === PlayerType.VIDEO)\n // @ts-ignore\n this._plugin.eventManager.listenOnce(secondaryPlayer.player, EventType.SEEKED, () => {\n this._dispatcher(event);\n });\n return true;\n }\n return this._dispatcher(event);\n }\n}\n","import {h} from 'preact';\nimport {DualScreenConfig, DualScreenPlayer, MultiscreenPlayer} from './types';\nimport {PipChild, PipParent} from './components/pip';\nimport {Multiscreen} from './components/multiscreen';\nimport {PipMinimized} from './components/pip-minimized';\nimport {\n Animations,\n Layout,\n PlayerType,\n Position,\n ReservedPresetAreas,\n ExternalLayout,\n ButtonsEnum,\n PlayerContainers,\n LayoutChangeProps\n} from './enums';\nimport {VideoSyncManager} from './video-sync-manager';\nimport {ImageSyncManager} from './image-sync-manager';\nimport {ResponsiveManager} from './components/responsive-manager';\nimport {SecondaryMediaLoader} from './providers/secondary-media-loader';\nimport {DragAndSnapManager} from './components/drag-and-snap-manager';\nimport {SideBySideWrapper} from './components/side-by-side/side-by-side-wrapper';\nimport {getValueOrUndefined} from './utils';\nimport {DualScreenEngineDecorator} from './dualscreen-engine-decorator';\nimport {ImagePlayer, SlideItem} from './image-player';\n// @ts-ignore\nimport {core, ui, BasePlugin, IEngineDecoratorProvider, KalturaPlayer} from '@playkit-js/kaltura-player-js';\nimport {OnClickEvent} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport './styles/global.scss';\n\nconst {\n reducers: {shell}\n} = ui;\nconst {EventType} = core;\n\nconst HAS_DUAL_SCREEN_PLUGIN_OVERLAY = 'has-dual-screen-plugin-overlay';\nconst PRESETS = ['Playback', 'Live', 'Ads'];\nconst IMAGE_PLAYER_ID = 'imagePlayer';\nconst MAIN_PLAYER_ID = 'mainPlayer';\n\nexport class DualScreen extends BasePlugin<DualScreenConfig> implements IEngineDecoratorProvider {\n private _layout: Layout;\n private _externalLayout: ExternalLayout | null = null;\n private _pipPosition: Position = Position.BottomRight;\n private _removeActivesArr: Function[] = [];\n private _imageSyncManager?: ImageSyncManager;\n private _playbackEnded = false;\n private _resolveReadyPromise = () => {};\n private _readyPromise: Promise<void>;\n private _pipPortraitMode = false;\n private _originalVideoElementParent?: HTMLElement;\n private _undoRemoveSettings?: Function | null = null;\n private _dualScreenPlayers: Array<DualScreenPlayer> = [];\n private _currentMultiscreenPlayers: MultiscreenPlayer[] = [];\n\n /**\n * The default configuration of the plugin.\n * @type {VisibilityConfigObject}\n * @static\n */\n static defaultConfig: DualScreenConfig = {\n layout: Layout.PIP,\n childSizePercentage: 30,\n childAspectRatio: {\n width: 16,\n height: 9\n },\n position: Position.BottomRight,\n slidesPreloadEnabled: true,\n removePlayerSettings: false\n };\n\n constructor(name: string, player: KalturaPlayer, config: DualScreenConfig) {\n super(name, player, config);\n this._readyPromise = this._makeReadyPromise();\n this._layout = Layout.Hidden;\n this._pipPosition = this.config.position;\n }\n\n getEngineDecorator(engine: any, dispatcher: Function) {\n return new DualScreenEngineDecorator(engine, this, dispatcher);\n }\n\n get ready() {\n return this._readyPromise;\n }\n\n private _removeSettingsComponent = () => {\n if (!this._undoRemoveSettings) {\n const removeSettings = {\n presets: PRESETS,\n container: ReservedPresetAreas.BottomBarRightControls,\n // @ts-ignore\n get: ui.Components.Remove,\n // @ts-ignore\n replaceComponent: ui.Components.Settings.displayName\n };\n this._undoRemoveSettings = this.player.ui.addComponent(removeSettings);\n }\n };\n\n loadMedia(): void {\n const imagePlayer = new ImagePlayer(this._onActiveSlideChanged, this.config.slidesPreloadEnabled);\n this._dualScreenPlayers = [\n {\n id: MAIN_PLAYER_ID,\n type: PlayerType.VIDEO,\n container: PlayerContainers.primary,\n player: this.player\n },\n {\n id: IMAGE_PLAYER_ID,\n type: PlayerType.IMAGE,\n container: PlayerContainers.none,\n player: imagePlayer\n }\n ];\n this._addBindings();\n const kalturaCuePointService: any = this.player.getService('kalturaCuepoints');\n this._getSecondaryMedia();\n if (kalturaCuePointService) {\n kalturaCuePointService?.registerTypes([kalturaCuePointService.CuepointType.SLIDE, kalturaCuePointService.CuepointType.VIEW_CHANGE]);\n const imagePlayer = this.getDualScreenPlayer(IMAGE_PLAYER_ID)?.player as ImagePlayer;\n this._imageSyncManager = new ImageSyncManager(this.eventManager, this.player, imagePlayer as any, this.logger, this._onSlideViewChanged);\n } else {\n this.logger.warn('kalturaCuepoints service is not registered');\n }\n }\n\n reset(): void {\n this._setDefaultMode();\n this._layout = Layout.Hidden;\n this._dualScreenPlayers.forEach(dualScreenPlayer => {\n if (dualScreenPlayer.id !== MAIN_PLAYER_ID) {\n const player = dualScreenPlayer.player as any;\n player.destroy();\n if (dualScreenPlayer.type === PlayerType.VIDEO) {\n this._removeSecondaryPlaceholder(player.config?.targetId);\n }\n }\n });\n this._imageSyncManager?.reset();\n this._imageSyncManager = undefined;\n this._readyPromise = this._makeReadyPromise();\n if (this._undoRemoveSettings) {\n this._undoRemoveSettings();\n this._undoRemoveSettings = null;\n }\n this._dualScreenPlayers = [];\n this._currentMultiscreenPlayers = [];\n this.eventManager.removeAll();\n }\n\n private _removeSecondaryPlaceholder(id: string) {\n const secondaryPlaceholderEl = document.getElementById(id);\n if (secondaryPlaceholderEl) {\n document.body.removeChild(secondaryPlaceholderEl);\n }\n }\n\n private _makeReadyPromise = () => {\n return new Promise<void>(res => {\n this._resolveReadyPromise = res;\n });\n };\n\n private _addBindings() {\n this.eventManager.listen(this.player, EventType.PLAYBACK_ENDED, () => {\n this._playbackEnded = true;\n });\n this.eventManager.listenOnce(this.player, EventType.FIRST_PLAY, () => {\n this._originalVideoElementParent = this.player.getVideoElement().parentElement!;\n });\n this.eventManager.listen(this.player, EventType.PLAY, () => {\n if (this._playbackEnded) {\n // reset mode and pip-position on replay\n this._playbackEnded = false;\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary) as DualScreenPlayer;\n if (secondaryPlayer.type === PlayerType.IMAGE && !(secondaryPlayer.player as ImagePlayer).active) {\n this._switchToHidden();\n } else {\n this._setDefaultMode();\n this._setMode();\n }\n }\n });\n }\n\n public getDualScreenPlayer = (id: string) => {\n return this._dualScreenPlayers.find(dualScreenPlayer => {\n return dualScreenPlayer.id === id;\n });\n };\n\n public getActiveDualScreenPlayer = (container: PlayerContainers.primary | PlayerContainers.secondary) => {\n return this._dualScreenPlayers.find(dualScreenPlayer => {\n return dualScreenPlayer.container === container;\n });\n };\n\n private _setActiveDualScreenPlayer = (id: string, container: PlayerContainers.primary | PlayerContainers.secondary) => {\n if (this.getActiveDualScreenPlayer(container)?.id === id) {\n // prevent set player to the same container\n return;\n }\n const resetPlayer = this._dualScreenPlayers.find(dualScreenPlayer => dualScreenPlayer.container === container);\n this._dualScreenPlayers = this._dualScreenPlayers.map(dualScreenPlayer => {\n if (resetPlayer && dualScreenPlayer.id === resetPlayer.id) {\n return {\n ...dualScreenPlayer,\n container: PlayerContainers.none\n };\n }\n return {\n ...dualScreenPlayer,\n container: dualScreenPlayer.id === id ? container : dualScreenPlayer.container\n };\n });\n };\n\n private _getMultiscreenPlayers = () => {\n return this._dualScreenPlayers.filter(dualScreenPlayer => {\n if (dualScreenPlayer.container === PlayerContainers.none) {\n if (dualScreenPlayer.type === PlayerType.IMAGE && !(dualScreenPlayer.player as ImagePlayer).active) {\n return false;\n }\n return true;\n }\n });\n };\n\n private _makeMultiscreenPlayers = (multiscreenPlayers: DualScreenPlayer[], invert = false): MultiscreenPlayer[] => {\n this._currentMultiscreenPlayers = multiscreenPlayers.map(dualScreenPlayer => {\n if (this._layout === Layout.PIP) {\n return {\n player: dualScreenPlayer.player,\n setSecondary: () => {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, PlayerContainers.secondary);\n this._setMode(true);\n },\n setPrimary: () => {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, PlayerContainers.primary);\n this._setMode(true);\n }\n };\n } else if (this._layout === Layout.SideBySide) {\n return {\n player: dualScreenPlayer.player,\n setSecondary: null,\n setPrimary: () => {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, invert ? PlayerContainers.secondary : PlayerContainers.primary);\n this._setMode(true);\n }\n };\n } else {\n return {\n player: dualScreenPlayer.player,\n setSecondary: null,\n setPrimary: () => {\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary)!;\n if (secondaryPlayer.id === dualScreenPlayer.id) {\n this._applyInverse();\n } else {\n this._setActiveDualScreenPlayer(dualScreenPlayer.id, PlayerContainers.primary);\n }\n this._setMode(true);\n }\n };\n }\n });\n return this._currentMultiscreenPlayers;\n };\n\n private _setMode = (force?: boolean) => {\n switch (this._layout) {\n case Layout.PIP:\n this._switchToPIP({force});\n break;\n case Layout.PIPInverse:\n this._applyInverse();\n this._switchToPIP({force});\n break;\n case Layout.SingleMedia:\n this._switchToSingleMedia({force});\n break;\n case Layout.SingleMediaInverse:\n this._applyInverse();\n this._switchToSingleMedia({force});\n break;\n case Layout.SideBySide:\n this._switchToSideBySide({force});\n break;\n case Layout.SideBySideInverse:\n this._applyInverse();\n this._switchToSideBySide({force});\n break;\n case Layout.Hidden:\n this._switchToHidden();\n break;\n default:\n this.logger.warn('unrecognized layout, got:', this._layout);\n }\n };\n\n private _setDefaultMode = () => {\n this._switchToHidden();\n const configLayouts = [Layout.PIP, Layout.PIPInverse, Layout.SideBySide, Layout.SideBySideInverse, Layout.SingleMedia, Layout.SingleMediaInverse];\n this._layout = configLayouts.includes(this.config.layout) ? this.config.layout : Layout.Hidden;\n this._pipPosition = this.config.position;\n this._pipPortraitMode = false;\n this._externalLayout = null;\n };\n\n private _addActives(...removeActives: Array<Function>) {\n const {\n store: {dispatch}\n } = this.player.ui;\n // @ts-ignore\n dispatch(shell.actions.addPlayerClass(HAS_DUAL_SCREEN_PLUGIN_OVERLAY));\n this._removeActives();\n this._removeActivesArr = removeActives;\n }\n\n private _removeActives() {\n this._removeActivesArr.forEach(value => {\n value();\n });\n this._removeActivesArr = [];\n }\n\n private _setPipPosition = (position: Position) => {\n this._pipPosition = position;\n };\n\n public getPipPosition = (): Position => {\n return this._pipPosition;\n };\n\n private _applyInverse = () => {\n this._dualScreenPlayers = this._dualScreenPlayers.map(dualScreenPlayer => {\n if (dualScreenPlayer.container === PlayerContainers.none) {\n return dualScreenPlayer;\n }\n return {\n ...dualScreenPlayer,\n container: dualScreenPlayer.container === PlayerContainers.primary ? PlayerContainers.secondary : PlayerContainers.primary\n };\n });\n };\n\n private _switchToHidden = () => {\n const {\n store: {dispatch}\n } = this.player.ui;\n this._layout = Layout.Hidden;\n // @ts-ignore\n dispatch(shell.actions.removePlayerClass(HAS_DUAL_SCREEN_PLUGIN_OVERLAY));\n this._removeActives();\n if (this._originalVideoElementParent) {\n this._originalVideoElementParent.prepend(this.player.getVideoElement());\n }\n };\n\n private _switchToPIP = ({animation = Animations.None, focusOnButton, force}: LayoutChangeProps = {}) => {\n const imagePlayer = this.getDualScreenPlayer(IMAGE_PLAYER_ID)?.player as ImagePlayer;\n if (!force && this._layout === Layout.PIP && this._removeActivesArr.length && imagePlayer.active?.portrait === this._pipPortraitMode) {\n return;\n }\n this._layout = Layout.PIP;\n this._setPipPortraitMode();\n\n this._addActives(\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip',\n presets: PRESETS,\n container: ReservedPresetAreas.VideoContainer,\n get: () => <PipParent animation={animation} player={this.getActiveDualScreenPlayer(PlayerContainers.primary)!.player as any} />\n }),\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip',\n presets: PRESETS,\n container: ReservedPresetAreas.InteractiveArea,\n get: () => (\n <ResponsiveManager\n onMinSize={() => {\n this._switchToSingleMedia();\n }}\n onDefaultSize={this._setMode}>\n <DragAndSnapManager\n eventManager={this.eventManager}\n logger={this.logger}\n getPosition={this.getPipPosition}\n onPositionChanged={this._setPipPosition}>\n <PipChild\n animation={Animations.Fade}\n playerSizePercentage={this.config.childSizePercentage}\n player={this.getActiveDualScreenPlayer(PlayerContainers.secondary)!.player as any}\n hide={(event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToSingleMedia({animation: Animations.None, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.Show)})\n }\n onSideBySideSwitch={(event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToSideBySide({focusOnButton: byKeyboard ? ButtonsEnum.SideBySide : undefined, animation: Animations.ScaleLeft})\n }\n onInversePIP={(event: OnClickEvent, byKeyboard: boolean) => {\n this._applyInverse();\n this._layout = Layout.PIPInverse; // toggle layout change\n this._switchToPIP({animation: Animations.Fade, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.SwitchScreen)});\n }}\n portrait={this._pipPortraitMode}\n aspectRatio={this.config.childAspectRatio}\n focusOnButton={focusOnButton}\n layout={this._layout}\n multiscreen={<Multiscreen players={this._makeMultiscreenPlayers(this._getMultiscreenPlayers())} getPosition={this.getPipPosition} />}\n />\n </DragAndSnapManager>\n </ResponsiveManager>\n )\n })\n );\n };\n\n private _switchToSingleMedia = ({animation = Animations.None, focusOnButton, force}: LayoutChangeProps = {}) => {\n if (!force && this._layout === Layout.SingleMedia && this._removeActivesArr.length) {\n return;\n }\n this._layout = Layout.SingleMedia;\n\n this._addActives(\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip',\n presets: PRESETS,\n container: ReservedPresetAreas.VideoContainer,\n get: () => <PipParent animation={animation} player={this.getActiveDualScreenPlayer(PlayerContainers.primary)!.player as any} />\n }),\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-pip-minimized',\n presets: PRESETS,\n container: ReservedPresetAreas.BottomBar,\n get: () => (\n <ResponsiveManager onDefaultSize={this._setMode}>\n <PipMinimized\n show={(event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToPIP({animation: Animations.None, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.Hide)})\n }\n players={this._makeMultiscreenPlayers([...this._getMultiscreenPlayers(), this.getActiveDualScreenPlayer(PlayerContainers.secondary)!])}\n focusOnButton={focusOnButton}\n />\n </ResponsiveManager>\n )\n })\n );\n };\n\n private _switchToSideBySide = ({animation = Animations.Fade, focusOnButton, force}: LayoutChangeProps = {}) => {\n if (!force && this._layout === Layout.SideBySide && this._removeActivesArr.length) {\n return;\n }\n this._layout = Layout.SideBySide;\n\n const leftSideProps = {\n player: this.getActiveDualScreenPlayer(PlayerContainers.primary)!.player as any,\n onExpand: (event: OnClickEvent, byKeyboard: boolean) =>\n this._switchToPIP({animation: Animations.ScaleRight, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.SideBySide)}),\n focusOnButton: Boolean(focusOnButton),\n animation,\n multiscreen: <Multiscreen players={this._makeMultiscreenPlayers(this._getMultiscreenPlayers())} />\n };\n const rightSideProps = {\n player: this.getActiveDualScreenPlayer(PlayerContainers.secondary)!.player as any,\n onExpand: (event: OnClickEvent, byKeyboard: boolean) => {\n this._applyInverse();\n this._switchToPIP({animation: Animations.ScaleLeft, focusOnButton: getValueOrUndefined(byKeyboard, ButtonsEnum.SideBySide)});\n },\n animation: Animations.Fade,\n multiscreen: <Multiscreen players={this._makeMultiscreenPlayers(this._getMultiscreenPlayers(), true)} />\n };\n\n this._addActives(\n this.player.ui.addComponent({\n label: 'kaltura-dual-screen-side-by-side',\n presets: PRESETS,\n container: ReservedPresetAreas.VideoContainer,\n get: () => (\n <SideBySideWrapper\n leftSideProps={leftSideProps}\n rightSideProps={rightSideProps}\n layout={this._layout}\n onSizeChange={this._setMode}\n onMinSize={this._switchToSingleMedia}\n />\n )\n })\n );\n };\n\n private _onActiveSlideChanged = (slideItem: SlideItem | null) => {\n if (!slideItem) {\n // deactivate dual-screen layout\n this._switchToHidden();\n return;\n }\n\n let originalHiddenLayout = false;\n if (this._layout === Layout.Hidden && !this._externalLayout) {\n originalHiddenLayout = true;\n this._setDefaultMode();\n }\n\n if (this._layout === Layout.Hidden && this._externalLayout) {\n this._applyExternalLayout();\n }\n\n let portraitModeChanged = false;\n if (slideItem.portrait !== this._pipPortraitMode) {\n portraitModeChanged = true;\n }\n\n let refreshMultiscreen = true;\n if (\n this.getDualScreenPlayer(IMAGE_PLAYER_ID)?.container !== PlayerContainers.none ||\n this._currentMultiscreenPlayers.find(multiscreenPlayer => multiscreenPlayer.player instanceof ImagePlayer)\n ) {\n // no needs to update multiscreen layout, image player already visible\n refreshMultiscreen = false;\n }\n\n if (originalHiddenLayout || (portraitModeChanged && this._layout === Layout.PIP) || refreshMultiscreen) {\n // refresh dual-screen layouts\n this._setMode(true);\n }\n if (this.config.removePlayerSettings) {\n this._removeSettingsComponent();\n }\n };\n\n private _onSlideViewChanged = (viewChange: ExternalLayout) => {\n if (this._externalLayout === viewChange) {\n return;\n }\n this._externalLayout = viewChange;\n this._applyExternalLayout();\n };\n\n private _applyExternalLayout = () => {\n // external layout applies by Kaltura Webcast Studion app, that support only 1 media and slides\n const primaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.primary);\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary);\n const _checkPlayerContainers = (inverse?: boolean) => {\n return primaryPlayer?.id === inverse ? IMAGE_PLAYER_ID : MAIN_PLAYER_ID && secondaryPlayer?.id === inverse ? MAIN_PLAYER_ID : IMAGE_PLAYER_ID;\n };\n const _applyPlayerContainers = (inverse?: boolean) => {\n this._setActiveDualScreenPlayer(MAIN_PLAYER_ID, inverse ? PlayerContainers.secondary : PlayerContainers.primary);\n this._setActiveDualScreenPlayer(IMAGE_PLAYER_ID, inverse ? PlayerContainers.primary : PlayerContainers.secondary);\n };\n switch (this._externalLayout) {\n case ExternalLayout.Hidden:\n this._switchToHidden();\n break;\n case ExternalLayout.SingleMedia:\n if (this._layout !== Layout.SingleMedia || !_checkPlayerContainers()) {\n _applyPlayerContainers();\n this._switchToSingleMedia({force: true});\n }\n break;\n case ExternalLayout.SingleMediaInverse:\n if (this._layout !== Layout.SingleMediaInverse || !_checkPlayerContainers(true)) {\n _applyPlayerContainers(true);\n this._switchToSingleMedia({force: true});\n }\n break;\n case ExternalLayout.PIP:\n if (this._layout !== Layout.PIP || !_checkPlayerContainers()) {\n _applyPlayerContainers();\n this._switchToPIP({force: true});\n }\n break;\n case ExternalLayout.PIPInverse:\n if (this._layout !== Layout.PIPInverse || !_checkPlayerContainers(true)) {\n _applyPlayerContainers(true);\n this._switchToPIP({force: true});\n }\n break;\n case ExternalLayout.SideBySide:\n if (this._layout !== Layout.SideBySide || !_checkPlayerContainers()) {\n _applyPlayerContainers();\n this._switchToSideBySide({force: true});\n }\n break;\n case ExternalLayout.SideBySideInverse:\n if (this._layout !== Layout.SideBySideInverse || !_checkPlayerContainers(true)) {\n _applyPlayerContainers(true);\n this._switchToSideBySide({force: true});\n }\n break;\n }\n };\n\n private _getSecondaryMedia() {\n // @ts-ignore\n this.player.provider\n // @ts-ignore\n .doRequest([{loader: SecondaryMediaLoader, params: {parentEntryId: this.player.sources.id}}])\n .then((data: Map<string, any>) => {\n if (data && data.has(SecondaryMediaLoader.id)) {\n const secondaryMediaLoader = data.get(SecondaryMediaLoader.id);\n const secondaryMedias = secondaryMediaLoader?.response?.entries || [];\n secondaryMedias.forEach((mediaEntry: any, index: number) => {\n const kalturaPlayer = this._createSecondaryPlayer(mediaEntry.id);\n this._dualScreenPlayers.push({\n id: mediaEntry.id,\n player: kalturaPlayer,\n type: PlayerType.VIDEO,\n container: index === 0 ? PlayerContainers.secondary : PlayerContainers.none\n });\n new VideoSyncManager(this.eventManager, this.player, kalturaPlayer, this.logger);\n });\n if (secondaryMedias.length) {\n if (this.config.removePlayerSettings) {\n this._removeSettingsComponent();\n }\n\n const secondaryPlayer: any = this.getActiveDualScreenPlayer(PlayerContainers.secondary)?.player;\n this.eventManager.listenOnce(secondaryPlayer, EventType.CHANGE_SOURCE_ENDED, () => {\n this._resolveReadyPromise();\n });\n this.eventManager.listenOnce(secondaryPlayer, EventType.FIRST_PLAYING, () => {\n this.logger.debug('secondary player first playing - show dual mode');\n this._setDefaultMode();\n this._setMode();\n });\n } else {\n this._setActiveDualScreenPlayer(IMAGE_PLAYER_ID, PlayerContainers.secondary);\n this.logger.trace('child media not found');\n this._resolveReadyPromise();\n }\n } else {\n this.logger.warn('SecondaryMediaLoader does not exist');\n this._resolveReadyPromise();\n this.eventManager.removeAll();\n }\n })\n .catch((e: any) => {\n this.logger.error(e);\n this._resolveReadyPromise();\n });\n }\n\n private _createSecondaryPlayer(entryId: string): KalturaPlayer {\n const targetId = `secondaryPlaceholder-${entryId}`;\n let secondaryPlaceholder = document.createElement('div');\n secondaryPlaceholder.setAttribute('id', targetId);\n secondaryPlaceholder.style.width = '240px';\n secondaryPlaceholder.style.height = '135px';\n secondaryPlaceholder.hidden = true;\n document.body.appendChild(secondaryPlaceholder);\n const secondaryPlayerConfig = {\n targetId,\n disableUserCache: true,\n playback: {\n muted: true,\n autoplay: false\n },\n ui: {\n disable: true\n },\n provider: {\n // @ts-ignore\n ...this.player.config.provider,\n ignoreServerConfig: true\n },\n plugins: {\n 'kaltura-live': {\n // @ts-ignore\n ...(this.player.plugins['kaltura-live']?.config || {})\n }\n }\n };\n const secondaryPlayer = (window as any).KalturaPlayer.setup(secondaryPlayerConfig);\n // @ts-ignore\n secondaryPlayer.loadMedia({entryId, ks: this.player.config.session.isAnonymous ? '' : this.player.config.session.ks});\n return secondaryPlayer;\n }\n\n /**\n * @static\n * @public\n * @returns {boolean} - Whether the plugin is valid.\n */\n static isValid(): boolean {\n return true;\n }\n\n destroy(): void {\n this.eventManager.destroy();\n }\n\n private _setPipPortraitMode() {\n const secondaryPlayer = this.getActiveDualScreenPlayer(PlayerContainers.secondary) as DualScreenPlayer;\n if (secondaryPlayer.type === PlayerType.VIDEO && secondaryPlayer.player) {\n const secondaryVideoWidth = (secondaryPlayer.player as KalturaPlayer).getVideoElement().videoWidth;\n const secondaryVideoHeight = (secondaryPlayer.player as KalturaPlayer).getVideoElement().videoHeight;\n this._pipPortraitMode = secondaryVideoWidth < secondaryVideoHeight || this._pipPortraitMode;\n } else {\n this._pipPortraitMode = (secondaryPlayer.player as ImagePlayer).active\n ? (secondaryPlayer.player as ImagePlayer).active!.portrait\n : this._pipPortraitMode;\n }\n }\n}\n","export enum Animations {\n None = 'None',\n Fade = 'Fade',\n ScaleRight = 'ScaleRight',\n ScaleLeft = 'ScaleLeft',\n Slide = 'Slide'\n}\n","export enum ButtonsEnum {\n Hide,\n Show,\n ExpandScreen,\n SideBySide,\n SwitchScreen\n}\n","export * from './animation';\nexport * from './layoutEnum';\nexport * from './reservedPresetAreasEnum';\nexport * from './buttons';\nexport * from './players';\n","import {Animations} from './animation';\nimport {ButtonsEnum} from './buttons';\n\nexport enum Layout {\n PIP = 'PIP',\n PIPInverse = 'PIPInverse',\n SingleMedia = 'SingleMedia',\n SingleMediaInverse = 'SingleMediaInverse',\n SideBySide = 'SideBySide',\n SideBySideInverse = 'SideBySideInverse',\n Hidden = 'Hidden'\n}\n\nexport enum Position {\n BottomLeft = 'bottom-left',\n BottomRight = 'bottom-right',\n TopLeft = 'top-left',\n TopRight = 'top-right'\n}\n\nexport enum ExternalLayout {\n Hidden = 'locked',\n SingleMedia = 'parent-only',\n SingleMediaInverse = 'no-parent',\n PIP = 'pip-parent-in-large',\n PIPInverse = 'pip-parent-in-small',\n SideBySide = 'sbs-parent-in-left',\n SideBySideInverse = 'sbs-parent-in-right'\n}\n\nexport enum ViewModeLockState {\n Locked = 'locked',\n Unlocked = 'unlocked'\n}\n\nexport enum StreamMode {\n Primary = 'Primary',\n Secondary = 'Secondary'\n}\n\nexport enum PlayerContainers {\n none = 'none',\n primary = 'primary',\n secondary = 'secondary'\n}\n\nexport interface LayoutChangeProps {\n animation?: Animations;\n focusOnButton?: ButtonsEnum;\n force?: boolean;\n}\n","export enum PlayerType {\n IMAGE = 'image',\n VIDEO = 'video'\n}\n","export enum ReservedPresetAreas {\n PresetFloating = 'PresetFloating',\n BottomBar = 'BottomBar',\n BottomBarLeftControls = 'BottomBarLeftControls',\n BottomBarRightControls = 'BottomBarRightControls',\n TopBarLeftControls = 'TopBarLeftControls',\n TopBarRightControls = 'TopBarRightControls',\n SidePanelTop = 'SidePanelTop',\n InteractiveAreaSidePanelLeft = 'SidePanelLeft',\n SidePanelRight = 'SidePanelRight',\n SidePanelBottom = 'SidePanelBottom',\n PresetArea = 'PresetArea',\n InteractiveArea = 'InteractiveArea',\n PlayerArea = 'PlayerArea',\n VideoArea = 'VideoArea',\n VideoContainer = 'VideoContainer'\n}\n","export namespace icons {\n export const HIDE_ICON_PATH =\n 'M4.29289 6.29289C4.68342 5.90237 5.31658 5.90237 5.70711 6.29289L8 8.58579L10.2929 6.29289C10.6834 5.90237 11.3166 5.90237 11.7071 6.29289C12.0976 6.68342 12.0976 7.31658 11.7071 7.70711L8.70711 10.7071C8.31658 11.0976 7.68342 11.0976 7.29289 10.7071L4.29289 7.70711C3.90237 7.31658 3.90237 6.68342 4.29289 6.29289Z';\n export const SHOW_ICON_PATH =\n 'M4.29289 10.7071C4.65338 11.0676 5.22061 11.0953 5.6129 10.7903L5.70711 10.7071L8 8.415L10.2929 10.7071C10.6534 11.0676 11.2206 11.0953 11.6129 10.7903L11.7071 10.7071C12.0676 10.3466 12.0953 9.77939 11.7903 9.3871L11.7071 9.29289L8.70711 6.29289C8.34662 5.93241 7.77939 5.90468 7.3871 6.2097L7.29289 6.29289L4.29289 9.29289C3.90237 9.68342 3.90237 10.3166 4.29289 10.7071Z';\n export const MediumSize = 24;\n export const SmallSize = 16;\n}\n","import './image-player.scss';\n\nconst MAX_RETRY_ATTEMPTS = 3;\nconst RETRY_DELAY = 2000;\n\ntype OnActiveChange = (imageItem: SlideItem | null) => void;\n\nexport interface RawSlideItem {\n id: string;\n imageUrl: string;\n alt: string;\n}\n\nexport interface SlideItem extends RawSlideItem {\n index: number;\n loading: boolean;\n loaded: boolean;\n portrait: boolean;\n ready: Promise<void>;\n setReady: () => void;\n retryAttempts: number;\n}\n\nexport class ImagePlayer {\n private _images: Array<SlideItem> = [];\n private _imagePlayer: HTMLDivElement;\n private _activeImage: SlideItem | null = null;\n private _onActiveChange: OnActiveChange;\n private _retryTimeout: any;\n private _preloadEnabled: boolean = true;\n\n constructor(onActiveChanged: OnActiveChange, preloadEnabled: boolean) {\n this._imagePlayer = this._createImagePlayer();\n this._onActiveChange = onActiveChanged;\n this._preloadEnabled = preloadEnabled;\n }\n\n get active() {\n return this._activeImage;\n }\n\n public preLoadImages = () => {\n const isPreloadingActive = this._images.some(slide => slide.loading);\n if (!this._preloadEnabled || isPreloadingActive) {\n // preload feature disabled or preloading currently in progress\n return;\n }\n const startIndex = this._activeImage ? this._activeImage.index : 0;\n for (let i = startIndex; i < this._images.length; i++) {\n const preloadCandidate = this._images[i];\n if (!this._isSlideItemPreloded(preloadCandidate)) {\n this._preLoadImage(preloadCandidate);\n // preload candidate found, interrupt search\n return;\n }\n }\n // preloadCandidate haven't found, try find nextPreloadCandidate from beginnig of array\n const nextPreloadCandidate = this._images.find(slideItem => {\n return !this._isSlideItemPreloded(slideItem);\n });\n if (nextPreloadCandidate) {\n this._preLoadImage(nextPreloadCandidate);\n }\n };\n\n public addImage = (item: RawSlideItem) => {\n if (this._images.find(slideItem => slideItem.id === item.id)) {\n // prevent add duplications\n return;\n }\n let setReadyFn = () => {};\n const readyPromise = new Promise<void>(setReady => {\n setReadyFn = setReady;\n });\n const slideItem: SlideItem = {\n ...item,\n index: this._images.length,\n loading: false,\n loaded: false,\n portrait: false,\n retryAttempts: 0,\n ready: readyPromise,\n setReady: setReadyFn\n };\n this._images.push(slideItem);\n };\n\n public setActive = (activeId: string | null) => {\n if (!activeId) {\n if (!this._activeImage) {\n // prevent remove image if active is null\n return;\n }\n // remove active image\n (this._imagePlayer.firstChild! as HTMLImageElement).setAttribute('src', '');\n (this._imagePlayer.firstChild! as HTMLImageElement).setAttribute('alt', '');\n this._activeImage = null;\n this._onActiveChange(null);\n return;\n }\n if (this._activeImage && activeId === this._activeImage.id) {\n // prevent set the same active image\n return;\n }\n clearTimeout(this._retryTimeout);\n this._images.find(item => {\n if (activeId === item.id) {\n this._preLoadImage(item);\n this._activeImage = item;\n item.ready.then(() => {\n // check that during loading active image haven't changed\n if (this._activeImage?.id === item.id) {\n this._onActiveChange(item);\n (this._imagePlayer.firstChild! as HTMLImageElement).setAttribute('src', item.imageUrl);\n }\n });\n return true;\n }\n return false;\n });\n };\n\n public getVideoElement = () => {\n return this._imagePlayer;\n };\n\n private _isSlideItemPreloded = (item: SlideItem) => {\n return item.loaded || item.loading || item.retryAttempts >= MAX_RETRY_ATTEMPTS;\n };\n\n private _createImagePlayer = () => {\n const imagePlayer = document.createElement('div');\n const img = document.createElement('img');\n img.src = '';\n img.alt = '';\n imagePlayer.appendChild(img);\n imagePlayer.classList.add('playkit-image-player');\n imagePlayer.dataset.testid = 'dualscreen_imagePlayer';\n return imagePlayer;\n };\n\n private _preLoadImage = (item: SlideItem) => {\n if (this._isSlideItemPreloded(item)) {\n // current item already preloaded, try next\n this.preLoadImages();\n return;\n }\n item.retryAttempts++;\n item.loading = true;\n const img = new Image();\n img.onload = () => {\n item.loading = false;\n item.loaded = true;\n item.portrait = img.width < img.height;\n item.setReady();\n this.preLoadImages();\n };\n img.onerror = () => {\n item.loading = false;\n this._retryTimeout = setTimeout(() => {\n this._preLoadImage(item);\n }, RETRY_DELAY);\n };\n img.src = item.imageUrl;\n };\n\n public reset = () => {\n this._activeImage = null;\n this._images = [];\n clearTimeout(this._retryTimeout);\n };\n\n public destroy = () => {\n this.reset();\n };\n}\n","export * from './image-player';\n","// @ts-ignore\nimport {core, PlaykitUI, Logger, KalturaPlayer} from '@playkit-js/kaltura-player-js';\nimport {ExternalLayout, ViewModeLockState} from './enums';\nimport {ImagePlayer} from './image-player';\nimport {debounce} from '@playkit-js/common/dist/utils-common/utils';\n\nconst {TimedMetadata, EventType} = core;\n\ninterface TimedMetadataEvent {\n payload: {\n cues: Array<typeof TimedMetadata>;\n };\n}\n\nexport interface ViewChangeData {\n playerViewModeId?: ExternalLayout;\n viewModeLockState?: string;\n}\n\nconst DEBOUNCE_TIMEOUT = 200;\n\nexport class ImageSyncManager {\n _eventManager: PlaykitUI.EventManager;\n _mainPlayer: KalturaPlayer;\n _imagePlayer: ImagePlayer;\n _logger: Logger;\n _onSlideViewChanged: (viewChangeData: ExternalLayout) => void;\n _kalturaCuePointService: any;\n _firstPlaying: boolean = false;\n _lock: boolean = false;\n private _debouncedSetActive: (slideId: string | null) => void;\n\n constructor(\n eventManager: PlaykitUI.EventManager,\n mainPlayer: KalturaPlayer,\n imagePlayer: ImagePlayer,\n logger: Logger,\n onSlideViewChanged: (viewChangeData: ExternalLayout) => void\n ) {\n this._eventManager = eventManager;\n this._mainPlayer = mainPlayer;\n this._imagePlayer = imagePlayer;\n this._logger = logger;\n this._onSlideViewChanged = onSlideViewChanged;\n this._syncEvents();\n this._kalturaCuePointService = this._mainPlayer.getService('kalturaCuepoints');\n this._debouncedSetActive = debounce(this._imagePlayer.setActive, DEBOUNCE_TIMEOUT);\n }\n\n private _syncEvents = () => {\n this._eventManager.listen(this._mainPlayer, EventType.TIMED_METADATA_CHANGE, this._onTimedMetadataChange);\n this._eventManager.listen(this._mainPlayer, EventType.TIMED_METADATA_ADDED, this._onTimedMetadataAdded);\n this._eventManager.listen(this._mainPlayer, EventType.FIRST_PLAYING, this._onFirstPlaying);\n };\n\n private _onFirstPlaying = () => {\n this._firstPlaying = true;\n this._imagePlayer.preLoadImages();\n };\n\n private _onTimedMetadataChange = ({payload}: TimedMetadataEvent) => {\n const {cues: activeCuePoints} = payload;\n const {activeSlide, externalLayout} = activeCuePoints.reduce<{activeSlide: string | null; externalLayout: ExternalLayout | null}>(\n (acc, cue) => {\n if (this._isSlideCuePoint(cue)) {\n return {...acc, activeSlide: cue.id};\n }\n if (cue.metadata?.cuePointType === this._kalturaCuePointService.KalturaCuePointType.CODE && cue.metadata?.tags === 'change-view-mode') {\n const {playerViewModeId, viewModeLockState} = cue.metadata!.partnerData;\n if (playerViewModeId) {\n return {...acc, externalLayout: viewModeLockState === ViewModeLockState.Locked ? ExternalLayout.Hidden : playerViewModeId};\n }\n }\n return acc;\n },\n {\n activeSlide: null,\n externalLayout: null\n }\n );\n\n if (externalLayout) {\n this._onSlideViewChanged(externalLayout);\n }\n this._debouncedSetActive(externalLayout === ExternalLayout.Hidden ? null : activeSlide);\n };\n\n private _onTimedMetadataAdded = ({payload}: TimedMetadataEvent) => {\n const slides = payload.cues.map(cue => {\n if (this._isSlideCuePoint(cue)) {\n this._imagePlayer.addImage({\n id: cue.id,\n imageUrl: cue.metadata!.assetUrl,\n alt: cue.metadata!.title || cue.metadata!.description\n });\n return cue;\n }\n });\n\n if (slides.length && this._firstPlaying) {\n this._imagePlayer.preLoadImages();\n }\n };\n\n private _isSlideCuePoint(cue: any) {\n return (\n cue?.type === TimedMetadata.TYPE.CUE_POINT &&\n cue.metadata?.cuePointType === this._kalturaCuePointService.KalturaCuePointType.THUMB &&\n cue.metadata?.subType === this._kalturaCuePointService.KalturaThumbCuePointSubType.SLIDE\n );\n }\n\n reset() {\n this._firstPlaying = false;\n }\n}\n","import ILoader = KalturaPlayerTypes.ILoader;\n\nconst {RequestBuilder, ResponseTypes} = KalturaPlayer.providers;\n\ninterface SecondaryMediaLoaderParams {\n parentEntryId: string;\n}\n\nexport class SecondaryMediaLoader implements ILoader {\n _parentEntryId: string = '';\n _requests: any[] = [];\n _response: any = {\n entries: []\n };\n\n static get id(): string {\n return 'dualscreen';\n }\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: SecondaryMediaLoaderParams) {\n this._parentEntryId = params.parentEntryId;\n const headers: Map<string, string> = new Map();\n const request = new RequestBuilder(headers);\n const INCLUDE_FIELDS = 1;\n request.service = 'baseEntry';\n request.action = 'list';\n request.params = {\n filter: {\n objectType: 'KalturaBaseEntryFilter',\n parentEntryIdEqual: this._parentEntryId,\n typeIn: `${ResponseTypes.KalturaMediaEntry.MediaType.VIDEO.value},7` // VOD and LIVE\n },\n responseProfile: {\n type: INCLUDE_FIELDS,\n fields: 'id'\n }\n };\n this.requests.push(request);\n }\n\n set requests(requests: any[]) {\n this._requests = requests;\n }\n\n get requests(): any[] {\n return this._requests;\n }\n\n set response(response: any) {\n const mediaEntryListResponse = new ResponseTypes.KalturaBaseEntryListResponse(response[0]?.data);\n if (mediaEntryListResponse.totalCount) {\n this._response.entries = mediaEntryListResponse?.entries;\n }\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._parentEntryId;\n }\n}\n","export const isInInterval = (num: number, lower: number, upper: number) => {\n return !isNaN(num) && !isNaN(lower) && !isNaN(upper) && lower <= upper && num >= lower && num <= upper;\n};\n\nexport const getClientX = (e: MouseEvent | TouchEvent): number => {\n if (e instanceof MouseEvent) {\n return e.clientX;\n }\n return e.changedTouches && e.changedTouches[0] && e.changedTouches[0].clientX;\n};\n\nexport const getClientY = (e: MouseEvent | TouchEvent): number => {\n if (e instanceof MouseEvent) {\n return e.clientY;\n }\n return e.changedTouches && e.changedTouches[0] && e.changedTouches[0].clientY;\n};\n\nexport const dimensionStyleToString = (value: number): string => {\n return `${value}px`;\n};\n\nexport const getValueOrUndefined = <T>(condition: boolean, value: T) => {\n return condition ? value : undefined;\n};\n","import {isInInterval} from './utils';\n// @ts-ignore\nimport {core, PlaykitUI, Logger, KalturaPlayer} from '@playkit-js/kaltura-player-js';\nimport {debounce} from '@playkit-js/common/dist/utils-common/utils';\nconst {EventType, FakeEvent, Error, StateType} = core;\n\nconst MIN_PLAYBACK_RATE = 0.1; // browsers throws a \"NotSupportedError\" DOMException if playback rate not supported by the user agent\nconst DEBOUNCE_SEEK_INTERVAL = 1000;\nconst SYNC_INTERVAL = 1000;\n\nexport class VideoSyncManager {\n private _isSyncDelay = false;\n private _debouncedSeekSecondaryPlayer: (aheadTime?: number) => void;\n\n _eventManager: PlaykitUI.EventManager;\n _mainPlayer: KalturaPlayer;\n _secondaryPlayer: KalturaPlayer;\n _logger: Logger;\n\n constructor(eventManager: PlaykitUI.EventManager, mainPlayer: KalturaPlayer, secondaryPlayer: KalturaPlayer, logger: KalturaPlayerTypes.Logger) {\n this._eventManager = eventManager;\n this._mainPlayer = mainPlayer;\n this._secondaryPlayer = secondaryPlayer;\n this._logger = logger;\n this._syncEvents();\n this._errorHandling();\n this._debouncedSeekSecondaryPlayer = debounce(this._seekSecondaryPlayer, DEBOUNCE_SEEK_INTERVAL);\n }\n\n private _errorHandling = () => {\n this._eventManager.listen(this._secondaryPlayer, EventType.ERROR, (e: Error) => {\n this._logger.debug('errorHandling :: secondary player got error');\n const error = new Error(Error.Severity.CRITICAL, Error.Category.PLAYER, Error.Code.VIDEO_ERROR, e);\n this._mainPlayer.pause();\n // @ts-ignore\n this._mainPlayer.dispatchEvent(new FakeEvent(EventType.ERROR, error));\n });\n this._eventManager.listen(this._mainPlayer, EventType.ERROR, () => {\n this._logger.debug('errorHandling :: main player got error');\n this._secondaryPlayer.reset();\n });\n };\n\n private _syncEvents = () => {\n let lastSync = 0;\n this._eventManager.listen(this._mainPlayer, EventType.PLAY, () => {\n this._logger.debug('syncEvents :: secondary player play');\n this._secondaryPlayer.play();\n });\n this._eventManager.listen(this._mainPlayer, EventType.PAUSE, () => {\n this._logger.debug('syncEvents :: secondary player pause');\n this._secondaryPlayer.pause();\n });\n this._eventManager.listenOnce(this._secondaryPlayer, EventType.CHANGE_SOURCE_ENDED, () => {\n const isLive = this._secondaryPlayer.isLive();\n const isDvr = this._secondaryPlayer.isDvr();\n if (!isLive) {\n this._logger.debug('syncEvents :: subscribe on time update for accurate sync');\n this._eventManager.listen(this._mainPlayer, EventType.TIME_UPDATE, () => {\n if (!this._isSyncDelay) {\n const now = Date.now();\n if (now - lastSync > SYNC_INTERVAL || this._mainPlayer.paused) {\n lastSync = now;\n this._mediaSync();\n }\n }\n });\n } else if (isDvr) {\n // for live entry use raw sync only\n this._eventManager.listen(this._secondaryPlayer, EventType.VIDEO_TRACK_CHANGED, () => {\n this._logger.debug('syncEvents :: make raw initial sync for live media');\n this._debouncedSeekSecondaryPlayer();\n });\n }\n\n if (!isLive || isDvr) {\n this._eventManager.listen(this._mainPlayer, EventType.SEEKING, () => {\n this._logger.debug(`syncEvents :: seek secondary player to ${this._mainPlayer}`);\n this._secondaryPlayer.pause();\n this._debouncedSeekSecondaryPlayer();\n });\n }\n });\n this._eventManager.listen(this._mainPlayer, EventType.ENDED, () => {\n this._logger.debug('syncEvents :: secondary player pause + seek to 0.01');\n this._secondaryPlayer.pause();\n this._seekSecondaryPlayer(0.01);\n });\n this._eventManager.listen(\n this._mainPlayer,\n EventType.PLAYER_STATE_CHANGED,\n ({payload}: {payload: {newState: {type: typeof StateType}; oldState: {type: typeof StateType}}}) => {\n if (\n payload.newState.type === StateType.BUFFERING &&\n // @ts-ignore\n !(this._mainPlayer.seeking || this._mainPlayer.paused) &&\n !this._secondaryPlayer.paused\n ) {\n this._logger.debug('syncEvents :: main player got BUFFERING');\n this._secondaryPlayer.pause();\n return;\n }\n if (payload.newState.type === StateType.PLAYING && payload.oldState.type === StateType.BUFFERING && this._secondaryPlayer.paused) {\n this._logger.debug('syncEvents :: main player resume PLAYING');\n this._secondaryPlayer.play();\n }\n }\n );\n };\n\n private _mediaSync = () => {\n // @ts-ignore\n if (this._isSyncDelay || (this._mainPlayer.paused && !this._mainPlayer.seeking)) {\n return;\n }\n const synchDelayThresholdPositive = 0.03;\n const synchDelayThresholdNegative = -0.03;\n const maxGap = 4;\n const seekAhead = 0.25; // s\n\n if (this._secondaryPlayer) {\n let doSeek = false;\n const synchDelay = this._getSyncDelay();\n this._logger.debug(`mediaSync :: synchDelay is ${synchDelay}`);\n let playbackRateChange = 0;\n const adaptivePlaybackRate = Math.round(Math.abs(synchDelay) * 100) / 100;\n if (synchDelay > synchDelayThresholdPositive) {\n playbackRateChange = -1 * adaptivePlaybackRate;\n } else if (synchDelay < synchDelayThresholdNegative) {\n playbackRateChange = adaptivePlaybackRate;\n }\n if (playbackRateChange !== 0) {\n if (Math.abs(synchDelay) < maxGap) {\n // @ts-ignore\n let newPlaybackRate = this._mainPlayer.playbackRate + playbackRateChange;\n if (newPlaybackRate < MIN_PLAYBACK_RATE) {\n newPlaybackRate = MIN_PLAYBACK_RATE;\n }\n this._logger.debug(`mediaSync :: Adjusting slave playbackRateChange = ${newPlaybackRate}`);\n // set a slower playback rate for the video to let the master video catch up\n // @ts-ignore\n this._secondaryPlayer.playbackRate = newPlaybackRate;\n } else {\n this._logger.debug('mediaSync :: Adjusting secondary player playbackRateChange to main player and flagging for seek');\n // set playback rate back to normal\n // @ts-ignore\n this._secondaryPlayer.playbackRate = this._mainPlayer.playbackRate;\n // mark for seeking\n doSeek = true;\n }\n }\n // everything is fine\n else if (!this._mainPlayer.paused) {\n // @ts-ignore\n if (this._secondaryPlayer.playbackRate !== this._mainPlayer.playbackRate) {\n this._logger.debug('mediaSync :: Main player and secondary player sync, adjusting secondary player playback rate to main player rate');\n // set playback rate back to normal\n // @ts-ignore\n this._secondaryPlayer.playbackRate = this._mainPlayer.playbackRate;\n }\n if (this._secondaryPlayer.paused) {\n // play the video\n this._secondaryPlayer.play();\n }\n }\n\n // if marked for seeking\n if (doSeek) {\n // @ts-ignore\n this._logger.debug(`mediaSync :: Seeking secondary player to ${this._mainPlayer.currentTime + seekAhead}`);\n this._seekSecondaryPlayer(seekAhead);\n }\n }\n };\n\n private _getSyncDelay = () => {\n // @ts-ignore\n const ctMaster = this._mainPlayer.currentTime; // current time in seconds\n // @ts-ignore\n const ct = this._secondaryPlayer.currentTime; // current time in seconds\n const syncGap = 0; // s\n if (ctMaster != -1 && ct != -1 && !isInInterval(ct, ctMaster - syncGap, ctMaster)) {\n return ct - ctMaster; // time difference\n }\n return 0; // delay is acceptable\n };\n\n private _seekSecondaryPlayer = (aheadTime: number = 0) => {\n // @ts-ignore\n const seekTime = this._mainPlayer.currentTime < 0 ? 0 : this._mainPlayer.currentTime;\n // @ts-ignore\n if (this._secondaryPlayer.ended && this._secondaryPlayer.duration && Math.ceil(seekTime) > this._secondaryPlayer.duration) {\n // trying to seek out of bounds after secondary Player already ended\n // pause secondary Player\n // @ts-ignore\n this._logger.debug(`seekSecondaryPlayer :: seekTime ${seekTime} is out of bounds 0..${this._secondaryPlayer.duration}. pause secondary player`);\n this._secondaryPlayer.pause();\n return;\n }\n this._logger.debug(`seekSecondaryPlayer :: seeking to=${seekTime}, ahead=${aheadTime}`);\n // @ts-ignore\n this._secondaryPlayer.currentTime = seekTime + aheadTime;\n if (this._mainPlayer.paused) {\n this._secondaryPlayer.pause();\n } else {\n this._secondaryPlayer.play();\n }\n };\n}\n","module.exports = KalturaPlayer;","module.exports = KalturaPlayer.ui.preact;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","/// <reference path=\"./global.d.ts\" />\n\nimport {DualScreen} from './dualscreen';\n\ndeclare var __VERSION__: string;\ndeclare var __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport {DualScreen as Plugin};\nexport {VERSION, NAME};\n\nconst pluginName: string = 'dualscreen';\nKalturaPlayer.core.registerPlugin(pluginName, DualScreen);\n"],"names":["extendStatics","__extends","this","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","defineProperty","exports","value","Button","ButtonType","ButtonSize","preact_1","classnames","kaltura_player_js_1","a11y_wrapper_1","icon_1","styles","Tooltip","ui","Components","_super","_this","buttonRef","createRef","renderButton","_a","props","classNames","button","size","type","className","disabled","withIcon","children","icon","iconOnly","buttonProps","ref","tabIndex","ariaLabel","testId","buttonContent","h","Fragment","Icon","name","IconSize","onClick","A11yWrapper","componentDidMount","focusOnMount","current","focus","render","tooltip","tooltipProps","label","Component","defaultProps","medium","primary","isKeyboardEvent","utils","KeyMap","ENTER","SPACE","UP","DOWN","LEFT","RIGHT","stopEvent","e","preventDefault","stopPropagation","KeyboardEvent","offsetX","offsetY","every","offset","onUpKeyPressed","onDownKeyPressed","onLeftKeyPressed","onRightKeyPressed","role","onKeyDown","keyCode","cloneElement","Add","width","height","viewBox","fill","xmlns","Close","Download","Expand","Icons","close_1","print_1","download_1","related_1","message_1","share_1","more_1","quiz_1","switch_1","add_1","minimizedVideo_1","pictureInPicture_1","expand_1","close","print","Print","download","related","Related","message","Message","share","Share","more","More","quiz","QuizIcon","switch","Switch","add","minimizedVideo","MinimizedVideo","pictureInPicture","PictureInPicture","expand","icons_1","iconWrapper","debounce","getQnaUserId","getUserId","generateId","Date","getTime","toString","Math","random","slice","generateNumberedId","uuid","numStr","char","charAt","Number","isNaN","charCodeAt","Storage","_generateAnonymousUserId","anonymousUserId","localStorage","getItem","setItem","concat","player","_b","_c","_d","_e","config","plugins","session","userRole","qna","userId","func","waitMilliseconds","options","timeoutId","isImmediate","args","_i","shouldCallNow","undefined","clearTimeout","setTimeout","hasOwn","classes","arg","argType","push","isArray","inner","includes","key","join","module","default","___CSS_LOADER_EXPORT___","id","locals","cssWithMappingToString","list","map","item","content","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","api","__esModule","memo","getTarget","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","index","obj","css","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","Boolean","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","bind","parentNode","removeStyleElement","newObj","all","atob","lastIdentifiers","newList","newLastIdentifiers","_index","splice","DragEvents","connect","KalturaPlayer","PRE_PLAYBACK_POSITION","mapStateToProps","state","prePlayback","engine","_draggableTargetRef","_draggableItemRef","_draggableAreaRef","_currMousePos","x","y","_throttleWait","isDragging","_renderChildComponent","setDraggableTarget","_setDraggableTarget","targetEl","_addListeners","_handleChangePosition","position","_setAbsoluteStyles","onPositionChanged","_onStartDrag","getPosition","setState","eventManager","listen","MouseDown","_startDrag","MouseMove","MouseUp","TouchStart","unlisten","TouchMove","TouchEnd","_moveDrag","event","deltaMousePosX","getClientX","deltaMousePosY","getClientY","parseInt","top","right","dimensionStyleToString","_getBoundingClientRects","getBoundingClientRect","_applyRelativeStyles","bottom","left","_setRelativeStyles","Position","BottomRight","_setRelativeBottomRightStyles","BottomLeft","_setRelativeBottomLeftStyles","TopRight","_setRelativeTopRightStyles","TopLeft","_setRelativeTopLeftStyles","_applyAbsoluteStyles","_setAbsoluteBottomRightStyles","_setAbsoluteBottomLeftStyles","_setAbsoluteTopRightStyles","_setAbsoluteTopLeftStyles","draggableItemBoundClientRect","draggableAreaBoundClientRect","_stopDrag","draggableContainerCenterX","draggableContainerCenterY","guiClientCenterX","guiClientCenterY","componentWillUnmount","moveEventName","endEventName","listenOnce","draggableItemStyles","draggableItem","dragging","draggableArea","onTransitionEnd","DragAndSnapManager","components","withEventManager","Event","preacti18n","withText","Text","CLOSE_EVENT","translates","multiscreenLabel","switchScreen","switchToSecondary","switchToPrimary","focusOnMultiscreenButton","_multiscreenPlayersRefs","_multiscreenPlayersWrapperRef","isOpen","xPosition","_attachVideoElements","videoElement","players","getVideoElement","prepend","_closePupup","_openPopup","_handleClick","byKeyboard","getParentRef","dispatchEvent","_handleLayoutChange","cb","parentRef","componentDidUpdate","previousProps","previousState","sbsLayout","parentLeftPostion","rightShift","popoverMenuButton","active","borderless","multiscreenWrapper","multiscreenPlayersWrapper","visible","multiscreenPlayer","multiscreenButtonsWrapper","setPrimary","setSecondary","Multiscreen","showLabel","showAriaLabel","_renderHoverButton","show","hideButtons","focusOnButton","showContainer","ButtonsEnum","Show","translucent","iconContainer","icons","SmallSize","path","SHOW_ICON_PATH","childPlayerContainer","childPlayer","tinyChildPlayer","innerButtons","tinyInnerButtons","SwitchScreen","PipMinimized","redux","reducers","layout","sideBySide","Layout","PIP","hideLabel","hideAriaLabel","showUi","shell","playerHover","playerNav","playerHeight","guiClientRect","playerContainerRef","pipContainerRef","_renderInnerButtons","onSideBySideSwitch","onInversePIP","multiscreen","portrait","verticalPlayer","buttonWrapper","SideBySide","_renderHideButton","hide","hideContainer","Hide","HIDE_ICON_PATH","styleClass","animation","Animations","Fade","animatedFade","ScaleRight","animatedScaleRight","ScaleLeft","animatedScaleLeft","playerSizePercentage","aspectRatio","playerContainerStyles","playerWrapper","playerContainer","bindActions","actions","PipChild","videoContainerRef","videoContainer","parentPlayer","PipParent","PLAYER_SIZE","HIDE_BUTTON_MODES","EXTRA_SMALL","SMALL","TINY","MIN_SIZES","playerSize","onMinSize","prevProps","onDefaultSize","ResponsiveManager","sbsWrapperRef","leftSideProps","rightSideProps","onSizeChange","sideBySideWrapper","streamMode","StreamMode","Primary","Secondary","SideBySideWrapper","expandScreen","playerWidth","onExpand","animatedScale","EventType","core","plugin","dispatcher","_isActive","_plugin","_dispatcher","SEEKING","secondaryPlayer","src","SEEKED","ended","getActiveDualScreenPlayer","PlayerContainers","secondary","PlayerType","VIDEO","DualScreenEngineDecorator","HAS_DUAL_SCREEN_PLUGIN_OVERLAY","PRESETS","IMAGE_PLAYER_ID","MAIN_PLAYER_ID","_externalLayout","_pipPosition","_removeActivesArr","_playbackEnded","_resolveReadyPromise","_pipPortraitMode","_undoRemoveSettings","_dualScreenPlayers","_currentMultiscreenPlayers","_removeSettingsComponent","removeSettings","presets","container","ReservedPresetAreas","BottomBarRightControls","get","Remove","replaceComponent","Settings","displayName","addComponent","_makeReadyPromise","Promise","res","getDualScreenPlayer","find","dualScreenPlayer","_setActiveDualScreenPlayer","resetPlayer","none","_getMultiscreenPlayers","IMAGE","_makeMultiscreenPlayers","multiscreenPlayers","invert","_layout","_setMode","_applyInverse","force","_switchToPIP","PIPInverse","SingleMedia","_switchToSingleMedia","SingleMediaInverse","_switchToSideBySide","SideBySideInverse","Hidden","_switchToHidden","logger","warn","_setDefaultMode","configLayouts","_setPipPosition","getPipPosition","dispatch","removePlayerClass","_removeActives","_originalVideoElementParent","None","imagePlayer","_setPipPortraitMode","_addActives","VideoContainer","InteractiveArea","childSizePercentage","getValueOrUndefined","childAspectRatio","BottomBar","_onActiveSlideChanged","slideItem","originalHiddenLayout","_applyExternalLayout","portraitModeChanged","refreshMultiscreen","ImagePlayer","removePlayerSettings","_onSlideViewChanged","viewChange","primaryPlayer","_checkPlayerContainers","inverse","_applyPlayerContainers","ExternalLayout","_readyPromise","getEngineDecorator","loadMedia","slidesPreloadEnabled","_addBindings","kalturaCuePointService","getService","_getSecondaryMedia","registerTypes","CuepointType","SLIDE","VIEW_CHANGE","_imageSyncManager","ImageSyncManager","reset","destroy","_removeSecondaryPlaceholder","targetId","removeAll","secondaryPlaceholderEl","getElementById","body","PLAYBACK_ENDED","FIRST_PLAY","parentElement","PLAY","addPlayerClass","removeActives","provider","doRequest","loader","SecondaryMediaLoader","params","parentEntryId","sources","then","has","secondaryMediaLoader","secondaryMedias","response","entries","mediaEntry","kalturaPlayer","_createSecondaryPlayer","VideoSyncManager","CHANGE_SOURCE_ENDED","FIRST_PLAYING","debug","trace","catch","error","entryId","secondaryPlaceholder","hidden","secondaryPlayerConfig","disableUserCache","playback","muted","autoplay","disable","ignoreServerConfig","setup","ks","isAnonymous","isValid","secondaryVideoWidth","videoWidth","secondaryVideoHeight","videoHeight","defaultConfig","BasePlugin","DualScreen","ViewModeLockState","MediumSize","onActiveChanged","preloadEnabled","_images","_activeImage","_preloadEnabled","preLoadImages","isPreloadingActive","some","slide","loading","preloadCandidate","_isSlideItemPreloded","_preLoadImage","nextPreloadCandidate","addImage","setReadyFn","readyPromise","setReady","loaded","retryAttempts","ready","setActive","activeId","_imagePlayer","_onActiveChange","_retryTimeout","imageUrl","_createImagePlayer","img","alt","classList","dataset","testid","Image","onload","onerror","TimedMetadata","mainPlayer","onSlideViewChanged","_firstPlaying","_lock","_syncEvents","_eventManager","_mainPlayer","TIMED_METADATA_CHANGE","_onTimedMetadataChange","TIMED_METADATA_ADDED","_onTimedMetadataAdded","_onFirstPlaying","reduce","acc","cue","_isSlideCuePoint","activeSlide","metadata","cuePointType","_kalturaCuePointService","KalturaCuePointType","CODE","tags","partnerData","playerViewModeId","viewModeLockState","externalLayout","Locked","_debouncedSetActive","cues","assetUrl","title","description","_logger","TYPE","CUE_POINT","THUMB","subType","KalturaThumbCuePointSubType","providers","RequestBuilder","ResponseTypes","_parentEntryId","_requests","_response","headers","Map","request","service","action","objectType","parentEntryIdEqual","typeIn","KalturaMediaEntry","MediaType","responseProfile","fields","requests","mediaEntryListResponse","KalturaBaseEntryListResponse","totalCount","isInInterval","num","lower","upper","MouseEvent","clientX","changedTouches","clientY","condition","FakeEvent","StateType","_isSyncDelay","_errorHandling","_secondaryPlayer","ERROR","Severity","CRITICAL","Category","PLAYER","Code","VIDEO_ERROR","pause","lastSync","play","PAUSE","isLive","isDvr","VIDEO_TRACK_CHANGED","_debouncedSeekSecondaryPlayer","TIME_UPDATE","now","paused","_mediaSync","ENDED","_seekSecondaryPlayer","PLAYER_STATE_CHANGED","payload","newState","BUFFERING","seeking","PLAYING","oldState","doSeek","synchDelay","_getSyncDelay","playbackRateChange","adaptivePlaybackRate","round","abs","newPlaybackRate","playbackRate","currentTime","ctMaster","ct","aheadTime","seekTime","duration","ceil","preact","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","a","definition","o","enumerable","prop","r","Symbol","toStringTag","nc","VERSION","NAME","registerPlugin"],"sourceRoot":""}