cloudinary-video-player 3.13.1-edge.0 → 3.13.1

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.
Files changed (63) hide show
  1. package/dist/134.min.js +4 -4
  2. package/dist/19.min.js +6 -0
  3. package/dist/309.min.js +3 -3
  4. package/dist/adaptive-streaming.js +2 -2
  5. package/dist/adaptive-streaming.min.js +2 -2
  6. package/dist/chapters.js +2 -2
  7. package/dist/chapters.min.js +2 -2
  8. package/dist/cld-player-core.js +2 -2
  9. package/dist/cld-player-core.min.js +2 -2
  10. package/dist/cld-video-player-lazy.js +5 -5
  11. package/dist/cld-video-player-lazy.min.js +3 -3
  12. package/dist/cld-video-player.css +2 -2
  13. package/dist/cld-video-player.js +9 -9
  14. package/dist/cld-video-player.light.js +9 -9
  15. package/dist/cld-video-player.light.min.js +4 -4
  16. package/dist/cld-video-player.min.css +2 -2
  17. package/dist/cld-video-player.min.js +4 -4
  18. package/dist/colors.js +2 -2
  19. package/dist/colors.min.js +3 -3
  20. package/dist/dash.js +2 -2
  21. package/dist/dash.min.js +2 -2
  22. package/dist/debug.js +2 -2
  23. package/dist/debug.min.js +2 -2
  24. package/dist/ima.js +2 -2
  25. package/dist/ima.min.js +2 -2
  26. package/dist/interaction-areas.js +2 -2
  27. package/dist/interaction-areas.min.js +3 -3
  28. package/dist/node_modules_lodash_throttle_js.js +2 -2
  29. package/dist/playlist.js +2 -2
  30. package/dist/playlist.min.js +2 -2
  31. package/dist/plugins_cloudinary_url-helpers_js-utils_object_js-utils_querystring_js-utils_utf8Base64_js-vi-555007.js +952 -0
  32. package/dist/recommendations-overlay.js +2 -2
  33. package/dist/recommendations-overlay.min.js +2 -2
  34. package/dist/share.js +2 -2
  35. package/dist/share.min.js +2 -2
  36. package/dist/shoppable.js +2 -2
  37. package/dist/shoppable.min.js +2 -2
  38. package/dist/utils_fetch-config_js.js +3 -47
  39. package/dist/video-player_js.js +12 -948
  40. package/dist/visual-search.js +2 -2
  41. package/dist/visual-search.min.js +2 -2
  42. package/lib/all.js +2 -1
  43. package/lib/chapters.js +2 -1
  44. package/lib/cld-video-player.min.css +2 -2
  45. package/lib/colors.js +2 -1
  46. package/lib/debug.js +2 -1
  47. package/lib/fetch-config.js +11 -3
  48. package/lib/index.js +2 -1
  49. package/lib/interaction-areas.service.js +2 -1
  50. package/lib/object.js +2805 -0
  51. package/lib/player.js +2 -1
  52. package/lib/playlist.js +2 -1
  53. package/lib/recommendations-overlay.js +2 -1
  54. package/lib/share.js +2 -1
  55. package/lib/shoppable-widget.js +3 -2
  56. package/lib/throttle.js +1 -1
  57. package/lib/toNumber.js +2 -2
  58. package/lib/validators-functions.js +3 -366
  59. package/lib/video-player.const.js +367 -0
  60. package/lib/video-player.js +80 -2800
  61. package/lib/videoPlayer.js +2 -1
  62. package/package.json +1 -1
  63. package/lib/querystring.js +0 -81
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Cloudinary Video Player v3.13.1-edge.0
3
- * Built on 2026-03-31T12:08:40.729Z
2
+ * Cloudinary Video Player v3.13.1
3
+ * Built on 2026-04-02T13:46:44.754Z
4
4
  * https://github.com/cloudinary/cloudinary-video-player
5
5
  */
6
6
  /*
@@ -140,7 +140,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
140
140
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
141
141
 
142
142
  "use strict";
143
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_styles_components_title_bar_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~/assets/styles/components/title-bar.scss */ \"./assets/styles/components/title-bar.scss\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../component-utils */ \"./components/component-utils.js\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_component_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/utf8Base64 */ \"./utils/utf8Base64.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~/plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n// support VJS5 & VJS6 at the same time\nconst dom = (video_js__WEBPACK_IMPORTED_MODULE_0___default().dom) || (video_js__WEBPACK_IMPORTED_MODULE_0___default());\nconst Component = video_js__WEBPACK_IMPORTED_MODULE_0___default().getComponent('Component');\nclass TitleBar extends Component {\n constructor(player) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(player, options);\n this.on(player, 'cldsourcechanged', (_, _ref) => {\n let {\n source\n } = _ref;\n return this.setItem(source);\n });\n }\n setItem(source) {\n if (!source) {\n this.setTitle('');\n this.setDescription('');\n return;\n }\n const info = source.info();\n this.setTitle(info.title);\n this.setDescription(info.subtitle);\n\n // auto-fetch title/description if `true`\n const shouldFetchTitle = source.title && source.title() === true;\n const shouldFetchDescription = source.description && source.description() === true;\n if (shouldFetchTitle || shouldFetchDescription) {\n this.fetchAutoMetadata(source, shouldFetchTitle, shouldFetchDescription);\n }\n }\n fetchAutoMetadata(source, fetchTitle, fetchDescription) {\n if (source.isRawUrl) return;\n const config = source.cloudinaryConfig();\n const publicId = source.publicId();\n if (!config?.cloud_name || !publicId) return;\n const urlPrefix = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__.getCloudinaryUrlPrefix)(config);\n const deliveryType = source.getInitOptions().type || 'upload';\n const metadataUrl = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(`${urlPrefix}/_applet_/video_service/video_metadata/${deliveryType}/${(0,_utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__.utf8ToBase64)(publicId)}.json`, source.queryParams());\n fetch(metadataUrl, {\n headers: {\n 'X-Cld-Video-Player-Version': \"3.13.1-edge.0\"\n }\n }).then(response => {\n if (!response.ok) throw new Error(`HTTP ${response.status}`);\n return response.json();\n }).then(metadata => {\n if (fetchTitle && metadata.title) {\n this.setTitle(metadata.title);\n }\n if (fetchDescription && metadata.description) {\n this.setDescription(metadata.description);\n }\n }).catch(error => {\n console.warn(`Failed to fetch metadata for ${publicId}:`, error);\n });\n }\n setTitle(text) {\n const displayText = typeof text === 'string' ? text : '';\n _component_utils__WEBPACK_IMPORTED_MODULE_2___default().setText(this.titleEl, displayText);\n this.refresh();\n return displayText;\n }\n setDescription(text) {\n const displayText = typeof text === 'string' ? text : '';\n _component_utils__WEBPACK_IMPORTED_MODULE_2___default().setText(this.descriptionEl, displayText);\n this.refresh();\n return displayText;\n }\n refresh() {\n const titleValue = () => this.titleEl.innerText;\n const descriptionValue = () => this.descriptionEl.innerText;\n if (!titleValue() && !descriptionValue()) {\n this.hide();\n return;\n }\n this.show();\n }\n createEl() {\n this.titleEl = dom.createEl('div', {\n className: 'vjs-title-bar-title'\n });\n this.descriptionEl = dom.createEl('div', {\n className: 'vjs-title-bar-subtitle'\n });\n const el = super.createEl('div', {\n append: this.titleEl,\n className: 'vjs-title-bar'\n });\n el.appendChild(this.titleEl);\n el.appendChild(this.descriptionEl);\n return el;\n }\n}\nvideo_js__WEBPACK_IMPORTED_MODULE_0___default().registerComponent('titleBar', TitleBar);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TitleBar);\n\n//# sourceURL=webpack:///./components/title-bar/title-bar.js?\n}");
143
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_styles_components_title_bar_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~/assets/styles/components/title-bar.scss */ \"./assets/styles/components/title-bar.scss\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../component-utils */ \"./components/component-utils.js\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_component_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/utf8Base64 */ \"./utils/utf8Base64.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~/plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n// support VJS5 & VJS6 at the same time\nconst dom = (video_js__WEBPACK_IMPORTED_MODULE_0___default().dom) || (video_js__WEBPACK_IMPORTED_MODULE_0___default());\nconst Component = video_js__WEBPACK_IMPORTED_MODULE_0___default().getComponent('Component');\nclass TitleBar extends Component {\n constructor(player) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(player, options);\n this.on(player, 'cldsourcechanged', (_, _ref) => {\n let {\n source\n } = _ref;\n return this.setItem(source);\n });\n }\n setItem(source) {\n if (!source) {\n this.setTitle('');\n this.setDescription('');\n return;\n }\n const info = source.info();\n this.setTitle(info.title);\n this.setDescription(info.subtitle);\n\n // auto-fetch title/description if `true`\n const shouldFetchTitle = source.title && source.title() === true;\n const shouldFetchDescription = source.description && source.description() === true;\n if (shouldFetchTitle || shouldFetchDescription) {\n this.fetchAutoMetadata(source, shouldFetchTitle, shouldFetchDescription);\n }\n }\n fetchAutoMetadata(source, fetchTitle, fetchDescription) {\n if (source.isRawUrl) return;\n const config = source.cloudinaryConfig();\n const publicId = source.publicId();\n if (!config?.cloud_name || !publicId) return;\n const urlPrefix = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__.getCloudinaryUrlPrefix)(config);\n const deliveryType = source.getInitOptions().type || 'upload';\n const metadataUrl = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(`${urlPrefix}/_applet_/video_service/video_metadata/${deliveryType}/${(0,_utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__.utf8ToBase64)(publicId)}.json`, source.queryParams());\n fetch(metadataUrl, {\n headers: {\n 'X-Cld-Video-Player-Version': \"3.13.1\"\n }\n }).then(response => {\n if (!response.ok) throw new Error(`HTTP ${response.status}`);\n return response.json();\n }).then(metadata => {\n if (fetchTitle && metadata.title) {\n this.setTitle(metadata.title);\n }\n if (fetchDescription && metadata.description) {\n this.setDescription(metadata.description);\n }\n }).catch(error => {\n console.warn(`Failed to fetch metadata for ${publicId}:`, error);\n });\n }\n setTitle(text) {\n const displayText = typeof text === 'string' ? text : '';\n _component_utils__WEBPACK_IMPORTED_MODULE_2___default().setText(this.titleEl, displayText);\n this.refresh();\n return displayText;\n }\n setDescription(text) {\n const displayText = typeof text === 'string' ? text : '';\n _component_utils__WEBPACK_IMPORTED_MODULE_2___default().setText(this.descriptionEl, displayText);\n this.refresh();\n return displayText;\n }\n refresh() {\n const titleValue = () => this.titleEl.innerText;\n const descriptionValue = () => this.descriptionEl.innerText;\n if (!titleValue() && !descriptionValue()) {\n this.hide();\n return;\n }\n this.show();\n }\n createEl() {\n this.titleEl = dom.createEl('div', {\n className: 'vjs-title-bar-title'\n });\n this.descriptionEl = dom.createEl('div', {\n className: 'vjs-title-bar-subtitle'\n });\n const el = super.createEl('div', {\n append: this.titleEl,\n className: 'vjs-title-bar'\n });\n el.appendChild(this.titleEl);\n el.appendChild(this.descriptionEl);\n return el;\n }\n}\nvideo_js__WEBPACK_IMPORTED_MODULE_0___default().registerComponent('titleBar', TitleBar);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TitleBar);\n\n//# sourceURL=webpack:///./components/title-bar/title-bar.js?\n}");
144
144
 
145
145
  /***/ },
146
146
 
@@ -228,7 +228,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
228
228
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
229
229
 
230
230
  "use strict";
231
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isPlainObject */ \"../node_modules/lodash/isPlainObject.js\");\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cloudinary-video-analytics */ \"../node_modules/cloudinary-video-analytics/dist/main.js\");\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/consts */ \"./utils/consts.js\");\n\n\n\nclass CloudinaryAnalytics {\n constructor(player, options) {\n this.player = player;\n this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__.connectCloudinaryAnalytics)(this.player.videoElement, {\n playerAdapter: this.getCloudinaryVideoPlayerAdapter()\n });\n this.currentVideoMetadata = {\n cloudName: null,\n publicId: null\n };\n this.analyticsOptions = options;\n }\n getMetadata = () => ({\n cloudName: this.player.cloudinary.cloudinaryConfig().cloud_name,\n publicId: this.player.cloudinary.currentPublicId()\n });\n sourceChanged = (e, _ref) => {\n let {\n source\n } = _ref;\n const metadata = this.getMetadata();\n if (metadata.cloudName && metadata.publicId) {\n const isLiveStream = source?.resourceConfig().type === 'live';\n this.currentVideoMetadata = metadata;\n this.cloudinaryAnalytics.startManualTracking({\n ...metadata,\n ...(isLiveStream ? {\n type: 'live'\n } : {})\n }, {\n ...(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default()(this.analyticsOptions) ? this.analyticsOptions : {}),\n videoPlayerType: 'cloudinary video player',\n videoPlayerVersion: \"3.13.1-edge.0\"\n });\n } else if (this.currentVideoMetadata.cloudName !== metadata.cloudName || this.currentVideoMetadata.publicId !== metadata.publicId) {\n this.cloudinaryAnalytics.stopManualTracking();\n }\n };\n getCloudinaryVideoPlayerAdapter = () => {\n const createCldVPEventListener = (eventName, callback) => {\n this.player.on(eventName, callback);\n return () => {\n this.player.off(eventName, callback);\n };\n };\n return {\n onCanPlay: callback => createCldVPEventListener('canplay', callback),\n onCanPlayThrough: callback => createCldVPEventListener('canplaythrough', callback),\n onComplete: callback => createCldVPEventListener('complete', callback),\n onDurationChange: callback => createCldVPEventListener('durationchange', callback),\n onEmptied: callback => createCldVPEventListener('emptied', callback),\n onEnded: callback => createCldVPEventListener('ended', callback),\n onError: callback => createCldVPEventListener('error', callback),\n onLoadedData: callback => createCldVPEventListener('loadeddata', callback),\n onLoadedMetadata: callback => createCldVPEventListener('loadedmetadata', callback),\n onLoadStart: callback => createCldVPEventListener('loadstart', callback),\n onPause: callback => createCldVPEventListener('pause', callback),\n onPlay: callback => createCldVPEventListener('play', callback),\n onPlaying: callback => createCldVPEventListener('playing', callback),\n onProgress: callback => createCldVPEventListener('progress', callback),\n onRateChange: callback => createCldVPEventListener('ratechange', callback),\n onSeeked: callback => createCldVPEventListener('seeked', callback),\n onSeeking: callback => createCldVPEventListener('seeking', callback),\n onStalled: callback => createCldVPEventListener('stalled', callback),\n onSuspend: callback => createCldVPEventListener('suspend', callback),\n onTimeUpdate: callback => createCldVPEventListener('timeupdate', callback),\n onVolumeChange: callback => createCldVPEventListener('volumechange', callback),\n onWaiting: callback => createCldVPEventListener('waiting', callback),\n getCurrentSrc: () => this.player.videoElement.currentSrc,\n getCurrentTime: () => this.player.currentTime(),\n getReadyState: () => this.player.videoElement.readyState,\n getDuration: () => this.player.duration()\n };\n };\n init() {\n this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this.sourceChanged);\n }\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {\n let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n new CloudinaryAnalytics(this, opts).init();\n}\n\n//# sourceURL=webpack:///./plugins/cloudinary-analytics/index.js?\n}");
231
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isPlainObject */ \"../node_modules/lodash/isPlainObject.js\");\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cloudinary-video-analytics */ \"../node_modules/cloudinary-video-analytics/dist/main.js\");\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/consts */ \"./utils/consts.js\");\n\n\n\nclass CloudinaryAnalytics {\n constructor(player, options) {\n this.player = player;\n this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__.connectCloudinaryAnalytics)(this.player.videoElement, {\n playerAdapter: this.getCloudinaryVideoPlayerAdapter()\n });\n this.currentVideoMetadata = {\n cloudName: null,\n publicId: null\n };\n this.analyticsOptions = options;\n }\n getMetadata = () => ({\n cloudName: this.player.cloudinary.cloudinaryConfig().cloud_name,\n publicId: this.player.cloudinary.currentPublicId()\n });\n sourceChanged = (e, _ref) => {\n let {\n source\n } = _ref;\n const metadata = this.getMetadata();\n if (metadata.cloudName && metadata.publicId) {\n const isLiveStream = source?.resourceConfig().type === 'live';\n this.currentVideoMetadata = metadata;\n this.cloudinaryAnalytics.startManualTracking({\n ...metadata,\n ...(isLiveStream ? {\n type: 'live'\n } : {})\n }, {\n ...(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default()(this.analyticsOptions) ? this.analyticsOptions : {}),\n videoPlayerType: 'cloudinary video player',\n videoPlayerVersion: \"3.13.1\"\n });\n } else if (this.currentVideoMetadata.cloudName !== metadata.cloudName || this.currentVideoMetadata.publicId !== metadata.publicId) {\n this.cloudinaryAnalytics.stopManualTracking();\n }\n };\n getCloudinaryVideoPlayerAdapter = () => {\n const createCldVPEventListener = (eventName, callback) => {\n this.player.on(eventName, callback);\n return () => {\n this.player.off(eventName, callback);\n };\n };\n return {\n onCanPlay: callback => createCldVPEventListener('canplay', callback),\n onCanPlayThrough: callback => createCldVPEventListener('canplaythrough', callback),\n onComplete: callback => createCldVPEventListener('complete', callback),\n onDurationChange: callback => createCldVPEventListener('durationchange', callback),\n onEmptied: callback => createCldVPEventListener('emptied', callback),\n onEnded: callback => createCldVPEventListener('ended', callback),\n onError: callback => createCldVPEventListener('error', callback),\n onLoadedData: callback => createCldVPEventListener('loadeddata', callback),\n onLoadedMetadata: callback => createCldVPEventListener('loadedmetadata', callback),\n onLoadStart: callback => createCldVPEventListener('loadstart', callback),\n onPause: callback => createCldVPEventListener('pause', callback),\n onPlay: callback => createCldVPEventListener('play', callback),\n onPlaying: callback => createCldVPEventListener('playing', callback),\n onProgress: callback => createCldVPEventListener('progress', callback),\n onRateChange: callback => createCldVPEventListener('ratechange', callback),\n onSeeked: callback => createCldVPEventListener('seeked', callback),\n onSeeking: callback => createCldVPEventListener('seeking', callback),\n onStalled: callback => createCldVPEventListener('stalled', callback),\n onSuspend: callback => createCldVPEventListener('suspend', callback),\n onTimeUpdate: callback => createCldVPEventListener('timeupdate', callback),\n onVolumeChange: callback => createCldVPEventListener('volumechange', callback),\n onWaiting: callback => createCldVPEventListener('waiting', callback),\n getCurrentSrc: () => this.player.videoElement.currentSrc,\n getCurrentTime: () => this.player.currentTime(),\n getReadyState: () => this.player.videoElement.readyState,\n getDuration: () => this.player.duration()\n };\n };\n init() {\n this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this.sourceChanged);\n }\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {\n let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n new CloudinaryAnalytics(this, opts).init();\n}\n\n//# sourceURL=webpack:///./plugins/cloudinary-analytics/index.js?\n}");
232
232
 
233
233
  /***/ },
234
234
 
@@ -261,7 +261,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
261
261
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
262
262
 
263
263
  "use strict";
264
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CONSTRUCTOR_PARAMS: () => (/* binding */ CONSTRUCTOR_PARAMS),\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getEffectiveDpr: () => (/* binding */ getEffectiveDpr)\n/* harmony export */ });\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isFunction */ \"../node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/isEmpty */ \"../node_modules/lodash/isEmpty.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_apply_with_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~/utils/apply-with-props */ \"./utils/apply-with-props.js\");\n/* harmony import */ var _utils_slicing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~/utils/slicing */ \"./utils/slicing.js\");\n/* harmony import */ var _utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~/utils/cloudinary */ \"./utils/cloudinary.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _video_player_const__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~/video-player.const */ \"./video-player.const.js\");\n/* harmony import */ var _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./models/video-source/video-source */ \"./plugins/cloudinary/models/video-source/video-source.js\");\n/* harmony import */ var _event_handler_registry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./event-handler-registry */ \"./plugins/cloudinary/event-handler-registry.js\");\n/* harmony import */ var _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./models/audio-source/audio-source */ \"./plugins/cloudinary/models/audio-source/audio-source.js\");\n/* harmony import */ var _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./models/video-source/video-source.const */ \"./plugins/cloudinary/models/video-source/video-source.const.js\");\n/* harmony import */ var _components_recommendations_overlay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ~/components/recommendations-overlay */ \"./components/recommendations-overlay/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst getEffectiveDpr = maxDpr => {\n const deviceDpr = typeof window !== 'undefined' && window.devicePixelRatio != null ? window.devicePixelRatio : _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.DEFAULT_DPR;\n return Math.min(maxDpr ?? _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.DEFAULT_DPR, deviceDpr, _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.DEFAULT_DPR);\n};\nconst DEFAULT_PARAMS = {\n transformation: {},\n sourceTypes: [],\n sourceTransformation: [],\n posterOptions: {}\n};\nconst CONSTRUCTOR_PARAMS = ['cloudinaryConfig', 'transformation', 'sourceTypes', 'sourceTransformation', 'posterOptions', 'autoShowRecommendations'];\nconst normalizeAspectCrop = options => {\n const {\n aspectRatio,\n cropMode,\n cropPadColor,\n transformation,\n breakpointTransformation,\n ...rest\n } = options;\n if (!aspectRatio && !cropMode && !breakpointTransformation) return options;\n const tx = {};\n if (aspectRatio) tx.aspect_ratio = aspectRatio;\n if (cropMode) {\n if (cropMode === _video_player_const__WEBPACK_IMPORTED_MODULE_6__.CROP_MODE.SMART) {\n tx.crop = _video_player_const__WEBPACK_IMPORTED_MODULE_6__.CROP_MODE.FILL;\n tx.gravity = 'auto';\n } else {\n tx.crop = cropMode;\n if (cropMode === _video_player_const__WEBPACK_IMPORTED_MODULE_6__.CROP_MODE.PAD && cropPadColor) tx.background = cropPadColor;\n }\n }\n const mergedTx = {\n ...(breakpointTransformation || {}),\n ...tx\n };\n return {\n ...rest,\n transformation: Array.isArray(transformation) ? [...transformation, mergedTx] : (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(transformation || {}, mergedTx)\n };\n};\nclass CloudinaryContext {\n constructor(player) {\n var _this = this;\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0,_common__WEBPACK_IMPORTED_MODULE_5__.setupCloudinaryMiddleware)();\n this.player = player;\n options = Object.assign({}, DEFAULT_PARAMS, options);\n let _source = null;\n let _sources = null;\n let _lastSource = null;\n let _lastPlaylist = null;\n let _posterOptions = null;\n let _cloudinaryConfig = null;\n let _transformation = null;\n let _sourceTypes = null;\n let _sourceTransformation = null;\n let _chainTarget = options.chainTarget;\n let _playerEvents = null;\n let _recommendations = null;\n let _autoShowRecommendations = false;\n this.source = function (source) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options = Object.assign({}, options);\n if (!source) {\n return _source;\n }\n let src = null;\n if (source instanceof _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__[\"default\"]) {\n src = source;\n } else {\n let {\n publicId,\n options: _options\n } = (0,_common__WEBPACK_IMPORTED_MODULE_5__.normalizeOptions)(source, options);\n src = _this.buildSource(publicId, _options);\n }\n const recommendations = src.recommendations();\n if (recommendations && recommendations.length) {\n let itemBuilder = null;\n let disableAutoShow = false;\n if (options.recommendationOptions) {\n ({\n disableAutoShow,\n itemBuilder\n } = (0,_utils_slicing__WEBPACK_IMPORTED_MODULE_3__.sliceAndUnsetProperties)(options.recommendationOptions, 'disableAutoShow', 'itemBuilder'));\n }\n (0,_components_recommendations_overlay__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(player).then(() => {\n setRecommendations(recommendations, {\n disableAutoShow,\n itemBuilder\n });\n });\n } else {\n unsetRecommendations();\n }\n _source = src;\n _transformation = src.transformation();\n const isDash = options.sourceTypes && options.sourceTypes.some(s => s.includes('dash')) || typeof source === 'string' && source.endsWith('.mpd');\n const isHls = options.sourceTypes && options.sourceTypes.some(s => s.includes('hls')) || typeof source === 'string' && source.endsWith('.m3u8');\n const isAdaptiveStreamingRequired = isDash || isHls;\n if (isAdaptiveStreamingRequired && !_this.player.adaptiveStreamingLoaded) {\n __webpack_require__.e(/*! import() | adaptive-streaming */ \"adaptive-streaming\").then(__webpack_require__.bind(__webpack_require__, /*! ../adaptive-streaming */ \"./plugins/adaptive-streaming/index.js\")).then(() => {\n _this.player.adaptiveStreaming({\n ...options.adaptiveStreaming,\n isDash,\n debug: options.debug,\n withCredentials: options.withCredentials\n }).then(() => {\n refresh();\n });\n }).catch(err => {\n console.error('Failed to load adaptive streaming plugin:', err);\n refresh();\n });\n } else if (!options.skipRefresh) {\n refresh();\n }\n _this.player.trigger('cldsourcechanged', {\n source: src,\n sourceOptions: options\n });\n return _chainTarget;\n };\n this.buildSource = function (publicId) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let builtSrc = null;\n ({\n publicId,\n options\n } = (0,_common__WEBPACK_IMPORTED_MODULE_5__.normalizeOptions)(publicId, options));\n\n // Calculate breakpoint transformation.\n // This should happen before normalizeAspectCrop so they can be merged.\n if (options.breakpoints && _this.player) {\n const playerEl = _this.player.el();\n const playerWidth = playerEl?.clientWidth;\n const dpr = getEffectiveDpr(options.maxDpr);\n const requiredWidth = playerWidth * dpr;\n const width = _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.RENDITIONS.find(rendition => rendition >= requiredWidth) || _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.RENDITIONS[_models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.RENDITIONS.length - 1];\n options.breakpointTransformation = {\n width,\n ...(!(0,_utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__.isKeyInTransformation)(options.transformation, 'crop') && {\n crop: 'limit'\n })\n };\n }\n options = normalizeAspectCrop(options);\n options.cloudinaryConfig = (0,_common__WEBPACK_IMPORTED_MODULE_5__.extendCloudinaryConfig)(_this.cloudinaryConfig(), options.cloudinaryConfig || {});\n options.transformation = (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(_this.transformation(), options.transformation || {});\n options.sourceTransformation = options.sourceTransformation || _this.sourceTransformation();\n options.sourceTypes = options.sourceTypes || _this.sourceTypes();\n const posterOptions = posterOptionsForCurrent(options);\n\n // Inherit source transformation\n const srcTx = options.transformation;\n if (srcTx && !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1___default()(srcTx)) {\n const imageSafeTx = (0,_common__WEBPACK_IMPORTED_MODULE_5__.omitVideoOnlyTransformations)(srcTx);\n const merged = (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(posterOptions.transformation || {}, imageSafeTx);\n // Remove height when aspect_ratio is set\n if (merged.aspect_ratio) {\n delete merged.height;\n }\n posterOptions.transformation = merged;\n }\n const hasUserPosterOptions = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1___default()(options.posterOptions);\n if (options.poster === undefined) {\n if ((0,_common__WEBPACK_IMPORTED_MODULE_5__.isRawUrl)(publicId)) {\n options.poster = false;\n } else if (!hasUserPosterOptions) {\n options.poster = true;\n } else {\n options.poster = posterOptions;\n }\n }\n options.posterOptions = Object.assign({}, posterOptions, {\n hasUserPosterOptions: hasUserPosterOptions || null\n });\n options.queryParams = Object.assign(options.queryParams || {}, options.allowUsageReport ? {\n _s: `vp-${\"3.13.1-edge.0\"}`\n } : {});\n if (options.sourceTypes.indexOf('audio') > -1) {\n builtSrc = new _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_9__[\"default\"](publicId, options);\n } else {\n builtSrc = new _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__[\"default\"](publicId, options);\n }\n return builtSrc;\n };\n this.posterOptions = options => {\n if (!options) {\n return _posterOptions;\n }\n _posterOptions = options;\n return _chainTarget;\n };\n this.disablePoster = posterColor => {\n // https://docs.videojs.com/player.js.html#line3816\n this.player.poster(' ');\n this.player.posterImage.el().style.backgroundColor = posterColor;\n };\n this.cloudinaryConfig = config => {\n if (!config) {\n return _cloudinaryConfig;\n }\n _cloudinaryConfig = config;\n return _chainTarget;\n };\n this.transformation = trans => {\n if (!trans) {\n return _transformation;\n }\n _transformation = trans;\n return _chainTarget;\n };\n this.sourceTypes = types => {\n if (!types) {\n return _sourceTypes;\n }\n _sourceTypes = types;\n return _chainTarget;\n };\n this.getCurrentSources = () => _sources;\n this.sourceTransformation = trans => {\n if (!trans) {\n return _sourceTransformation;\n }\n _sourceTransformation = trans;\n return _chainTarget;\n };\n this.on = function () {\n return _playerEvents.on(...arguments);\n };\n this.one = function () {\n return _playerEvents.one(...arguments);\n };\n this.off = function () {\n return _playerEvents.off(...arguments);\n };\n this.autoShowRecommendations = autoShow => {\n if (autoShow === undefined) {\n return _autoShowRecommendations;\n }\n _autoShowRecommendations = autoShow;\n return _chainTarget;\n };\n this.dispose = () => {\n if (this.playlist && this.playlist()) {\n this.disposePlaylist();\n }\n unsetRecommendations();\n _source = undefined;\n _playerEvents.removeAllListeners();\n };\n const setRecommendations = (recommendations, _ref) => {\n let {\n disableAutoShow = false,\n itemBuilder = null\n } = _ref;\n unsetRecommendations();\n if (!Array.isArray(recommendations) && typeof recommendations !== 'function' && !recommendations.then) {\n throw new Error('\"recommendations\" must be either an array or a function');\n }\n _recommendations = {};\n itemBuilder = itemBuilder || (source => ({\n source: source instanceof _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__[\"default\"] ? source : this.buildSource(source),\n action: () => this.source(source)\n }));\n _recommendations.sourceChangedHandler = () => {\n const trigger = sources => {\n if (typeof sources !== 'undefined' && sources.length > 0) {\n const items = sources.map(_source => itemBuilder(_source));\n this.player.trigger('recommendationschanged', {\n items\n });\n } else {\n this.player.trigger('recommendationsnoshow');\n }\n _recommendations.sources = sources;\n };\n if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default()(recommendations)) {\n trigger(recommendations());\n } else if (recommendations.then) {\n recommendations.then(trigger);\n } else {\n trigger(recommendations);\n }\n };\n _recommendations.sourceChangedHandler();\n _recommendations.endedHandler = () => {\n if (!disableAutoShow && this.autoShowRecommendations()) {\n this.player.trigger('recommendationsshow');\n }\n };\n this.on('ended', _recommendations.endedHandler);\n };\n const unsetRecommendations = () => {\n if (_recommendations) {\n this.off('cldsourcechanged', _recommendations.sourceChangedHandler);\n this.off('ended', _recommendations.endedHandler);\n delete _recommendations.endedHandler;\n delete _recommendations.sourceChangedHandler;\n }\n _recommendations = null;\n };\n const refresh = () => {\n const src = this.source();\n if (!src) {\n return;\n }\n const posterOptions = Object.assign({}, this.player.cloudinary.posterOptions(), src.getInitOptions().poster);\n if (posterOptions.posterColor) {\n this.disablePoster(posterOptions.posterColor);\n } else if (src.poster()) {\n this.player.poster(src.poster().url());\n }\n _sources = src.generateSources().reduce((srcs, src) => {\n if (src.isAdaptive) {\n let codec = src.type.split('; ')[1] || null;\n if (codec && 'MediaSource' in window) {\n const parts = src.type.split('; ');\n let typeStr = `video/mp4; ${parts[1] || ''}`;\n const canPlay = testCanPlayTypeAndTypeSupported(typeStr);\n if (canPlay) {\n srcs.push(src);\n }\n } else {\n srcs.push(src);\n }\n } else {\n srcs.push(src);\n }\n return srcs;\n }, []);\n this.player.src(_sources);\n _lastSource = src;\n if (this.playlist) {\n _lastPlaylist = this.playlist();\n }\n };\n const testCanPlayTypeAndTypeSupported = codec => {\n const v = document.createElement('video');\n return v.canPlayType(codec) || 'MediaSource' in window && MediaSource.isTypeSupported(codec);\n };\n const posterOptionsForCurrent = sourceOpts => {\n const posterOpts = Object.assign({}, this.posterOptions());\n posterOpts.transformation = posterOpts.transformation || {};\n if ((posterOpts.transformation.width || posterOpts.transformation.height) && !posterOpts.transformation.crop) {\n posterOpts.transformation.crop = 'scale';\n }\n\n // Skip when source already has width (e.g. breakpoints).\n const sourceHasSizing = (0,_utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__.isKeyInTransformation)(sourceOpts.transformation, 'width');\n const playerEl = this.player.el();\n if (!sourceHasSizing && playerEl?.clientWidth) {\n const roundUp100 = val => 100 * Math.ceil(val / 100);\n const dpr = getEffectiveDpr(sourceOpts.maxDpr);\n posterOpts.transformation = (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(posterOpts.transformation, {\n width: roundUp100(playerEl.clientWidth * dpr),\n ...(!(0,_utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__.isKeyInTransformation)(posterOpts.transformation, 'crop') && {\n crop: 'limit'\n })\n });\n }\n return posterOpts;\n };\n\n // Handle external (non-cloudinary plugin) source changes (e.g. by ad plugins)\n const syncState = (_, data) => {\n let src = data.to;\n\n // When source is cloudinary's\n if (_lastSource && _lastSource.contains(src)) {\n // If plugin state doesn't have an active VideoSource\n if (!this.source()) {\n // We might have been running a playlist, reset playlist's state.\n if (this.playlist && _lastPlaylist) {\n this.playlist(_lastPlaylist);\n }\n // Rebuild last source state without calling vjs's 'src' and 'poster'\n this.source(_lastSource, {\n skipRefresh: true\n });\n }\n } else {\n // Used by cloudinary-only components\n this.player.trigger('cldsourcechanged', {});\n\n // When source isn't cloudinary's - reset the plugin's state.\n this.dispose();\n }\n };\n _playerEvents = new _event_handler_registry__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.player);\n const constructorParams = (0,_utils_slicing__WEBPACK_IMPORTED_MODULE_3__.sliceAndUnsetProperties)(options, ...CONSTRUCTOR_PARAMS);\n (0,_utils_apply_with_props__WEBPACK_IMPORTED_MODULE_2__.applyWithProps)(this, constructorParams);\n this.on('sourcechanged', syncState);\n }\n currentSourceType() {\n return this.source().getType();\n }\n currentPublicId() {\n return this.source() && this.source().publicId();\n }\n currentPoster() {\n return this.source() && this.source().poster();\n }\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n options.chainTarget = options.chainTarget || this;\n this.cloudinary = new CloudinaryContext(this, options);\n}\n\n//# sourceURL=webpack:///./plugins/cloudinary/index.js?\n}");
264
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CONSTRUCTOR_PARAMS: () => (/* binding */ CONSTRUCTOR_PARAMS),\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getEffectiveDpr: () => (/* binding */ getEffectiveDpr)\n/* harmony export */ });\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isFunction */ \"../node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/isEmpty */ \"../node_modules/lodash/isEmpty.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_apply_with_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~/utils/apply-with-props */ \"./utils/apply-with-props.js\");\n/* harmony import */ var _utils_slicing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~/utils/slicing */ \"./utils/slicing.js\");\n/* harmony import */ var _utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~/utils/cloudinary */ \"./utils/cloudinary.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _video_player_const__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~/video-player.const */ \"./video-player.const.js\");\n/* harmony import */ var _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./models/video-source/video-source */ \"./plugins/cloudinary/models/video-source/video-source.js\");\n/* harmony import */ var _event_handler_registry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./event-handler-registry */ \"./plugins/cloudinary/event-handler-registry.js\");\n/* harmony import */ var _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./models/audio-source/audio-source */ \"./plugins/cloudinary/models/audio-source/audio-source.js\");\n/* harmony import */ var _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./models/video-source/video-source.const */ \"./plugins/cloudinary/models/video-source/video-source.const.js\");\n/* harmony import */ var _components_recommendations_overlay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ~/components/recommendations-overlay */ \"./components/recommendations-overlay/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst getEffectiveDpr = maxDpr => {\n const deviceDpr = typeof window !== 'undefined' && window.devicePixelRatio != null ? window.devicePixelRatio : _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.DEFAULT_DPR;\n return Math.min(maxDpr ?? _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.DEFAULT_DPR, deviceDpr, _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.DEFAULT_DPR);\n};\nconst DEFAULT_PARAMS = {\n transformation: {},\n sourceTypes: [],\n sourceTransformation: [],\n posterOptions: {}\n};\nconst CONSTRUCTOR_PARAMS = ['cloudinaryConfig', 'transformation', 'sourceTypes', 'sourceTransformation', 'posterOptions', 'autoShowRecommendations'];\nconst normalizeAspectCrop = options => {\n const {\n aspectRatio,\n cropMode,\n cropPadColor,\n transformation,\n breakpointTransformation,\n ...rest\n } = options;\n if (!aspectRatio && !cropMode && !breakpointTransformation) return options;\n const tx = {};\n if (aspectRatio) tx.aspect_ratio = aspectRatio;\n if (cropMode) {\n if (cropMode === _video_player_const__WEBPACK_IMPORTED_MODULE_6__.CROP_MODE.SMART) {\n tx.crop = _video_player_const__WEBPACK_IMPORTED_MODULE_6__.CROP_MODE.FILL;\n tx.gravity = 'auto';\n } else {\n tx.crop = cropMode;\n if (cropMode === _video_player_const__WEBPACK_IMPORTED_MODULE_6__.CROP_MODE.PAD && cropPadColor) tx.background = cropPadColor;\n }\n }\n const mergedTx = {\n ...(breakpointTransformation || {}),\n ...tx\n };\n return {\n ...rest,\n transformation: Array.isArray(transformation) ? [...transformation, mergedTx] : (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(transformation || {}, mergedTx)\n };\n};\nclass CloudinaryContext {\n constructor(player) {\n var _this = this;\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0,_common__WEBPACK_IMPORTED_MODULE_5__.setupCloudinaryMiddleware)();\n this.player = player;\n options = Object.assign({}, DEFAULT_PARAMS, options);\n let _source = null;\n let _sources = null;\n let _lastSource = null;\n let _lastPlaylist = null;\n let _posterOptions = null;\n let _cloudinaryConfig = null;\n let _transformation = null;\n let _sourceTypes = null;\n let _sourceTransformation = null;\n let _chainTarget = options.chainTarget;\n let _playerEvents = null;\n let _recommendations = null;\n let _autoShowRecommendations = false;\n this.source = function (source) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options = Object.assign({}, options);\n if (!source) {\n return _source;\n }\n let src = null;\n if (source instanceof _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__[\"default\"]) {\n src = source;\n } else {\n let {\n publicId,\n options: _options\n } = (0,_common__WEBPACK_IMPORTED_MODULE_5__.normalizeOptions)(source, options);\n src = _this.buildSource(publicId, _options);\n }\n const recommendations = src.recommendations();\n if (recommendations && recommendations.length) {\n let itemBuilder = null;\n let disableAutoShow = false;\n if (options.recommendationOptions) {\n ({\n disableAutoShow,\n itemBuilder\n } = (0,_utils_slicing__WEBPACK_IMPORTED_MODULE_3__.sliceAndUnsetProperties)(options.recommendationOptions, 'disableAutoShow', 'itemBuilder'));\n }\n (0,_components_recommendations_overlay__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(player).then(() => {\n setRecommendations(recommendations, {\n disableAutoShow,\n itemBuilder\n });\n });\n } else {\n unsetRecommendations();\n }\n _source = src;\n _transformation = src.transformation();\n const isDash = options.sourceTypes && options.sourceTypes.some(s => s.includes('dash')) || typeof source === 'string' && source.endsWith('.mpd');\n const isHls = options.sourceTypes && options.sourceTypes.some(s => s.includes('hls')) || typeof source === 'string' && source.endsWith('.m3u8');\n const isAdaptiveStreamingRequired = isDash || isHls;\n if (isAdaptiveStreamingRequired && !_this.player.adaptiveStreamingLoaded) {\n __webpack_require__.e(/*! import() | adaptive-streaming */ \"adaptive-streaming\").then(__webpack_require__.bind(__webpack_require__, /*! ../adaptive-streaming */ \"./plugins/adaptive-streaming/index.js\")).then(() => {\n _this.player.adaptiveStreaming({\n ...options.adaptiveStreaming,\n isDash,\n debug: options.debug,\n withCredentials: options.withCredentials\n }).then(() => {\n refresh();\n });\n }).catch(err => {\n console.error('Failed to load adaptive streaming plugin:', err);\n refresh();\n });\n } else if (!options.skipRefresh) {\n refresh();\n }\n _this.player.trigger('cldsourcechanged', {\n source: src,\n sourceOptions: options\n });\n return _chainTarget;\n };\n this.buildSource = function (publicId) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let builtSrc = null;\n ({\n publicId,\n options\n } = (0,_common__WEBPACK_IMPORTED_MODULE_5__.normalizeOptions)(publicId, options));\n\n // Calculate breakpoint transformation.\n // This should happen before normalizeAspectCrop so they can be merged.\n if (options.breakpoints && _this.player) {\n const playerEl = _this.player.el();\n const playerWidth = playerEl?.clientWidth;\n const dpr = getEffectiveDpr(options.maxDpr);\n const requiredWidth = playerWidth * dpr;\n const width = _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.RENDITIONS.find(rendition => rendition >= requiredWidth) || _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.RENDITIONS[_models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_10__.RENDITIONS.length - 1];\n options.breakpointTransformation = {\n width,\n ...(!(0,_utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__.isKeyInTransformation)(options.transformation, 'crop') && {\n crop: 'limit'\n })\n };\n }\n options = normalizeAspectCrop(options);\n options.cloudinaryConfig = (0,_common__WEBPACK_IMPORTED_MODULE_5__.extendCloudinaryConfig)(_this.cloudinaryConfig(), options.cloudinaryConfig || {});\n options.transformation = (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(_this.transformation(), options.transformation || {});\n options.sourceTransformation = options.sourceTransformation || _this.sourceTransformation();\n options.sourceTypes = options.sourceTypes || _this.sourceTypes();\n const posterOptions = posterOptionsForCurrent(options);\n\n // Inherit source transformation\n const srcTx = options.transformation;\n if (srcTx && !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1___default()(srcTx)) {\n const imageSafeTx = (0,_common__WEBPACK_IMPORTED_MODULE_5__.omitVideoOnlyTransformations)(srcTx);\n const merged = (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(posterOptions.transformation || {}, imageSafeTx);\n // Remove height when aspect_ratio is set\n if (merged.aspect_ratio) {\n delete merged.height;\n }\n posterOptions.transformation = merged;\n }\n const hasUserPosterOptions = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1___default()(options.posterOptions);\n if (options.poster === undefined) {\n if ((0,_common__WEBPACK_IMPORTED_MODULE_5__.isRawUrl)(publicId)) {\n options.poster = false;\n } else if (!hasUserPosterOptions) {\n options.poster = true;\n } else {\n options.poster = posterOptions;\n }\n }\n options.posterOptions = Object.assign({}, posterOptions, {\n hasUserPosterOptions: hasUserPosterOptions || null\n });\n options.queryParams = Object.assign(options.queryParams || {}, options.allowUsageReport ? {\n _s: `vp-${\"3.13.1\"}`\n } : {});\n if (options.sourceTypes.indexOf('audio') > -1) {\n builtSrc = new _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_9__[\"default\"](publicId, options);\n } else {\n builtSrc = new _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__[\"default\"](publicId, options);\n }\n return builtSrc;\n };\n this.posterOptions = options => {\n if (!options) {\n return _posterOptions;\n }\n _posterOptions = options;\n return _chainTarget;\n };\n this.disablePoster = posterColor => {\n // https://docs.videojs.com/player.js.html#line3816\n this.player.poster(' ');\n this.player.posterImage.el().style.backgroundColor = posterColor;\n };\n this.cloudinaryConfig = config => {\n if (!config) {\n return _cloudinaryConfig;\n }\n _cloudinaryConfig = config;\n return _chainTarget;\n };\n this.transformation = trans => {\n if (!trans) {\n return _transformation;\n }\n _transformation = trans;\n return _chainTarget;\n };\n this.sourceTypes = types => {\n if (!types) {\n return _sourceTypes;\n }\n _sourceTypes = types;\n return _chainTarget;\n };\n this.getCurrentSources = () => _sources;\n this.sourceTransformation = trans => {\n if (!trans) {\n return _sourceTransformation;\n }\n _sourceTransformation = trans;\n return _chainTarget;\n };\n this.on = function () {\n return _playerEvents.on(...arguments);\n };\n this.one = function () {\n return _playerEvents.one(...arguments);\n };\n this.off = function () {\n return _playerEvents.off(...arguments);\n };\n this.autoShowRecommendations = autoShow => {\n if (autoShow === undefined) {\n return _autoShowRecommendations;\n }\n _autoShowRecommendations = autoShow;\n return _chainTarget;\n };\n this.dispose = () => {\n if (this.playlist && this.playlist()) {\n this.disposePlaylist();\n }\n unsetRecommendations();\n _source = undefined;\n _playerEvents.removeAllListeners();\n };\n const setRecommendations = (recommendations, _ref) => {\n let {\n disableAutoShow = false,\n itemBuilder = null\n } = _ref;\n unsetRecommendations();\n if (!Array.isArray(recommendations) && typeof recommendations !== 'function' && !recommendations.then) {\n throw new Error('\"recommendations\" must be either an array or a function');\n }\n _recommendations = {};\n itemBuilder = itemBuilder || (source => ({\n source: source instanceof _models_video_source_video_source__WEBPACK_IMPORTED_MODULE_7__[\"default\"] ? source : this.buildSource(source),\n action: () => this.source(source)\n }));\n _recommendations.sourceChangedHandler = () => {\n const trigger = sources => {\n if (typeof sources !== 'undefined' && sources.length > 0) {\n const items = sources.map(_source => itemBuilder(_source));\n this.player.trigger('recommendationschanged', {\n items\n });\n } else {\n this.player.trigger('recommendationsnoshow');\n }\n _recommendations.sources = sources;\n };\n if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default()(recommendations)) {\n trigger(recommendations());\n } else if (recommendations.then) {\n recommendations.then(trigger);\n } else {\n trigger(recommendations);\n }\n };\n _recommendations.sourceChangedHandler();\n _recommendations.endedHandler = () => {\n if (!disableAutoShow && this.autoShowRecommendations()) {\n this.player.trigger('recommendationsshow');\n }\n };\n this.on('ended', _recommendations.endedHandler);\n };\n const unsetRecommendations = () => {\n if (_recommendations) {\n this.off('cldsourcechanged', _recommendations.sourceChangedHandler);\n this.off('ended', _recommendations.endedHandler);\n delete _recommendations.endedHandler;\n delete _recommendations.sourceChangedHandler;\n }\n _recommendations = null;\n };\n const refresh = () => {\n const src = this.source();\n if (!src) {\n return;\n }\n const posterOptions = Object.assign({}, this.player.cloudinary.posterOptions(), src.getInitOptions().poster);\n if (posterOptions.posterColor) {\n this.disablePoster(posterOptions.posterColor);\n } else if (src.poster()) {\n this.player.poster(src.poster().url());\n }\n _sources = src.generateSources().reduce((srcs, src) => {\n if (src.isAdaptive) {\n let codec = src.type.split('; ')[1] || null;\n if (codec && 'MediaSource' in window) {\n const parts = src.type.split('; ');\n let typeStr = `video/mp4; ${parts[1] || ''}`;\n const canPlay = testCanPlayTypeAndTypeSupported(typeStr);\n if (canPlay) {\n srcs.push(src);\n }\n } else {\n srcs.push(src);\n }\n } else {\n srcs.push(src);\n }\n return srcs;\n }, []);\n this.player.src(_sources);\n _lastSource = src;\n if (this.playlist) {\n _lastPlaylist = this.playlist();\n }\n };\n const testCanPlayTypeAndTypeSupported = codec => {\n const v = document.createElement('video');\n return v.canPlayType(codec) || 'MediaSource' in window && MediaSource.isTypeSupported(codec);\n };\n const posterOptionsForCurrent = sourceOpts => {\n const posterOpts = Object.assign({}, this.posterOptions());\n posterOpts.transformation = posterOpts.transformation || {};\n if ((posterOpts.transformation.width || posterOpts.transformation.height) && !posterOpts.transformation.crop) {\n posterOpts.transformation.crop = 'scale';\n }\n\n // Skip when source already has width (e.g. breakpoints).\n const sourceHasSizing = (0,_utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__.isKeyInTransformation)(sourceOpts.transformation, 'width');\n const playerEl = this.player.el();\n if (!sourceHasSizing && playerEl?.clientWidth) {\n const roundUp100 = val => 100 * Math.ceil(val / 100);\n const dpr = getEffectiveDpr(sourceOpts.maxDpr);\n posterOpts.transformation = (0,_common__WEBPACK_IMPORTED_MODULE_5__.mergeTransformations)(posterOpts.transformation, {\n width: roundUp100(playerEl.clientWidth * dpr),\n ...(!(0,_utils_cloudinary__WEBPACK_IMPORTED_MODULE_4__.isKeyInTransformation)(posterOpts.transformation, 'crop') && {\n crop: 'limit'\n })\n });\n }\n return posterOpts;\n };\n\n // Handle external (non-cloudinary plugin) source changes (e.g. by ad plugins)\n const syncState = (_, data) => {\n let src = data.to;\n\n // When source is cloudinary's\n if (_lastSource && _lastSource.contains(src)) {\n // If plugin state doesn't have an active VideoSource\n if (!this.source()) {\n // We might have been running a playlist, reset playlist's state.\n if (this.playlist && _lastPlaylist) {\n this.playlist(_lastPlaylist);\n }\n // Rebuild last source state without calling vjs's 'src' and 'poster'\n this.source(_lastSource, {\n skipRefresh: true\n });\n }\n } else {\n // Used by cloudinary-only components\n this.player.trigger('cldsourcechanged', {});\n\n // When source isn't cloudinary's - reset the plugin's state.\n this.dispose();\n }\n };\n _playerEvents = new _event_handler_registry__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.player);\n const constructorParams = (0,_utils_slicing__WEBPACK_IMPORTED_MODULE_3__.sliceAndUnsetProperties)(options, ...CONSTRUCTOR_PARAMS);\n (0,_utils_apply_with_props__WEBPACK_IMPORTED_MODULE_2__.applyWithProps)(this, constructorParams);\n this.on('sourcechanged', syncState);\n }\n currentSourceType() {\n return this.source().getType();\n }\n currentPublicId() {\n return this.source() && this.source().publicId();\n }\n currentPoster() {\n return this.source() && this.source().poster();\n }\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n options.chainTarget = options.chainTarget || this;\n this.cloudinary = new CloudinaryContext(this, options);\n}\n\n//# sourceURL=webpack:///./plugins/cloudinary/index.js?\n}");
265
265
 
266
266
  /***/ },
267
267
 
@@ -309,17 +309,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
309
309
 
310
310
  /***/ },
311
311
 
312
- /***/ "./plugins/cloudinary/models/video-source/video-source.const.js"
313
- /*!**********************************************************************!*\
314
- !*** ./plugins/cloudinary/models/video-source/video-source.const.js ***!
315
- \**********************************************************************/
316
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
317
-
318
- "use strict";
319
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ADAPTIVE_SOURCETYPES: () => (/* binding */ ADAPTIVE_SOURCETYPES),\n/* harmony export */ CONTAINER_MIME_TYPES: () => (/* binding */ CONTAINER_MIME_TYPES),\n/* harmony export */ DEFAULT_DPR: () => (/* binding */ DEFAULT_DPR),\n/* harmony export */ DEFAULT_POSTER_PARAMS: () => (/* binding */ DEFAULT_POSTER_PARAMS),\n/* harmony export */ DEFAULT_VIDEO_PARAMS: () => (/* binding */ DEFAULT_VIDEO_PARAMS),\n/* harmony export */ FORMAT_MAPPINGS: () => (/* binding */ FORMAT_MAPPINGS),\n/* harmony export */ RENDITIONS: () => (/* binding */ RENDITIONS),\n/* harmony export */ URL_PATTERN: () => (/* binding */ URL_PATTERN),\n/* harmony export */ VIDEO_SUFFIX_REMOVAL_PATTERN: () => (/* binding */ VIDEO_SUFFIX_REMOVAL_PATTERN)\n/* harmony export */ });\nconst DEFAULT_POSTER_PARAMS = {\n format: 'jpg',\n resource_type: 'video'\n};\nconst DEFAULT_VIDEO_PARAMS = {\n resource_type: 'video',\n type: 'upload',\n hdr: false,\n transformation: [],\n sourceTransformation: {},\n sourceTypes: ['auto'],\n recommendations: null,\n info: {},\n interactionAreas: {},\n chapters: {}\n};\nconst COMMON_VIDEO_EXTENSIONS = ['3g2', '3gp', 'avi', 'flv', 'm3u8', 'ts', 'm2ts', 'mts', 'mov', 'mkv', 'mp4', 'mpeg', 'mpd', 'mxf', 'ogv', 'webm', 'wmv']; // https://cloudinary.com/documentation/video_manipulation_and_delivery#supported_video_formats\n\nconst VIDEO_SUFFIX_REMOVAL_PATTERN = RegExp(`\\\\.(${COMMON_VIDEO_EXTENSIONS.join('|')})$$`);\n\n// eslint-disable-next-line no-control-regex\nconst URL_PATTERN = RegExp('https?:\\\\/\\\\/(www\\\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\\\.[a-zA-Z0-9()]{1,6}\\\\b([-a-zA-Z0-9()@:%_\\+.~#?&/=]*)');\nconst CONTAINER_MIME_TYPES = {\n hls: 'application/x-mpegURL',\n dash: 'application/dash+xml',\n // See: https://docs.videojs.com/utils_mimetypes.js.html\n opus: 'video/ogg',\n ogv: 'video/ogg',\n mp4: 'video/mp4',\n mov: 'video/mp4',\n m4v: 'video/mp4',\n mkv: 'video/x-matroska',\n m4a: 'audio/mp4',\n mp3: 'audio/mpeg',\n aac: 'audio/aac',\n caf: 'audio/x-caf',\n flac: 'audio/flac',\n oga: 'audio/ogg',\n wav: 'audio/wav',\n m3u8: 'application/x-mpegURL',\n mpd: 'application/dash+xml',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n gif: 'image/gif',\n png: 'image/png',\n svg: 'image/svg+xml',\n webp: 'image/webp'\n};\nconst ADAPTIVE_SOURCETYPES = ['hls', 'dash', 'mpd', 'm3u8'];\nconst FORMAT_MAPPINGS = {\n hls: 'm3u8',\n dash: 'mpd'\n};\n\n// Breakpoints constants\nconst DEFAULT_DPR = 2.0;\nconst RENDITIONS = [640, 848, 1280, 1920, 2560, 3840];\n\n//# sourceURL=webpack:///./plugins/cloudinary/models/video-source/video-source.const.js?\n}");
320
-
321
- /***/ },
322
-
323
312
  /***/ "./plugins/cloudinary/models/video-source/video-source.js"
324
313
  /*!****************************************************************!*\
325
314
  !*** ./plugins/cloudinary/models/video-source/video-source.js ***!
@@ -342,17 +331,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
342
331
 
343
332
  /***/ },
344
333
 
345
- /***/ "./plugins/cloudinary/url-helpers.js"
346
- /*!*******************************************!*\
347
- !*** ./plugins/cloudinary/url-helpers.js ***!
348
- \*******************************************/
349
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
350
-
351
- "use strict";
352
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCloudinaryUrlPrefix: () => (/* reexport safe */ _utils_cloudinary_url_prefix__WEBPACK_IMPORTED_MODULE_1__.getCloudinaryUrlPrefix),\n/* harmony export */ isRawUrl: () => (/* binding */ isRawUrl)\n/* harmony export */ });\n/* harmony import */ var _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./models/video-source/video-source.const */ \"./plugins/cloudinary/models/video-source/video-source.const.js\");\n/* harmony import */ var _utils_cloudinary_url_prefix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/cloudinary-url-prefix */ \"./utils/cloudinary-url-prefix.js\");\n\n\nconst isRawUrl = publicId => _models_video_source_video_source_const__WEBPACK_IMPORTED_MODULE_0__.URL_PATTERN.test(publicId);\n\n//# sourceURL=webpack:///./plugins/cloudinary/url-helpers.js?\n}");
353
-
354
- /***/ },
355
-
356
334
  /***/ "./plugins/colors/index.js"
357
335
  /*!*********************************!*\
358
336
  !*** ./plugins/colors/index.js ***!
@@ -393,7 +371,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
393
371
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
394
372
 
395
373
  "use strict";
396
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst contextMenuContent = player => {\n const isLooping = player.loop();\n const isPaused = player.paused();\n const isMuted = player.muted();\n const isFullscreen = player.isFullscreen();\n const aboutMenuItem = {\n class: 'player-version',\n label: 'Cloudinary Player v' + \"3.13.1-edge.0\"\n };\n if (!player.controls()) {\n return [aboutMenuItem];\n }\n return [{\n label: isLooping ? 'Unloop' : 'Loop',\n listener: () => {\n player.loop(!isLooping);\n }\n }, {\n label: isPaused ? 'Play' : 'Pause',\n listener: () => {\n if (isPaused) {\n player.play();\n } else {\n player.pause();\n }\n }\n }, {\n label: isMuted ? 'Unmute' : 'Mute',\n listener: () => {\n player.muted(!isMuted);\n }\n }, {\n label: isFullscreen ? 'Exit Fullscreen' : 'Fullscreen',\n listener: () => {\n if (isFullscreen) {\n player.exitFullscreen();\n } else {\n player.requestFullscreen();\n }\n }\n }, aboutMenuItem];\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (contextMenuContent);\n\n//# sourceURL=webpack:///./plugins/context-menu/contextMenuContent.js?\n}");
374
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst contextMenuContent = player => {\n const isLooping = player.loop();\n const isPaused = player.paused();\n const isMuted = player.muted();\n const isFullscreen = player.isFullscreen();\n const aboutMenuItem = {\n class: 'player-version',\n label: 'Cloudinary Player v' + \"3.13.1\"\n };\n if (!player.controls()) {\n return [aboutMenuItem];\n }\n return [{\n label: isLooping ? 'Unloop' : 'Loop',\n listener: () => {\n player.loop(!isLooping);\n }\n }, {\n label: isPaused ? 'Play' : 'Pause',\n listener: () => {\n if (isPaused) {\n player.play();\n } else {\n player.pause();\n }\n }\n }, {\n label: isMuted ? 'Unmute' : 'Mute',\n listener: () => {\n player.muted(!isMuted);\n }\n }, {\n label: isFullscreen ? 'Exit Fullscreen' : 'Fullscreen',\n listener: () => {\n if (isFullscreen) {\n player.exitFullscreen();\n } else {\n player.requestFullscreen();\n }\n }\n }, aboutMenuItem];\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (contextMenuContent);\n\n//# sourceURL=webpack:///./plugins/context-menu/contextMenuContent.js?\n}");
397
375
 
398
376
  /***/ },
399
377
 
@@ -716,17 +694,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
716
694
 
717
695
  /***/ },
718
696
 
719
- /***/ "./utils/object.js"
720
- /*!*************************!*\
721
- !*** ./utils/object.js ***!
722
- \*************************/
723
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
724
-
725
- "use strict";
726
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertKeysToSnakeCase: () => (/* binding */ convertKeysToSnakeCase)\n/* harmony export */ });\n/* harmony import */ var lodash_snakeCase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/snakeCase */ \"../node_modules/lodash/snakeCase.js\");\n/* harmony import */ var lodash_snakeCase__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_snakeCase__WEBPACK_IMPORTED_MODULE_0__);\n\nconst convertKeysToSnakeCase = obj => {\n let snakeCaseObj = {};\n for (const key of Object.keys(obj)) {\n const snakeCaseKey = lodash_snakeCase__WEBPACK_IMPORTED_MODULE_0___default()(key);\n snakeCaseObj[snakeCaseKey] = obj[key];\n }\n return snakeCaseObj;\n};\n\n//# sourceURL=webpack:///./utils/object.js?\n}");
727
-
728
- /***/ },
729
-
730
697
  /***/ "./utils/positioning.js"
731
698
  /*!******************************!*\
732
699
  !*** ./utils/positioning.js ***!
@@ -738,17 +705,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
738
705
 
739
706
  /***/ },
740
707
 
741
- /***/ "./utils/querystring.js"
742
- /*!******************************!*\
743
- !*** ./utils/querystring.js ***!
744
- \******************************/
745
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
746
-
747
- "use strict";
748
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ appendQueryParams: () => (/* binding */ appendQueryParams)\n/* harmony export */ });\nconst appendQueryParams = (url, params) => {\n if (!params || !Object.keys(params).length) {\n return url;\n }\n const urlObj = new URL(url);\n Object.entries(params).forEach(_ref => {\n let [key, value] = _ref;\n if (value != null) {\n urlObj.searchParams.append(key, value);\n }\n });\n return urlObj.href;\n};\n\n\n//# sourceURL=webpack:///./utils/querystring.js?\n}");
749
-
750
- /***/ },
751
-
752
708
  /***/ "./utils/setup-event-methods.js"
753
709
  /*!**************************************!*\
754
710
  !*** ./utils/setup-event-methods.js ***!
@@ -771,17 +727,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
771
727
 
772
728
  /***/ },
773
729
 
774
- /***/ "./utils/utf8Base64.js"
775
- /*!*****************************!*\
776
- !*** ./utils/utf8Base64.js ***!
777
- \*****************************/
778
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
779
-
780
- "use strict";
781
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ utf8ToBase64: () => (/* binding */ utf8ToBase64)\n/* harmony export */ });\nfunction utf8ToBase64(str) {\n const utf8Bytes = new TextEncoder().encode(str);\n const binaryStr = String.fromCharCode(...utf8Bytes);\n return btoa(binaryStr);\n}\n\n//# sourceURL=webpack:///./utils/utf8Base64.js?\n}");
782
-
783
- /***/ },
784
-
785
730
  /***/ "./utils/video-retry.js"
786
731
  /*!******************************!*\
787
732
  !*** ./utils/video-retry.js ***!
@@ -804,17 +749,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
804
749
 
805
750
  /***/ },
806
751
 
807
- /***/ "./video-player.const.js"
808
- /*!*******************************!*\
809
- !*** ./video-player.const.js ***!
810
- \*******************************/
811
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
812
-
813
- "use strict";
814
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ADS_IN_PLAYLIST: () => (/* binding */ ADS_IN_PLAYLIST),\n/* harmony export */ AUTO_PLAY_MODE: () => (/* binding */ AUTO_PLAY_MODE),\n/* harmony export */ CLOUDINARY_CONFIG_PARAM: () => (/* binding */ CLOUDINARY_CONFIG_PARAM),\n/* harmony export */ CROP_MODE: () => (/* binding */ CROP_MODE),\n/* harmony export */ FLOATING_TO: () => (/* binding */ FLOATING_TO),\n/* harmony export */ FLUID_CLASS_NAME: () => (/* binding */ FLUID_CLASS_NAME),\n/* harmony export */ PLAYER_PARAMS: () => (/* binding */ PLAYER_PARAMS),\n/* harmony export */ PRELOAD: () => (/* binding */ PRELOAD),\n/* harmony export */ SOURCE_PARAMS: () => (/* binding */ SOURCE_PARAMS)\n/* harmony export */ });\n// Parameters that can be passed to source configuration (inherited by source method)\nconst SOURCE_PARAMS = ['adaptiveStreaming', 'allowUsageReport', 'aspectRatio', 'autoShowRecommendations', 'breakpoints', 'chapters', 'cropMode', 'cropPadColor', 'cloudinaryConfig', 'description', 'download', 'hdr', 'info', 'interactionAreas', 'maxDpr', 'poster', 'posterOptions', 'publicId', 'rawTransformation', 'recommendations', 'resourceType', 'shoppable', 'source', 'sourceTransformation', 'sourceTypes', 'textTracks', 'title', 'transformation', 'type', 'visualSearch', 'withCredentials', 'videoSources'];\n\n// All parameters that can be passed to player constructor\nconst PLAYER_PARAMS = SOURCE_PARAMS.concat(['_internalAnalyticsMetadata', 'ads', 'aiHighlightsGraph', 'analytics', 'autoplayMode', 'chaptersButton', 'cloudinaryAnalytics', 'colors', 'debug', 'fetchErrorUsingGet', 'floatingWhenNotVisible', 'fluid', 'fontFace', 'hideContextMenu', 'ima', 'pictureInPictureToggle', 'playedEventPercents', 'playedEventTimes', 'playlistWidget', 'profile', 'qualitySelector', 'queryParams', 'seekThumbnails', 'showJumpControls', 'videoConfig', 'schedule']);\n\n// We support both camelCase and snake_case for cloudinary SDK params\nconst CLOUDINARY_CONFIG_PARAM = ['api_secret', 'auth_token', 'cdn_subdomain', 'cloud_name', 'cname', 'private_cdn', 'secure', 'secure_cdn_subdomain', 'secure_distribution', 'shorten', 'sign_url', 'url_suffix', 'use_root_path'];\nconst FLUID_CLASS_NAME = 'cld-fluid';\nconst AUTO_PLAY_MODE = {\n ALWAYS: 'always',\n ON_SCROLL: 'on-scroll',\n NEVER: 'never'\n};\nconst FLOATING_TO = {\n LEFT: 'left',\n RIGHT: 'right',\n NONE: 'none'\n};\nconst ADS_IN_PLAYLIST = {\n FIRST_VIDEO: 'first-video',\n EVERY_VIDEO: 'every-video'\n};\nconst PRELOAD = {\n AUTO: 'auto',\n METADATA: 'metadata',\n NONE: 'none'\n};\nconst CROP_MODE = {\n FILL: 'fill',\n PAD: 'pad',\n SMART: 'smart'\n};\n\n//# sourceURL=webpack:///./video-player.const.js?\n}");
815
-
816
- /***/ },
817
-
818
752
  /***/ "./video-player.js"
819
753
  /*!*************************!*\
820
754
  !*** ./video-player.js ***!
@@ -822,7 +756,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
822
756
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
823
757
 
824
758
  "use strict";
825
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPlayerWithConfig: () => (/* binding */ createPlayerWithConfig),\n/* harmony export */ createVideoPlayer: () => (/* binding */ createVideoPlayer),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ \"../node_modules/lodash/isEmpty.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/get */ \"../node_modules/lodash/get.js\");\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/pick */ \"../node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/isFunction */ \"../node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/isObject */ \"../node_modules/lodash/isObject.js\");\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/isString */ \"../node_modules/lodash/isString.js\");\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_isString__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components */ \"./components/index.js\");\n/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./plugins */ \"./plugins/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils */ \"./utils/index.js\");\n/* harmony import */ var _config_defaults__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./config/defaults */ \"./config/defaults.js\");\n/* harmony import */ var _utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/setup-event-methods */ \"./utils/setup-event-methods.js\");\n/* harmony import */ var _extended_events__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./extended-events */ \"./extended-events.js\");\n/* harmony import */ var _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./plugins/cloudinary/models/video-source/video-source */ \"./plugins/cloudinary/models/video-source/video-source.js\");\n/* harmony import */ var _video_player_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./video-player.utils */ \"./video-player.utils.js\");\n/* harmony import */ var _video_player_const__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./video-player.const */ \"./video-player.const.js\");\n/* harmony import */ var _validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./validators/validators-functions */ \"./validators/validators-functions.js\");\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/consts */ \"./utils/consts.js\");\n/* harmony import */ var _utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/get-analytics-player-options */ \"./utils/get-analytics-player-options.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_video_retry__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/video-retry */ \"./utils/video-retry.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst INTERNAL_ANALYTICS_URL = 'https://analytics-api-s.cloudinary.com';\nconst RETRY_DEFAULT_TIMEOUT = 5 * 1000;\n\n// Register all plugins\nObject.keys(_plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"]).forEach(key => {\n video_js__WEBPACK_IMPORTED_MODULE_0___default().registerPlugin(key, _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"][key]);\n});\n(0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.overrideDefaultVideojsComponents)();\nclass VideoPlayer {\n static all(selector) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const nodeList = document.querySelectorAll(selector);\n return [...nodeList].map(node => new VideoPlayer(node, ...args));\n }\n get playerOptions() {\n return this.options.playerOptions;\n }\n constructor(elem, options, ready) {\n this.videoElement = elem;\n this.options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.splitOptions)(options);\n this._videojsOptions = this.options.videojsOptions;\n\n // Make sure to add 'video-js' class before creating videojs instance\n this.videoElement.classList.add('video-js');\n\n // Handle WebFont loading\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].fontFace(this.videoElement, this.playerOptions.fontFace);\n\n // Handle play button options\n if (this._videojsOptions.bigPlayButton === 'init') {\n this.videoElement.classList.add('vjs-big-play-button-init-only');\n this._videojsOptions.bigPlayButton = true;\n }\n this.videojs = video_js__WEBPACK_IMPORTED_MODULE_0___default()(this.videoElement, this._videojsOptions);\n\n // Setup event methods (on, one, off, trigger)\n (0,_utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this, this.videojs);\n this._isPlayerConfigValid = true;\n if (this.playerOptions.debug) {\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidPlayerConfig)(this.options).then(valid => {\n if (!valid) {\n this._isPlayerConfigValid = false;\n this.videojs.error('invalid player configuration');\n return;\n }\n });\n }\n if (this._videojsOptions.muted) {\n this.videojs.volume(0.4);\n }\n if (this.playerOptions.fluid) {\n this.fluid(this.playerOptions.fluid);\n }\n this._setCssClasses();\n this._initPlugins();\n this._initJumpButtons();\n this._initPictureInPicture();\n this._initBigPauseButton();\n this._setVideoJsListeners(ready);\n }\n getVPInstanceId() {\n if (!this.vpInstanceId) {\n this.vpInstanceId = (0,uuid__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }\n return this.vpInstanceId;\n }\n _sendInternalAnalytics() {\n let additionalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const options = Object.assign({}, this.playerOptions, this.options.videojsOptions, additionalOptions);\n if (!options.sourceOptions?.allowUsageReport) {\n return;\n }\n try {\n const internalAnalyticsMetadata = options._internalAnalyticsMetadata ?? {};\n const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__.getAnalyticsFromPlayerOptions)(options);\n const analyticsParams = new URLSearchParams(analyticsData).toString();\n const baseParams = new URLSearchParams({\n vpVersion: \"3.13.1-edge.0\",\n vpInstanceId: this.getVPInstanceId(),\n cloudName: options.cloudinary.cloud_name,\n ...internalAnalyticsMetadata\n }).toString();\n fetch(`${INTERNAL_ANALYTICS_URL}/video_player_source?${analyticsParams}&${baseParams}`);\n } catch (err) {\n console.warn(err);\n }\n }\n _resetReTryVideoState = () => {\n this.reTryVideoStateRetriesCount = 0;\n this.videojs.clearTimeout(this.reTryVideoStateTimeoutId);\n };\n _handleRefresh = () => {\n this.videojs.error(null);\n const src = this.currentPublicId() || this.currentSourceUrl();\n if (src) {\n this.source(src, this.playerOptions.sourceOptions || {});\n }\n };\n _setVideoJsListeners(ready) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.ERROR, () => {\n const error = this.videojs.error();\n if (error) {\n const type = this._isPlayerConfigValid && this.videojs.cloudinary.currentSourceType();\n\n /*\n error codes :\n 3 - media playback was aborted due to a corruption problem\n 4 - media error, media source not supported\n */\n const isCorrupted = error.code === 3 && (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_SAFARI;\n if ([isCorrupted, error.code === 4].includes(true) && [_utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO, _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.VIDEO].includes(type)) {\n if (this.isLiveStream) {\n this.videojs.error({\n code: _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.ERROR_CODE.CUSTOM,\n message: 'Live Stream not started'\n });\n this.reloadVideoUntilAvailable();\n } else {\n this.videojs.error(null);\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n } else {\n this._resetReTryVideoState();\n }\n }\n });\n this.videojs.tech_.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.RETRY_PLAYLIST, () => {\n const mediaRequestsErrored = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(this.videojs, 'hls.stats.mediaRequestsErrored', 0);\n if (mediaRequestsErrored > 0) {\n this._resetReTryVideoState();\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n });\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PLAY, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CAN_PLAY_THROUGH, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this._onSourceChange.bind(this));\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.REFRESH, this._handleRefresh.bind(this));\n this.videojs.ready(() => {\n this._onReady();\n this._applyVolumeBarAriaLiveFix();\n if (ready) {\n ready(this);\n }\n });\n }\n _initPlugins() {\n this._initIma();\n this._initAutoplay();\n this._initContextMenu();\n this._initPerSrcBehaviors();\n this._initCloudinary();\n this._initAnalytics();\n this._initCloudinaryAnalytics();\n this._initFloatingPlayer();\n this._initVisualSearch();\n this._initShare();\n this._initColors();\n this._initTextTracks();\n this._initHighlightsGraph();\n this._initSeekThumbs();\n this._initChapters();\n this._initInteractionAreas();\n this._initSourceSwitcher();\n }\n _isFullScreen() {\n return this.videojs.player().isFullscreen();\n }\n _initIma() {\n if (this.playerOptions.ads && Object.keys(this.playerOptions.ads).length !== 0) {\n _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"].imaPlugin(this.videojs, this.playerOptions);\n }\n }\n setTextTracks(conf) {\n this.textTracksManager.removeAllTextTracks();\n if (conf) {\n const kinds = Object.keys(conf);\n const allTracks = [];\n for (const kind of kinds) {\n if (kind !== 'options') {\n const tracks = Array.isArray(conf[kind]) ? conf[kind] : [conf[kind]];\n for (const track of tracks) {\n allTracks.push({\n ...track,\n kind: kind,\n label: track.label,\n srclang: track.language,\n default: !!track.default,\n src: track.url\n });\n }\n }\n }\n this.textTracksManager.addTextTracks(allTracks);\n if (conf.options && this.videojs.styledTextTracks) {\n this.videojs.styledTextTracks(conf.options);\n }\n }\n }\n _initSeekThumbs() {\n if (this.playerOptions.seekThumbnails) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref) => {\n let {\n source\n } = _ref;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n source.resourceConfig().type === 'live' ||\n // Is live stream\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) ||\n // Is a raw url\n this.videojs.activePlugins_ && this.videojs.activePlugins_.vr // It's a VR (i.e. 360)\n ) {\n return;\n }\n const publicId = source.publicId();\n const transformation = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.omitVideoOnlyTransformations)(Object.assign({}, source.transformation()));\n\n // fl_sprite must be in a separate URL component when transformation has params\n const spriteTx = [...(Array.isArray(transformation) ? transformation : [transformation]), {\n flags: ['sprite']\n }];\n const vttUrl = source.config().url(`${publicId}.vtt`, {\n transformation: spriteTx\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const vttSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(vttUrl, source.queryParams());\n\n // vttThumbnails must be called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.vttThumbnails) ? this.videojs.vttThumbnails({\n src: vttSrc\n }) : this.videojs.vttThumbnails.src(vttSrc);\n });\n }\n }\n _initHighlightsGraph() {\n if (this.playerOptions.aiHighlightsGraph) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref2) => {\n let {\n source\n } = _ref2;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) // Is a raw url\n ) {\n return;\n }\n const publicId = source.publicId();\n\n // Keep video-length related transformations and remove the rest\n const inputTransformations = lodash_pick__WEBPACK_IMPORTED_MODULE_4___default()(source.transformation(), ['start_offset', 'end_offset', 'duration']);\n const transformation = Object.assign({}, inputTransformations);\n transformation.effect = 'preview';\n transformation.flags = transformation.flags || [];\n transformation.flags.push('getinfo');\n const aiHighlightsGraphUrl = source.config().url(`${publicId}`, {\n transformation\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const aiHighlightsGraphSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(aiHighlightsGraphUrl, source.queryParams());\n\n // Plugin is called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.aiHighlightsGraph) ? this.videojs.aiHighlightsGraph({\n src: aiHighlightsGraphSrc\n }) : this.videojs.aiHighlightsGraph.src(aiHighlightsGraphSrc);\n });\n }\n }\n _initChapters() {\n if (!this.playerOptions.chaptersButton && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('chaptersButton');\n }\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref3) => {\n let {\n source\n } = _ref3;\n if ((!lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(source?._chapters) || source?._chapters === true) && this.videojs.chapters) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.chapters) ? this.videojs.chapters(source._chapters) : this.videojs.chapters.src(source._chapters);\n } else if (this.videojs.chapters?.resetPlugin) {\n this.videojs.chapters.resetPlugin();\n }\n });\n }\n _initInteractionAreas() {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n if (this.options.videojsOptions.interactionDisplay && this.videojs.interactionAreas) {\n this.videojs.interactionAreas(this, this.playerOptions, this._videojsOptions);\n }\n });\n }\n _initVisualSearch() {\n // Listen for source changes to apply visual search based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref4) => {\n let {\n source\n } = _ref4;\n if (source?._visualSearch && this.videojs.visualSearch) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.visualSearch) ? this.videojs.visualSearch(source._visualSearch) : this.videojs.visualSearch.createSearchUI(source._visualSearch);\n } else if (!source?._visualSearch && this.videojs.visualSearch?.clearUI) {\n this.videojs.visualSearch.clearUI();\n }\n });\n }\n _initShare() {\n // Listen for source changes to apply Share plugin based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref5) => {\n let {\n source\n } = _ref5;\n if (!this.videojs.share) {\n return;\n }\n\n // First time: initialise plugin if necessary\n if (source?._download && lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n this.videojs.share({\n download: true\n });\n }\n if (!lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n // Plugin already initialised – update UI accordingly\n if (source?._download) {\n this.videojs.share.addDownloadButton?.();\n } else {\n this.videojs.share.removeDownloadButton?.();\n }\n }\n });\n }\n _initColors() {\n if (this.playerOptions.colors) {\n this.videojs.colors({\n colors: this.playerOptions.colors\n });\n }\n }\n _initTextTracks() {\n this.textTracksManager = this.videojs.textTracksManager();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref6) => {\n let {\n source\n } = _ref6;\n if (source?._textTracks) {\n this.setTextTracks(source._textTracks);\n }\n });\n }\n _initPerSrcBehaviors() {\n if (this.videojs.perSourceBehaviors) {\n this.videojs.perSourceBehaviors();\n }\n }\n _initJumpButtons() {\n if (!this.playerOptions.showJumpControls && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('JumpForwardButton');\n this.videojs.controlBar.removeChild('JumpBackButton');\n }\n }\n _initPictureInPicture() {\n if (!this.playerOptions.pictureInPictureToggle && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('pictureInPictureToggle');\n }\n }\n _initBigPauseButton() {\n if ((video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_IOS || (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_ANDROID) {\n this.videojs.addChild('BigPauseButton');\n }\n }\n _initCloudinary() {\n const cloudinaryConfig = this.playerOptions.cloudinary;\n cloudinaryConfig.chainTarget = this;\n if (cloudinaryConfig.secure !== false) {\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.extendCloudinaryConfig)(cloudinaryConfig, {\n secure: true\n });\n }\n\n // Merge cloudinary config with source config for the plugin\n const cloudinaryOptions = {\n cloudinaryConfig,\n ...this.playerOptions.sourceOptions\n };\n this.videojs.cloudinary(cloudinaryOptions);\n }\n _initAnalytics() {\n const analyticsOpts = this.playerOptions.analytics;\n if (!window.gtag && analyticsOpts) {\n console.error('Google Analytics script (gtag) is missing.');\n return;\n }\n if (analyticsOpts) {\n const opts = typeof analyticsOpts === 'object' ? analyticsOpts : {};\n this.videojs.analytics(opts);\n }\n }\n _initCloudinaryAnalytics() {\n const cloudinaryAnalyticsOptionEnabled = !!this.playerOptions.cloudinaryAnalytics;\n if (cloudinaryAnalyticsOptionEnabled) {\n this.videojs.videoElement = this.videoElement;\n const options = lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default()(this.playerOptions.cloudinaryAnalytics) ? this.playerOptions.cloudinaryAnalytics : {};\n this.videojs.cloudinaryAnalytics(options);\n }\n }\n _initSourceSwitcher() {\n this.sourceSwitcher = this.videojs.sourceSwitcher();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref7) => {\n let {\n source\n } = _ref7;\n const videoSources = source.videoSources?.();\n const isSourcesListAvailable = Array.isArray(videoSources) ? !!videoSources.length : false;\n if (this.videojs.controlBar) {\n const method = isSourcesListAvailable ? 'show' : 'hide';\n const element = this.videojs.controlBar.getChild('sourceSwitcherButton');\n if (element && typeof element?.[method] === 'function') {\n element[method]();\n }\n }\n if (isSourcesListAvailable) {\n const selectedIndex = videoSources.findIndex(_ref8 => {\n let {\n publicId\n } = _ref8;\n return publicId === source.publicId();\n });\n this.sourceSwitcher.reInit({\n sources: videoSources,\n selectedIndex: selectedIndex === -1 ? 0 : selectedIndex,\n onSourceChange: _ref9 => {\n let {\n publicId,\n ...newSourceOptions\n } = _ref9;\n return this.source(publicId, {\n ...newSourceOptions,\n videoSources\n });\n }\n });\n }\n });\n if (Array.isArray(this.playerOptions.sourceOptions?.videoSources) && this.playerOptions.sourceOptions?.videoSources.length) {\n // eslint-disable-next-line no-unused-vars\n const {\n publicId,\n label,\n ...videoSourceData\n } = this.playerOptions.sourceOptions.videoSources[0];\n this.source(publicId, {\n ...videoSourceData,\n videoSources: this.playerOptions.sourceOptions.videoSources\n });\n }\n }\n reTryVideoStateUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reTryVideoStateRetriesCount !== 'number') {\n this.reTryVideoStateRetriesCount = 0;\n }\n if (!(0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.isVideoInReadyState)(this.videojs.readyState())) {\n if (this.reTryVideoStateRetriesCount < maxNumberOfCalls) {\n this.reTryVideoStateRetriesCount++;\n this.reTryVideoStateTimeoutId = this.videojs.setTimeout(() => this.reTryVideoStateUntilAvailable(maxNumberOfCalls, timeout), timeout);\n } else {\n let e = new Error('Video is not ready please try later');\n this.videojs.trigger('error', e);\n }\n } else {\n this.reTryVideoStateRetriesCount = 0;\n }\n }\n _resetReloadVideo = () => {\n this.reloadVideoRetriesCount = 0;\n this.videojs.clearTimeout(this.reloadVideoTimeoutId);\n };\n reloadVideoUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reloadVideoRetriesCount !== 'number') {\n this.reloadVideoRetriesCount = 0;\n }\n if (this.reloadVideoRetriesCount < maxNumberOfCalls) {\n this.reloadVideoRetriesCount++;\n this.reloadVideoTimeoutId = this.videojs.setTimeout(() => {\n const videoUrl = this.currentSourceUrl();\n (0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.checkIfVideoIsAvailable)(videoUrl, this.isLiveStream ? 'live' : 'default').then(() => this.source(videoUrl)).catch(() => this.reloadVideoUntilAvailable(maxNumberOfCalls, timeout));\n }, timeout);\n } else {\n this.videojs.trigger('error', new Error('Sorry, we could not load your video'));\n }\n }\n _initAutoplay() {\n const autoplayMode = this.playerOptions.autoplayMode;\n if (autoplayMode === 'on-scroll') {\n this.videojs.autoplayOnScroll();\n }\n }\n _initContextMenu() {\n if (!this.playerOptions.hideContextMenu) {\n this.videojs.contextMenu(_config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"].contextMenu);\n }\n }\n _initFloatingPlayer() {\n if (this.playerOptions.floatingWhenNotVisible !== _video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLOATING_TO.NONE) {\n this.videojs.floatingPlayer({\n floatTo: this.playerOptions.floatingWhenNotVisible\n });\n }\n }\n _setCssClasses() {\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].CLASS_PREFIX);\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].playerClassPrefix(this.videojs));\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs));\n }\n _onReady() {\n this._setExtendedEvents();\n\n // Load first video (mainly to support video tag 'source' and 'public-id' attributes)\n // Source parameters are set to playerOptions.sourceOptions\n const source = this.playerOptions.sourceOptions.source || this.playerOptions.sourceOptions.publicId;\n if (source) {\n const sourceOptions = Object.assign({}, this.playerOptions.sourceOptions);\n this.source(source, sourceOptions);\n }\n }\n\n /**\n * Temporary fix: remove aria-live from VolumeBar to avoid NVDA repeated announcements.\n * TODO: Remove when Video.js includes the upstream fix (nvaccess/nvda#7996).\n */\n _applyVolumeBarAriaLiveFix() {\n const volumeBar = this.videojs.$('.vjs-volume-bar');\n if (volumeBar) {\n volumeBar.removeAttribute('aria-live');\n }\n }\n _onSourceChange(e, _ref0) {\n let {\n source,\n sourceOptions\n } = _ref0;\n this._sendInternalAnalytics({\n ...(sourceOptions && {\n sourceOptions\n })\n });\n this.isLiveStream = source?.resourceConfig()?.type === 'live';\n }\n _setExtendedEvents() {\n const events = [];\n\n // Add user-configured events; ExtendedEvents will merge with defaults\n if (this.playerOptions.playedEventPercents) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PERCENTS_PLAYED,\n percents: this.playerOptions.playedEventPercents\n });\n }\n if (this.playerOptions.playedEventTimes) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.TIME_PLAYED,\n times: this.playerOptions.playedEventTimes\n });\n }\n const extendedEvents = new _extended_events__WEBPACK_IMPORTED_MODULE_13__[\"default\"](this.videojs, {\n events\n });\n\n // Forward all extended events to the main player for developer access\n Object.keys(extendedEvents.events).forEach(_event => {\n extendedEvents.on(_event, (event, data) => {\n this.videojs.trigger({\n type: _event,\n eventData: data\n });\n });\n });\n }\n cloudinaryConfig(config) {\n return this.videojs.cloudinary.cloudinaryConfig(config);\n }\n currentPublicId() {\n return this.videojs.cloudinary.currentPublicId();\n }\n currentSourceUrl() {\n return this.videojs.currentSource().src;\n }\n currentPoster() {\n return this.videojs.cloudinary.currentPoster();\n }\n source(publicId) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n ({\n publicId,\n options\n } = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.normalizeOptions)(publicId, options));\n if (!this._isPlayerConfigValid) {\n return;\n }\n if (this.playerOptions.debug) {\n options.debug = true;\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidSourceConfig)(options).then(valid => {\n if (!valid) {\n this.videojs.error('invalid source configuration');\n }\n });\n }\n if (publicId instanceof _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__[\"default\"]) {\n return this.videojs.cloudinary.source(publicId, options);\n }\n\n // Inherit source parameters from player options (source options take precedence)\n const inherited = this.playerOptions.sourceOptions || {};\n options = {\n ...inherited,\n ...options\n };\n if (options.shoppable && this.videojs.shoppable) {\n this.videojs.shoppable(this.videojs, options);\n }\n this._resetReloadVideo();\n this._resetReTryVideoState();\n const maxTries = this.videojs.options_.maxTries || 3;\n const videoReadyTimeout = this.videojs.options_.videoTimeout || 55000;\n this.reTryVideoStateUntilAvailable(maxTries, videoReadyTimeout);\n return this.videojs.cloudinary.source(publicId, options);\n }\n posterOptions(options) {\n return this.videojs.cloudinary.posterOptions(options);\n }\n skin(name) {\n if (name !== undefined && lodash_isString__WEBPACK_IMPORTED_MODULE_7___default()(name)) {\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, name);\n }\n return _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs);\n }\n playlist(sources) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlist: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(sources, options);\n });\n return this.videojs.cloudinary.playlist ? this.videojs.cloudinary.playlist(sources, options) : this;\n }\n playlistByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlistByTag: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n return new Promise(resolve => {\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(await this.sourcesByTag(tag, options), options);\n resolve(this);\n });\n });\n }\n sourcesByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.videojs.cloudinary.sourcesByTag(tag, options);\n }\n fluid(bool) {\n if (bool === undefined) {\n return this.videojs.fluid();\n }\n if (bool) {\n this.videojs.addClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n } else {\n this.videojs.removeClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n }\n this.videojs.fluid(bool);\n this.videojs.trigger(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.FLUID, bool);\n return this;\n }\n play() {\n this.playWasCalled = true;\n this.videojs.play();\n return this;\n }\n stop() {\n this.pause();\n this.currentTime(0);\n return this;\n }\n playPrevious() {\n this.playlist().playPrevious();\n return this;\n }\n playNext() {\n this.playlist().playNext();\n return this;\n }\n transformation(trans) {\n return this.videojs.cloudinary.transformation(trans);\n }\n sourceTypes(types) {\n return this.videojs.cloudinary.sourceTypes(types);\n }\n sourceTransformation(trans) {\n return this.videojs.cloudinary.sourceTransformation(trans);\n }\n autoShowRecommendations(autoShow) {\n return this.videojs.cloudinary.autoShowRecommendations(autoShow);\n }\n duration() {\n return this.videojs.duration();\n }\n height(dimension) {\n if (!dimension) {\n return this.videojs.height();\n }\n this.videojs.height(dimension);\n return this;\n }\n width(dimension) {\n if (!dimension) {\n return this.videojs.width();\n }\n this.videojs.width(dimension);\n return this;\n }\n volume(volume) {\n if (!volume) {\n return this.videojs.volume();\n }\n this.videojs.volume(volume);\n return this;\n }\n mute() {\n if (!this.isMuted()) {\n this.videojs.muted(true);\n }\n return this;\n }\n unmute() {\n if (this.isMuted()) {\n this.videojs.muted(false);\n }\n return this;\n }\n isMuted() {\n return this.videojs.muted();\n }\n pause() {\n this.videojs.pause();\n return this;\n }\n currentTime(offsetSeconds) {\n if (!offsetSeconds && offsetSeconds !== 0) {\n return this.videojs.currentTime();\n }\n this.videojs.currentTime(offsetSeconds);\n return this;\n }\n maximize() {\n if (!this.isMaximized()) {\n this.videojs.requestFullscreen();\n }\n return this;\n }\n exitMaximize() {\n if (this.isMaximized()) {\n this.videojs.exitFullscreen();\n }\n return this;\n }\n isMaximized() {\n return this.videojs.isFullscreen();\n }\n dispose() {\n this.videojs.dispose();\n }\n controls(bool) {\n if (bool === undefined) {\n return this.videojs.controls();\n }\n this.videojs.controls(bool);\n return this;\n }\n ima() {\n return {\n playAd: this.videojs.ima.playAd\n };\n }\n loop(bool) {\n if (bool === undefined) {\n return this.videojs.loop();\n }\n this.videojs.loop(bool);\n return this;\n }\n el() {\n return this.videojs.el();\n }\n}\nconst mergeDefaults = options => video_js__WEBPACK_IMPORTED_MODULE_0___default().obj.merge({}, _config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"], options);\nconst getConfig = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const videoElement = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.getResolveVideoElement)(elem);\n const options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.extractOptions)(videoElement, playerOptions);\n return {\n videoElement,\n options\n };\n};\nconst createVideoPlayer = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let ready = arguments.length > 2 ? arguments[2] : undefined;\n const {\n videoElement,\n options\n } = getConfig(elem, playerOptions);\n if (options.profile) {\n console.warn('Profile option requires async initialization. Use cloudinary.player() instead of cloudinary.videoPlayer()');\n }\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n\n/**\n * Create player with pre-merged config (skips fetch).\n * Used by player() when config was already fetched for schedule check.\n */\nconst createPlayerWithConfig = (elem, mergedOptions, ready) => {\n const {\n videoElement,\n options\n } = getConfig(elem, mergedOptions);\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoPlayer);\n\n//# sourceURL=webpack:///./video-player.js?\n}");
759
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPlayerWithConfig: () => (/* binding */ createPlayerWithConfig),\n/* harmony export */ createVideoPlayer: () => (/* binding */ createVideoPlayer),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ \"../node_modules/lodash/isEmpty.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/get */ \"../node_modules/lodash/get.js\");\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/pick */ \"../node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/isFunction */ \"../node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/isObject */ \"../node_modules/lodash/isObject.js\");\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/isString */ \"../node_modules/lodash/isString.js\");\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_isString__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components */ \"./components/index.js\");\n/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./plugins */ \"./plugins/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils */ \"./utils/index.js\");\n/* harmony import */ var _config_defaults__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./config/defaults */ \"./config/defaults.js\");\n/* harmony import */ var _utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/setup-event-methods */ \"./utils/setup-event-methods.js\");\n/* harmony import */ var _extended_events__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./extended-events */ \"./extended-events.js\");\n/* harmony import */ var _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./plugins/cloudinary/models/video-source/video-source */ \"./plugins/cloudinary/models/video-source/video-source.js\");\n/* harmony import */ var _video_player_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./video-player.utils */ \"./video-player.utils.js\");\n/* harmony import */ var _video_player_const__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./video-player.const */ \"./video-player.const.js\");\n/* harmony import */ var _validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./validators/validators-functions */ \"./validators/validators-functions.js\");\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/consts */ \"./utils/consts.js\");\n/* harmony import */ var _utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/get-analytics-player-options */ \"./utils/get-analytics-player-options.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_video_retry__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/video-retry */ \"./utils/video-retry.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst INTERNAL_ANALYTICS_URL = 'https://analytics-api-s.cloudinary.com';\nconst RETRY_DEFAULT_TIMEOUT = 5 * 1000;\n\n// Register all plugins\nObject.keys(_plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"]).forEach(key => {\n video_js__WEBPACK_IMPORTED_MODULE_0___default().registerPlugin(key, _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"][key]);\n});\n(0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.overrideDefaultVideojsComponents)();\nclass VideoPlayer {\n static all(selector) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const nodeList = document.querySelectorAll(selector);\n return [...nodeList].map(node => new VideoPlayer(node, ...args));\n }\n get playerOptions() {\n return this.options.playerOptions;\n }\n constructor(elem, options, ready) {\n this.videoElement = elem;\n this.options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.splitOptions)(options);\n this._videojsOptions = this.options.videojsOptions;\n\n // Make sure to add 'video-js' class before creating videojs instance\n this.videoElement.classList.add('video-js');\n\n // Handle WebFont loading\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].fontFace(this.videoElement, this.playerOptions.fontFace);\n\n // Handle play button options\n if (this._videojsOptions.bigPlayButton === 'init') {\n this.videoElement.classList.add('vjs-big-play-button-init-only');\n this._videojsOptions.bigPlayButton = true;\n }\n this.videojs = video_js__WEBPACK_IMPORTED_MODULE_0___default()(this.videoElement, this._videojsOptions);\n\n // Setup event methods (on, one, off, trigger)\n (0,_utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this, this.videojs);\n this._isPlayerConfigValid = true;\n if (this.playerOptions.debug) {\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidPlayerConfig)(this.options).then(valid => {\n if (!valid) {\n this._isPlayerConfigValid = false;\n this.videojs.error('invalid player configuration');\n return;\n }\n });\n }\n if (this._videojsOptions.muted) {\n this.videojs.volume(0.4);\n }\n if (this.playerOptions.fluid) {\n this.fluid(this.playerOptions.fluid);\n }\n this._setCssClasses();\n this._initPlugins();\n this._initJumpButtons();\n this._initPictureInPicture();\n this._initBigPauseButton();\n this._setVideoJsListeners(ready);\n }\n getVPInstanceId() {\n if (!this.vpInstanceId) {\n this.vpInstanceId = (0,uuid__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }\n return this.vpInstanceId;\n }\n _sendInternalAnalytics() {\n let additionalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const options = Object.assign({}, this.playerOptions, this.options.videojsOptions, additionalOptions);\n if (!options.sourceOptions?.allowUsageReport) {\n return;\n }\n try {\n const internalAnalyticsMetadata = options._internalAnalyticsMetadata ?? {};\n const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__.getAnalyticsFromPlayerOptions)(options);\n const analyticsParams = new URLSearchParams(analyticsData).toString();\n const baseParams = new URLSearchParams({\n vpVersion: \"3.13.1\",\n vpInstanceId: this.getVPInstanceId(),\n cloudName: options.cloudinary.cloud_name,\n ...internalAnalyticsMetadata\n }).toString();\n fetch(`${INTERNAL_ANALYTICS_URL}/video_player_source?${analyticsParams}&${baseParams}`);\n } catch (err) {\n console.warn(err);\n }\n }\n _resetReTryVideoState = () => {\n this.reTryVideoStateRetriesCount = 0;\n this.videojs.clearTimeout(this.reTryVideoStateTimeoutId);\n };\n _handleRefresh = () => {\n this.videojs.error(null);\n const src = this.currentPublicId() || this.currentSourceUrl();\n if (src) {\n this.source(src, this.playerOptions.sourceOptions || {});\n }\n };\n _setVideoJsListeners(ready) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.ERROR, () => {\n const error = this.videojs.error();\n if (error) {\n const type = this._isPlayerConfigValid && this.videojs.cloudinary.currentSourceType();\n\n /*\n error codes :\n 3 - media playback was aborted due to a corruption problem\n 4 - media error, media source not supported\n */\n const isCorrupted = error.code === 3 && (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_SAFARI;\n if ([isCorrupted, error.code === 4].includes(true) && [_utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO, _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.VIDEO].includes(type)) {\n if (this.isLiveStream) {\n this.videojs.error({\n code: _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.ERROR_CODE.CUSTOM,\n message: 'Live Stream not started'\n });\n this.reloadVideoUntilAvailable();\n } else {\n this.videojs.error(null);\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n } else {\n this._resetReTryVideoState();\n }\n }\n });\n this.videojs.tech_.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.RETRY_PLAYLIST, () => {\n const mediaRequestsErrored = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(this.videojs, 'hls.stats.mediaRequestsErrored', 0);\n if (mediaRequestsErrored > 0) {\n this._resetReTryVideoState();\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n });\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PLAY, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CAN_PLAY_THROUGH, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this._onSourceChange.bind(this));\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.REFRESH, this._handleRefresh.bind(this));\n this.videojs.ready(() => {\n this._onReady();\n this._applyVolumeBarAriaLiveFix();\n if (ready) {\n ready(this);\n }\n });\n }\n _initPlugins() {\n this._initIma();\n this._initAutoplay();\n this._initContextMenu();\n this._initPerSrcBehaviors();\n this._initCloudinary();\n this._initAnalytics();\n this._initCloudinaryAnalytics();\n this._initFloatingPlayer();\n this._initVisualSearch();\n this._initShare();\n this._initColors();\n this._initTextTracks();\n this._initHighlightsGraph();\n this._initSeekThumbs();\n this._initChapters();\n this._initInteractionAreas();\n this._initSourceSwitcher();\n }\n _isFullScreen() {\n return this.videojs.player().isFullscreen();\n }\n _initIma() {\n if (this.playerOptions.ads && Object.keys(this.playerOptions.ads).length !== 0) {\n _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"].imaPlugin(this.videojs, this.playerOptions);\n }\n }\n setTextTracks(conf) {\n this.textTracksManager.removeAllTextTracks();\n if (conf) {\n const kinds = Object.keys(conf);\n const allTracks = [];\n for (const kind of kinds) {\n if (kind !== 'options') {\n const tracks = Array.isArray(conf[kind]) ? conf[kind] : [conf[kind]];\n for (const track of tracks) {\n allTracks.push({\n ...track,\n kind: kind,\n label: track.label,\n srclang: track.language,\n default: !!track.default,\n src: track.url\n });\n }\n }\n }\n this.textTracksManager.addTextTracks(allTracks);\n if (conf.options && this.videojs.styledTextTracks) {\n this.videojs.styledTextTracks(conf.options);\n }\n }\n }\n _initSeekThumbs() {\n if (this.playerOptions.seekThumbnails) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref) => {\n let {\n source\n } = _ref;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n source.resourceConfig().type === 'live' ||\n // Is live stream\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) ||\n // Is a raw url\n this.videojs.activePlugins_ && this.videojs.activePlugins_.vr // It's a VR (i.e. 360)\n ) {\n return;\n }\n const publicId = source.publicId();\n const transformation = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.omitVideoOnlyTransformations)(Object.assign({}, source.transformation()));\n\n // fl_sprite must be in a separate URL component when transformation has params\n const spriteTx = [...(Array.isArray(transformation) ? transformation : [transformation]), {\n flags: ['sprite']\n }];\n const vttUrl = source.config().url(`${publicId}.vtt`, {\n transformation: spriteTx\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const vttSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(vttUrl, source.queryParams());\n\n // vttThumbnails must be called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.vttThumbnails) ? this.videojs.vttThumbnails({\n src: vttSrc\n }) : this.videojs.vttThumbnails.src(vttSrc);\n });\n }\n }\n _initHighlightsGraph() {\n if (this.playerOptions.aiHighlightsGraph) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref2) => {\n let {\n source\n } = _ref2;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) // Is a raw url\n ) {\n return;\n }\n const publicId = source.publicId();\n\n // Keep video-length related transformations and remove the rest\n const inputTransformations = lodash_pick__WEBPACK_IMPORTED_MODULE_4___default()(source.transformation(), ['start_offset', 'end_offset', 'duration']);\n const transformation = Object.assign({}, inputTransformations);\n transformation.effect = 'preview';\n transformation.flags = transformation.flags || [];\n transformation.flags.push('getinfo');\n const aiHighlightsGraphUrl = source.config().url(`${publicId}`, {\n transformation\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const aiHighlightsGraphSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(aiHighlightsGraphUrl, source.queryParams());\n\n // Plugin is called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.aiHighlightsGraph) ? this.videojs.aiHighlightsGraph({\n src: aiHighlightsGraphSrc\n }) : this.videojs.aiHighlightsGraph.src(aiHighlightsGraphSrc);\n });\n }\n }\n _initChapters() {\n if (!this.playerOptions.chaptersButton && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('chaptersButton');\n }\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref3) => {\n let {\n source\n } = _ref3;\n if ((!lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(source?._chapters) || source?._chapters === true) && this.videojs.chapters) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.chapters) ? this.videojs.chapters(source._chapters) : this.videojs.chapters.src(source._chapters);\n } else if (this.videojs.chapters?.resetPlugin) {\n this.videojs.chapters.resetPlugin();\n }\n });\n }\n _initInteractionAreas() {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n if (this.options.videojsOptions.interactionDisplay && this.videojs.interactionAreas) {\n this.videojs.interactionAreas(this, this.playerOptions, this._videojsOptions);\n }\n });\n }\n _initVisualSearch() {\n // Listen for source changes to apply visual search based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref4) => {\n let {\n source\n } = _ref4;\n if (source?._visualSearch && this.videojs.visualSearch) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.visualSearch) ? this.videojs.visualSearch(source._visualSearch) : this.videojs.visualSearch.createSearchUI(source._visualSearch);\n } else if (!source?._visualSearch && this.videojs.visualSearch?.clearUI) {\n this.videojs.visualSearch.clearUI();\n }\n });\n }\n _initShare() {\n // Listen for source changes to apply Share plugin based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref5) => {\n let {\n source\n } = _ref5;\n if (!this.videojs.share) {\n return;\n }\n\n // First time: initialise plugin if necessary\n if (source?._download && lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n this.videojs.share({\n download: true\n });\n }\n if (!lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n // Plugin already initialised – update UI accordingly\n if (source?._download) {\n this.videojs.share.addDownloadButton?.();\n } else {\n this.videojs.share.removeDownloadButton?.();\n }\n }\n });\n }\n _initColors() {\n if (this.playerOptions.colors) {\n this.videojs.colors({\n colors: this.playerOptions.colors\n });\n }\n }\n _initTextTracks() {\n this.textTracksManager = this.videojs.textTracksManager();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref6) => {\n let {\n source\n } = _ref6;\n if (source?._textTracks) {\n this.setTextTracks(source._textTracks);\n }\n });\n }\n _initPerSrcBehaviors() {\n if (this.videojs.perSourceBehaviors) {\n this.videojs.perSourceBehaviors();\n }\n }\n _initJumpButtons() {\n if (!this.playerOptions.showJumpControls && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('JumpForwardButton');\n this.videojs.controlBar.removeChild('JumpBackButton');\n }\n }\n _initPictureInPicture() {\n if (!this.playerOptions.pictureInPictureToggle && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('pictureInPictureToggle');\n }\n }\n _initBigPauseButton() {\n if ((video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_IOS || (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_ANDROID) {\n this.videojs.addChild('BigPauseButton');\n }\n }\n _initCloudinary() {\n const cloudinaryConfig = this.playerOptions.cloudinary;\n cloudinaryConfig.chainTarget = this;\n if (cloudinaryConfig.secure !== false) {\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.extendCloudinaryConfig)(cloudinaryConfig, {\n secure: true\n });\n }\n\n // Merge cloudinary config with source config for the plugin\n const cloudinaryOptions = {\n cloudinaryConfig,\n ...this.playerOptions.sourceOptions\n };\n this.videojs.cloudinary(cloudinaryOptions);\n }\n _initAnalytics() {\n const analyticsOpts = this.playerOptions.analytics;\n if (!window.gtag && analyticsOpts) {\n console.error('Google Analytics script (gtag) is missing.');\n return;\n }\n if (analyticsOpts) {\n const opts = typeof analyticsOpts === 'object' ? analyticsOpts : {};\n this.videojs.analytics(opts);\n }\n }\n _initCloudinaryAnalytics() {\n const cloudinaryAnalyticsOptionEnabled = !!this.playerOptions.cloudinaryAnalytics;\n if (cloudinaryAnalyticsOptionEnabled) {\n this.videojs.videoElement = this.videoElement;\n const options = lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default()(this.playerOptions.cloudinaryAnalytics) ? this.playerOptions.cloudinaryAnalytics : {};\n this.videojs.cloudinaryAnalytics(options);\n }\n }\n _initSourceSwitcher() {\n this.sourceSwitcher = this.videojs.sourceSwitcher();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref7) => {\n let {\n source\n } = _ref7;\n const videoSources = source.videoSources?.();\n const isSourcesListAvailable = Array.isArray(videoSources) ? !!videoSources.length : false;\n if (this.videojs.controlBar) {\n const method = isSourcesListAvailable ? 'show' : 'hide';\n const element = this.videojs.controlBar.getChild('sourceSwitcherButton');\n if (element && typeof element?.[method] === 'function') {\n element[method]();\n }\n }\n if (isSourcesListAvailable) {\n const selectedIndex = videoSources.findIndex(_ref8 => {\n let {\n publicId\n } = _ref8;\n return publicId === source.publicId();\n });\n this.sourceSwitcher.reInit({\n sources: videoSources,\n selectedIndex: selectedIndex === -1 ? 0 : selectedIndex,\n onSourceChange: _ref9 => {\n let {\n publicId,\n ...newSourceOptions\n } = _ref9;\n return this.source(publicId, {\n ...newSourceOptions,\n videoSources\n });\n }\n });\n }\n });\n if (Array.isArray(this.playerOptions.sourceOptions?.videoSources) && this.playerOptions.sourceOptions?.videoSources.length) {\n // eslint-disable-next-line no-unused-vars\n const {\n publicId,\n label,\n ...videoSourceData\n } = this.playerOptions.sourceOptions.videoSources[0];\n this.source(publicId, {\n ...videoSourceData,\n videoSources: this.playerOptions.sourceOptions.videoSources\n });\n }\n }\n reTryVideoStateUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reTryVideoStateRetriesCount !== 'number') {\n this.reTryVideoStateRetriesCount = 0;\n }\n if (!(0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.isVideoInReadyState)(this.videojs.readyState())) {\n if (this.reTryVideoStateRetriesCount < maxNumberOfCalls) {\n this.reTryVideoStateRetriesCount++;\n this.reTryVideoStateTimeoutId = this.videojs.setTimeout(() => this.reTryVideoStateUntilAvailable(maxNumberOfCalls, timeout), timeout);\n } else {\n let e = new Error('Video is not ready please try later');\n this.videojs.trigger('error', e);\n }\n } else {\n this.reTryVideoStateRetriesCount = 0;\n }\n }\n _resetReloadVideo = () => {\n this.reloadVideoRetriesCount = 0;\n this.videojs.clearTimeout(this.reloadVideoTimeoutId);\n };\n reloadVideoUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reloadVideoRetriesCount !== 'number') {\n this.reloadVideoRetriesCount = 0;\n }\n if (this.reloadVideoRetriesCount < maxNumberOfCalls) {\n this.reloadVideoRetriesCount++;\n this.reloadVideoTimeoutId = this.videojs.setTimeout(() => {\n const videoUrl = this.currentSourceUrl();\n (0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.checkIfVideoIsAvailable)(videoUrl, this.isLiveStream ? 'live' : 'default').then(() => this.source(videoUrl)).catch(() => this.reloadVideoUntilAvailable(maxNumberOfCalls, timeout));\n }, timeout);\n } else {\n this.videojs.trigger('error', new Error('Sorry, we could not load your video'));\n }\n }\n _initAutoplay() {\n const autoplayMode = this.playerOptions.autoplayMode;\n if (autoplayMode === 'on-scroll') {\n this.videojs.autoplayOnScroll();\n }\n }\n _initContextMenu() {\n if (!this.playerOptions.hideContextMenu) {\n this.videojs.contextMenu(_config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"].contextMenu);\n }\n }\n _initFloatingPlayer() {\n if (this.playerOptions.floatingWhenNotVisible !== _video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLOATING_TO.NONE) {\n this.videojs.floatingPlayer({\n floatTo: this.playerOptions.floatingWhenNotVisible\n });\n }\n }\n _setCssClasses() {\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].CLASS_PREFIX);\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].playerClassPrefix(this.videojs));\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs));\n }\n _onReady() {\n this._setExtendedEvents();\n\n // Load first video (mainly to support video tag 'source' and 'public-id' attributes)\n // Source parameters are set to playerOptions.sourceOptions\n const source = this.playerOptions.sourceOptions.source || this.playerOptions.sourceOptions.publicId;\n if (source) {\n const sourceOptions = Object.assign({}, this.playerOptions.sourceOptions);\n this.source(source, sourceOptions);\n }\n }\n\n /**\n * Temporary fix: remove aria-live from VolumeBar to avoid NVDA repeated announcements.\n * TODO: Remove when Video.js includes the upstream fix (nvaccess/nvda#7996).\n */\n _applyVolumeBarAriaLiveFix() {\n const volumeBar = this.videojs.$('.vjs-volume-bar');\n if (volumeBar) {\n volumeBar.removeAttribute('aria-live');\n }\n }\n _onSourceChange(e, _ref0) {\n let {\n source,\n sourceOptions\n } = _ref0;\n this._sendInternalAnalytics({\n ...(sourceOptions && {\n sourceOptions\n })\n });\n this.isLiveStream = source?.resourceConfig()?.type === 'live';\n }\n _setExtendedEvents() {\n const events = [];\n\n // Add user-configured events; ExtendedEvents will merge with defaults\n if (this.playerOptions.playedEventPercents) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PERCENTS_PLAYED,\n percents: this.playerOptions.playedEventPercents\n });\n }\n if (this.playerOptions.playedEventTimes) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.TIME_PLAYED,\n times: this.playerOptions.playedEventTimes\n });\n }\n const extendedEvents = new _extended_events__WEBPACK_IMPORTED_MODULE_13__[\"default\"](this.videojs, {\n events\n });\n\n // Forward all extended events to the main player for developer access\n Object.keys(extendedEvents.events).forEach(_event => {\n extendedEvents.on(_event, (event, data) => {\n this.videojs.trigger({\n type: _event,\n eventData: data\n });\n });\n });\n }\n cloudinaryConfig(config) {\n return this.videojs.cloudinary.cloudinaryConfig(config);\n }\n currentPublicId() {\n return this.videojs.cloudinary.currentPublicId();\n }\n currentSourceUrl() {\n return this.videojs.currentSource().src;\n }\n currentPoster() {\n return this.videojs.cloudinary.currentPoster();\n }\n source(publicId) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n ({\n publicId,\n options\n } = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.normalizeOptions)(publicId, options));\n if (!this._isPlayerConfigValid) {\n return;\n }\n if (this.playerOptions.debug) {\n options.debug = true;\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidSourceConfig)(options).then(valid => {\n if (!valid) {\n this.videojs.error('invalid source configuration');\n }\n });\n }\n if (publicId instanceof _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__[\"default\"]) {\n return this.videojs.cloudinary.source(publicId, options);\n }\n\n // Inherit source parameters from player options (source options take precedence)\n const inherited = this.playerOptions.sourceOptions || {};\n options = {\n ...inherited,\n ...options\n };\n if (options.shoppable && this.videojs.shoppable) {\n this.videojs.shoppable(this.videojs, options);\n }\n this._resetReloadVideo();\n this._resetReTryVideoState();\n const maxTries = this.videojs.options_.maxTries || 3;\n const videoReadyTimeout = this.videojs.options_.videoTimeout || 55000;\n this.reTryVideoStateUntilAvailable(maxTries, videoReadyTimeout);\n return this.videojs.cloudinary.source(publicId, options);\n }\n posterOptions(options) {\n return this.videojs.cloudinary.posterOptions(options);\n }\n skin(name) {\n if (name !== undefined && lodash_isString__WEBPACK_IMPORTED_MODULE_7___default()(name)) {\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, name);\n }\n return _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs);\n }\n playlist(sources) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlist: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(sources, options);\n });\n return this.videojs.cloudinary.playlist ? this.videojs.cloudinary.playlist(sources, options) : this;\n }\n playlistByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlistByTag: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n return new Promise(resolve => {\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(await this.sourcesByTag(tag, options), options);\n resolve(this);\n });\n });\n }\n sourcesByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.videojs.cloudinary.sourcesByTag(tag, options);\n }\n fluid(bool) {\n if (bool === undefined) {\n return this.videojs.fluid();\n }\n if (bool) {\n this.videojs.addClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n } else {\n this.videojs.removeClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n }\n this.videojs.fluid(bool);\n this.videojs.trigger(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.FLUID, bool);\n return this;\n }\n play() {\n this.playWasCalled = true;\n this.videojs.play();\n return this;\n }\n stop() {\n this.pause();\n this.currentTime(0);\n return this;\n }\n playPrevious() {\n this.playlist().playPrevious();\n return this;\n }\n playNext() {\n this.playlist().playNext();\n return this;\n }\n transformation(trans) {\n return this.videojs.cloudinary.transformation(trans);\n }\n sourceTypes(types) {\n return this.videojs.cloudinary.sourceTypes(types);\n }\n sourceTransformation(trans) {\n return this.videojs.cloudinary.sourceTransformation(trans);\n }\n autoShowRecommendations(autoShow) {\n return this.videojs.cloudinary.autoShowRecommendations(autoShow);\n }\n duration() {\n return this.videojs.duration();\n }\n height(dimension) {\n if (!dimension) {\n return this.videojs.height();\n }\n this.videojs.height(dimension);\n return this;\n }\n width(dimension) {\n if (!dimension) {\n return this.videojs.width();\n }\n this.videojs.width(dimension);\n return this;\n }\n volume(volume) {\n if (!volume) {\n return this.videojs.volume();\n }\n this.videojs.volume(volume);\n return this;\n }\n mute() {\n if (!this.isMuted()) {\n this.videojs.muted(true);\n }\n return this;\n }\n unmute() {\n if (this.isMuted()) {\n this.videojs.muted(false);\n }\n return this;\n }\n isMuted() {\n return this.videojs.muted();\n }\n pause() {\n this.videojs.pause();\n return this;\n }\n currentTime(offsetSeconds) {\n if (!offsetSeconds && offsetSeconds !== 0) {\n return this.videojs.currentTime();\n }\n this.videojs.currentTime(offsetSeconds);\n return this;\n }\n maximize() {\n if (!this.isMaximized()) {\n this.videojs.requestFullscreen();\n }\n return this;\n }\n exitMaximize() {\n if (this.isMaximized()) {\n this.videojs.exitFullscreen();\n }\n return this;\n }\n isMaximized() {\n return this.videojs.isFullscreen();\n }\n dispose() {\n this.videojs.dispose();\n }\n controls(bool) {\n if (bool === undefined) {\n return this.videojs.controls();\n }\n this.videojs.controls(bool);\n return this;\n }\n ima() {\n return {\n playAd: this.videojs.ima.playAd\n };\n }\n loop(bool) {\n if (bool === undefined) {\n return this.videojs.loop();\n }\n this.videojs.loop(bool);\n return this;\n }\n el() {\n return this.videojs.el();\n }\n}\nconst mergeDefaults = options => video_js__WEBPACK_IMPORTED_MODULE_0___default().obj.merge({}, _config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"], options);\nconst getConfig = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const videoElement = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.getResolveVideoElement)(elem);\n const options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.extractOptions)(videoElement, playerOptions);\n return {\n videoElement,\n options\n };\n};\nconst createVideoPlayer = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let ready = arguments.length > 2 ? arguments[2] : undefined;\n const {\n videoElement,\n options\n } = getConfig(elem, playerOptions);\n if (options.profile) {\n console.warn('Profile option requires async initialization. Use cloudinary.player() instead of cloudinary.videoPlayer()');\n }\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n\n/**\n * Create player with pre-merged config (skips fetch).\n * Used by player() when config was already fetched for schedule check.\n */\nconst createPlayerWithConfig = (elem, mergedOptions, ready) => {\n const {\n videoElement,\n options\n } = getConfig(elem, mergedOptions);\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoPlayer);\n\n//# sourceURL=webpack:///./video-player.js?\n}");
826
760
 
827
761
  /***/ },
828
762
 
@@ -889,46 +823,6 @@ eval("{var getNative = __webpack_require__(/*! ./_getNative */ \"../node_modules
889
823
 
890
824
  /***/ },
891
825
 
892
- /***/ "../node_modules/lodash/_Hash.js"
893
- /*!***************************************!*\
894
- !*** ../node_modules/lodash/_Hash.js ***!
895
- \***************************************/
896
- (module, __unused_webpack_exports, __webpack_require__) {
897
-
898
- eval("{var hashClear = __webpack_require__(/*! ./_hashClear */ \"../node_modules/lodash/_hashClear.js\"),\n hashDelete = __webpack_require__(/*! ./_hashDelete */ \"../node_modules/lodash/_hashDelete.js\"),\n hashGet = __webpack_require__(/*! ./_hashGet */ \"../node_modules/lodash/_hashGet.js\"),\n hashHas = __webpack_require__(/*! ./_hashHas */ \"../node_modules/lodash/_hashHas.js\"),\n hashSet = __webpack_require__(/*! ./_hashSet */ \"../node_modules/lodash/_hashSet.js\");\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_Hash.js?\n}");
899
-
900
- /***/ },
901
-
902
- /***/ "../node_modules/lodash/_ListCache.js"
903
- /*!********************************************!*\
904
- !*** ../node_modules/lodash/_ListCache.js ***!
905
- \********************************************/
906
- (module, __unused_webpack_exports, __webpack_require__) {
907
-
908
- eval("{var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ \"../node_modules/lodash/_listCacheClear.js\"),\n listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ \"../node_modules/lodash/_listCacheDelete.js\"),\n listCacheGet = __webpack_require__(/*! ./_listCacheGet */ \"../node_modules/lodash/_listCacheGet.js\"),\n listCacheHas = __webpack_require__(/*! ./_listCacheHas */ \"../node_modules/lodash/_listCacheHas.js\"),\n listCacheSet = __webpack_require__(/*! ./_listCacheSet */ \"../node_modules/lodash/_listCacheSet.js\");\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_ListCache.js?\n}");
909
-
910
- /***/ },
911
-
912
- /***/ "../node_modules/lodash/_Map.js"
913
- /*!**************************************!*\
914
- !*** ../node_modules/lodash/_Map.js ***!
915
- \**************************************/
916
- (module, __unused_webpack_exports, __webpack_require__) {
917
-
918
- eval("{var getNative = __webpack_require__(/*! ./_getNative */ \"../node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"../node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_Map.js?\n}");
919
-
920
- /***/ },
921
-
922
- /***/ "../node_modules/lodash/_MapCache.js"
923
- /*!*******************************************!*\
924
- !*** ../node_modules/lodash/_MapCache.js ***!
925
- \*******************************************/
926
- (module, __unused_webpack_exports, __webpack_require__) {
927
-
928
- eval("{var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ \"../node_modules/lodash/_mapCacheClear.js\"),\n mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ \"../node_modules/lodash/_mapCacheDelete.js\"),\n mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ \"../node_modules/lodash/_mapCacheGet.js\"),\n mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ \"../node_modules/lodash/_mapCacheHas.js\"),\n mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ \"../node_modules/lodash/_mapCacheSet.js\");\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_MapCache.js?\n}");
929
-
930
- /***/ },
931
-
932
826
  /***/ "../node_modules/lodash/_Promise.js"
933
827
  /*!******************************************!*\
934
828
  !*** ../node_modules/lodash/_Promise.js ***!
@@ -959,16 +853,6 @@ eval("{var ListCache = __webpack_require__(/*! ./_ListCache */ \"../node_modules
959
853
 
960
854
  /***/ },
961
855
 
962
- /***/ "../node_modules/lodash/_Symbol.js"
963
- /*!*****************************************!*\
964
- !*** ../node_modules/lodash/_Symbol.js ***!
965
- \*****************************************/
966
- (module, __unused_webpack_exports, __webpack_require__) {
967
-
968
- eval("{var root = __webpack_require__(/*! ./_root */ \"../node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_Symbol.js?\n}");
969
-
970
- /***/ },
971
-
972
856
  /***/ "../node_modules/lodash/_Uint8Array.js"
973
857
  /*!*********************************************!*\
974
858
  !*** ../node_modules/lodash/_Uint8Array.js ***!
@@ -989,16 +873,6 @@ eval("{var getNative = __webpack_require__(/*! ./_getNative */ \"../node_modules
989
873
 
990
874
  /***/ },
991
875
 
992
- /***/ "../node_modules/lodash/_apply.js"
993
- /*!****************************************!*\
994
- !*** ../node_modules/lodash/_apply.js ***!
995
- \****************************************/
996
- (module) {
997
-
998
- eval("{/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_apply.js?\n}");
999
-
1000
- /***/ },
1001
-
1002
876
  /***/ "../node_modules/lodash/_arrayEach.js"
1003
877
  /*!********************************************!*\
1004
878
  !*** ../node_modules/lodash/_arrayEach.js ***!
@@ -1029,36 +903,6 @@ eval("{var baseTimes = __webpack_require__(/*! ./_baseTimes */ \"../node_modules
1029
903
 
1030
904
  /***/ },
1031
905
 
1032
- /***/ "../node_modules/lodash/_arrayMap.js"
1033
- /*!*******************************************!*\
1034
- !*** ../node_modules/lodash/_arrayMap.js ***!
1035
- \*******************************************/
1036
- (module) {
1037
-
1038
- eval("{/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_arrayMap.js?\n}");
1039
-
1040
- /***/ },
1041
-
1042
- /***/ "../node_modules/lodash/_arrayPush.js"
1043
- /*!********************************************!*\
1044
- !*** ../node_modules/lodash/_arrayPush.js ***!
1045
- \********************************************/
1046
- (module) {
1047
-
1048
- eval("{/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_arrayPush.js?\n}");
1049
-
1050
- /***/ },
1051
-
1052
- /***/ "../node_modules/lodash/_arrayReduce.js"
1053
- /*!**********************************************!*\
1054
- !*** ../node_modules/lodash/_arrayReduce.js ***!
1055
- \**********************************************/
1056
- (module) {
1057
-
1058
- eval("{/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_arrayReduce.js?\n}");
1059
-
1060
- /***/ },
1061
-
1062
906
  /***/ "../node_modules/lodash/_asciiToArray.js"
1063
907
  /*!***********************************************!*\
1064
908
  !*** ../node_modules/lodash/_asciiToArray.js ***!
@@ -1069,36 +913,6 @@ eval("{/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @par
1069
913
 
1070
914
  /***/ },
1071
915
 
1072
- /***/ "../node_modules/lodash/_asciiWords.js"
1073
- /*!*********************************************!*\
1074
- !*** ../node_modules/lodash/_asciiWords.js ***!
1075
- \*********************************************/
1076
- (module) {
1077
-
1078
- eval("{/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_asciiWords.js?\n}");
1079
-
1080
- /***/ },
1081
-
1082
- /***/ "../node_modules/lodash/_assignValue.js"
1083
- /*!**********************************************!*\
1084
- !*** ../node_modules/lodash/_assignValue.js ***!
1085
- \**********************************************/
1086
- (module, __unused_webpack_exports, __webpack_require__) {
1087
-
1088
- eval("{var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"../node_modules/lodash/_baseAssignValue.js\"),\n eq = __webpack_require__(/*! ./eq */ \"../node_modules/lodash/eq.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_assignValue.js?\n}");
1089
-
1090
- /***/ },
1091
-
1092
- /***/ "../node_modules/lodash/_assocIndexOf.js"
1093
- /*!***********************************************!*\
1094
- !*** ../node_modules/lodash/_assocIndexOf.js ***!
1095
- \***********************************************/
1096
- (module, __unused_webpack_exports, __webpack_require__) {
1097
-
1098
- eval("{var eq = __webpack_require__(/*! ./eq */ \"../node_modules/lodash/eq.js\");\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_assocIndexOf.js?\n}");
1099
-
1100
- /***/ },
1101
-
1102
916
  /***/ "../node_modules/lodash/_baseAssign.js"
1103
917
  /*!*********************************************!*\
1104
918
  !*** ../node_modules/lodash/_baseAssign.js ***!
@@ -1119,16 +933,6 @@ eval("{var copyObject = __webpack_require__(/*! ./_copyObject */ \"../node_modul
1119
933
 
1120
934
  /***/ },
1121
935
 
1122
- /***/ "../node_modules/lodash/_baseAssignValue.js"
1123
- /*!**************************************************!*\
1124
- !*** ../node_modules/lodash/_baseAssignValue.js ***!
1125
- \**************************************************/
1126
- (module, __unused_webpack_exports, __webpack_require__) {
1127
-
1128
- eval("{var defineProperty = __webpack_require__(/*! ./_defineProperty */ \"../node_modules/lodash/_defineProperty.js\");\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseAssignValue.js?\n}");
1129
-
1130
- /***/ },
1131
-
1132
936
  /***/ "../node_modules/lodash/_baseClone.js"
1133
937
  /*!********************************************!*\
1134
938
  !*** ../node_modules/lodash/_baseClone.js ***!
@@ -1149,26 +953,6 @@ eval("{var isObject = __webpack_require__(/*! ./isObject */ \"../node_modules/lo
1149
953
 
1150
954
  /***/ },
1151
955
 
1152
- /***/ "../node_modules/lodash/_baseFlatten.js"
1153
- /*!**********************************************!*\
1154
- !*** ../node_modules/lodash/_baseFlatten.js ***!
1155
- \**********************************************/
1156
- (module, __unused_webpack_exports, __webpack_require__) {
1157
-
1158
- eval("{var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"../node_modules/lodash/_arrayPush.js\"),\n isFlattenable = __webpack_require__(/*! ./_isFlattenable */ \"../node_modules/lodash/_isFlattenable.js\");\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseFlatten.js?\n}");
1159
-
1160
- /***/ },
1161
-
1162
- /***/ "../node_modules/lodash/_baseGet.js"
1163
- /*!******************************************!*\
1164
- !*** ../node_modules/lodash/_baseGet.js ***!
1165
- \******************************************/
1166
- (module, __unused_webpack_exports, __webpack_require__) {
1167
-
1168
- eval("{var castPath = __webpack_require__(/*! ./_castPath */ \"../node_modules/lodash/_castPath.js\"),\n toKey = __webpack_require__(/*! ./_toKey */ \"../node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseGet.js?\n}");
1169
-
1170
- /***/ },
1171
-
1172
956
  /***/ "../node_modules/lodash/_baseGetAllKeys.js"
1173
957
  /*!*************************************************!*\
1174
958
  !*** ../node_modules/lodash/_baseGetAllKeys.js ***!
@@ -1179,36 +963,6 @@ eval("{var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"../node_modules
1179
963
 
1180
964
  /***/ },
1181
965
 
1182
- /***/ "../node_modules/lodash/_baseGetTag.js"
1183
- /*!*********************************************!*\
1184
- !*** ../node_modules/lodash/_baseGetTag.js ***!
1185
- \*********************************************/
1186
- (module, __unused_webpack_exports, __webpack_require__) {
1187
-
1188
- eval("{var Symbol = __webpack_require__(/*! ./_Symbol */ \"../node_modules/lodash/_Symbol.js\"),\n getRawTag = __webpack_require__(/*! ./_getRawTag */ \"../node_modules/lodash/_getRawTag.js\"),\n objectToString = __webpack_require__(/*! ./_objectToString */ \"../node_modules/lodash/_objectToString.js\");\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseGetTag.js?\n}");
1189
-
1190
- /***/ },
1191
-
1192
- /***/ "../node_modules/lodash/_baseHasIn.js"
1193
- /*!********************************************!*\
1194
- !*** ../node_modules/lodash/_baseHasIn.js ***!
1195
- \********************************************/
1196
- (module) {
1197
-
1198
- eval("{/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseHasIn.js?\n}");
1199
-
1200
- /***/ },
1201
-
1202
- /***/ "../node_modules/lodash/_baseIsArguments.js"
1203
- /*!**************************************************!*\
1204
- !*** ../node_modules/lodash/_baseIsArguments.js ***!
1205
- \**************************************************/
1206
- (module, __unused_webpack_exports, __webpack_require__) {
1207
-
1208
- eval("{var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"../node_modules/lodash/_baseGetTag.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"../node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseIsArguments.js?\n}");
1209
-
1210
- /***/ },
1211
-
1212
966
  /***/ "../node_modules/lodash/_baseIsMap.js"
1213
967
  /*!********************************************!*\
1214
968
  !*** ../node_modules/lodash/_baseIsMap.js ***!
@@ -1219,16 +973,6 @@ eval("{var getTag = __webpack_require__(/*! ./_getTag */ \"../node_modules/lodas
1219
973
 
1220
974
  /***/ },
1221
975
 
1222
- /***/ "../node_modules/lodash/_baseIsNative.js"
1223
- /*!***********************************************!*\
1224
- !*** ../node_modules/lodash/_baseIsNative.js ***!
1225
- \***********************************************/
1226
- (module, __unused_webpack_exports, __webpack_require__) {
1227
-
1228
- eval("{var isFunction = __webpack_require__(/*! ./isFunction */ \"../node_modules/lodash/isFunction.js\"),\n isMasked = __webpack_require__(/*! ./_isMasked */ \"../node_modules/lodash/_isMasked.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"../node_modules/lodash/isObject.js\"),\n toSource = __webpack_require__(/*! ./_toSource */ \"../node_modules/lodash/_toSource.js\");\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseIsNative.js?\n}");
1229
-
1230
- /***/ },
1231
-
1232
976
  /***/ "../node_modules/lodash/_baseIsSet.js"
1233
977
  /*!********************************************!*\
1234
978
  !*** ../node_modules/lodash/_baseIsSet.js ***!
@@ -1269,56 +1013,6 @@ eval("{var isObject = __webpack_require__(/*! ./isObject */ \"../node_modules/lo
1269
1013
 
1270
1014
  /***/ },
1271
1015
 
1272
- /***/ "../node_modules/lodash/_basePick.js"
1273
- /*!*******************************************!*\
1274
- !*** ../node_modules/lodash/_basePick.js ***!
1275
- \*******************************************/
1276
- (module, __unused_webpack_exports, __webpack_require__) {
1277
-
1278
- eval("{var basePickBy = __webpack_require__(/*! ./_basePickBy */ \"../node_modules/lodash/_basePickBy.js\"),\n hasIn = __webpack_require__(/*! ./hasIn */ \"../node_modules/lodash/hasIn.js\");\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_basePick.js?\n}");
1279
-
1280
- /***/ },
1281
-
1282
- /***/ "../node_modules/lodash/_basePickBy.js"
1283
- /*!*********************************************!*\
1284
- !*** ../node_modules/lodash/_basePickBy.js ***!
1285
- \*********************************************/
1286
- (module, __unused_webpack_exports, __webpack_require__) {
1287
-
1288
- eval("{var baseGet = __webpack_require__(/*! ./_baseGet */ \"../node_modules/lodash/_baseGet.js\"),\n baseSet = __webpack_require__(/*! ./_baseSet */ \"../node_modules/lodash/_baseSet.js\"),\n castPath = __webpack_require__(/*! ./_castPath */ \"../node_modules/lodash/_castPath.js\");\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_basePickBy.js?\n}");
1289
-
1290
- /***/ },
1291
-
1292
- /***/ "../node_modules/lodash/_basePropertyOf.js"
1293
- /*!*************************************************!*\
1294
- !*** ../node_modules/lodash/_basePropertyOf.js ***!
1295
- \*************************************************/
1296
- (module) {
1297
-
1298
- eval("{/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_basePropertyOf.js?\n}");
1299
-
1300
- /***/ },
1301
-
1302
- /***/ "../node_modules/lodash/_baseSet.js"
1303
- /*!******************************************!*\
1304
- !*** ../node_modules/lodash/_baseSet.js ***!
1305
- \******************************************/
1306
- (module, __unused_webpack_exports, __webpack_require__) {
1307
-
1308
- eval("{var assignValue = __webpack_require__(/*! ./_assignValue */ \"../node_modules/lodash/_assignValue.js\"),\n castPath = __webpack_require__(/*! ./_castPath */ \"../node_modules/lodash/_castPath.js\"),\n isIndex = __webpack_require__(/*! ./_isIndex */ \"../node_modules/lodash/_isIndex.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"../node_modules/lodash/isObject.js\"),\n toKey = __webpack_require__(/*! ./_toKey */ \"../node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseSet.js?\n}");
1309
-
1310
- /***/ },
1311
-
1312
- /***/ "../node_modules/lodash/_baseSetToString.js"
1313
- /*!**************************************************!*\
1314
- !*** ../node_modules/lodash/_baseSetToString.js ***!
1315
- \**************************************************/
1316
- (module, __unused_webpack_exports, __webpack_require__) {
1317
-
1318
- eval("{var constant = __webpack_require__(/*! ./constant */ \"../node_modules/lodash/constant.js\"),\n defineProperty = __webpack_require__(/*! ./_defineProperty */ \"../node_modules/lodash/_defineProperty.js\"),\n identity = __webpack_require__(/*! ./identity */ \"../node_modules/lodash/identity.js\");\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseSetToString.js?\n}");
1319
-
1320
- /***/ },
1321
-
1322
1016
  /***/ "../node_modules/lodash/_baseSlice.js"
1323
1017
  /*!********************************************!*\
1324
1018
  !*** ../node_modules/lodash/_baseSlice.js ***!
@@ -1339,16 +1033,6 @@ eval("{/**\n * The base implementation of `_.times` without support for iteratee
1339
1033
 
1340
1034
  /***/ },
1341
1035
 
1342
- /***/ "../node_modules/lodash/_baseToString.js"
1343
- /*!***********************************************!*\
1344
- !*** ../node_modules/lodash/_baseToString.js ***!
1345
- \***********************************************/
1346
- (module, __unused_webpack_exports, __webpack_require__) {
1347
-
1348
- eval("{var Symbol = __webpack_require__(/*! ./_Symbol */ \"../node_modules/lodash/_Symbol.js\"),\n arrayMap = __webpack_require__(/*! ./_arrayMap */ \"../node_modules/lodash/_arrayMap.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"../node_modules/lodash/isArray.js\"),\n isSymbol = __webpack_require__(/*! ./isSymbol */ \"../node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_baseToString.js?\n}");
1349
-
1350
- /***/ },
1351
-
1352
1036
  /***/ "../node_modules/lodash/_baseUnary.js"
1353
1037
  /*!********************************************!*\
1354
1038
  !*** ../node_modules/lodash/_baseUnary.js ***!
@@ -1369,16 +1053,6 @@ eval("{var castPath = __webpack_require__(/*! ./_castPath */ \"../node_modules/l
1369
1053
 
1370
1054
  /***/ },
1371
1055
 
1372
- /***/ "../node_modules/lodash/_castPath.js"
1373
- /*!*******************************************!*\
1374
- !*** ../node_modules/lodash/_castPath.js ***!
1375
- \*******************************************/
1376
- (module, __unused_webpack_exports, __webpack_require__) {
1377
-
1378
- eval("{var isArray = __webpack_require__(/*! ./isArray */ \"../node_modules/lodash/isArray.js\"),\n isKey = __webpack_require__(/*! ./_isKey */ \"../node_modules/lodash/_isKey.js\"),\n stringToPath = __webpack_require__(/*! ./_stringToPath */ \"../node_modules/lodash/_stringToPath.js\"),\n toString = __webpack_require__(/*! ./toString */ \"../node_modules/lodash/toString.js\");\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_castPath.js?\n}");
1379
-
1380
- /***/ },
1381
-
1382
1056
  /***/ "../node_modules/lodash/_castSlice.js"
1383
1057
  /*!********************************************!*\
1384
1058
  !*** ../node_modules/lodash/_castSlice.js ***!
@@ -1489,16 +1163,6 @@ eval("{var copyObject = __webpack_require__(/*! ./_copyObject */ \"../node_modul
1489
1163
 
1490
1164
  /***/ },
1491
1165
 
1492
- /***/ "../node_modules/lodash/_coreJsData.js"
1493
- /*!*********************************************!*\
1494
- !*** ../node_modules/lodash/_coreJsData.js ***!
1495
- \*********************************************/
1496
- (module, __unused_webpack_exports, __webpack_require__) {
1497
-
1498
- eval("{var root = __webpack_require__(/*! ./_root */ \"../node_modules/lodash/_root.js\");\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_coreJsData.js?\n}");
1499
-
1500
- /***/ },
1501
-
1502
1166
  /***/ "../node_modules/lodash/_createCaseFirst.js"
1503
1167
  /*!**************************************************!*\
1504
1168
  !*** ../node_modules/lodash/_createCaseFirst.js ***!
@@ -1509,16 +1173,6 @@ eval("{var castSlice = __webpack_require__(/*! ./_castSlice */ \"../node_modules
1509
1173
 
1510
1174
  /***/ },
1511
1175
 
1512
- /***/ "../node_modules/lodash/_createCompounder.js"
1513
- /*!***************************************************!*\
1514
- !*** ../node_modules/lodash/_createCompounder.js ***!
1515
- \***************************************************/
1516
- (module, __unused_webpack_exports, __webpack_require__) {
1517
-
1518
- eval("{var arrayReduce = __webpack_require__(/*! ./_arrayReduce */ \"../node_modules/lodash/_arrayReduce.js\"),\n deburr = __webpack_require__(/*! ./deburr */ \"../node_modules/lodash/deburr.js\"),\n words = __webpack_require__(/*! ./words */ \"../node_modules/lodash/words.js\");\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_createCompounder.js?\n}");
1519
-
1520
- /***/ },
1521
-
1522
1176
  /***/ "../node_modules/lodash/_customOmitClone.js"
1523
1177
  /*!**************************************************!*\
1524
1178
  !*** ../node_modules/lodash/_customOmitClone.js ***!
@@ -1529,53 +1183,13 @@ eval("{var isPlainObject = __webpack_require__(/*! ./isPlainObject */ \"../node_
1529
1183
 
1530
1184
  /***/ },
1531
1185
 
1532
- /***/ "../node_modules/lodash/_deburrLetter.js"
1533
- /*!***********************************************!*\
1534
- !*** ../node_modules/lodash/_deburrLetter.js ***!
1535
- \***********************************************/
1186
+ /***/ "../node_modules/lodash/_getAllKeys.js"
1187
+ /*!*********************************************!*\
1188
+ !*** ../node_modules/lodash/_getAllKeys.js ***!
1189
+ \*********************************************/
1536
1190
  (module, __unused_webpack_exports, __webpack_require__) {
1537
1191
 
1538
- eval("{var basePropertyOf = __webpack_require__(/*! ./_basePropertyOf */ \"../node_modules/lodash/_basePropertyOf.js\");\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_deburrLetter.js?\n}");
1539
-
1540
- /***/ },
1541
-
1542
- /***/ "../node_modules/lodash/_defineProperty.js"
1543
- /*!*************************************************!*\
1544
- !*** ../node_modules/lodash/_defineProperty.js ***!
1545
- \*************************************************/
1546
- (module, __unused_webpack_exports, __webpack_require__) {
1547
-
1548
- eval("{var getNative = __webpack_require__(/*! ./_getNative */ \"../node_modules/lodash/_getNative.js\");\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_defineProperty.js?\n}");
1549
-
1550
- /***/ },
1551
-
1552
- /***/ "../node_modules/lodash/_flatRest.js"
1553
- /*!*******************************************!*\
1554
- !*** ../node_modules/lodash/_flatRest.js ***!
1555
- \*******************************************/
1556
- (module, __unused_webpack_exports, __webpack_require__) {
1557
-
1558
- eval("{var flatten = __webpack_require__(/*! ./flatten */ \"../node_modules/lodash/flatten.js\"),\n overRest = __webpack_require__(/*! ./_overRest */ \"../node_modules/lodash/_overRest.js\"),\n setToString = __webpack_require__(/*! ./_setToString */ \"../node_modules/lodash/_setToString.js\");\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_flatRest.js?\n}");
1559
-
1560
- /***/ },
1561
-
1562
- /***/ "../node_modules/lodash/_freeGlobal.js"
1563
- /*!*********************************************!*\
1564
- !*** ../node_modules/lodash/_freeGlobal.js ***!
1565
- \*********************************************/
1566
- (module, __unused_webpack_exports, __webpack_require__) {
1567
-
1568
- eval("{/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\nmodule.exports = freeGlobal;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_freeGlobal.js?\n}");
1569
-
1570
- /***/ },
1571
-
1572
- /***/ "../node_modules/lodash/_getAllKeys.js"
1573
- /*!*********************************************!*\
1574
- !*** ../node_modules/lodash/_getAllKeys.js ***!
1575
- \*********************************************/
1576
- (module, __unused_webpack_exports, __webpack_require__) {
1577
-
1578
- eval("{var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"../node_modules/lodash/_baseGetAllKeys.js\"),\n getSymbols = __webpack_require__(/*! ./_getSymbols */ \"../node_modules/lodash/_getSymbols.js\"),\n keys = __webpack_require__(/*! ./keys */ \"../node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_getAllKeys.js?\n}");
1192
+ eval("{var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"../node_modules/lodash/_baseGetAllKeys.js\"),\n getSymbols = __webpack_require__(/*! ./_getSymbols */ \"../node_modules/lodash/_getSymbols.js\"),\n keys = __webpack_require__(/*! ./keys */ \"../node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_getAllKeys.js?\n}");
1579
1193
 
1580
1194
  /***/ },
1581
1195
 
@@ -1589,26 +1203,6 @@ eval("{var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"../no
1589
1203
 
1590
1204
  /***/ },
1591
1205
 
1592
- /***/ "../node_modules/lodash/_getMapData.js"
1593
- /*!*********************************************!*\
1594
- !*** ../node_modules/lodash/_getMapData.js ***!
1595
- \*********************************************/
1596
- (module, __unused_webpack_exports, __webpack_require__) {
1597
-
1598
- eval("{var isKeyable = __webpack_require__(/*! ./_isKeyable */ \"../node_modules/lodash/_isKeyable.js\");\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_getMapData.js?\n}");
1599
-
1600
- /***/ },
1601
-
1602
- /***/ "../node_modules/lodash/_getNative.js"
1603
- /*!********************************************!*\
1604
- !*** ../node_modules/lodash/_getNative.js ***!
1605
- \********************************************/
1606
- (module, __unused_webpack_exports, __webpack_require__) {
1607
-
1608
- eval("{var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ \"../node_modules/lodash/_baseIsNative.js\"),\n getValue = __webpack_require__(/*! ./_getValue */ \"../node_modules/lodash/_getValue.js\");\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_getNative.js?\n}");
1609
-
1610
- /***/ },
1611
-
1612
1206
  /***/ "../node_modules/lodash/_getPrototype.js"
1613
1207
  /*!***********************************************!*\
1614
1208
  !*** ../node_modules/lodash/_getPrototype.js ***!
@@ -1619,16 +1213,6 @@ eval("{var overArg = __webpack_require__(/*! ./_overArg */ \"../node_modules/lod
1619
1213
 
1620
1214
  /***/ },
1621
1215
 
1622
- /***/ "../node_modules/lodash/_getRawTag.js"
1623
- /*!********************************************!*\
1624
- !*** ../node_modules/lodash/_getRawTag.js ***!
1625
- \********************************************/
1626
- (module, __unused_webpack_exports, __webpack_require__) {
1627
-
1628
- eval("{var Symbol = __webpack_require__(/*! ./_Symbol */ \"../node_modules/lodash/_Symbol.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_getRawTag.js?\n}");
1629
-
1630
- /***/ },
1631
-
1632
1216
  /***/ "../node_modules/lodash/_getSymbols.js"
1633
1217
  /*!*********************************************!*\
1634
1218
  !*** ../node_modules/lodash/_getSymbols.js ***!
@@ -1659,26 +1243,6 @@ eval("{var DataView = __webpack_require__(/*! ./_DataView */ \"../node_modules/l
1659
1243
 
1660
1244
  /***/ },
1661
1245
 
1662
- /***/ "../node_modules/lodash/_getValue.js"
1663
- /*!*******************************************!*\
1664
- !*** ../node_modules/lodash/_getValue.js ***!
1665
- \*******************************************/
1666
- (module) {
1667
-
1668
- eval("{/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_getValue.js?\n}");
1669
-
1670
- /***/ },
1671
-
1672
- /***/ "../node_modules/lodash/_hasPath.js"
1673
- /*!******************************************!*\
1674
- !*** ../node_modules/lodash/_hasPath.js ***!
1675
- \******************************************/
1676
- (module, __unused_webpack_exports, __webpack_require__) {
1677
-
1678
- eval("{var castPath = __webpack_require__(/*! ./_castPath */ \"../node_modules/lodash/_castPath.js\"),\n isArguments = __webpack_require__(/*! ./isArguments */ \"../node_modules/lodash/isArguments.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"../node_modules/lodash/isArray.js\"),\n isIndex = __webpack_require__(/*! ./_isIndex */ \"../node_modules/lodash/_isIndex.js\"),\n isLength = __webpack_require__(/*! ./isLength */ \"../node_modules/lodash/isLength.js\"),\n toKey = __webpack_require__(/*! ./_toKey */ \"../node_modules/lodash/_toKey.js\");\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_hasPath.js?\n}");
1679
-
1680
- /***/ },
1681
-
1682
1246
  /***/ "../node_modules/lodash/_hasUnicode.js"
1683
1247
  /*!*********************************************!*\
1684
1248
  !*** ../node_modules/lodash/_hasUnicode.js ***!
@@ -1689,66 +1253,6 @@ eval("{/** Used to compose unicode character classes. */\nvar rsAstralRange = '\
1689
1253
 
1690
1254
  /***/ },
1691
1255
 
1692
- /***/ "../node_modules/lodash/_hasUnicodeWord.js"
1693
- /*!*************************************************!*\
1694
- !*** ../node_modules/lodash/_hasUnicodeWord.js ***!
1695
- \*************************************************/
1696
- (module) {
1697
-
1698
- eval("{/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_hasUnicodeWord.js?\n}");
1699
-
1700
- /***/ },
1701
-
1702
- /***/ "../node_modules/lodash/_hashClear.js"
1703
- /*!********************************************!*\
1704
- !*** ../node_modules/lodash/_hashClear.js ***!
1705
- \********************************************/
1706
- (module, __unused_webpack_exports, __webpack_require__) {
1707
-
1708
- eval("{var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"../node_modules/lodash/_nativeCreate.js\");\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_hashClear.js?\n}");
1709
-
1710
- /***/ },
1711
-
1712
- /***/ "../node_modules/lodash/_hashDelete.js"
1713
- /*!*********************************************!*\
1714
- !*** ../node_modules/lodash/_hashDelete.js ***!
1715
- \*********************************************/
1716
- (module) {
1717
-
1718
- eval("{/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_hashDelete.js?\n}");
1719
-
1720
- /***/ },
1721
-
1722
- /***/ "../node_modules/lodash/_hashGet.js"
1723
- /*!******************************************!*\
1724
- !*** ../node_modules/lodash/_hashGet.js ***!
1725
- \******************************************/
1726
- (module, __unused_webpack_exports, __webpack_require__) {
1727
-
1728
- eval("{var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"../node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_hashGet.js?\n}");
1729
-
1730
- /***/ },
1731
-
1732
- /***/ "../node_modules/lodash/_hashHas.js"
1733
- /*!******************************************!*\
1734
- !*** ../node_modules/lodash/_hashHas.js ***!
1735
- \******************************************/
1736
- (module, __unused_webpack_exports, __webpack_require__) {
1737
-
1738
- eval("{var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"../node_modules/lodash/_nativeCreate.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_hashHas.js?\n}");
1739
-
1740
- /***/ },
1741
-
1742
- /***/ "../node_modules/lodash/_hashSet.js"
1743
- /*!******************************************!*\
1744
- !*** ../node_modules/lodash/_hashSet.js ***!
1745
- \******************************************/
1746
- (module, __unused_webpack_exports, __webpack_require__) {
1747
-
1748
- eval("{var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"../node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_hashSet.js?\n}");
1749
-
1750
- /***/ },
1751
-
1752
1256
  /***/ "../node_modules/lodash/_initCloneArray.js"
1753
1257
  /*!*************************************************!*\
1754
1258
  !*** ../node_modules/lodash/_initCloneArray.js ***!
@@ -1779,56 +1283,6 @@ eval("{var baseCreate = __webpack_require__(/*! ./_baseCreate */ \"../node_modul
1779
1283
 
1780
1284
  /***/ },
1781
1285
 
1782
- /***/ "../node_modules/lodash/_isFlattenable.js"
1783
- /*!************************************************!*\
1784
- !*** ../node_modules/lodash/_isFlattenable.js ***!
1785
- \************************************************/
1786
- (module, __unused_webpack_exports, __webpack_require__) {
1787
-
1788
- eval("{var Symbol = __webpack_require__(/*! ./_Symbol */ \"../node_modules/lodash/_Symbol.js\"),\n isArguments = __webpack_require__(/*! ./isArguments */ \"../node_modules/lodash/isArguments.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"../node_modules/lodash/isArray.js\");\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_isFlattenable.js?\n}");
1789
-
1790
- /***/ },
1791
-
1792
- /***/ "../node_modules/lodash/_isIndex.js"
1793
- /*!******************************************!*\
1794
- !*** ../node_modules/lodash/_isIndex.js ***!
1795
- \******************************************/
1796
- (module) {
1797
-
1798
- eval("{/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_isIndex.js?\n}");
1799
-
1800
- /***/ },
1801
-
1802
- /***/ "../node_modules/lodash/_isKey.js"
1803
- /*!****************************************!*\
1804
- !*** ../node_modules/lodash/_isKey.js ***!
1805
- \****************************************/
1806
- (module, __unused_webpack_exports, __webpack_require__) {
1807
-
1808
- eval("{var isArray = __webpack_require__(/*! ./isArray */ \"../node_modules/lodash/isArray.js\"),\n isSymbol = __webpack_require__(/*! ./isSymbol */ \"../node_modules/lodash/isSymbol.js\");\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_isKey.js?\n}");
1809
-
1810
- /***/ },
1811
-
1812
- /***/ "../node_modules/lodash/_isKeyable.js"
1813
- /*!********************************************!*\
1814
- !*** ../node_modules/lodash/_isKeyable.js ***!
1815
- \********************************************/
1816
- (module) {
1817
-
1818
- eval("{/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_isKeyable.js?\n}");
1819
-
1820
- /***/ },
1821
-
1822
- /***/ "../node_modules/lodash/_isMasked.js"
1823
- /*!*******************************************!*\
1824
- !*** ../node_modules/lodash/_isMasked.js ***!
1825
- \*******************************************/
1826
- (module, __unused_webpack_exports, __webpack_require__) {
1827
-
1828
- eval("{var coreJsData = __webpack_require__(/*! ./_coreJsData */ \"../node_modules/lodash/_coreJsData.js\");\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_isMasked.js?\n}");
1829
-
1830
- /***/ },
1831
-
1832
1286
  /***/ "../node_modules/lodash/_isPrototype.js"
1833
1287
  /*!**********************************************!*\
1834
1288
  !*** ../node_modules/lodash/_isPrototype.js ***!
@@ -1839,126 +1293,6 @@ eval("{/** Used for built-in method references. */\nvar objectProto = Object.pro
1839
1293
 
1840
1294
  /***/ },
1841
1295
 
1842
- /***/ "../node_modules/lodash/_listCacheClear.js"
1843
- /*!*************************************************!*\
1844
- !*** ../node_modules/lodash/_listCacheClear.js ***!
1845
- \*************************************************/
1846
- (module) {
1847
-
1848
- eval("{/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_listCacheClear.js?\n}");
1849
-
1850
- /***/ },
1851
-
1852
- /***/ "../node_modules/lodash/_listCacheDelete.js"
1853
- /*!**************************************************!*\
1854
- !*** ../node_modules/lodash/_listCacheDelete.js ***!
1855
- \**************************************************/
1856
- (module, __unused_webpack_exports, __webpack_require__) {
1857
-
1858
- eval("{var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"../node_modules/lodash/_assocIndexOf.js\");\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_listCacheDelete.js?\n}");
1859
-
1860
- /***/ },
1861
-
1862
- /***/ "../node_modules/lodash/_listCacheGet.js"
1863
- /*!***********************************************!*\
1864
- !*** ../node_modules/lodash/_listCacheGet.js ***!
1865
- \***********************************************/
1866
- (module, __unused_webpack_exports, __webpack_require__) {
1867
-
1868
- eval("{var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"../node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_listCacheGet.js?\n}");
1869
-
1870
- /***/ },
1871
-
1872
- /***/ "../node_modules/lodash/_listCacheHas.js"
1873
- /*!***********************************************!*\
1874
- !*** ../node_modules/lodash/_listCacheHas.js ***!
1875
- \***********************************************/
1876
- (module, __unused_webpack_exports, __webpack_require__) {
1877
-
1878
- eval("{var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"../node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_listCacheHas.js?\n}");
1879
-
1880
- /***/ },
1881
-
1882
- /***/ "../node_modules/lodash/_listCacheSet.js"
1883
- /*!***********************************************!*\
1884
- !*** ../node_modules/lodash/_listCacheSet.js ***!
1885
- \***********************************************/
1886
- (module, __unused_webpack_exports, __webpack_require__) {
1887
-
1888
- eval("{var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"../node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_listCacheSet.js?\n}");
1889
-
1890
- /***/ },
1891
-
1892
- /***/ "../node_modules/lodash/_mapCacheClear.js"
1893
- /*!************************************************!*\
1894
- !*** ../node_modules/lodash/_mapCacheClear.js ***!
1895
- \************************************************/
1896
- (module, __unused_webpack_exports, __webpack_require__) {
1897
-
1898
- eval("{var Hash = __webpack_require__(/*! ./_Hash */ \"../node_modules/lodash/_Hash.js\"),\n ListCache = __webpack_require__(/*! ./_ListCache */ \"../node_modules/lodash/_ListCache.js\"),\n Map = __webpack_require__(/*! ./_Map */ \"../node_modules/lodash/_Map.js\");\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_mapCacheClear.js?\n}");
1899
-
1900
- /***/ },
1901
-
1902
- /***/ "../node_modules/lodash/_mapCacheDelete.js"
1903
- /*!*************************************************!*\
1904
- !*** ../node_modules/lodash/_mapCacheDelete.js ***!
1905
- \*************************************************/
1906
- (module, __unused_webpack_exports, __webpack_require__) {
1907
-
1908
- eval("{var getMapData = __webpack_require__(/*! ./_getMapData */ \"../node_modules/lodash/_getMapData.js\");\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_mapCacheDelete.js?\n}");
1909
-
1910
- /***/ },
1911
-
1912
- /***/ "../node_modules/lodash/_mapCacheGet.js"
1913
- /*!**********************************************!*\
1914
- !*** ../node_modules/lodash/_mapCacheGet.js ***!
1915
- \**********************************************/
1916
- (module, __unused_webpack_exports, __webpack_require__) {
1917
-
1918
- eval("{var getMapData = __webpack_require__(/*! ./_getMapData */ \"../node_modules/lodash/_getMapData.js\");\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_mapCacheGet.js?\n}");
1919
-
1920
- /***/ },
1921
-
1922
- /***/ "../node_modules/lodash/_mapCacheHas.js"
1923
- /*!**********************************************!*\
1924
- !*** ../node_modules/lodash/_mapCacheHas.js ***!
1925
- \**********************************************/
1926
- (module, __unused_webpack_exports, __webpack_require__) {
1927
-
1928
- eval("{var getMapData = __webpack_require__(/*! ./_getMapData */ \"../node_modules/lodash/_getMapData.js\");\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_mapCacheHas.js?\n}");
1929
-
1930
- /***/ },
1931
-
1932
- /***/ "../node_modules/lodash/_mapCacheSet.js"
1933
- /*!**********************************************!*\
1934
- !*** ../node_modules/lodash/_mapCacheSet.js ***!
1935
- \**********************************************/
1936
- (module, __unused_webpack_exports, __webpack_require__) {
1937
-
1938
- eval("{var getMapData = __webpack_require__(/*! ./_getMapData */ \"../node_modules/lodash/_getMapData.js\");\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_mapCacheSet.js?\n}");
1939
-
1940
- /***/ },
1941
-
1942
- /***/ "../node_modules/lodash/_memoizeCapped.js"
1943
- /*!************************************************!*\
1944
- !*** ../node_modules/lodash/_memoizeCapped.js ***!
1945
- \************************************************/
1946
- (module, __unused_webpack_exports, __webpack_require__) {
1947
-
1948
- eval("{var memoize = __webpack_require__(/*! ./memoize */ \"../node_modules/lodash/memoize.js\");\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_memoizeCapped.js?\n}");
1949
-
1950
- /***/ },
1951
-
1952
- /***/ "../node_modules/lodash/_nativeCreate.js"
1953
- /*!***********************************************!*\
1954
- !*** ../node_modules/lodash/_nativeCreate.js ***!
1955
- \***********************************************/
1956
- (module, __unused_webpack_exports, __webpack_require__) {
1957
-
1958
- eval("{var getNative = __webpack_require__(/*! ./_getNative */ \"../node_modules/lodash/_getNative.js\");\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_nativeCreate.js?\n}");
1959
-
1960
- /***/ },
1961
-
1962
1296
  /***/ "../node_modules/lodash/_nativeKeys.js"
1963
1297
  /*!*********************************************!*\
1964
1298
  !*** ../node_modules/lodash/_nativeKeys.js ***!
@@ -1989,16 +1323,6 @@ eval("{/* module decorator */ module = __webpack_require__.nmd(module);\nvar fre
1989
1323
 
1990
1324
  /***/ },
1991
1325
 
1992
- /***/ "../node_modules/lodash/_objectToString.js"
1993
- /*!*************************************************!*\
1994
- !*** ../node_modules/lodash/_objectToString.js ***!
1995
- \*************************************************/
1996
- (module) {
1997
-
1998
- eval("{/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_objectToString.js?\n}");
1999
-
2000
- /***/ },
2001
-
2002
1326
  /***/ "../node_modules/lodash/_overArg.js"
2003
1327
  /*!******************************************!*\
2004
1328
  !*** ../node_modules/lodash/_overArg.js ***!
@@ -2009,16 +1333,6 @@ eval("{/**\n * Creates a unary function that invokes `func` with its argument tr
2009
1333
 
2010
1334
  /***/ },
2011
1335
 
2012
- /***/ "../node_modules/lodash/_overRest.js"
2013
- /*!*******************************************!*\
2014
- !*** ../node_modules/lodash/_overRest.js ***!
2015
- \*******************************************/
2016
- (module, __unused_webpack_exports, __webpack_require__) {
2017
-
2018
- eval("{var apply = __webpack_require__(/*! ./_apply */ \"../node_modules/lodash/_apply.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_overRest.js?\n}");
2019
-
2020
- /***/ },
2021
-
2022
1336
  /***/ "../node_modules/lodash/_parent.js"
2023
1337
  /*!*****************************************!*\
2024
1338
  !*** ../node_modules/lodash/_parent.js ***!
@@ -2029,36 +1343,6 @@ eval("{var baseGet = __webpack_require__(/*! ./_baseGet */ \"../node_modules/lod
2029
1343
 
2030
1344
  /***/ },
2031
1345
 
2032
- /***/ "../node_modules/lodash/_root.js"
2033
- /*!***************************************!*\
2034
- !*** ../node_modules/lodash/_root.js ***!
2035
- \***************************************/
2036
- (module, __unused_webpack_exports, __webpack_require__) {
2037
-
2038
- eval("{var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"../node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_root.js?\n}");
2039
-
2040
- /***/ },
2041
-
2042
- /***/ "../node_modules/lodash/_setToString.js"
2043
- /*!**********************************************!*\
2044
- !*** ../node_modules/lodash/_setToString.js ***!
2045
- \**********************************************/
2046
- (module, __unused_webpack_exports, __webpack_require__) {
2047
-
2048
- eval("{var baseSetToString = __webpack_require__(/*! ./_baseSetToString */ \"../node_modules/lodash/_baseSetToString.js\"),\n shortOut = __webpack_require__(/*! ./_shortOut */ \"../node_modules/lodash/_shortOut.js\");\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_setToString.js?\n}");
2049
-
2050
- /***/ },
2051
-
2052
- /***/ "../node_modules/lodash/_shortOut.js"
2053
- /*!*******************************************!*\
2054
- !*** ../node_modules/lodash/_shortOut.js ***!
2055
- \*******************************************/
2056
- (module) {
2057
-
2058
- eval("{/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_shortOut.js?\n}");
2059
-
2060
- /***/ },
2061
-
2062
1346
  /***/ "../node_modules/lodash/_stackClear.js"
2063
1347
  /*!*********************************************!*\
2064
1348
  !*** ../node_modules/lodash/_stackClear.js ***!
@@ -2119,36 +1403,6 @@ eval("{var asciiToArray = __webpack_require__(/*! ./_asciiToArray */ \"../node_m
2119
1403
 
2120
1404
  /***/ },
2121
1405
 
2122
- /***/ "../node_modules/lodash/_stringToPath.js"
2123
- /*!***********************************************!*\
2124
- !*** ../node_modules/lodash/_stringToPath.js ***!
2125
- \***********************************************/
2126
- (module, __unused_webpack_exports, __webpack_require__) {
2127
-
2128
- eval("{var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ \"../node_modules/lodash/_memoizeCapped.js\");\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_stringToPath.js?\n}");
2129
-
2130
- /***/ },
2131
-
2132
- /***/ "../node_modules/lodash/_toKey.js"
2133
- /*!****************************************!*\
2134
- !*** ../node_modules/lodash/_toKey.js ***!
2135
- \****************************************/
2136
- (module, __unused_webpack_exports, __webpack_require__) {
2137
-
2138
- eval("{var isSymbol = __webpack_require__(/*! ./isSymbol */ \"../node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_toKey.js?\n}");
2139
-
2140
- /***/ },
2141
-
2142
- /***/ "../node_modules/lodash/_toSource.js"
2143
- /*!*******************************************!*\
2144
- !*** ../node_modules/lodash/_toSource.js ***!
2145
- \*******************************************/
2146
- (module) {
2147
-
2148
- eval("{/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_toSource.js?\n}");
2149
-
2150
- /***/ },
2151
-
2152
1406
  /***/ "../node_modules/lodash/_unicodeToArray.js"
2153
1407
  /*!*************************************************!*\
2154
1408
  !*** ../node_modules/lodash/_unicodeToArray.js ***!
@@ -2159,16 +1413,6 @@ eval("{/** Used to compose unicode character classes. */\nvar rsAstralRange = '\
2159
1413
 
2160
1414
  /***/ },
2161
1415
 
2162
- /***/ "../node_modules/lodash/_unicodeWords.js"
2163
- /*!***********************************************!*\
2164
- !*** ../node_modules/lodash/_unicodeWords.js ***!
2165
- \***********************************************/
2166
- (module) {
2167
-
2168
- eval("{/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/_unicodeWords.js?\n}");
2169
-
2170
- /***/ },
2171
-
2172
1416
  /***/ "../node_modules/lodash/camelCase.js"
2173
1417
  /*!*******************************************!*\
2174
1418
  !*** ../node_modules/lodash/camelCase.js ***!
@@ -2199,46 +1443,6 @@ eval("{var isArray = __webpack_require__(/*! ./isArray */ \"../node_modules/loda
2199
1443
 
2200
1444
  /***/ },
2201
1445
 
2202
- /***/ "../node_modules/lodash/constant.js"
2203
- /*!******************************************!*\
2204
- !*** ../node_modules/lodash/constant.js ***!
2205
- \******************************************/
2206
- (module) {
2207
-
2208
- eval("{/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/constant.js?\n}");
2209
-
2210
- /***/ },
2211
-
2212
- /***/ "../node_modules/lodash/deburr.js"
2213
- /*!****************************************!*\
2214
- !*** ../node_modules/lodash/deburr.js ***!
2215
- \****************************************/
2216
- (module, __unused_webpack_exports, __webpack_require__) {
2217
-
2218
- eval("{var deburrLetter = __webpack_require__(/*! ./_deburrLetter */ \"../node_modules/lodash/_deburrLetter.js\"),\n toString = __webpack_require__(/*! ./toString */ \"../node_modules/lodash/toString.js\");\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/deburr.js?\n}");
2219
-
2220
- /***/ },
2221
-
2222
- /***/ "../node_modules/lodash/eq.js"
2223
- /*!************************************!*\
2224
- !*** ../node_modules/lodash/eq.js ***!
2225
- \************************************/
2226
- (module) {
2227
-
2228
- eval("{/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/eq.js?\n}");
2229
-
2230
- /***/ },
2231
-
2232
- /***/ "../node_modules/lodash/flatten.js"
2233
- /*!*****************************************!*\
2234
- !*** ../node_modules/lodash/flatten.js ***!
2235
- \*****************************************/
2236
- (module, __unused_webpack_exports, __webpack_require__) {
2237
-
2238
- eval("{var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ \"../node_modules/lodash/_baseFlatten.js\");\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/flatten.js?\n}");
2239
-
2240
- /***/ },
2241
-
2242
1446
  /***/ "../node_modules/lodash/get.js"
2243
1447
  /*!*************************************!*\
2244
1448
  !*** ../node_modules/lodash/get.js ***!
@@ -2249,46 +1453,6 @@ eval("{var baseGet = __webpack_require__(/*! ./_baseGet */ \"../node_modules/lod
2249
1453
 
2250
1454
  /***/ },
2251
1455
 
2252
- /***/ "../node_modules/lodash/hasIn.js"
2253
- /*!***************************************!*\
2254
- !*** ../node_modules/lodash/hasIn.js ***!
2255
- \***************************************/
2256
- (module, __unused_webpack_exports, __webpack_require__) {
2257
-
2258
- eval("{var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ \"../node_modules/lodash/_baseHasIn.js\"),\n hasPath = __webpack_require__(/*! ./_hasPath */ \"../node_modules/lodash/_hasPath.js\");\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/hasIn.js?\n}");
2259
-
2260
- /***/ },
2261
-
2262
- /***/ "../node_modules/lodash/identity.js"
2263
- /*!******************************************!*\
2264
- !*** ../node_modules/lodash/identity.js ***!
2265
- \******************************************/
2266
- (module) {
2267
-
2268
- eval("{/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/identity.js?\n}");
2269
-
2270
- /***/ },
2271
-
2272
- /***/ "../node_modules/lodash/isArguments.js"
2273
- /*!*********************************************!*\
2274
- !*** ../node_modules/lodash/isArguments.js ***!
2275
- \*********************************************/
2276
- (module, __unused_webpack_exports, __webpack_require__) {
2277
-
2278
- eval("{var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ \"../node_modules/lodash/_baseIsArguments.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"../node_modules/lodash/isObjectLike.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/isArguments.js?\n}");
2279
-
2280
- /***/ },
2281
-
2282
- /***/ "../node_modules/lodash/isArray.js"
2283
- /*!*****************************************!*\
2284
- !*** ../node_modules/lodash/isArray.js ***!
2285
- \*****************************************/
2286
- (module) {
2287
-
2288
- eval("{/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/isArray.js?\n}");
2289
-
2290
- /***/ },
2291
-
2292
1456
  /***/ "../node_modules/lodash/isArrayLike.js"
2293
1457
  /*!*********************************************!*\
2294
1458
  !*** ../node_modules/lodash/isArrayLike.js ***!
@@ -2329,26 +1493,6 @@ eval("{var baseKeys = __webpack_require__(/*! ./_baseKeys */ \"../node_modules/l
2329
1493
 
2330
1494
  /***/ },
2331
1495
 
2332
- /***/ "../node_modules/lodash/isFunction.js"
2333
- /*!********************************************!*\
2334
- !*** ../node_modules/lodash/isFunction.js ***!
2335
- \********************************************/
2336
- (module, __unused_webpack_exports, __webpack_require__) {
2337
-
2338
- eval("{var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"../node_modules/lodash/_baseGetTag.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"../node_modules/lodash/isObject.js\");\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/isFunction.js?\n}");
2339
-
2340
- /***/ },
2341
-
2342
- /***/ "../node_modules/lodash/isLength.js"
2343
- /*!******************************************!*\
2344
- !*** ../node_modules/lodash/isLength.js ***!
2345
- \******************************************/
2346
- (module) {
2347
-
2348
- eval("{/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/isLength.js?\n}");
2349
-
2350
- /***/ },
2351
-
2352
1496
  /***/ "../node_modules/lodash/isMap.js"
2353
1497
  /*!***************************************!*\
2354
1498
  !*** ../node_modules/lodash/isMap.js ***!
@@ -2359,26 +1503,6 @@ eval("{var baseIsMap = __webpack_require__(/*! ./_baseIsMap */ \"../node_modules
2359
1503
 
2360
1504
  /***/ },
2361
1505
 
2362
- /***/ "../node_modules/lodash/isObject.js"
2363
- /*!******************************************!*\
2364
- !*** ../node_modules/lodash/isObject.js ***!
2365
- \******************************************/
2366
- (module) {
2367
-
2368
- eval("{/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/isObject.js?\n}");
2369
-
2370
- /***/ },
2371
-
2372
- /***/ "../node_modules/lodash/isObjectLike.js"
2373
- /*!**********************************************!*\
2374
- !*** ../node_modules/lodash/isObjectLike.js ***!
2375
- \**********************************************/
2376
- (module) {
2377
-
2378
- eval("{/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/isObjectLike.js?\n}");
2379
-
2380
- /***/ },
2381
-
2382
1506
  /***/ "../node_modules/lodash/isPlainObject.js"
2383
1507
  /*!***********************************************!*\
2384
1508
  !*** ../node_modules/lodash/isPlainObject.js ***!
@@ -2409,16 +1533,6 @@ eval("{var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"../node_modul
2409
1533
 
2410
1534
  /***/ },
2411
1535
 
2412
- /***/ "../node_modules/lodash/isSymbol.js"
2413
- /*!******************************************!*\
2414
- !*** ../node_modules/lodash/isSymbol.js ***!
2415
- \******************************************/
2416
- (module, __unused_webpack_exports, __webpack_require__) {
2417
-
2418
- eval("{var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"../node_modules/lodash/_baseGetTag.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"../node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/isSymbol.js?\n}");
2419
-
2420
- /***/ },
2421
-
2422
1536
  /***/ "../node_modules/lodash/isTypedArray.js"
2423
1537
  /*!**********************************************!*\
2424
1538
  !*** ../node_modules/lodash/isTypedArray.js ***!
@@ -2459,16 +1573,6 @@ eval("{/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _
2459
1573
 
2460
1574
  /***/ },
2461
1575
 
2462
- /***/ "../node_modules/lodash/memoize.js"
2463
- /*!*****************************************!*\
2464
- !*** ../node_modules/lodash/memoize.js ***!
2465
- \*****************************************/
2466
- (module, __unused_webpack_exports, __webpack_require__) {
2467
-
2468
- eval("{var MapCache = __webpack_require__(/*! ./_MapCache */ \"../node_modules/lodash/_MapCache.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/memoize.js?\n}");
2469
-
2470
- /***/ },
2471
-
2472
1576
  /***/ "../node_modules/lodash/omit.js"
2473
1577
  /*!**************************************!*\
2474
1578
  !*** ../node_modules/lodash/omit.js ***!
@@ -2479,26 +1583,6 @@ eval("{var arrayMap = __webpack_require__(/*! ./_arrayMap */ \"../node_modules/l
2479
1583
 
2480
1584
  /***/ },
2481
1585
 
2482
- /***/ "../node_modules/lodash/pick.js"
2483
- /*!**************************************!*\
2484
- !*** ../node_modules/lodash/pick.js ***!
2485
- \**************************************/
2486
- (module, __unused_webpack_exports, __webpack_require__) {
2487
-
2488
- eval("{var basePick = __webpack_require__(/*! ./_basePick */ \"../node_modules/lodash/_basePick.js\"),\n flatRest = __webpack_require__(/*! ./_flatRest */ \"../node_modules/lodash/_flatRest.js\");\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/pick.js?\n}");
2489
-
2490
- /***/ },
2491
-
2492
- /***/ "../node_modules/lodash/snakeCase.js"
2493
- /*!*******************************************!*\
2494
- !*** ../node_modules/lodash/snakeCase.js ***!
2495
- \*******************************************/
2496
- (module, __unused_webpack_exports, __webpack_require__) {
2497
-
2498
- eval("{var createCompounder = __webpack_require__(/*! ./_createCompounder */ \"../node_modules/lodash/_createCompounder.js\");\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/snakeCase.js?\n}");
2499
-
2500
- /***/ },
2501
-
2502
1586
  /***/ "../node_modules/lodash/stubArray.js"
2503
1587
  /*!*******************************************!*\
2504
1588
  !*** ../node_modules/lodash/stubArray.js ***!
@@ -2519,16 +1603,6 @@ eval("{/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n *
2519
1603
 
2520
1604
  /***/ },
2521
1605
 
2522
- /***/ "../node_modules/lodash/toString.js"
2523
- /*!******************************************!*\
2524
- !*** ../node_modules/lodash/toString.js ***!
2525
- \******************************************/
2526
- (module, __unused_webpack_exports, __webpack_require__) {
2527
-
2528
- eval("{var baseToString = __webpack_require__(/*! ./_baseToString */ \"../node_modules/lodash/_baseToString.js\");\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/toString.js?\n}");
2529
-
2530
- /***/ },
2531
-
2532
1606
  /***/ "../node_modules/lodash/upperFirst.js"
2533
1607
  /*!********************************************!*\
2534
1608
  !*** ../node_modules/lodash/upperFirst.js ***!
@@ -2539,16 +1613,6 @@ eval("{var createCaseFirst = __webpack_require__(/*! ./_createCaseFirst */ \"../
2539
1613
 
2540
1614
  /***/ },
2541
1615
 
2542
- /***/ "../node_modules/lodash/words.js"
2543
- /*!***************************************!*\
2544
- !*** ../node_modules/lodash/words.js ***!
2545
- \***************************************/
2546
- (module, __unused_webpack_exports, __webpack_require__) {
2547
-
2548
- eval("{var asciiWords = __webpack_require__(/*! ./_asciiWords */ \"../node_modules/lodash/_asciiWords.js\"),\n hasUnicodeWord = __webpack_require__(/*! ./_hasUnicodeWord */ \"../node_modules/lodash/_hasUnicodeWord.js\"),\n toString = __webpack_require__(/*! ./toString */ \"../node_modules/lodash/toString.js\"),\n unicodeWords = __webpack_require__(/*! ./_unicodeWords */ \"../node_modules/lodash/_unicodeWords.js\");\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n\n\n//# sourceURL=webpack:///../node_modules/lodash/words.js?\n}");
2549
-
2550
- /***/ },
2551
-
2552
1616
  /***/ "./assets/styles/components/title-bar.scss"
2553
1617
  /*!*************************************************!*\
2554
1618
  !*** ./assets/styles/components/title-bar.scss ***!