| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-28 23:19:18 +08:00
										 |  |  | var $getFullHash$ = undefined; | 
					
						
							|  |  |  | var $interceptModuleExecution$ = undefined; | 
					
						
							|  |  |  | var $moduleCache$ = undefined; | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | // eslint-disable-next-line no-unused-vars
 | 
					
						
							| 
									
										
										
										
											2019-11-28 23:19:18 +08:00
										 |  |  | var $hmrModuleData$ = undefined; | 
					
						
							|  |  |  | var $hmrDownloadManifest$ = undefined; | 
					
						
							|  |  |  | var $hmrDownloadUpdateHandlers$ = undefined; | 
					
						
							|  |  |  | var __webpack_require__ = undefined; | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | module.exports = function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 	var currentHash = $getFullHash$(); | 
					
						
							|  |  |  | 	var currentModuleData = {}; | 
					
						
							|  |  |  | 	var installedModules = $moduleCache$; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// module and require creation
 | 
					
						
							|  |  |  | 	var currentChildModule; | 
					
						
							|  |  |  | 	var currentParents = []; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// status
 | 
					
						
							|  |  |  | 	var registeredStatusHandlers = []; | 
					
						
							|  |  |  | 	var currentStatus = "idle"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// while downloading
 | 
					
						
							|  |  |  | 	var blockingPromises; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// The update info
 | 
					
						
							|  |  |  | 	var currentUpdateApplyHandlers; | 
					
						
							|  |  |  | 	var currentUpdateNewHash; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$hmrModuleData$ = currentModuleData; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 	$getFullHash$ = function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 		return currentHash; | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 	$interceptModuleExecution$.push(function (options) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 		var module = options.module; | 
					
						
							|  |  |  | 		var require = createRequire(options.require, options.id); | 
					
						
							|  |  |  | 		module.hot = createModuleHotObject(options.id, module); | 
					
						
							|  |  |  | 		module.parents = currentParents; | 
					
						
							|  |  |  | 		module.children = []; | 
					
						
							|  |  |  | 		currentParents = []; | 
					
						
							|  |  |  | 		options.require = require; | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$hmrDownloadUpdateHandlers$ = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function createRequire(require, moduleId) { | 
					
						
							|  |  |  | 		var me = installedModules[moduleId]; | 
					
						
							|  |  |  | 		if (!me) return require; | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		var fn = function (request) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			if (me.hot.active) { | 
					
						
							|  |  |  | 				if (installedModules[request]) { | 
					
						
							|  |  |  | 					var parents = installedModules[request].parents; | 
					
						
							|  |  |  | 					if (parents.indexOf(moduleId) === -1) { | 
					
						
							|  |  |  | 						parents.push(moduleId); | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				} else { | 
					
						
							|  |  |  | 					currentParents = [moduleId]; | 
					
						
							|  |  |  | 					currentChildModule = request; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				if (me.children.indexOf(request) === -1) { | 
					
						
							|  |  |  | 					me.children.push(request); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} else { | 
					
						
							|  |  |  | 				console.trace( | 
					
						
							|  |  |  | 					"[HMR] unexpected require(" + | 
					
						
							|  |  |  | 						request + | 
					
						
							|  |  |  | 						") from disposed module " + | 
					
						
							|  |  |  | 						moduleId | 
					
						
							|  |  |  | 				); | 
					
						
							|  |  |  | 				currentParents = []; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			return require(request); | 
					
						
							|  |  |  | 		}; | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		var createPropertyDescriptor = function (name) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			return { | 
					
						
							|  |  |  | 				configurable: true, | 
					
						
							|  |  |  | 				enumerable: true, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 				get: function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 					return require[name]; | 
					
						
							|  |  |  | 				}, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 				set: function (value) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 					require[name] = value; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			}; | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 		for (var name in require) { | 
					
						
							|  |  |  | 			if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { | 
					
						
							|  |  |  | 				Object.defineProperty(fn, name, createPropertyDescriptor(name)); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		fn.e = function (chunkId) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			return trackBlockingPromise(require.e(chunkId)); | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 		return fn; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function createModuleHotObject(moduleId, me) { | 
					
						
							|  |  |  | 		var hot = { | 
					
						
							|  |  |  | 			// private stuff
 | 
					
						
							|  |  |  | 			_acceptedDependencies: {}, | 
					
						
							|  |  |  | 			_declinedDependencies: {}, | 
					
						
							|  |  |  | 			_selfAccepted: false, | 
					
						
							|  |  |  | 			_selfDeclined: false, | 
					
						
							|  |  |  | 			_disposeHandlers: [], | 
					
						
							|  |  |  | 			_main: currentChildModule !== moduleId, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			_requireSelf: function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				currentParents = me.parents.slice(); | 
					
						
							|  |  |  | 				currentChildModule = moduleId; | 
					
						
							|  |  |  | 				__webpack_require__(moduleId); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// Module API
 | 
					
						
							|  |  |  | 			active: true, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			accept: function (dep, callback) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				if (dep === undefined) hot._selfAccepted = true; | 
					
						
							|  |  |  | 				else if (typeof dep === "function") hot._selfAccepted = dep; | 
					
						
							|  |  |  | 				else if (typeof dep === "object" && dep !== null) | 
					
						
							|  |  |  | 					for (var i = 0; i < dep.length; i++) | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 						hot._acceptedDependencies[dep[i]] = callback || function () {}; | 
					
						
							|  |  |  | 				else hot._acceptedDependencies[dep] = callback || function () {}; | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			decline: function (dep) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				if (dep === undefined) hot._selfDeclined = true; | 
					
						
							|  |  |  | 				else if (typeof dep === "object" && dep !== null) | 
					
						
							|  |  |  | 					for (var i = 0; i < dep.length; i++) | 
					
						
							|  |  |  | 						hot._declinedDependencies[dep[i]] = true; | 
					
						
							|  |  |  | 				else hot._declinedDependencies[dep] = true; | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			dispose: function (callback) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				hot._disposeHandlers.push(callback); | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			addDisposeHandler: function (callback) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				hot._disposeHandlers.push(callback); | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			removeDisposeHandler: function (callback) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				var idx = hot._disposeHandlers.indexOf(callback); | 
					
						
							|  |  |  | 				if (idx >= 0) hot._disposeHandlers.splice(idx, 1); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// Management API
 | 
					
						
							|  |  |  | 			check: hotCheck, | 
					
						
							|  |  |  | 			apply: hotApply, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			status: function (l) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				if (!l) return currentStatus; | 
					
						
							|  |  |  | 				registeredStatusHandlers.push(l); | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			addStatusHandler: function (l) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				registeredStatusHandlers.push(l); | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			removeStatusHandler: function (l) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				var idx = registeredStatusHandlers.indexOf(l); | 
					
						
							|  |  |  | 				if (idx >= 0) registeredStatusHandlers.splice(idx, 1); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			//inherit from previous dispose call
 | 
					
						
							|  |  |  | 			data: currentModuleData[moduleId] | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 		currentChildModule = undefined; | 
					
						
							|  |  |  | 		return hot; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function setStatus(newStatus) { | 
					
						
							|  |  |  | 		currentStatus = newStatus; | 
					
						
							|  |  |  | 		for (var i = 0; i < registeredStatusHandlers.length; i++) | 
					
						
							|  |  |  | 			registeredStatusHandlers[i].call(null, newStatus); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function trackBlockingPromise(promise) { | 
					
						
							|  |  |  | 		switch (currentStatus) { | 
					
						
							|  |  |  | 			case "ready": | 
					
						
							|  |  |  | 				setStatus("prepare"); | 
					
						
							|  |  |  | 				blockingPromises.push(promise); | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 				waitForBlockingPromises(function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 					setStatus("ready"); | 
					
						
							|  |  |  | 				}); | 
					
						
							|  |  |  | 				return promise; | 
					
						
							|  |  |  | 			case "prepare": | 
					
						
							|  |  |  | 				blockingPromises.push(promise); | 
					
						
							|  |  |  | 				return promise; | 
					
						
							|  |  |  | 			default: | 
					
						
							|  |  |  | 				return promise; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function waitForBlockingPromises(fn) { | 
					
						
							|  |  |  | 		if (blockingPromises.length === 0) return fn(); | 
					
						
							|  |  |  | 		var blocker = blockingPromises; | 
					
						
							|  |  |  | 		blockingPromises = []; | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		return Promise.all(blocker).then(function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			return waitForBlockingPromises(fn); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function hotCheck(applyOnUpdate) { | 
					
						
							|  |  |  | 		if (currentStatus !== "idle") { | 
					
						
							|  |  |  | 			throw new Error("check() is only allowed in idle status"); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		setStatus("check"); | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		return $hmrDownloadManifest$().then(function (update) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			if (!update) { | 
					
						
							|  |  |  | 				setStatus("idle"); | 
					
						
							|  |  |  | 				return null; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			setStatus("prepare"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			currentUpdateNewHash = update.h; | 
					
						
							|  |  |  | 			var updatedModules = []; | 
					
						
							|  |  |  | 			blockingPromises = []; | 
					
						
							|  |  |  | 			currentUpdateApplyHandlers = []; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			return Promise.all( | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 				Object.keys($hmrDownloadUpdateHandlers$).reduce(function ( | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 					promises, | 
					
						
							|  |  |  | 					key | 
					
						
							|  |  |  | 				) { | 
					
						
							|  |  |  | 					$hmrDownloadUpdateHandlers$[key]( | 
					
						
							|  |  |  | 						update.c, | 
					
						
							|  |  |  | 						update.r, | 
					
						
							|  |  |  | 						update.m, | 
					
						
							|  |  |  | 						promises, | 
					
						
							|  |  |  | 						currentUpdateApplyHandlers, | 
					
						
							|  |  |  | 						updatedModules | 
					
						
							|  |  |  | 					); | 
					
						
							|  |  |  | 					return promises; | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				[]) | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			).then(function () { | 
					
						
							|  |  |  | 				return waitForBlockingPromises(function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 					if (applyOnUpdate) { | 
					
						
							|  |  |  | 						return internalApply(applyOnUpdate); | 
					
						
							|  |  |  | 					} else { | 
					
						
							|  |  |  | 						setStatus("ready"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 						return updatedModules; | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function hotApply(options) { | 
					
						
							|  |  |  | 		if (currentStatus !== "ready") { | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			return Promise.resolve().then(function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				throw new Error("apply() is only allowed in ready status"); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		return internalApply(options); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function internalApply(options) { | 
					
						
							|  |  |  | 		options = options || {}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		var results = currentUpdateApplyHandlers.map(function (handler) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			return handler(options); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var errors = results | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			.map(function (r) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				return r.error; | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 			.filter(Boolean); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if (errors.length > 0) { | 
					
						
							|  |  |  | 			setStatus("abort"); | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			return Promise.resolve().then(function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				throw errors[0]; | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Now in "dispose" phase
 | 
					
						
							|  |  |  | 		setStatus("dispose"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		results.forEach(function (result) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			if (result.dispose) result.dispose(); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Now in "apply" phase
 | 
					
						
							|  |  |  | 		setStatus("apply"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		currentHash = currentUpdateNewHash; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var error; | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		var reportError = function (err) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			if (!error) error = err; | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var outdatedModules = []; | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 		results.forEach(function (result) { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			if (result.apply) { | 
					
						
							|  |  |  | 				var modules = result.apply(reportError); | 
					
						
							|  |  |  | 				if (modules) { | 
					
						
							|  |  |  | 					for (var i = 0; i < modules.length; i++) { | 
					
						
							|  |  |  | 						outdatedModules.push(modules[i]); | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// handle errors in accept handlers and self accepted module load
 | 
					
						
							|  |  |  | 		if (error) { | 
					
						
							|  |  |  | 			setStatus("fail"); | 
					
						
							| 
									
										
										
										
											2020-03-29 06:10:15 +08:00
										 |  |  | 			return Promise.resolve().then(function () { | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				throw error; | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		setStatus("idle"); | 
					
						
							|  |  |  | 		return Promise.resolve(outdatedModules); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; |