{"version":3,"sources":["webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/regex.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./src/js/videoHelper/index.js","webpack:///./src/js/components/videoCard.js"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","uuid","test","byteToHex","push","toString","substr","arr","offset","arguments","length","undefined","toLowerCase","TypeError","options","buf","rnds","random","i","VideoHelper","videoGroups","addVideoPlayer","groupName","videoPlayer","this","stopOtherPlayers","videoPlayerId","item","id","player","el","classList","remove","dom","vimeoVideo","vimeoPlayer","pause","localVideo","Module","videoTrigger","querySelector","Vimeo","Player","controls","dataset","videoGroup","seq","uuidv4","addEventListener","handleVideoClick","e","key","which","keyCode","RETURN","SPACE","preventDefault","handleVideoPlay","handleVideoPause","handleVideoEnd","playing","play","url","encodeURI","element","src","URLSearchParams","split","get","vimeoPlayerAddControls","getPaused","add","destroy","then","on","setAttribute","removeAttribute","currentTime","load","Component"],"mappings":"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","file":"39.d384d13308e20c4cd46f.js","sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","const VideoHelper = {\r\n videoGroups: {},\r\n // eslint-disable-next-line object-shorthand\r\n addVideoPlayer: function (groupName, videoPlayer) {\r\n if (this.videoGroups[groupName]) {\r\n this.videoGroups[groupName].push(videoPlayer);\r\n } else {\r\n this.videoGroups[groupName] = [videoPlayer];\r\n }\r\n },\r\n // eslint-disable-next-line object-shorthand\r\n stopOtherPlayers: function (groupName, videoPlayerId) {\r\n if (this.videoGroups[groupName]) {\r\n for (const item of this.videoGroups[groupName]) {\r\n if (item.id !== videoPlayerId) {\r\n const player = item.player;\r\n player.el.classList.remove('video-card--playing');\r\n if (player.dom.vimeoVideo) {\r\n player.vimeoPlayer.pause();\r\n } else {\r\n player.dom.localVideo.pause();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default VideoHelper;\r\n","import { Component } from '@verndale/core';\r\nimport { keyCode } from '../helpers';\r\nimport VideoHelper from '../videoHelper';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nclass Module extends Component {\r\n setupDefaults() {\r\n this.dom = {\r\n videoTrigger: this.el.querySelector('.video-card__container'),\r\n localVideo: this.el.querySelector('.video-card__container video'),\r\n vimeoVideo: this.el.querySelector(\r\n '.video-card__container [data-vimeo-id]'\r\n )\r\n };\r\n\r\n if (this.dom.vimeoVideo) {\r\n this.vimeoPlayer = new Vimeo.Player(this.dom.vimeoVideo, {\r\n controls: false\r\n });\r\n }\r\n\r\n if (!this.el.dataset.videoGroup) {\r\n this.el.dataset.videoGroup = 'default';\r\n }\r\n\r\n this.el.dataset.seq = uuidv4();\r\n\r\n VideoHelper.addVideoPlayer(this.el.dataset.videoGroup, {\r\n id: this.el.dataset.seq,\r\n player: this\r\n });\r\n }\r\n\r\n addListeners() {\r\n this.dom.videoTrigger.addEventListener(\r\n 'click',\r\n this.handleVideoClick.bind(this)\r\n );\r\n this.dom.videoTrigger.addEventListener('keypress', e => {\r\n const key = e.which || e.keyCode;\r\n\r\n if (key === keyCode.RETURN || key === keyCode.SPACE) {\r\n e.preventDefault();\r\n this.handleVideoClick(this);\r\n }\r\n });\r\n\r\n if (this.dom.localVideo) {\r\n this.dom.localVideo.addEventListener(\r\n 'play',\r\n this.handleVideoPlay.bind(this)\r\n );\r\n this.dom.localVideo.addEventListener(\r\n 'pause',\r\n this.handleVideoPause.bind(this)\r\n );\r\n this.dom.localVideo.addEventListener(\r\n 'ended',\r\n this.handleVideoEnd.bind(this)\r\n );\r\n }\r\n }\r\n\r\n async handleVideoClick() {\r\n let isPlaying;\r\n\r\n if (this.dom.localVideo) {\r\n if (!this.dom.localVideo.playing) {\r\n this.dom.localVideo.play();\r\n }\r\n } else if (this.vimeoPlayer) {\r\n const url = encodeURI(this.vimeoPlayer.element.src);\r\n const params = new URLSearchParams(url.split('?')[1]);\r\n\r\n if (params.get('controls') === '0') {\r\n this.vimeoPlayerAddControls();\r\n } else {\r\n const isPaused = await this.vimeoPlayer.getPaused();\r\n isPlaying = !isPaused;\r\n\r\n if (isPlaying) {\r\n this.vimeoPlayer.pause();\r\n this.el.classList.remove('video-card--playing');\r\n } else {\r\n this.vimeoPlayer.play();\r\n this.el.classList.add('video-card--playing');\r\n VideoHelper.stopOtherPlayers(this.el.dataset.videoGroup, this.el.dataset.seq);\r\n }\r\n }\r\n }\r\n }\r\n\r\n vimeoPlayerAddControls() {\r\n this.vimeoPlayer.destroy().then(() => {\r\n this.el.classList.add('video-card--vimeo-initialized');\r\n this.vimeoPlayer = new Vimeo.Player(this.dom.vimeoVideo, {\r\n controls: true\r\n });\r\n this.vimeoPlayer.play();\r\n this.el.classList.add('video-card--playing');\r\n this.vimeoPlayer.on('play', this.handleVideoPlay.bind(this));\r\n this.vimeoPlayer.on('pause', this.handleVideoPause.bind(this));\r\n this.vimeoPlayer.on('ended', this.handleVideoEnd.bind(this));\r\n VideoHelper.stopOtherPlayers(this.el.dataset.videoGroup, this.el.dataset.seq);\r\n });\r\n }\r\n\r\n handleVideoPlay() {\r\n this.el.classList.add('video-card--playing');\r\n this.dom.localVideo &&\r\n this.dom.localVideo.setAttribute('controls', 'controls');\r\n VideoHelper.stopOtherPlayers(this.el.dataset.videoGroup, this.el.dataset.seq);\r\n }\r\n\r\n handleVideoPause() {\r\n this.el.classList.remove('video-card--playing');\r\n this.dom.localVideo && this.dom.localVideo.removeAttribute('controls');\r\n }\r\n\r\n handleVideoEnd() {\r\n this.el.classList.remove('video-card--playing');\r\n\r\n if (this.dom.localVideo) {\r\n this.dom.localVideo.currentTime = 0;\r\n this.dom.localVideo.load();\r\n this.dom.localVideo.removeAttribute('controls');\r\n }\r\n }\r\n}\r\n\r\nexport default Module;\r\n"],"sourceRoot":""}