{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/user-preferences/user-preferences.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/user-preferences/index.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/video/video.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/video/index.js"],"names":["UserPreferences","constructor","bindEvents","prefersReducedMotion","_prefersReducedMotion","value","window","matchMedia","matches","addEventListener","VIDEO_HOOK","PLAYER_HOOK","VIDEO_AUDIO_HOOK","VIDEO_AUDIO_ON_HOOK","VIDEO_AUDIO_OFF_HOOK","VIDEO_PLAY_HOOK","VIDEO_PAUSE_HOOK","VIDEO_REPLAY_HOOK","VIDEO_READY_CLASS","VIDEO_PLAYING_CLASS","VIDEO_PAUSED_CLASS","VIDEO_REPLAY_CLASS","VIDEO_COOKIE_INVALID_CLASS","VIDEOS","Array","from","document","querySelectorAll","Video","videos","registeredPlatforms","registerPlatforms","platforms","_bindEvent","Events","$on","_event","element","inviewProperties","isInViewport","vertical","dataset","videoLoop","$trigger","id","_videoIsInitialised","scrolledPastViewport","bottom","initVideo","iterateVideos","data","classList","add","remove","bindPlayerEvents","concat","getVideos","forEach","video","PlatformClass","videoPlatform","options","constructVideoOptions","Object","keys","length","playerInstance","toggleAudioIcon","videoMuted","filter","prototype","hasOwnProperty","call","muted","player","audioOn","querySelector","audioOff","style","display","videoId","videoSources","videoClosedcaptions","videoTime","videoInfo","videoControls","videoAutoplay","videoAutopause","videoPlaysinline","instanceId","parseInt","play","pause","replay","mute","unMute","setVolume","audioButton","playButton","pauseButton","replayButton"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,MAAMA,eAAN,CAAsB;AACpBC,aAAW,GAAG;AACZ,SAAKC,UAAL;AACD;;AAEuB,MAApBC,oBAAoB,GAAG;AACzB,WAAO,KAAKC,qBAAZ;AACD;;AAEuB,MAApBD,oBAAoB,CAACE,KAAD,EAAQ;AAC9B,SAAKD,qBAAL,GAA6BC,KAA7B;AACD;;AAEDH,YAAU,GAAG;AACX,QAAMC,oBAAoB,GAAGG,MAAM,CAACC,UAAP,CAAkB,kCAAlB,CAA7B;AACA,SAAKJ,oBAAL,GAA4BA,oBAAoB,CAACK,OAAjD;AAEA,QAAI,OAAOL,oBAAoB,CAACM,gBAA5B,KAAiD,UAArD,EAAiE;AAEjEN,wBAAoB,CAACM,gBAArB,CAAsC,QAAtC,EAAgD,MAAM;AACpD,WAAKN,oBAAL,GAA4BA,oBAAoB,CAACK,OAAjD;AACD,KAFD;AAGD;;AAtBmB;;AAyBP,yDAAIR,eAAJ,EAAf,E;;ACzBA;AACA;AACA;AAEA;AAEeA,+EAAf,E;;ACNA;AACA;AAEA,IAAMU,UAAU,GAAG,iBAAnB;AACA,IAAMC,WAAW,GAAG,wBAApB;AAEA,IAAMC,gBAAgB,GAAG,uBAAzB;AACA,IAAMC,mBAAmB,GAAG,0BAA5B;AACA,IAAMC,oBAAoB,GAAG,2BAA7B;AACA,IAAMC,eAAe,GAAG,sBAAxB;AACA,IAAMC,gBAAgB,GAAG,uBAAzB;AACA,IAAMC,iBAAiB,GAAG,wBAA1B;AAEA,IAAMC,iBAAiB,GAAG,uBAA1B;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;AACA,IAAMC,kBAAkB,GAAG,kBAA3B;AACA,IAAMC,kBAAkB,GAAG,iBAA3B;AACA,IAAMC,0BAA0B,GAAG,2BAAnC;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AACA,IAAMC,MAAM,GAAGC,KAAK,CAACC,IAAN,CAAWC,QAAQ,CAACC,gBAAT,CAA0BjB,UAA1B,CAAX,CAAf;;AAEA,MAAMkB,WAAN,CAAY;AACV3B,aAAW,GAAG;AACZ,SAAK4B,MAAL,GAAc,EAAd;AACA,SAAKC,mBAAL,GAA2B,EAA3B;AACD;;AAEDC,mBAAiB,CAACC,SAAD,EAAY;AAC3B,QAAI,OAAOA,SAAP,KAAqB,QAAzB,EAAmC;AACnC,SAAKF,mBAAL,GAA2BE,SAA3B;;AAEA,SAAKC,UAAL;AACD;AAED;AACF;AACA;;;AACEA,YAAU,GAAG;AACXC,qBAAM,CAACC,GAAP,CAAW,eAAX,EAA4B,CAACC,MAAD,EAASC,OAAT,KAAqB;AAC/C,UAAI,CAACA,OAAO,CAACC,gBAAR,CAAyBC,YAAzB,CAAsCC,QAAvC,IAAmD,CAACH,OAAO,CAACI,OAAR,CAAgBC,SAAxE,EAAmF;AACjFR,yBAAM,CAACS,QAAP,iBAAyBN,OAAO,CAACO,EAAjC;AACD;;AAED,UAAI,CAACP,OAAO,CAACQ,mBAAT,IAAgCR,OAAO,CAACC,gBAAR,CAAyBQ,oBAAzB,CAA8CC,MAAlF,EAA0F;AACxF,aAAKC,SAAL,CAAeX,OAAf;AACD;AACF,KARD;AAUAH,qBAAM,CAACC,GAAP,CAAW,eAAX,EAA4B,CAACC,MAAD,EAASC,OAAT,KAAqB;AAC/C,UAAI,CAACA,OAAL,EAAc;AACZ,aAAKY,aAAL;AACD,OAFD,MAEO;AACL,aAAKD,SAAL,CAAeX,OAAf;AACD;AACF,KAND;AAQAH,qBAAM,CAACC,GAAP,CAAW,cAAX,EAA2B,CAACC,MAAD,EAASc,IAAT,KAAkB;AAC3CA,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBC,GAAvB,CAA2BlC,iBAA3B;AACAgC,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBC,GAAvB,CAA2BhC,kBAA3B;AACD,KAHD;AAKAc,qBAAM,CAACC,GAAP,CAAW,gBAAX,EAA6B,CAACC,MAAD,EAASc,IAAT,KAAkB;AAC7CA,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBE,MAAvB,CAA8BhC,kBAA9B;AACA6B,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBE,MAAvB,CAA8BjC,kBAA9B;AACA8B,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBC,GAAvB,CAA2BjC,mBAA3B;AACD,KAJD;AAMAe,qBAAM,CAACC,GAAP,CAAW,eAAX,EAA4B,CAACC,MAAD,EAASc,IAAT,KAAkB;AAC5CA,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBE,MAAvB,CAA8BlC,mBAA9B;AACA+B,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBC,GAAvB,CAA2BhC,kBAA3B;AACD,KAHD;AAKAc,qBAAM,CAACC,GAAP,CAAW,cAAX,EAA2B,CAACC,MAAD,EAASc,IAAT,KAAkB;AAC3CA,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBE,MAAvB,CAA8BlC,mBAA9B;AACA+B,UAAI,CAACb,OAAL,CAAac,SAAb,CAAuBC,GAAvB,CAA2B/B,kBAA3B;AACD,KAHD;AAKAa,qBAAM,CAACC,GAAP,CAAW,2BAAX,EAAwC,CAACC,MAAD,EAASc,IAAT,KAAkB;AACxD,UAAIA,IAAJ,EAAUI,gBAAgB,CAACJ,IAAD,CAAhB;AACX,KAFD;AAIAhB,qBAAM,CAACC,GAAP,CAAW,uBAAX,EAAoC,CAACC,MAAD,EAASC,OAAT,KAAqB;AACvD,UAAIA,OAAJ,EAAaA,OAAO,CAACc,SAAR,CAAkBC,GAAlB,CAAsB9B,0BAAtB;AACd,KAFD;AAGD;AAED;AACF;AACA;;;AACE2B,eAAa,GAAG;AACd,SAAKpB,MAAL,GAAc,KAAKA,MAAL,CAAY0B,MAAZ,CAAmBC,SAAS,CAAC,KAAK1B,mBAAN,CAA5B,CAAd;AAEA,SAAKD,MAAL,CAAY4B,OAAZ,CAAoBC,KAAK,IAAI;AAC3B,WAAKV,SAAL,CAAeU,KAAf;AACD,KAFD;AAGD;AAED;AACF;AACA;AACA;;;AACEV,WAAS,CAACU,KAAD,EAAQ;AACf,QAAIA,KAAK,CAACb,mBAAV,EAA+B;AAE/B,QAAMc,aAAa,GAAG,KAAK7B,mBAAL,CAAyB4B,KAAK,CAACjB,OAAN,CAAcmB,aAAvC,CAAtB;AACA,QAAMC,OAAO,GAAGC,qBAAqB,CAACJ,KAAD,CAArC;;AAEA,QAAIK,MAAM,CAACC,IAAP,CAAYH,OAAZ,EAAqBI,MAAzB,EAAiC;AAC/BJ,aAAO,CAACxB,OAAR,CAAgB6B,cAAhB,GAAiC,IAAIP,aAAJ,CAAkBE,OAAlB,CAAjC;AACD;;AAEDM,mBAAe,CAACN,OAAO,CAACO,UAAT,EAAqBP,OAAO,CAACxB,OAA7B,CAAf;AACD;;AA3FS;AA8FZ;AACA;AACA;AACA;AACA;;;AACA,SAASmB,SAAT,CAAmBxB,SAAnB,EAA8B;AAC5B,SAAOT,MAAM,CAAC8C,MAAP,CAAcX,KAAK,IACxBK,MAAM,CAACO,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCxC,SAArC,EAAgD0B,KAAK,CAACjB,OAAN,CAAcmB,aAA9D,KACA,CAACF,KAAK,CAACb,mBADP,GAEIa,KAFJ,GAGI,KAJC,CAAP;AAMD;;AAED,SAASS,eAAT,CAAyBM,KAAzB,EAAgCC,MAAhC,EAAwC;AACtC,MAAMC,OAAO,GAAGD,MAAM,CAACE,aAAP,CAAqB/D,mBAArB,CAAhB;AACA,MAAMgE,QAAQ,GAAGH,MAAM,CAACE,aAAP,CAAqB9D,oBAArB,CAAjB;AACA,MAAI,CAAC6D,OAAD,IAAY,CAACE,QAAjB,EAA2B;;AAE3B,MAAIJ,KAAJ,EAAW;AACPE,WAAO,CAACG,KAAR,CAAcC,OAAd,GAAwB,MAAxB;AACAF,YAAQ,CAACC,KAAT,CAAeC,OAAf,GAAyB,OAAzB;AACH,GAHD,MAGO;AACHJ,WAAO,CAACG,KAAR,CAAcC,OAAd,GAAwB,OAAxB;AACAF,YAAQ,CAACC,KAAT,CAAeC,OAAf,GAAyB,MAAzB;AACH;AACF;AAED;AACA;AACA;AACA;AACA;;;AACA,SAASjB,qBAAT,CAA+BzB,OAA/B,EAAwC;AACtC,MAAM;AACJuB,iBADI;AAEJoB,WAFI;AAGJC,gBAHI;AAIJC,uBAJI;AAKJC,aAAS,GAAG,GALR;AAMJC,aAAS,GAAG,GANR;AAOJC,iBAAa,GAAG,GAPZ;AAQJjB,cAAU,GAAG,GART;AASJkB,iBAAa,GAAG,GATZ;AAUJC,kBAAc,GAAG,GAVb;AAWJ7C,aAAS,GAAG,GAXR;AAYJ8C,oBAAgB,GAAG;AAZf,MAaFnD,OAAO,CAACI,OAbZ;AAeA,MAAMgD,UAAU,GAAGpD,OAAO,CAACO,EAA3B;AACA,MAAM8B,MAAM,GAAGrC,OAAO,CAACuC,aAAR,CAAsBjE,WAAtB,CAAf;AAEA,MAAI,CAACiD,aAAD,IAAkB,CAACoB,OAAnB,IAA8B3C,OAAO,CAACQ,mBAA1C,EAA+D,OAAO,EAAP;AAE/DR,SAAO,CAACQ,mBAAR,GAA8B,IAA9B;AAEA,SAAO;AACLR,WADK;AAELqC,UAFK;AAGLe,cAHK;AAIL7B,iBAJK;AAKLoB,WALK;AAMLI,aANK;AAOLH,gBAPK;AAQLC,uBARK;AASL;AACAC,aAAS,EAAEO,QAAQ,CAACP,SAAD,EAAY,EAAZ,CAVd;AAWLE,iBAAa,EAAEK,QAAQ,CAACL,aAAD,EAAgB,EAAhB,CAXlB;AAYLjB,cAAU,EAAEsB,QAAQ,CAACtB,UAAD,EAAa,EAAb,CAZf;AAaLkB,iBAAa,EAAEtF,0BAAe,CAACG,oBAAhB,GAAuC,CAAvC,GAA2CuF,QAAQ,CAACJ,aAAD,EAAgB,EAAhB,CAb7D;AAcLC,kBAAc,EAAEG,QAAQ,CAACH,cAAD,EAAiB,EAAjB,CAdnB;AAeLC,oBAAgB,EAAEE,QAAQ,CAACF,gBAAD,EAAmB,EAAnB,CAfrB;AAgBL9C,aAAS,EAAEgD,QAAQ,CAAChD,SAAD,EAAY,EAAZ;AAhBd,GAAP;AAkBD;AAED;AACA;AACA;AACA;;;AACA,SAASY,gBAAT,CAA0BO,OAA1B,EAAmC;AACjC3B,mBAAM,CAACC,GAAP,iBAAoB0B,OAAO,CAAC4B,UAA5B,cAAiD,MAAM;AACrD5B,WAAO,CAACxB,OAAR,CAAgB6B,cAAhB,CAA+ByB,IAA/B;AACD,GAFD;AAIAzD,mBAAM,CAACC,GAAP,iBAAoB0B,OAAO,CAAC4B,UAA5B,eAAkD,MAAM;AACtD5B,WAAO,CAACxB,OAAR,CAAgB6B,cAAhB,CAA+B0B,KAA/B;AACD,GAFD;AAIA1D,mBAAM,CAACC,GAAP,iBAAoB0B,OAAO,CAAC4B,UAA5B,gBAAmD,MAAM;AACvD5B,WAAO,CAACxB,OAAR,CAAgB6B,cAAhB,CAA+B2B,MAA/B;AACD,GAFD;AAIA3D,mBAAM,CAACC,GAAP,iBAAoB0B,OAAO,CAAC4B,UAA5B,cAAiD,MAAM;AACrD5B,WAAO,CAACxB,OAAR,CAAgB6B,cAAhB,CAA+B4B,IAA/B;AACD,GAFD;AAIA5D,mBAAM,CAACC,GAAP,iBAAoB0B,OAAO,CAAC4B,UAA5B,gBAAmD,MAAM;AACvD5B,WAAO,CAACxB,OAAR,CAAgB6B,cAAhB,CAA+B6B,MAA/B;AACD,GAFD;AAIA7D,mBAAM,CAACC,GAAP,iBAAoB0B,OAAO,CAAC4B,UAA5B,gBAAmD,CAACrD,MAAD,EAASc,IAAT,KAAkB;AACnEW,WAAO,CAACxB,OAAR,CAAgB6B,cAAhB,CAA+B8B,SAA/B,CAAyC9C,IAAI,CAACA,IAA9C;AACD,GAFD;AAIA,MAAM+C,WAAW,GAAGpC,OAAO,CAACxB,OAAR,CAAgBuC,aAAhB,CAA8BhE,gBAA9B,CAApB;;AACA,MAAIqF,WAAJ,EAAiB;AACfA,eAAW,CAACxF,gBAAZ,CAA6B,OAA7B,EAAsC,MAAM;AAC1C,UAAIoD,OAAO,CAACO,UAAZ,EAAwB;AACpBP,eAAO,CAACO,UAAR,GAAqB,CAArB;AACAlC,yBAAM,CAACS,QAAP,iBAAyBkB,OAAO,CAAC4B,UAAjC;AACAtB,uBAAe,CAACN,OAAO,CAACO,UAAT,EAAqBP,OAAO,CAACxB,OAA7B,CAAf;AACH,OAJD,MAIO;AACHwB,eAAO,CAACO,UAAR,GAAqB,CAArB;AACAlC,yBAAM,CAACS,QAAP,iBAAyBkB,OAAO,CAAC4B,UAAjC;AACAtB,uBAAe,CAACN,OAAO,CAACO,UAAT,EAAqBP,OAAO,CAACxB,OAA7B,CAAf;AACH;AACF,KAVD;AAWD;;AAED,MAAM6D,UAAU,GAAGrC,OAAO,CAACxB,OAAR,CAAgBuC,aAAhB,CAA8B7D,eAA9B,CAAnB;;AACA,MAAImF,UAAJ,EAAgB;AACdA,cAAU,CAACzF,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;AACzCyB,uBAAM,CAACS,QAAP,iBAAyBkB,OAAO,CAAC4B,UAAjC;AACD,KAFD;AAGD;;AAED,MAAMU,WAAW,GAAGtC,OAAO,CAACxB,OAAR,CAAgBuC,aAAhB,CAA8B5D,gBAA9B,CAApB;;AACA,MAAImF,WAAJ,EAAiB;AACfA,eAAW,CAAC1F,gBAAZ,CAA6B,OAA7B,EAAsC,MAAM;AAC1CyB,uBAAM,CAACS,QAAP,iBAAyBkB,OAAO,CAAC4B,UAAjC;AACD,KAFD;AAGD;;AAED,MAAMW,YAAY,GAAGvC,OAAO,CAACxB,OAAR,CAAgBuC,aAAhB,CAA8B3D,iBAA9B,CAArB;;AACA,MAAImF,YAAJ,EAAkB;AAChBA,gBAAY,CAAC3F,gBAAb,CAA8B,OAA9B,EAAuC,MAAM;AAC3CyB,uBAAM,CAACS,QAAP,iBAAyBkB,OAAO,CAAC4B,UAAjC;AACD,KAFD;AAGD;AACF;;AAEc,8CAAI7D,WAAJ,EAAf,E;;ACxQA;AACA;AACA;AACA;AAEeA,2FAAf,E","file":"js/Video.js","sourcesContent":["class UserPreferences {\n constructor() {\n this.bindEvents()\n }\n\n get prefersReducedMotion() {\n return this._prefersReducedMotion\n }\n\n set prefersReducedMotion(value) {\n this._prefersReducedMotion = value\n }\n\n bindEvents() {\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)')\n this.prefersReducedMotion = prefersReducedMotion.matches\n\n if (typeof prefersReducedMotion.addEventListener !== 'function') return\n\n prefersReducedMotion.addEventListener('change', () => {\n this.prefersReducedMotion = prefersReducedMotion.matches\n })\n }\n}\n\nexport default new UserPreferences()\n","/**\n * @shelf-version: 1.0.0\n */\n\nimport UserPreferences from './user-preferences'\n\nexport default UserPreferences\n","import Events from '@utilities/events'\nimport UserPreferences from '@utilities/user-preferences'\n\nconst VIDEO_HOOK = '[js-hook-video]'\nconst PLAYER_HOOK = '[js-hook-video-player]'\n\nconst VIDEO_AUDIO_HOOK = '[js-hook-video-audio]'\nconst VIDEO_AUDIO_ON_HOOK = '[js-hook-video-audio-on]'\nconst VIDEO_AUDIO_OFF_HOOK = '[js-hook-video-audio-off]'\nconst VIDEO_PLAY_HOOK = '[js-hook-video-play]'\nconst VIDEO_PAUSE_HOOK = '[js-hook-video-pause]'\nconst VIDEO_REPLAY_HOOK = '[js-hook-video-replay]'\n\nconst VIDEO_READY_CLASS = 'video--is-initialised'\nconst VIDEO_PLAYING_CLASS = 'video--is-playing'\nconst VIDEO_PAUSED_CLASS = 'video--is-paused'\nconst VIDEO_REPLAY_CLASS = 'video--is-ended'\nconst VIDEO_COOKIE_INVALID_CLASS = 'video--has-invalid-cookie'\n\n/**\n * @typedef {HTMLElement & {\n * _videoIsInitialised: boolean\n * }} VideoElement\n */\n\n/** @type {VideoElement[]} */\nconst VIDEOS = Array.from(document.querySelectorAll(VIDEO_HOOK))\n\nclass Video {\n constructor() {\n this.videos = []\n this.registeredPlatforms = {}\n }\n\n registerPlatforms(platforms) {\n if (typeof platforms !== 'object') return\n this.registeredPlatforms = platforms\n\n this._bindEvent()\n }\n\n /**\n * Bind generic events\n */\n _bindEvent() {\n Events.$on('video::inview', (_event, element) => {\n if (!element.inviewProperties.isInViewport.vertical && !element.dataset.videoLoop) {\n Events.$trigger(`video[${element.id}]::pause`)\n }\n\n if (!element._videoIsInitialised && element.inviewProperties.scrolledPastViewport.bottom) {\n this.initVideo(element)\n }\n })\n\n Events.$on('video::update', (_event, element) => {\n if (!element) {\n this.iterateVideos()\n } else {\n this.initVideo(element)\n }\n })\n\n Events.$on('video::ready', (_event, data) => {\n data.element.classList.add(VIDEO_READY_CLASS)\n data.element.classList.add(VIDEO_PAUSED_CLASS)\n })\n\n Events.$on('video::playing', (_event, data) => {\n data.element.classList.remove(VIDEO_REPLAY_CLASS)\n data.element.classList.remove(VIDEO_PAUSED_CLASS)\n data.element.classList.add(VIDEO_PLAYING_CLASS)\n })\n\n Events.$on('video::paused', (_event, data) => {\n data.element.classList.remove(VIDEO_PLAYING_CLASS)\n data.element.classList.add(VIDEO_PAUSED_CLASS)\n })\n\n Events.$on('video::ended', (_event, data) => {\n data.element.classList.remove(VIDEO_PLAYING_CLASS)\n data.element.classList.add(VIDEO_REPLAY_CLASS)\n })\n\n Events.$on('video::bind-player-events', (_event, data) => {\n if (data) bindPlayerEvents(data)\n })\n\n Events.$on('video::cookie-invalid', (_event, element) => {\n if (element) element.classList.add(VIDEO_COOKIE_INVALID_CLASS)\n })\n }\n\n /**\n * Iterate over platform types\n */\n iterateVideos() {\n this.videos = this.videos.concat(getVideos(this.registeredPlatforms))\n\n this.videos.forEach(video => {\n this.initVideo(video)\n })\n }\n\n /**\n * Init all videos\n * @param {object} video\n */\n initVideo(video) {\n if (video._videoIsInitialised) return\n\n const PlatformClass = this.registeredPlatforms[video.dataset.videoPlatform]\n const options = constructVideoOptions(video)\n\n if (Object.keys(options).length) {\n options.element.playerInstance = new PlatformClass(options)\n }\n\n toggleAudioIcon(options.videoMuted, options.element)\n }\n}\n\n/**\n * Get all videos matching the hook\n * @param {object} platforms\n * @returns {Object}\n */\nfunction getVideos(platforms) {\n return VIDEOS.filter(video =>\n Object.prototype.hasOwnProperty.call(platforms, video.dataset.videoPlatform) &&\n !video._videoIsInitialised\n ? video\n : false,\n )\n}\n\nfunction toggleAudioIcon(muted, player) {\n const audioOn = player.querySelector(VIDEO_AUDIO_ON_HOOK)\n const audioOff = player.querySelector(VIDEO_AUDIO_OFF_HOOK)\n if (!audioOn || !audioOff) return\n\n if (muted) {\n audioOn.style.display = 'none';\n audioOff.style.display = 'block';\n } else {\n audioOn.style.display = 'block';\n audioOff.style.display = 'none';\n }\n}\n\n/**\n * Construct the video options object\n * @param {VideoElement} element\n * @returns {Object}\n */\nfunction constructVideoOptions(element) {\n const {\n videoPlatform,\n videoId,\n videoSources,\n videoClosedcaptions,\n videoTime = '0',\n videoInfo = '0',\n videoControls = '0',\n videoMuted = '0',\n videoAutoplay = '0',\n videoAutopause = '1',\n videoLoop = '0',\n videoPlaysinline = '0',\n } = element.dataset\n\n const instanceId = element.id\n const player = element.querySelector(PLAYER_HOOK)\n\n if (!videoPlatform || !videoId || element._videoIsInitialised) return {}\n\n element._videoIsInitialised = true\n\n return {\n element,\n player,\n instanceId,\n videoPlatform,\n videoId,\n videoInfo,\n videoSources,\n videoClosedcaptions,\n // Boolean options:\n videoTime: parseInt(videoTime, 10),\n videoControls: parseInt(videoControls, 10),\n videoMuted: parseInt(videoMuted, 10),\n videoAutoplay: UserPreferences.prefersReducedMotion ? 0 : parseInt(videoAutoplay, 10),\n videoAutopause: parseInt(videoAutopause, 10),\n videoPlaysinline: parseInt(videoPlaysinline, 10),\n videoLoop: parseInt(videoLoop, 10),\n }\n}\n\n/**\n * Bind all the player specific events\n * @param {Object} options\n */\nfunction bindPlayerEvents(options) {\n Events.$on(`video[${options.instanceId}]::play`, () => {\n options.element.playerInstance.play()\n })\n\n Events.$on(`video[${options.instanceId}]::pause`, () => {\n options.element.playerInstance.pause()\n })\n\n Events.$on(`video[${options.instanceId}]::replay`, () => {\n options.element.playerInstance.replay()\n })\n\n Events.$on(`video[${options.instanceId}]::mute`, () => {\n options.element.playerInstance.mute()\n })\n\n Events.$on(`video[${options.instanceId}]::unmute`, () => {\n options.element.playerInstance.unMute()\n })\n\n Events.$on(`video[${options.instanceId}]::volume`, (_event, data) => {\n options.element.playerInstance.setVolume(data.data)\n })\n\n const audioButton = options.element.querySelector(VIDEO_AUDIO_HOOK)\n if (audioButton) {\n audioButton.addEventListener('click', () => {\n if (options.videoMuted) {\n options.videoMuted = 0\n Events.$trigger(`video[${options.instanceId}]::unmute`)\n toggleAudioIcon(options.videoMuted, options.element)\n } else {\n options.videoMuted = 1\n Events.$trigger(`video[${options.instanceId}]::mute`)\n toggleAudioIcon(options.videoMuted, options.element)\n }\n })\n }\n\n const playButton = options.element.querySelector(VIDEO_PLAY_HOOK)\n if (playButton) {\n playButton.addEventListener('click', () => {\n Events.$trigger(`video[${options.instanceId}]::play`)\n })\n }\n\n const pauseButton = options.element.querySelector(VIDEO_PAUSE_HOOK)\n if (pauseButton) {\n pauseButton.addEventListener('click', () => {\n Events.$trigger(`video[${options.instanceId}]::pause`)\n })\n }\n\n const replayButton = options.element.querySelector(VIDEO_REPLAY_HOOK)\n if (replayButton) {\n replayButton.addEventListener('click', () => {\n Events.$trigger(`video[${options.instanceId}]::replay`)\n })\n }\n}\n\nexport default new Video()\n","/**\n * @shelf-version: 1.1.0\n */\nimport Video from './video'\n\nexport default Video\n"],"sourceRoot":""}