{"version":3,"sources":["webpack:///./app/components/m/modal/index.js","webpack:///./app/components/m/video/config.js","webpack:///./app/components/m/video/video-thumbnail.js"],"names":["BModal","constructor","classes","arguments","length","undefined","container","modalMarkup","modal","$","remove","document","body","append","modalHeader","find","modalBody","on","setClasses","addClass","setHeader","markup","once","before","setBody","html","setFooter","after","show","delay","that","Number","isInteger","timeid","setTimeout","plyrOptions","autoplay","controls","settings","ratio","quality","default","options","e","preventDefault","elem","video","data","medianame","mediaid","videoPlayer","paused","dynModal","currentTarget","querySelector","Plyr","pushEvent","eventName","curObject","pageInfo","eventtype","videoid","videoname","track","event","firstMatch","checkProgress","Math","floor","currentTime","duration","timeOut","setInterval","clearInterval","touch","togglePlay","destroy"],"mappings":"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","file":"video-thumbnail.chunk.js","sourcesContent":["/**\r\n * Bootstrap Modal with pure Javascript\r\n * Usage:\r\n * var my_modal = new bsModal();\r\n * my_modal.setBody('Some content');\r\n * my_modal.setFooter('Footer');\r\n * my_modal.modal.modal('show');\r\n * @param  {string} classes [css classes]\r\n */\r\n\r\nclass BModal {\r\n  constructor(classes = '', container = true) {\r\n    const modalMarkup =\r\n      '<div id=\"BModal\" tabindex=\"-1\" class=\"modal ' +\r\n      classes +\r\n      ' fade in\">' +\r\n      '<div class=\"modal-dialog\">' +\r\n      '<div class=\"modal-content\">' +\r\n      '<div class=\"modal-header\">' +\r\n      '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"close\"><svg class=\"icon icon-close\"><use xlink:href=\"#icon-close\"></use></svg></button>' +\r\n      '</button>' +\r\n      '</div>' +\r\n      `<div class=\"modal-body ${container ? 'container' : ''}\"></div>` +\r\n      '</div>' +\r\n      '</div>' +\r\n      '</div>';\r\n    this.modal = $('#BModal');\r\n    // Remove modal if there's already one\r\n    this.modal.remove();\r\n    // Append markup\r\n    $(document.body).append(modalMarkup);\r\n    this.modal = $('#BModal');\r\n    this.modalHeader = this.modal.find('.modal-header');\r\n    this.modalBody = this.modal.find('.modal-body');\r\n    // Kill on Hide\r\n    this.modal.on('hidden.bs.modal', function () {\r\n      $(this).remove();\r\n    });\r\n  }\r\n\r\n  // Set variant class\r\n  setClasses(classes) {\r\n    this.modal.addClass(classes);\r\n  }\r\n\r\n  // Set Body\r\n  setHeader(markup, once = false) {\r\n    // only add markup if once is explicitly set\r\n    // and element wasn't added yet\r\n    if (once && this.modalHeader.find('.modal-header__content').length) return;\r\n\r\n    this.modalHeader.find('.close').before(`<div class=\"modal-header__content\">${markup}</div>`);\r\n  }\r\n\r\n  // Set Body\r\n  setBody(markup) {\r\n    this.modalBody.html(markup);\r\n  }\r\n\r\n  // Set Footer\r\n  setFooter(markup) {\r\n    this.modalBody.after('<div class=\"modal-footer\">' + markup + '</div>');\r\n  }\r\n\r\n  // Display modal\r\n  show(delay) {\r\n    const that = this;\r\n    delay = Number(delay);\r\n    if (Number.isInteger(delay)) {\r\n      const timeid = setTimeout(() => {\r\n        that.modal.modal('hide');\r\n      }, delay);\r\n    }\r\n    this.modal.modal('show');\r\n  }\r\n}\r\n\r\nexport { BModal };\r\n","// import 'plyr/dist/plyr.polyfilled';\r\n\r\nconst plyrOptions = {\r\n  autoplay: true,\r\n  controls: [\r\n    // comment/ uncomment required controls\r\n    //'play-large', // The large play button in the center\r\n    //'restart', // Restart playback\r\n    'rewind', // Rewind by the seek time (default 10 seconds)\r\n    'play', // Play/pause playback\r\n    'fast-forward', // Fast forward by the seek time (default 10 seconds)\r\n    'current-time', // The current time of playback\r\n    'progress', // The progress bar and scrubber for playback and buffering\r\n    'duration', // The full duration of the media\r\n    'settings', // Settings menu\r\n    'mute', // Toggle mute\r\n    'volume', // Volume control\r\n    //'captions', // Toggle captions\r\n    //'pip', // Picture-in-picture (currently Safari only)\r\n    //'airplay', // Airplay (currently Safari only)\r\n    //'download', // Show a download button with a link to either the current source or a custom URL you specify in your options\r\n    'fullscreen', // Toggle fullscreen\r\n  ],\r\n  settings: ['quality'],\r\n  ratio: '16:9',\r\n  quality: { default: 576, options: [1080, 576] },\r\n};\r\n\r\nexport { plyrOptions };\r\n","import { BModal } from '../../m/modal';\r\nimport Plyr from 'plyr';\r\nimport { plyrOptions } from './config';\r\nimport { track } from '/app/core/js/libs/TrackingService.js';\r\n\r\n// video-modal for video player\r\n$(document).on('click', 'a.video-thumbnail, .video-thumbnail[role=\"link\"]', function (e) {\r\n  e.preventDefault();\r\n  const elem = $(this);\r\n  const video = elem.data('video');\r\n  const medianame = elem.data('medianame') || '';\r\n  const mediaid = elem.data('videoid') || '';\r\n  let videoPlayer;\r\n  let paused = false;\r\n  const dynModal = new BModal('modal--fullscreen modal--video');\r\n\r\n  dynModal.setBody(\r\n    `<div class=\"video__container\">\r\n      <video controls playsinline>\r\n        ${video}\r\n      </video>\r\n    </div>`\r\n  );\r\n  dynModal.show();\r\n\r\n  dynModal.modal\r\n    .on('shown.bs.modal', (e) => {\r\n      const video = e.currentTarget.querySelector('video');\r\n      videoPlayer = new Plyr(video, plyrOptions);\r\n\r\n      /*-----------------TRACKING --------------*/\r\n      function pushEvent(eventName) {\r\n        let curObject;\r\n        if (pageInfo) {\r\n          curObject = {\r\n            ...pageInfo,\r\n            eventtype: '',\r\n            videoid: '',\r\n            videoname: '',\r\n          };\r\n        } else {\r\n          curObject = {\r\n            eventtype: '',\r\n            videoid: '',\r\n            videoname: '',\r\n          };\r\n        }\r\n        curObject.eventtype = eventName;\r\n        curObject.videoname = medianame;\r\n        curObject.videoid = mediaid;\r\n        track(curObject);\r\n      }\r\n      /*-----PLAY-----*/\r\n      videoPlayer.on('play', (event) => {\r\n        if (!paused) pushEvent('videoplay');\r\n      });\r\n\r\n      /*-----PAUSE-----*/\r\n      videoPlayer.on('pause', (event) => {\r\n        pushEvent('videopause');\r\n        paused = true;\r\n      });\r\n\r\n      /*-----COMPLETED-----*/\r\n      videoPlayer.on('ended', (event) => {\r\n        pushEvent('videocomplete');\r\n      });\r\n\r\n      /*-----PROGRESS-----*/\r\n      let firstMatch = true; // flag to make sure event is pushed only first time progress match the milestone\r\n      function checkProgress() {\r\n        switch (Math.floor((videoPlayer.currentTime / videoPlayer.duration) * 100)) {\r\n          case 25:\r\n            if (firstMatch) {\r\n              firstMatch = false;\r\n              pushEvent('videomilestone25');\r\n            }\r\n            break;\r\n          case 50:\r\n            if (firstMatch) {\r\n              firstMatch = false;\r\n              pushEvent('videomilestone50');\r\n            }\r\n            break;\r\n          case 75:\r\n            if (firstMatch) {\r\n              firstMatch = false;\r\n              pushEvent('videomilestone75');\r\n            }\r\n            break;\r\n\r\n          default:\r\n            firstMatch = true;\r\n            break;\r\n        }\r\n      }\r\n      let timeOut;\r\n\r\n      videoPlayer.on('playing', (event) => {\r\n        timeOut = setInterval(checkProgress, 1000); // check progress every 1 second\r\n      });\r\n\r\n      videoPlayer.on('pause', (event) => {\r\n        clearInterval(timeOut); // stop checking progress on pause\r\n      });\r\n\r\n      /*-------END OF TRACKING--------*/\r\n\r\n      videoPlayer.on('click', (event) => {\r\n        if (videoPlayer.touch) {\r\n          videoPlayer.togglePlay();\r\n        }\r\n      });\r\n    })\r\n    .on('hide.bs.modal', (e) => {\r\n      videoPlayer.destroy();\r\n    })\r\n    .on('hidden.bs.modal', (e) => {\r\n      if ($('.modal.show').length > 0) {\r\n        $('body').addClass('modal-open');\r\n      }\r\n    });\r\n});\r\n"],"sourceRoot":""}