@skylineos/videojs-clsp
Version:
Video JS plugin for Skyline Technology Solutions' CLSP Player - https://github.com/skylineos/clsp-player
40 lines (32 loc) • 2.83 MB
JavaScript
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./demos/advanced-dist/index.js":
/*!**************************************!*\
!*** ./demos/advanced-dist/index.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles.css */ \"./demos/advanced-dist/styles.css\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _advanced_src_shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../advanced-src/shared */ \"./demos/advanced-src/shared.js\");\n\n\n\nvar wallPlayers = [];\nfunction destroyAllPlayers() {\n for (var i = 0; i < wallPlayers.length; i++) {\n var player = wallPlayers[i];\n player.dispose();\n }\n wallPlayers = [];\n}\nfunction createPlayer(index, playerOptions) {\n var videoId = \"wall-video-\".concat(index);\n var $container = jquery__WEBPACK_IMPORTED_MODULE_1___default()('#videowall').append(document.getElementById('wall-video-template').innerHTML).find('#wall-container-null');\n var $video = $container.find('video');\n $video.attr('id', videoId);\n $container.attr('id', \"wall-container-\".concat(index));\n $container.find('.video-stream .index').text(index);\n var url = playerOptions.sources[0].src;\n $container.find('.video-stream .url').text(url);\n $container.find('.video-stream .url').attr('title', url);\n $container.find('.video-stream .close').on('click', function () {\n jquery__WEBPACK_IMPORTED_MODULE_1___default()('#wallTotalVideos').text(parseInt(jquery__WEBPACK_IMPORTED_MODULE_1___default()('#wallTotalVideos').text(), 10) - 1);\n player.dispose();\n });\n var $videoMetrics = $container.find('.wall-video-metrics');\n var metricTypes = [];\n // const metricTypes = [\n // // ClspPlugin().METRIC_TYPES,\n // // IOV.METRIC_TYPES,\n // // Conduit.METRIC_TYPES,\n // // IOVPlayer.METRIC_TYPES,\n // // MediaSourceWrapper.METRIC_TYPES,\n // // SourceBufferWrapper.METRIC_TYPES,\n // ];\n\n for (var i = 0; i < metricTypes.length; i++) {\n var metricType = metricTypes[i];\n for (var j = 0; j < metricType.length; j++) {\n var text = metricType[j];\n var name = text.replace(new RegExp(/\\./, 'g'), '-');\n var $metric = jquery__WEBPACK_IMPORTED_MODULE_1___default()('<div/>', {\n \"class\": \"metric \".concat(name)\n });\n $metric.append(jquery__WEBPACK_IMPORTED_MODULE_1___default()('<span/>', {\n \"class\": 'value'\n }));\n $metric.append(jquery__WEBPACK_IMPORTED_MODULE_1___default()('<span/>', {\n \"class\": 'type',\n title: text,\n text: text\n }));\n $videoMetrics.append($metric);\n }\n }\n var player = window.videojs(videoId, playerOptions);\n player.on('dispose', function () {\n for (var _i = 0; _i < wallPlayers.length; _i++) {\n if (player === wallPlayers[_i]) {\n wallPlayers.splice(_i, 1);\n }\n }\n });\n wallPlayers.push(player);\n var tech = player.clsp();\n tech.on('metric', function (event, _ref) {\n var metric = _ref.metric;\n $videoMetrics.find(\".\".concat(metric.type.replace(new RegExp(/\\./, 'g'), '-'), \" .value\")).attr('title', metric.value).html(metric.value);\n });\n}\njquery__WEBPACK_IMPORTED_MODULE_1___default()(function () {\n var localStorageName = 'videojs-clsp-advanced-demo-dist';\n document.title = \"v\".concat(window.clspUtils.version, \" \").concat(document.title);\n var pageTitle = jquery__WEBPACK_IMPORTED_MODULE_1___default()('#page-title').html();\n jquery__WEBPACK_IMPORTED_MODULE_1___default()('#page-title').html(\"\".concat(pageTitle, \" <br /> v\").concat(window.clspUtils.version));\n jquery__WEBPACK_IMPORTED_MODULE_1___default()('#videojs-version').html(window.videojs.VERSION);\n jquery__WEBPACK_IMPORTED_MODULE_1___default()('#videojs-errors-version').html(window.videojsErrors.VERSION);\n window.HELP_IMPROVE_VIDEOJS = false;\n\n // Tours for videojs are not yet implemented\n (0,_advanced_src_shared__WEBPACK_IMPORTED_MODULE_2__.initLocalStorage)(localStorageName, 'tours-enabled', 'checkbox', false);\n (0,_advanced_src_shared__WEBPACK_IMPORTED_MODULE_2__.initializeWall)(localStorageName, createPlayer, destroyAllPlayers);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bmVvcy92aWRlb2pzLWNsc3AvLi9kZW1vcy9hZHZhbmNlZC1kaXN0L2luZGV4LmpzPzY3NzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuL3N0eWxlcy5jc3MnO1xuXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZVdhbGwsXG4gIGluaXRMb2NhbFN0b3JhZ2UsXG59IGZyb20gJy4uL2FkdmFuY2VkLXNyYy9zaGFyZWQnO1xuXG5sZXQgd2FsbFBsYXllcnMgPSBbXTtcblxuZnVuY3Rpb24gZGVzdHJveUFsbFBsYXllcnMgKCkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHdhbGxQbGF5ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgcGxheWVyID0gd2FsbFBsYXllcnNbaV07XG5cbiAgICBwbGF5ZXIuZGlzcG9zZSgpO1xuICB9XG5cbiAgd2FsbFBsYXllcnMgPSBbXTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGxheWVyIChpbmRleCwgcGxheWVyT3B0aW9ucykge1xuICBjb25zdCB2aWRlb0lkID0gYHdhbGwtdmlkZW8tJHtpbmRleH1gO1xuXG4gIGNvbnN0ICRjb250YWluZXIgPSAkKCcjdmlkZW93YWxsJylcbiAgICAuYXBwZW5kKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YWxsLXZpZGVvLXRlbXBsYXRlJykuaW5uZXJIVE1MKVxuICAgIC5maW5kKCcjd2FsbC1jb250YWluZXItbnVsbCcpO1xuXG4gIGNvbnN0ICR2aWRlbyA9ICRjb250YWluZXIuZmluZCgndmlkZW8nKTtcblxuICAkdmlkZW8uYXR0cignaWQnLCB2aWRlb0lkKTtcblxuICAkY29udGFpbmVyLmF0dHIoJ2lkJywgYHdhbGwtY29udGFpbmVyLSR7aW5kZXh9YCk7XG4gICRjb250YWluZXIuZmluZCgnLnZpZGVvLXN0cmVhbSAuaW5kZXgnKS50ZXh0KGluZGV4KTtcblxuICBjb25zdCB1cmwgPSBwbGF5ZXJPcHRpb25zLnNvdXJjZXNbMF0uc3JjO1xuXG4gICRjb250YWluZXIuZmluZCgnLnZpZGVvLXN0cmVhbSAudXJsJykudGV4dCh1cmwpO1xuICAkY29udGFpbmVyLmZpbmQoJy52aWRlby1zdHJlYW0gLnVybCcpLmF0dHIoJ3RpdGxlJywgdXJsKTtcblxuICAkY29udGFpbmVyLmZpbmQoJy52aWRlby1zdHJlYW0gLmNsb3NlJykub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICQoJyN3YWxsVG90YWxWaWRlb3MnKS50ZXh0KHBhcnNlSW50KCQoJyN3YWxsVG90YWxWaWRlb3MnKS50ZXh0KCksIDEwKSAtIDEpO1xuICAgIHBsYXllci5kaXNwb3NlKCk7XG4gIH0pO1xuXG4gIGNvbnN0ICR2aWRlb01ldHJpY3MgPSAkY29udGFpbmVyLmZpbmQoJy53YWxsLXZpZGVvLW1ldHJpY3MnKTtcblxuICBjb25zdCBtZXRyaWNUeXBlcyA9IFtdO1xuICAvLyBjb25zdCBtZXRyaWNUeXBlcyA9IFtcbiAgLy8gICAvLyBDbHNwUGx1Z2luKCkuTUVUUklDX1RZUEVTLFxuICAvLyAgIC8vIElPVi5NRVRSSUNfVFlQRVMsXG4gIC8vICAgLy8gQ29uZHVpdC5NRVRSSUNfVFlQRVMsXG4gIC8vICAgLy8gSU9WUGxheWVyLk1FVFJJQ19UWVBFUyxcbiAgLy8gICAvLyBNZWRpYVNvdXJjZVdyYXBwZXIuTUVUUklDX1RZUEVTLFxuICAvLyAgIC8vIFNvdXJjZUJ1ZmZlcldyYXBwZXIuTUVUUklDX1RZUEVTLFxuICAvLyBdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0cmljVHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBtZXRyaWNUeXBlID0gbWV0cmljVHlwZXNbaV07XG5cbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1ldHJpY1R5cGUubGVuZ3RoOyBqKyspIHtcbiAgICAgIGNvbnN0IHRleHQgPSBtZXRyaWNUeXBlW2pdO1xuICAgICAgY29uc3QgbmFtZSA9IHRleHQucmVwbGFjZShuZXcgUmVnRXhwKC9cXC4vLCAnZycpLCAnLScpO1xuICAgICAgY29uc3QgJG1ldHJpYyA9ICQoJzxkaXYvPicsIHtcbiAgICAgICAgY2xhc3M6IGBtZXRyaWMgJHtuYW1lfWAsXG4gICAgICB9KTtcblxuICAgICAgJG1ldHJpYy5hcHBlbmQoJCgnPHNwYW4vPicsIHtcbiAgICAgICAgY2xhc3M6ICd2YWx1ZScsXG4gICAgICB9KSk7XG4gICAgICAkbWV0cmljLmFwcGVuZCgkKCc8c3Bhbi8+Jywge1xuICAgICAgICBjbGFzczogJ3R5cGUnLFxuICAgICAgICB0aXRsZTogdGV4dCxcbiAgICAgICAgdGV4dCxcbiAgICAgIH0pKTtcblxuICAgICAgJHZpZGVvTWV0cmljcy5hcHBlbmQoJG1ldHJpYyk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcGxheWVyID0gd2luZG93LnZpZGVvanModmlkZW9JZCwgcGxheWVyT3B0aW9ucyk7XG5cbiAgcGxheWVyLm9uKCdkaXNwb3NlJywgKCkgPT4ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2FsbFBsYXllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwbGF5ZXIgPT09IHdhbGxQbGF5ZXJzW2ldKSB7XG4gICAgICAgIHdhbGxQbGF5ZXJzLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHdhbGxQbGF5ZXJzLnB1c2gocGxheWVyKTtcblxuICBjb25zdCB0ZWNoID0gcGxheWVyLmNsc3AoKTtcblxuICB0ZWNoLm9uKCdtZXRyaWMnLCAoZXZlbnQsIHtcbiAgICBtZXRyaWMsXG4gIH0pID0+IHtcbiAgICAkdmlkZW9NZXRyaWNzLmZpbmQoYC4ke21ldHJpYy50eXBlLnJlcGxhY2UobmV3IFJlZ0V4cCgvXFwuLywgJ2cnKSwgJy0nKX0gLnZhbHVlYClcbiAgICAgIC5hdHRyKCd0aXRsZScsIG1ldHJpYy52YWx1ZSlcbiAgICAgIC5odG1sKG1ldHJpYy52YWx1ZSk7XG4gIH0pO1xufVxuXG4kKCgpID0+IHtcbiAgY29uc3QgbG9jYWxTdG9yYWdlTmFtZSA9ICd2aWRlb2pzLWNsc3AtYWR2YW5jZWQtZGVtby1kaXN0JztcblxuICBkb2N1bWVudC50aXRsZSA9IGB2JHt3aW5kb3cuY2xzcFV0aWxzLnZlcnNpb259ICR7ZG9jdW1lbnQudGl0bGV9YDtcblxuICBjb25zdCBwYWdlVGl0bGUgPSAkKCcjcGFnZS10aXRsZScpLmh0bWwoKTtcbiAgJCgnI3BhZ2UtdGl0bGUnKS5odG1sKGAke3BhZ2VUaXRsZX0gPGJyIC8+IHYke3dpbmRvdy5jbHNwVXRpbHMudmVyc2lvbn1gKTtcblxuICAkKCcjdmlkZW9qcy12ZXJzaW9uJykuaHRtbCh3aW5kb3cudmlkZW9qcy5WRVJTSU9OKTtcbiAgJCgnI3ZpZGVvanMtZXJyb3JzLXZlcnNpb24nKS5odG1sKHdpbmRvdy52aWRlb2pzRXJyb3JzLlZFUlNJT04pO1xuXG4gIHdpbmRvdy5IRUxQX0lNUFJPVkVfVklERU9KUyA9IGZhbHNlO1xuXG4gIC8vIFRvdXJzIGZvciB2aWRlb2pzIGFyZSBub3QgeWV0IGltcGxlbWVudGVkXG4gIGluaXRMb2NhbFN0b3JhZ2UoXG4gICAgbG9jYWxTdG9yYWdlTmFtZSxcbiAgICAndG91cnMtZW5hYmxlZCcsXG4gICAgJ2NoZWNrYm94JyxcbiAgICBmYWxzZSxcbiAgKTtcblxuICBpbml0aWFsaXplV2FsbChcbiAgICBsb2NhbFN0b3JhZ2VOYW1lLFxuICAgIGNyZWF0ZVBsYXllcixcbiAgICBkZXN0cm95QWxsUGxheWVycyxcbiAgKTtcbn0pO1xuIl0sIm5hbWVzIjpbIiQiLCJpbml0aWFsaXplV2FsbCIsImluaXRMb2NhbFN0b3JhZ2UiLCJ3YWxsUGxheWVycyIsImRlc3Ryb3lBbGxQbGF5ZXJzIiwiaSIsImxlbmd0aCIsInBsYXllciIsImRpc3Bvc2UiLCJjcmVhdGVQbGF5ZXIiLCJpbmRleCIsInBsYXllck9wdGlvbnMiLCJ2aWRlb0lkIiwiY29uY2F0IiwiJGNvbnRhaW5lciIsImFwcGVuZCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJpbm5lckhUTUwiLCJmaW5kIiwiJHZpZGVvIiwiYXR0ciIsInRleHQiLCJ1cmwiLCJzb3VyY2VzIiwic3JjIiwib24iLCJwYXJzZUludCIsIiR2aWRlb01ldHJpY3MiLCJtZXRyaWNUeXBlcyIsIm1ldHJpY1R5cGUiLCJqIiwibmFtZSIsInJlcGxhY2UiLCJSZWdFeHAiLCIkbWV0cmljIiwidGl0bGUiLCJ3aW5kb3ciLCJ2aWRlb2pzIiwic3BsaWNlIiwicHVzaCIsInRlY2giLCJjbHNwIiwiZXZlbnQiLCJfcmVmIiwibWV0cmljIiwidHlwZSIsInZhbHVlIiwiaHRtbCIsImxvY2FsU3RvcmFnZU5hbWUiLCJjbHNwVXRpbHMiLCJ2ZXJzaW9uIiwicGFnZVRpdGxlIiwiVkVSU0lPTiIsInZpZGVvanNFcnJvcnMiLCJIRUxQX0lNUFJPVkVfVklERU9KUyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./demos/advanced-dist/index.js\n");
/***/ }),
/***/ "./demos/advanced-src/shared.js":
/*!**************************************!*\
!*** ./demos/advanced-src/shared.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getLocalStorage: () => (/* binding */ getLocalStorage),\n/* harmony export */ initLocalStorage: () => (/* binding */ initLocalStorage),\n/* harmony export */ initializeWall: () => (/* binding */ initializeWall),\n/* harmony export */ setLocalStorage: () => (/* binding */ setLocalStorage)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var humanize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! humanize */ \"./node_modules/humanize/humanize.js\");\n/* harmony import */ var humanize__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(humanize__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar wallInterval = null;\nvar defaultClspUrls = ['clsp://172.28.12.248:9001/testpattern', 'clsp://172.28.12.247:9001/testpattern', 'clsps://sky-qa-dionysus.qa.skyline.local/testpattern', 'clsp://172.28.12.57:9001/FairfaxVideo0520', 'clsp://172.28.12.57:9001/40004'];\n\n// Get a demo local storage value\nfunction getLocalStorage(name, elementId) {\n var localStorageKey = \"skylineos.videojs-clsp.\".concat(name, \".\").concat(elementId);\n return {\n key: localStorageKey,\n value: window.localStorage.getItem(localStorageKey)\n };\n}\nfunction setLocalStorage(name, elementId, value) {\n var localStorageKey = \"skylineos.videojs-clsp.\".concat(name, \".\").concat(elementId);\n window.localStorage.setItem(localStorageKey, value);\n return getLocalStorage(name, elementId);\n}\n\n// Initialize a demo local storage value\nfunction initLocalStorage(name, elementId, type, defaultValue) {\n var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(elementId));\n switch (type) {\n case 'input':\n {\n var currentValue = getLocalStorage(name, elementId).value;\n if (!currentValue) {\n currentValue = setLocalStorage(name, elementId, defaultValue.toString()).value;\n }\n $element.val(currentValue);\n $element.on('change', function () {\n setLocalStorage(name, elementId, $element.val().trim());\n });\n break;\n }\n case 'textarea':\n {\n var _currentValue = getLocalStorage(name, elementId).value;\n if (!_currentValue) {\n _currentValue = setLocalStorage(name, elementId, defaultValue.join('\\n')).value;\n }\n $element.val(_currentValue);\n $element.on('change', function () {\n setLocalStorage(name, elementId, $element.val().trim());\n });\n break;\n }\n case 'checkbox':\n {\n var _currentValue2 = getLocalStorage(name, elementId).value;\n if (_currentValue2 !== 'true' && _currentValue2 !== 'false') {\n _currentValue2 = setLocalStorage(name, elementId, defaultValue.toString()).value;\n }\n $element.prop('checked', _currentValue2 === 'true');\n $element.on('change', function () {\n setLocalStorage(name, elementId, $element.prop('checked').toString());\n });\n break;\n }\n default:\n {\n throw new Error(\"Unknown element type: \".concat(type));\n }\n }\n}\n\n// Create a videowall using the specified\nfunction initializeWall(name, createPlayer, destroyAllPlayers) {\n var $controls = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.wall .controls');\n var $controlsToggle = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wall-controls-toggle');\n function toggleControls() {\n $controlsToggle.attr('data-state') === 'hidden' ? showControls() : hideControls();\n }\n function showControls() {\n $controls.show();\n $controlsToggle.attr('data-state', 'shown');\n $controlsToggle.text('Hide Controls');\n }\n function hideControls() {\n $controls.hide();\n $controlsToggle.attr('data-state', 'hidden');\n $controlsToggle.text('Show Controls');\n }\n function setMetricsVisibility() {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('#show-metrics').prop('checked')) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.wall-video-metrics').show();\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.wall-video-metrics').hide();\n }\n }\n function onclick() {\n destroyAllPlayers();\n var urlList = getLocalStorage(name, 'wall-streams').value.split('\\n');\n var urlReplicateCount = getLocalStorage(name, 'wall-times-to-replicate').value;\n var tourUrlList = getLocalStorage(name, 'tour-streams').value.split('\\n');\n var tourUrlReplicateCount = getLocalStorage(name, 'tour-times-to-replicate').value;\n var tourReplicateCount = getLocalStorage(name, 'tour-times-to-repeat').value;\n var tourInterval = getLocalStorage(name, 'tour-interval').value;\n var videoIndex = 0;\n if (getLocalStorage(name, 'tours-enabled').value === 'true') {\n for (var i = 0; i < tourReplicateCount; i++) {\n var sources = [];\n for (var j = 0; j < tourUrlReplicateCount; j++) {\n sources = sources.concat(tourUrlList.map(function (url) {\n return {\n src: url,\n type: \"video/mp4; codecs='avc1.42E01E'\"\n };\n }));\n }\n var playerOptions = {\n autoplay: true,\n muted: true,\n preload: 'auto',\n poster: '../skyline_logo.png',\n controls: true,\n tour: {\n enabled: true,\n interval: tourInterval\n },\n sources: sources,\n clsp: {\n enableMetrics: jquery__WEBPACK_IMPORTED_MODULE_0___default()('#enable-metrics').prop('checked')\n }\n };\n createPlayer(videoIndex, playerOptions);\n videoIndex++;\n }\n }\n if (getLocalStorage(name, 'wall-enabled').value === 'true') {\n for (var _i = 0; _i < urlReplicateCount; _i++) {\n for (var _j = 0; _j < urlList.length; _j++) {\n var _playerOptions = {\n autoplay: true,\n muted: true,\n preload: 'auto',\n poster: '../skyline_logo.png',\n controls: true,\n sources: [{\n src: urlList[_j],\n type: \"video/mp4; codecs='avc1.42E01E'\"\n }],\n clsp: {\n enableMetrics: jquery__WEBPACK_IMPORTED_MODULE_0___default()('#enable-metrics').prop('checked')\n }\n };\n createPlayer(videoIndex, _playerOptions);\n videoIndex++;\n }\n }\n }\n var now = Date.now();\n document.getElementById('videowall').style.gridTemplateColumns = \"repeat(\".concat(Math.ceil(Math.sqrt(videoIndex + 1)), \", 1fr)\");\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallTotalVideos').text(videoIndex);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallStartTime').text(moment__WEBPACK_IMPORTED_MODULE_1___default()(now).format('MMMM Do YYYY, h:mm:ss a'));\n if (wallInterval) {\n clearInterval(wallInterval);\n }\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallDuration').text('0 hours 0 minutes 0 seconds');\n wallInterval = setInterval(function () {\n var hoursFromStart = Math.floor(moment__WEBPACK_IMPORTED_MODULE_1___default().duration(Date.now() - now).asHours());\n var minutesFromStart = Math.floor(moment__WEBPACK_IMPORTED_MODULE_1___default().duration(Date.now() - now).asMinutes()) - hoursFromStart * 60;\n var secondsFromStart = Math.floor(moment__WEBPACK_IMPORTED_MODULE_1___default().duration(Date.now() - now).asSeconds()) - hoursFromStart * 60 * 60 - minutesFromStart * 60;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallDuration').text(\"\".concat(hoursFromStart, \" hours \").concat(minutesFromStart, \" minutes \").concat(secondsFromStart, \" seconds\"));\n if (window.performance && window.performance.memory) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallHeapSizeLimit').text(humanize__WEBPACK_IMPORTED_MODULE_2___default().filesize(window.performance.memory.jsHeapSizeLimit));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallTotalHeapSize').text(humanize__WEBPACK_IMPORTED_MODULE_2___default().filesize(window.performance.memory.totalJSHeapSize));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallUsedHeapSize').text(humanize__WEBPACK_IMPORTED_MODULE_2___default().filesize(window.performance.memory.usedJSHeapSize));\n }\n }, 1000);\n hideControls();\n setMetricsVisibility();\n }\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wallCreate').click(onclick);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#wall-controls-toggle').click(toggleControls);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#show-metrics').on('change', setMetricsVisibility);\n initLocalStorage(name, 'wall-enabled', 'checkbox', true);\n initLocalStorage(name, 'wall-streams', 'textarea', defaultClspUrls);\n initLocalStorage(name, 'wall-times-to-replicate', 'input', 1);\n initLocalStorage(name, 'tours-enabled', 'checkbox', true);\n initLocalStorage(name, 'tour-streams', 'textarea', defaultClspUrls);\n initLocalStorage(name, 'tour-times-to-replicate', 'input', 1);\n initLocalStorage(name, 'tour-times-to-repeat', 'input', 1);\n initLocalStorage(name, 'tour-interval', 'input', 10);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n getLocalStorage: getLocalStorage,\n initLocalStorage: initLocalStorage,\n initializeWall: initializeWall\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QWdCLENBQ2RYLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLEVBQ2xDLENBQUM7QUFDSDtBQUVBLGlFQUFlO0VBQ2JELGVBQWUsRUFBZkEsZUFBZTtFQUNmWSxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtFQUNoQlksY0FBYyxFQUFkQTtBQUNGLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac2t5bGluZW9zL3ZpZGVvanMtY2xzcC8uL2RlbW9zL2FkdmFuY2VkLXNyYy9zaGFyZWQuanM/MWQ5MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IGh1bWFuaXplIGZyb20gJ2h1bWFuaXplJztcblxubGV0IHdhbGxJbnRlcnZhbCA9IG51bGw7XG5cbmNvbnN0IGRlZmF1bHRDbHNwVXJscyA9IFtcbiAgJ2Nsc3A6Ly8xNzIuMjguMTIuMjQ4OjkwMDEvdGVzdHBhdHRlcm4nLFxuICAnY2xzcDovLzE3Mi4yOC4xMi4yNDc6OTAwMS90ZXN0cGF0dGVybicsXG4gICdjbHNwczovL3NreS1xYS1kaW9ueXN1cy5xYS5za3lsaW5lLmxvY2FsL3Rlc3RwYXR0ZXJuJyxcbiAgJ2Nsc3A6Ly8xNzIuMjguMTIuNTc6OTAwMS9GYWlyZmF4VmlkZW8wNTIwJyxcbiAgJ2Nsc3A6Ly8xNzIuMjguMTIuNTc6OTAwMS80MDAwNCcsXG5dO1xuXG4vLyBHZXQgYSBkZW1vIGxvY2FsIHN0b3JhZ2UgdmFsdWVcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbFN0b3JhZ2UgKG5hbWUsIGVsZW1lbnRJZCkge1xuICBjb25zdCBsb2NhbFN0b3JhZ2VLZXkgPSBgc2t5bGluZW9zLnZpZGVvanMtY2xzcC4ke25hbWV9LiR7ZWxlbWVudElkfWA7XG5cbiAgcmV0dXJuIHtcbiAgICBrZXk6IGxvY2FsU3RvcmFnZUtleSxcbiAgICB2YWx1ZTogd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU3RvcmFnZUtleSksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2NhbFN0b3JhZ2UgKG5hbWUsIGVsZW1lbnRJZCwgdmFsdWUpIHtcbiAgY29uc3QgbG9jYWxTdG9yYWdlS2V5ID0gYHNreWxpbmVvcy52aWRlb2pzLWNsc3AuJHtuYW1lfS4ke2VsZW1lbnRJZH1gO1xuXG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShsb2NhbFN0b3JhZ2VLZXksIHZhbHVlKTtcblxuICByZXR1cm4gZ2V0TG9jYWxTdG9yYWdlKG5hbWUsIGVsZW1lbnRJZCk7XG59XG5cbi8vIEluaXRpYWxpemUgYSBkZW1vIGxvY2FsIHN0b3JhZ2UgdmFsdWVcbmV4cG9ydCBmdW5jdGlvbiBpbml0TG9jYWxTdG9yYWdlIChcbiAgbmFtZSwgZWxlbWVudElkLCB0eXBlLCBkZWZhdWx0VmFsdWUsXG4pIHtcbiAgY29uc3QgJGVsZW1lbnQgPSAkKGAjJHtlbGVtZW50SWR9YCk7XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnaW5wdXQnOiB7XG4gICAgICBsZXQgY3VycmVudFZhbHVlID0gZ2V0TG9jYWxTdG9yYWdlKG5hbWUsIGVsZW1lbnRJZCkudmFsdWU7XG5cbiAgICAgIGlmICghY3VycmVudFZhbHVlKSB7XG4gICAgICAgIGN1cnJlbnRWYWx1ZSA9IHNldExvY2FsU3RvcmFnZShuYW1lLCBlbGVtZW50SWQsIGRlZmF1bHRWYWx1ZS50b1N0cmluZygpKS52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgJGVsZW1lbnQudmFsKGN1cnJlbnRWYWx1ZSk7XG5cbiAgICAgICRlbGVtZW50Lm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIHNldExvY2FsU3RvcmFnZShuYW1lLCBlbGVtZW50SWQsICRlbGVtZW50LnZhbCgpLnRyaW0oKSk7XG4gICAgICB9KTtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgJ3RleHRhcmVhJzoge1xuICAgICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGdldExvY2FsU3RvcmFnZShuYW1lLCBlbGVtZW50SWQpLnZhbHVlO1xuXG4gICAgICBpZiAoIWN1cnJlbnRWYWx1ZSkge1xuICAgICAgICBjdXJyZW50VmFsdWUgPSBzZXRMb2NhbFN0b3JhZ2UobmFtZSwgZWxlbWVudElkLCBkZWZhdWx0VmFsdWUuam9pbignXFxuJykpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAkZWxlbWVudC52YWwoY3VycmVudFZhbHVlKTtcblxuICAgICAgJGVsZW1lbnQub24oJ2NoYW5nZScsICgpID0+IHtcbiAgICAgICAgc2V0TG9jYWxTdG9yYWdlKG5hbWUsIGVsZW1lbnRJZCwgJGVsZW1lbnQudmFsKCkudHJpbSgpKTtcbiAgICAgIH0pO1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAnY2hlY2tib3gnOiB7XG4gICAgICBsZXQgY3VycmVudFZhbHVlID0gZ2V0TG9jYWxTdG9yYWdlKG5hbWUsIGVsZW1lbnRJZCkudmFsdWU7XG5cbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09ICd0cnVlJyAmJiBjdXJyZW50VmFsdWUgIT09ICdmYWxzZScpIHtcbiAgICAgICAgY3VycmVudFZhbHVlID0gc2V0TG9jYWxTdG9yYWdlKG5hbWUsIGVsZW1lbnRJZCwgZGVmYXVsdFZhbHVlLnRvU3RyaW5nKCkpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAkZWxlbWVudC5wcm9wKCdjaGVja2VkJywgY3VycmVudFZhbHVlID09PSAndHJ1ZScpO1xuXG4gICAgICAkZWxlbWVudC5vbignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICBzZXRMb2NhbFN0b3JhZ2UobmFtZSwgZWxlbWVudElkLCAkZWxlbWVudC5wcm9wKCdjaGVja2VkJykudG9TdHJpbmcoKSk7XG4gICAgICB9KTtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBlbGVtZW50IHR5cGU6ICR7dHlwZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ3JlYXRlIGEgdmlkZW93YWxsIHVzaW5nIHRoZSBzcGVjaWZpZWRcbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplV2FsbCAobmFtZSwgY3JlYXRlUGxheWVyLCBkZXN0cm95QWxsUGxheWVycykge1xuICBjb25zdCAkY29udHJvbHMgPSAkKCcud2FsbCAuY29udHJvbHMnKTtcbiAgY29uc3QgJGNvbnRyb2xzVG9nZ2xlID0gJCgnI3dhbGwtY29udHJvbHMtdG9nZ2xlJyk7XG5cbiAgZnVuY3Rpb24gdG9nZ2xlQ29udHJvbHMgKCkge1xuICAgICRjb250cm9sc1RvZ2dsZS5hdHRyKCdkYXRhLXN0YXRlJykgPT09ICdoaWRkZW4nXG4gICAgICA/IHNob3dDb250cm9scygpXG4gICAgICA6IGhpZGVDb250cm9scygpO1xuICB9XG5cbiAgZnVuY3Rpb24gc2hvd0NvbnRyb2xzICgpIHtcbiAgICAkY29udHJvbHMuc2hvdygpO1xuICAgICRjb250cm9sc1RvZ2dsZS5hdHRyKCdkYXRhLXN0YXRlJywgJ3Nob3duJyk7XG4gICAgJGNvbnRyb2xzVG9nZ2xlLnRleHQoJ0hpZGUgQ29udHJvbHMnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhpZGVDb250cm9scyAoKSB7XG4gICAgJGNvbnRyb2xzLmhpZGUoKTtcbiAgICAkY29udHJvbHNUb2dnbGUuYXR0cignZGF0YS1zdGF0ZScsICdoaWRkZW4nKTtcbiAgICAkY29udHJvbHNUb2dnbGUudGV4dCgnU2hvdyBDb250cm9scycpO1xuICB9XG5cbiAgZnVuY3Rpb24gc2V0TWV0cmljc1Zpc2liaWxpdHkgKCkge1xuICAgIGlmICgkKCcjc2hvdy1tZXRyaWNzJykucHJvcCgnY2hlY2tlZCcpKSB7XG4gICAgICAkKCcud2FsbC12aWRlby1tZXRyaWNzJykuc2hvdygpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICQoJy53YWxsLXZpZGVvLW1ldHJpY3MnKS5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gb25jbGljayAoKSB7XG4gICAgZGVzdHJveUFsbFBsYXllcnMoKTtcblxuICAgIGNvbnN0IHVybExpc3QgPSBnZXRMb2NhbFN0b3JhZ2UobmFtZSwgJ3dhbGwtc3RyZWFtcycpLnZhbHVlLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCB1cmxSZXBsaWNhdGVDb3VudCA9IGdldExvY2FsU3RvcmFnZShuYW1lLCAnd2FsbC10aW1lcy10by1yZXBsaWNhdGUnKS52YWx1ZTtcblxuICAgIGNvbnN0IHRvdXJVcmxMaXN0ID0gZ2V0TG9jYWxTdG9yYWdlKG5hbWUsICd0b3VyLXN0cmVhbXMnKS52YWx1ZS5zcGxpdCgnXFxuJyk7XG4gICAgY29uc3QgdG91clVybFJlcGxpY2F0ZUNvdW50ID0gZ2V0TG9jYWxTdG9yYWdlKG5hbWUsICd0b3VyLXRpbWVzLXRvLXJlcGxpY2F0ZScpLnZhbHVlO1xuICAgIGNvbnN0IHRvdXJSZXBsaWNhdGVDb3VudCA9IGdldExvY2FsU3RvcmFnZShuYW1lLCAndG91ci10aW1lcy10by1yZXBlYXQnKS52YWx1ZTtcbiAgICBjb25zdCB0b3VySW50ZXJ2YWwgPSBnZXRMb2NhbFN0b3JhZ2UobmFtZSwgJ3RvdXItaW50ZXJ2YWwnKS52YWx1ZTtcblxuICAgIGxldCB2aWRlb0luZGV4ID0gMDtcblxuICAgIGlmIChnZXRMb2NhbFN0b3JhZ2UobmFtZSwgJ3RvdXJzLWVuYWJsZWQnKS52YWx1ZSA9PT0gJ3RydWUnKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdXJSZXBsaWNhdGVDb3VudDsgaSsrKSB7XG4gICAgICAgIGxldCBzb3VyY2VzID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0b3VyVXJsUmVwbGljYXRlQ291bnQ7IGorKykge1xuICAgICAgICAgIHNvdXJjZXMgPSBzb3VyY2VzLmNvbmNhdCh0b3VyVXJsTGlzdC5tYXAoKHVybCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgc3JjOiB1cmwsXG4gICAgICAgICAgICAgIHR5cGU6IFwidmlkZW8vbXA0OyBjb2RlY3M9J2F2YzEuNDJFMDFFJ1wiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwbGF5ZXJPcHRpb25zID0ge1xuICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICAgIG11dGVkOiB0cnVlLFxuICAgICAgICAgIHByZWxvYWQ6ICdhdXRvJyxcbiAgICAgICAgICBwb3N0ZXI6ICcuLi9za3lsaW5lX2xvZ28ucG5nJyxcbiAgICAgICAgICBjb250cm9sczogdHJ1ZSxcbiAgICAgICAgICB0b3VyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgaW50ZXJ2YWw6IHRvdXJJbnRlcnZhbCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNvdXJjZXMsXG4gICAgICAgICAgY2xzcDoge1xuICAgICAgICAgICAgZW5hYmxlTWV0cmljczogJCgnI2VuYWJsZS1tZXRyaWNzJykucHJvcCgnY2hlY2tlZCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgY3JlYXRlUGxheWVyKHZpZGVvSW5kZXgsIHBsYXllck9wdGlvbnMpO1xuXG4gICAgICAgIHZpZGVvSW5kZXgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZ2V0TG9jYWxTdG9yYWdlKG5hbWUsICd3YWxsLWVuYWJsZWQnKS52YWx1ZSA9PT0gJ3RydWUnKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHVybFJlcGxpY2F0ZUNvdW50OyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB1cmxMaXN0Lmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgY29uc3QgcGxheWVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICAgICAgbXV0ZWQ6IHRydWUsXG4gICAgICAgICAgICBwcmVsb2FkOiAnYXV0bycsXG4gICAgICAgICAgICBwb3N0ZXI6ICcuLi9za3lsaW5lX2xvZ28ucG5nJyxcbiAgICAgICAgICAgIGNvbnRyb2xzOiB0cnVlLFxuICAgICAgICAgICAgc291cmNlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3JjOiB1cmxMaXN0W2pdLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwidmlkZW8vbXA0OyBjb2RlY3M9J2F2YzEuNDJFMDFFJ1wiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGNsc3A6IHtcbiAgICAgICAgICAgICAgZW5hYmxlTWV0cmljczogJCgnI2VuYWJsZS1tZXRyaWNzJykucHJvcCgnY2hlY2tlZCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY3JlYXRlUGxheWVyKHZpZGVvSW5kZXgsIHBsYXllck9wdGlvbnMpO1xuXG4gICAgICAgICAgdmlkZW9JbmRleCsrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWRlb3dhbGwnKS5zdHlsZS5ncmlkVGVtcGxhdGVDb2x1bW5zID0gYHJlcGVhdCgke01hdGguY2VpbChNYXRoLnNxcnQodmlkZW9JbmRleCArIDEpKX0sIDFmcilgO1xuICAgICQoJyN3YWxsVG90YWxWaWRlb3MnKS50ZXh0KHZpZGVvSW5kZXgpO1xuICAgICQoJyN3YWxsU3RhcnRUaW1lJykudGV4dChtb21lbnQobm93KS5mb3JtYXQoJ01NTU0gRG8gWVlZWSwgaDptbTpzcyBhJykpO1xuXG4gICAgaWYgKHdhbGxJbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh3YWxsSW50ZXJ2YWwpO1xuICAgIH1cblxuICAgICQoJyN3YWxsRHVyYXRpb24nKS50ZXh0KCcwIGhvdXJzIDAgbWludXRlcyAwIHNlY29uZHMnKTtcblxuICAgIHdhbGxJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGNvbnN0IGhvdXJzRnJvbVN0YXJ0ID0gTWF0aC5mbG9vcihtb21lbnQuZHVyYXRpb24oRGF0ZS5ub3coKSAtIG5vdykuYXNIb3VycygpKTtcbiAgICAgIGNvbnN0IG1pbnV0ZXNGcm9tU3RhcnQgPSBNYXRoLmZsb29yKG1vbWVudC5kdXJhdGlvbihEYXRlLm5vdygpIC0gbm93KS5hc01pbnV0ZXMoKSkgLSAoaG91cnNGcm9tU3RhcnQgKiA2MCk7XG4gICAgICBjb25zdCBzZWNvbmRzRnJvbVN0YXJ0ID0gTWF0aC5mbG9vcihtb21lbnQuZHVyYXRpb24oRGF0ZS5ub3coKSAtIG5vdykuYXNTZWNvbmRzKCkpIC0gKGhvdXJzRnJvbVN0YXJ0ICogNjAgKiA2MCkgLVxuICAgICAgICAobWludXRlc0Zyb21TdGFydCAqIDYwKTtcblxuICAgICAgJCgnI3dhbGxEdXJhdGlvbicpLnRleHQoYCR7aG91cnNGcm9tU3RhcnR9IGhvdXJzICR7bWludXRlc0Zyb21TdGFydH0gbWludXRlcyAke3NlY29uZHNGcm9tU3RhcnR9IHNlY29uZHNgKTtcblxuICAgICAgaWYgKHdpbmRvdy5wZXJmb3JtYW5jZSAmJiB3aW5kb3cucGVyZm9ybWFuY2UubWVtb3J5KSB7XG4gICAgICAgICQoJyN3YWxsSGVhcFNpemVMaW1pdCcpLnRleHQoaHVtYW5pemUuZmlsZXNpemUod2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeS5qc0hlYXBTaXplTGltaXQpKTtcbiAgICAgICAgJCgnI3dhbGxUb3RhbEhlYXBTaXplJykudGV4dChodW1hbml6ZS5maWxlc2l6ZSh3aW5kb3cucGVyZm9ybWFuY2UubWVtb3J5LnRvdGFsSlNIZWFwU2l6ZSkpO1xuICAgICAgICAkKCcjd2FsbFVzZWRIZWFwU2l6ZScpLnRleHQoaHVtYW5pemUuZmlsZXNpemUod2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeS51c2VkSlNIZWFwU2l6ZSkpO1xuICAgICAgfVxuICAgIH0sIDEwMDApO1xuXG4gICAgaGlkZUNvbnRyb2xzKCk7XG4gICAgc2V0TWV0cmljc1Zpc2liaWxpdHkoKTtcbiAgfVxuXG4gICQoJyN3YWxsQ3JlYXRlJykuY2xpY2sob25jbGljayk7XG4gICQoJyN3YWxsLWNvbnRyb2xzLXRvZ2dsZScpLmNsaWNrKHRvZ2dsZUNvbnRyb2xzKTtcbiAgJCgnI3Nob3ctbWV0cmljcycpLm9uKCdjaGFuZ2UnLCBzZXRNZXRyaWNzVmlzaWJpbGl0eSk7XG5cbiAgaW5pdExvY2FsU3RvcmFnZShcbiAgICBuYW1lLCAnd2FsbC1lbmFibGVkJywgJ2NoZWNrYm94JywgdHJ1ZSxcbiAgKTtcbiAgaW5pdExvY2FsU3RvcmFnZShcbiAgICBuYW1lLCAnd2FsbC1zdHJlYW1zJywgJ3RleHRhcmVhJywgZGVmYXVsdENsc3BVcmxzLFxuICApO1xuICBpbml0TG9jYWxTdG9yYWdlKFxuICAgIG5hbWUsICd3YWxsLXRpbWVzLXRvLXJlcGxpY2F0ZScsICdpbnB1dCcsIDEsXG4gICk7XG5cbiAgaW5pdExvY2FsU3RvcmFnZShcbiAgICBuYW1lLCAndG91cnMtZW5hYmxlZCcsICdjaGVja2JveCcsIHRydWUsXG4gICk7XG4gIGluaXRMb2NhbFN0b3JhZ2UoXG4gICAgbmFtZSwgJ3RvdXItc3RyZWFtcycsICd0ZXh0YXJlYScsIGRlZmF1bHRDbHNwVXJscyxcbiAgKTtcbiAgaW5pdExvY2FsU3RvcmFnZShcbiAgICBuYW1lLCAndG91ci10aW1lcy10by1yZXBsaWNhdGUnLCAnaW5wdXQnLCAxLFxuICApO1xuICBpbml0TG9jYWxTdG9yYWdlKFxuICAgIG5hbWUsICd0b3VyLXRpbWVzLXRvLXJlcGVhdCcsICdpbnB1dCcsIDEsXG4gICk7XG4gIGluaXRMb2NhbFN0b3JhZ2UoXG4gICAgbmFtZSwgJ3RvdXItaW50ZXJ2YWwnLCAnaW5wdXQnLCAxMCxcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBnZXRMb2NhbFN0b3JhZ2UsXG4gIGluaXRMb2NhbFN0b3JhZ2UsXG4gIGluaXRpYWxpemVXYWxsLFxufTtcbiJdLCJuYW1lcyI6WyIkIiwibW9tZW50IiwiaHVtYW5pemUiLCJ3YWxsSW50ZXJ2YWwiLCJkZWZhdWx0Q2xzcFVybHMiLCJnZXRMb2NhbFN0b3JhZ2UiLCJuYW1lIiwiZWxlbWVudElkIiwibG9jYWxTdG9yYWdlS2V5IiwiY29uY2F0Iiwia2V5IiwidmFsdWUiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwic2V0TG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsImluaXRMb2NhbFN0b3JhZ2UiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiJGVsZW1lbnQiLCJjdXJyZW50VmFsdWUiLCJ0b1N0cmluZyIsInZhbCIsIm9uIiwidHJpbSIsImpvaW4iLCJwcm9wIiwiRXJyb3IiLCJpbml0aWFsaXplV2FsbCIsImNyZWF0ZVBsYXllciIsImRlc3Ryb3lBbGxQbGF5ZXJzIiwiJGNvbnRyb2xzIiwiJGNvbnRyb2xzVG9nZ2xlIiwidG9nZ2xlQ29udHJvbHMiLCJhdHRyIiwic2hvd0NvbnRyb2xzIiwiaGlkZUNvbnRyb2xzIiwic2hvdyIsInRleHQiLCJoaWRlIiwic2V0TWV0cmljc1Zpc2liaWxpdHkiLCJvbmNsaWNrIiwidXJsTGlzdCIsInNwbGl0IiwidXJsUmVwbGljYXRlQ291bnQiLCJ0b3VyVXJsTGlzdCIsInRvdXJVcmxSZXBsaWNhdGVDb3VudCIsInRvdXJSZXBsaWNhdGVDb3VudCIsInRvdXJJbnRlcnZhbCIsInZpZGVvSW5kZXgiLCJpIiwic291cmNlcyIsImoiLCJtYXAiLCJ1cmwiLCJzcmMiLCJwbGF5ZXJPcHRpb25zIiwiYXV0b3BsYXkiLCJtdXRlZCIsInByZWxvYWQiLCJwb3N0ZXIiLCJjb250cm9scyIsInRvdXIiLCJlbmFibGVkIiwiaW50ZXJ2YWwiLCJjbHNwIiwiZW5hYmxlTWV0cmljcyIsImxlbmd0aCIsIm5vdyIsIkRhdGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic3R5bGUiLCJncmlkVGVtcGxhdGVDb2x1bW5zIiwiTWF0aCIsImNlaWwiLCJzcXJ0IiwiZm9ybWF0IiwiY2xlYXJJbnRlcnZhbCIsInNldEludGVydmFsIiwiaG91cnNGcm9tU3RhcnQiLCJmbG9vciIsImR1cmF0aW9uIiwiYXNIb3VycyIsIm1pbnV0ZXNGcm9tU3RhcnQiLCJhc01pbnV0ZXMiLCJzZWNvbmRzRnJvbVN0YXJ0IiwiYXNTZWNvbmRzIiwicGVyZm9ybWFuY2UiLCJtZW1vcnkiLCJmaWxlc2l6ZSIsImpzSGVhcFNpemVMaW1pdCIsInRvdGFsSlNIZWFwU2l6ZSIsInVzZWRKU0hlYXBTaXplIiwiY2xpY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./demos/advanced-src/shared.js\n");
/***/ }),
/***/ "./node_modules/humanize/humanize.js":
/*!*******************************************!*\
!*** ./node_modules/humanize/humanize.js ***!
\*******************************************/
/***/ (function(module, exports) {
eval("\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `global` on the server.\n var root = this;\n\n // Save the previous value of the `humanize` variable.\n var previousHumanize = root.humanize;\n\n var humanize = {};\n\n if (true) {\n if ( true && module.exports) {\n exports = module.exports = humanize;\n }\n exports.humanize = humanize;\n } else {}\n\n humanize.noConflict = function() {\n root.humanize = previousHumanize;\n return this;\n };\n\n humanize.pad = function(str, count, padChar, type) {\n str += '';\n if (!padChar) {\n padChar = ' ';\n } else if (padChar.length > 1) {\n padChar = padChar.charAt(0);\n }\n type = (type === undefined) ? 'left' : 'right';\n\n if (type === 'right') {\n while (str.length < count) {\n str = str + padChar;\n }\n } else {\n // default to left\n while (str.length < count) {\n str = padChar + str;\n }\n }\n\n return str;\n };\n\n // gets current unix time\n humanize.time = function() {\n return new Date().getTime() / 1000;\n };\n\n /**\n * PHP-inspired date\n */\n\n /* jan feb mar apr may jun jul aug sep oct nov dec */\n var dayTableCommon = [ 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ];\n var dayTableLeap = [ 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ];\n // var mtable_common[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };\n // static int ml_table_leap[13] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };\n\n\n humanize.date = function(format, timestamp) {\n var jsdate = ((timestamp === undefined) ? new Date() : // Not provided\n (timestamp instanceof Date) ? new Date(timestamp)