You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			464 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			464 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | /* | ||
|  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||
|  | 	Author Tobias Koppers @sokra | ||
|  | */ | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | var $installedChunks$ = undefined; | ||
|  | var $loadUpdateChunk$ = undefined; | ||
|  | var $moduleCache$ = undefined; | ||
|  | var $moduleFactories$ = undefined; | ||
|  | var $ensureChunkHandlers$ = undefined; | ||
|  | var $hasOwnProperty$ = undefined; | ||
|  | var $hmrModuleData$ = undefined; | ||
|  | var $hmrDownloadUpdateHandlers$ = undefined; | ||
|  | var $hmrInvalidateModuleHandlers$ = undefined; | ||
|  | var __webpack_require__ = undefined; | ||
|  | 
 | ||
|  | module.exports = function () { | ||
|  | 	var currentUpdateChunks; | ||
|  | 	var currentUpdate; | ||
|  | 	var currentUpdateRemovedChunks; | ||
|  | 	var currentUpdateRuntime; | ||
|  | 	function applyHandler(options) { | ||
|  | 		if ($ensureChunkHandlers$) delete $ensureChunkHandlers$.$key$Hmr; | ||
|  | 		currentUpdateChunks = undefined; | ||
|  | 		function getAffectedModuleEffects(updateModuleId) { | ||
|  | 			var outdatedModules = [updateModuleId]; | ||
|  | 			var outdatedDependencies = {}; | ||
|  | 
 | ||
|  | 			var queue = outdatedModules.map(function (id) { | ||
|  | 				return { | ||
|  | 					chain: [id], | ||
|  | 					id: id | ||
|  | 				}; | ||
|  | 			}); | ||
|  | 			while (queue.length > 0) { | ||
|  | 				var queueItem = queue.pop(); | ||
|  | 				var moduleId = queueItem.id; | ||
|  | 				var chain = queueItem.chain; | ||
|  | 				var module = $moduleCache$[moduleId]; | ||
|  | 				if ( | ||
|  | 					!module || | ||
|  | 					(module.hot._selfAccepted && !module.hot._selfInvalidated) | ||
|  | 				) | ||
|  | 					continue; | ||
|  | 				if (module.hot._selfDeclined) { | ||
|  | 					return { | ||
|  | 						type: "self-declined", | ||
|  | 						chain: chain, | ||
|  | 						moduleId: moduleId | ||
|  | 					}; | ||
|  | 				} | ||
|  | 				if (module.hot._main) { | ||
|  | 					return { | ||
|  | 						type: "unaccepted", | ||
|  | 						chain: chain, | ||
|  | 						moduleId: moduleId | ||
|  | 					}; | ||
|  | 				} | ||
|  | 				for (var i = 0; i < module.parents.length; i++) { | ||
|  | 					var parentId = module.parents[i]; | ||
|  | 					var parent = $moduleCache$[parentId]; | ||
|  | 					if (!parent) continue; | ||
|  | 					if (parent.hot._declinedDependencies[moduleId]) { | ||
|  | 						return { | ||
|  | 							type: "declined", | ||
|  | 							chain: chain.concat([parentId]), | ||
|  | 							moduleId: moduleId, | ||
|  | 							parentId: parentId | ||
|  | 						}; | ||
|  | 					} | ||
|  | 					if (outdatedModules.indexOf(parentId) !== -1) continue; | ||
|  | 					if (parent.hot._acceptedDependencies[moduleId]) { | ||
|  | 						if (!outdatedDependencies[parentId]) | ||
|  | 							outdatedDependencies[parentId] = []; | ||
|  | 						addAllToSet(outdatedDependencies[parentId], [moduleId]); | ||
|  | 						continue; | ||
|  | 					} | ||
|  | 					delete outdatedDependencies[parentId]; | ||
|  | 					outdatedModules.push(parentId); | ||
|  | 					queue.push({ | ||
|  | 						chain: chain.concat([parentId]), | ||
|  | 						id: parentId | ||
|  | 					}); | ||
|  | 				} | ||
|  | 			} | ||
|  | 
 | ||
|  | 			return { | ||
|  | 				type: "accepted", | ||
|  | 				moduleId: updateModuleId, | ||
|  | 				outdatedModules: outdatedModules, | ||
|  | 				outdatedDependencies: outdatedDependencies | ||
|  | 			}; | ||
|  | 		} | ||
|  | 
 | ||
|  | 		function addAllToSet(a, b) { | ||
|  | 			for (var i = 0; i < b.length; i++) { | ||
|  | 				var item = b[i]; | ||
|  | 				if (a.indexOf(item) === -1) a.push(item); | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		// at begin all updates modules are outdated
 | ||
|  | 		// the "outdated" status can propagate to parents if they don't accept the children
 | ||
|  | 		var outdatedDependencies = {}; | ||
|  | 		var outdatedModules = []; | ||
|  | 		var appliedUpdate = {}; | ||
|  | 
 | ||
|  | 		var warnUnexpectedRequire = function warnUnexpectedRequire(module) { | ||
|  | 			console.warn( | ||
|  | 				"[HMR] unexpected require(" + module.id + ") to disposed module" | ||
|  | 			); | ||
|  | 		}; | ||
|  | 
 | ||
|  | 		for (var moduleId in currentUpdate) { | ||
|  | 			if ($hasOwnProperty$(currentUpdate, moduleId)) { | ||
|  | 				var newModuleFactory = currentUpdate[moduleId]; | ||
|  | 				/** @type {TODO} */ | ||
|  | 				var result; | ||
|  | 				if (newModuleFactory) { | ||
|  | 					result = getAffectedModuleEffects(moduleId); | ||
|  | 				} else { | ||
|  | 					result = { | ||
|  | 						type: "disposed", | ||
|  | 						moduleId: moduleId | ||
|  | 					}; | ||
|  | 				} | ||
|  | 				/** @type {Error|false} */ | ||
|  | 				var abortError = false; | ||
|  | 				var doApply = false; | ||
|  | 				var doDispose = false; | ||
|  | 				var chainInfo = ""; | ||
|  | 				if (result.chain) { | ||
|  | 					chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); | ||
|  | 				} | ||
|  | 				switch (result.type) { | ||
|  | 					case "self-declined": | ||
|  | 						if (options.onDeclined) options.onDeclined(result); | ||
|  | 						if (!options.ignoreDeclined) | ||
|  | 							abortError = new Error( | ||
|  | 								"Aborted because of self decline: " + | ||
|  | 									result.moduleId + | ||
|  | 									chainInfo | ||
|  | 							); | ||
|  | 						break; | ||
|  | 					case "declined": | ||
|  | 						if (options.onDeclined) options.onDeclined(result); | ||
|  | 						if (!options.ignoreDeclined) | ||
|  | 							abortError = new Error( | ||
|  | 								"Aborted because of declined dependency: " + | ||
|  | 									result.moduleId + | ||
|  | 									" in " + | ||
|  | 									result.parentId + | ||
|  | 									chainInfo | ||
|  | 							); | ||
|  | 						break; | ||
|  | 					case "unaccepted": | ||
|  | 						if (options.onUnaccepted) options.onUnaccepted(result); | ||
|  | 						if (!options.ignoreUnaccepted) | ||
|  | 							abortError = new Error( | ||
|  | 								"Aborted because " + moduleId + " is not accepted" + chainInfo | ||
|  | 							); | ||
|  | 						break; | ||
|  | 					case "accepted": | ||
|  | 						if (options.onAccepted) options.onAccepted(result); | ||
|  | 						doApply = true; | ||
|  | 						break; | ||
|  | 					case "disposed": | ||
|  | 						if (options.onDisposed) options.onDisposed(result); | ||
|  | 						doDispose = true; | ||
|  | 						break; | ||
|  | 					default: | ||
|  | 						throw new Error("Unexception type " + result.type); | ||
|  | 				} | ||
|  | 				if (abortError) { | ||
|  | 					return { | ||
|  | 						error: abortError | ||
|  | 					}; | ||
|  | 				} | ||
|  | 				if (doApply) { | ||
|  | 					appliedUpdate[moduleId] = newModuleFactory; | ||
|  | 					addAllToSet(outdatedModules, result.outdatedModules); | ||
|  | 					for (moduleId in result.outdatedDependencies) { | ||
|  | 						if ($hasOwnProperty$(result.outdatedDependencies, moduleId)) { | ||
|  | 							if (!outdatedDependencies[moduleId]) | ||
|  | 								outdatedDependencies[moduleId] = []; | ||
|  | 							addAllToSet( | ||
|  | 								outdatedDependencies[moduleId], | ||
|  | 								result.outdatedDependencies[moduleId] | ||
|  | 							); | ||
|  | 						} | ||
|  | 					} | ||
|  | 				} | ||
|  | 				if (doDispose) { | ||
|  | 					addAllToSet(outdatedModules, [result.moduleId]); | ||
|  | 					appliedUpdate[moduleId] = warnUnexpectedRequire; | ||
|  | 				} | ||
|  | 			} | ||
|  | 		} | ||
|  | 		currentUpdate = undefined; | ||
|  | 
 | ||
|  | 		// Store self accepted outdated modules to require them later by the module system
 | ||
|  | 		var outdatedSelfAcceptedModules = []; | ||
|  | 		for (var j = 0; j < outdatedModules.length; j++) { | ||
|  | 			var outdatedModuleId = outdatedModules[j]; | ||
|  | 			var module = $moduleCache$[outdatedModuleId]; | ||
|  | 			if ( | ||
|  | 				module && | ||
|  | 				(module.hot._selfAccepted || module.hot._main) && | ||
|  | 				// removed self-accepted modules should not be required
 | ||
|  | 				appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && | ||
|  | 				// when called invalidate self-accepting is not possible
 | ||
|  | 				!module.hot._selfInvalidated | ||
|  | 			) { | ||
|  | 				outdatedSelfAcceptedModules.push({ | ||
|  | 					module: outdatedModuleId, | ||
|  | 					require: module.hot._requireSelf, | ||
|  | 					errorHandler: module.hot._selfAccepted | ||
|  | 				}); | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		var moduleOutdatedDependencies; | ||
|  | 
 | ||
|  | 		return { | ||
|  | 			dispose: function () { | ||
|  | 				currentUpdateRemovedChunks.forEach(function (chunkId) { | ||
|  | 					delete $installedChunks$[chunkId]; | ||
|  | 				}); | ||
|  | 				currentUpdateRemovedChunks = undefined; | ||
|  | 
 | ||
|  | 				var idx; | ||
|  | 				var queue = outdatedModules.slice(); | ||
|  | 				while (queue.length > 0) { | ||
|  | 					var moduleId = queue.pop(); | ||
|  | 					var module = $moduleCache$[moduleId]; | ||
|  | 					if (!module) continue; | ||
|  | 
 | ||
|  | 					var data = {}; | ||
|  | 
 | ||
|  | 					// Call dispose handlers
 | ||
|  | 					var disposeHandlers = module.hot._disposeHandlers; | ||
|  | 					for (j = 0; j < disposeHandlers.length; j++) { | ||
|  | 						disposeHandlers[j].call(null, data); | ||
|  | 					} | ||
|  | 					$hmrModuleData$[moduleId] = data; | ||
|  | 
 | ||
|  | 					// disable module (this disables requires from this module)
 | ||
|  | 					module.hot.active = false; | ||
|  | 
 | ||
|  | 					// remove module from cache
 | ||
|  | 					delete $moduleCache$[moduleId]; | ||
|  | 
 | ||
|  | 					// when disposing there is no need to call dispose handler
 | ||
|  | 					delete outdatedDependencies[moduleId]; | ||
|  | 
 | ||
|  | 					// remove "parents" references from all children
 | ||
|  | 					for (j = 0; j < module.children.length; j++) { | ||
|  | 						var child = $moduleCache$[module.children[j]]; | ||
|  | 						if (!child) continue; | ||
|  | 						idx = child.parents.indexOf(moduleId); | ||
|  | 						if (idx >= 0) { | ||
|  | 							child.parents.splice(idx, 1); | ||
|  | 						} | ||
|  | 					} | ||
|  | 				} | ||
|  | 
 | ||
|  | 				// remove outdated dependency from module children
 | ||
|  | 				var dependency; | ||
|  | 				for (var outdatedModuleId in outdatedDependencies) { | ||
|  | 					if ($hasOwnProperty$(outdatedDependencies, outdatedModuleId)) { | ||
|  | 						module = $moduleCache$[outdatedModuleId]; | ||
|  | 						if (module) { | ||
|  | 							moduleOutdatedDependencies = | ||
|  | 								outdatedDependencies[outdatedModuleId]; | ||
|  | 							for (j = 0; j < moduleOutdatedDependencies.length; j++) { | ||
|  | 								dependency = moduleOutdatedDependencies[j]; | ||
|  | 								idx = module.children.indexOf(dependency); | ||
|  | 								if (idx >= 0) module.children.splice(idx, 1); | ||
|  | 							} | ||
|  | 						} | ||
|  | 					} | ||
|  | 				} | ||
|  | 			}, | ||
|  | 			apply: function (reportError) { | ||
|  | 				// insert new code
 | ||
|  | 				for (var updateModuleId in appliedUpdate) { | ||
|  | 					if ($hasOwnProperty$(appliedUpdate, updateModuleId)) { | ||
|  | 						$moduleFactories$[updateModuleId] = appliedUpdate[updateModuleId]; | ||
|  | 					} | ||
|  | 				} | ||
|  | 
 | ||
|  | 				// run new runtime modules
 | ||
|  | 				for (var i = 0; i < currentUpdateRuntime.length; i++) { | ||
|  | 					currentUpdateRuntime[i](__webpack_require__); | ||
|  | 				} | ||
|  | 
 | ||
|  | 				// call accept handlers
 | ||
|  | 				for (var outdatedModuleId in outdatedDependencies) { | ||
|  | 					if ($hasOwnProperty$(outdatedDependencies, outdatedModuleId)) { | ||
|  | 						var module = $moduleCache$[outdatedModuleId]; | ||
|  | 						if (module) { | ||
|  | 							moduleOutdatedDependencies = | ||
|  | 								outdatedDependencies[outdatedModuleId]; | ||
|  | 							var callbacks = []; | ||
|  | 							var errorHandlers = []; | ||
|  | 							var dependenciesForCallbacks = []; | ||
|  | 							for (var j = 0; j < moduleOutdatedDependencies.length; j++) { | ||
|  | 								var dependency = moduleOutdatedDependencies[j]; | ||
|  | 								var acceptCallback = | ||
|  | 									module.hot._acceptedDependencies[dependency]; | ||
|  | 								var errorHandler = | ||
|  | 									module.hot._acceptedErrorHandlers[dependency]; | ||
|  | 								if (acceptCallback) { | ||
|  | 									if (callbacks.indexOf(acceptCallback) !== -1) continue; | ||
|  | 									callbacks.push(acceptCallback); | ||
|  | 									errorHandlers.push(errorHandler); | ||
|  | 									dependenciesForCallbacks.push(dependency); | ||
|  | 								} | ||
|  | 							} | ||
|  | 							for (var k = 0; k < callbacks.length; k++) { | ||
|  | 								try { | ||
|  | 									callbacks[k].call(null, moduleOutdatedDependencies); | ||
|  | 								} catch (err) { | ||
|  | 									if (typeof errorHandlers[k] === "function") { | ||
|  | 										try { | ||
|  | 											errorHandlers[k](err, { | ||
|  | 												moduleId: outdatedModuleId, | ||
|  | 												dependencyId: dependenciesForCallbacks[k] | ||
|  | 											}); | ||
|  | 										} catch (err2) { | ||
|  | 											if (options.onErrored) { | ||
|  | 												options.onErrored({ | ||
|  | 													type: "accept-error-handler-errored", | ||
|  | 													moduleId: outdatedModuleId, | ||
|  | 													dependencyId: dependenciesForCallbacks[k], | ||
|  | 													error: err2, | ||
|  | 													originalError: err | ||
|  | 												}); | ||
|  | 											} | ||
|  | 											if (!options.ignoreErrored) { | ||
|  | 												reportError(err2); | ||
|  | 												reportError(err); | ||
|  | 											} | ||
|  | 										} | ||
|  | 									} else { | ||
|  | 										if (options.onErrored) { | ||
|  | 											options.onErrored({ | ||
|  | 												type: "accept-errored", | ||
|  | 												moduleId: outdatedModuleId, | ||
|  | 												dependencyId: dependenciesForCallbacks[k], | ||
|  | 												error: err | ||
|  | 											}); | ||
|  | 										} | ||
|  | 										if (!options.ignoreErrored) { | ||
|  | 											reportError(err); | ||
|  | 										} | ||
|  | 									} | ||
|  | 								} | ||
|  | 							} | ||
|  | 						} | ||
|  | 					} | ||
|  | 				} | ||
|  | 
 | ||
|  | 				// Load self accepted modules
 | ||
|  | 				for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { | ||
|  | 					var item = outdatedSelfAcceptedModules[o]; | ||
|  | 					var moduleId = item.module; | ||
|  | 					try { | ||
|  | 						item.require(moduleId); | ||
|  | 					} catch (err) { | ||
|  | 						if (typeof item.errorHandler === "function") { | ||
|  | 							try { | ||
|  | 								item.errorHandler(err, { | ||
|  | 									moduleId: moduleId, | ||
|  | 									module: $moduleCache$[moduleId] | ||
|  | 								}); | ||
|  | 							} catch (err2) { | ||
|  | 								if (options.onErrored) { | ||
|  | 									options.onErrored({ | ||
|  | 										type: "self-accept-error-handler-errored", | ||
|  | 										moduleId: moduleId, | ||
|  | 										error: err2, | ||
|  | 										originalError: err | ||
|  | 									}); | ||
|  | 								} | ||
|  | 								if (!options.ignoreErrored) { | ||
|  | 									reportError(err2); | ||
|  | 									reportError(err); | ||
|  | 								} | ||
|  | 							} | ||
|  | 						} else { | ||
|  | 							if (options.onErrored) { | ||
|  | 								options.onErrored({ | ||
|  | 									type: "self-accept-errored", | ||
|  | 									moduleId: moduleId, | ||
|  | 									error: err | ||
|  | 								}); | ||
|  | 							} | ||
|  | 							if (!options.ignoreErrored) { | ||
|  | 								reportError(err); | ||
|  | 							} | ||
|  | 						} | ||
|  | 					} | ||
|  | 				} | ||
|  | 
 | ||
|  | 				return outdatedModules; | ||
|  | 			} | ||
|  | 		}; | ||
|  | 	} | ||
|  | 	$hmrInvalidateModuleHandlers$.$key$ = function (moduleId, applyHandlers) { | ||
|  | 		if (!currentUpdate) { | ||
|  | 			currentUpdate = {}; | ||
|  | 			currentUpdateRuntime = []; | ||
|  | 			currentUpdateRemovedChunks = []; | ||
|  | 			applyHandlers.push(applyHandler); | ||
|  | 		} | ||
|  | 		if (!$hasOwnProperty$(currentUpdate, moduleId)) { | ||
|  | 			currentUpdate[moduleId] = $moduleFactories$[moduleId]; | ||
|  | 		} | ||
|  | 	}; | ||
|  | 	$hmrDownloadUpdateHandlers$.$key$ = function ( | ||
|  | 		chunkIds, | ||
|  | 		removedChunks, | ||
|  | 		removedModules, | ||
|  | 		promises, | ||
|  | 		applyHandlers, | ||
|  | 		updatedModulesList | ||
|  | 	) { | ||
|  | 		applyHandlers.push(applyHandler); | ||
|  | 		currentUpdateChunks = {}; | ||
|  | 		currentUpdateRemovedChunks = removedChunks; | ||
|  | 		currentUpdate = removedModules.reduce(function (obj, key) { | ||
|  | 			obj[key] = false; | ||
|  | 			return obj; | ||
|  | 		}, {}); | ||
|  | 		currentUpdateRuntime = []; | ||
|  | 		chunkIds.forEach(function (chunkId) { | ||
|  | 			if ( | ||
|  | 				$hasOwnProperty$($installedChunks$, chunkId) && | ||
|  | 				$installedChunks$[chunkId] !== undefined | ||
|  | 			) { | ||
|  | 				promises.push($loadUpdateChunk$(chunkId, updatedModulesList)); | ||
|  | 				currentUpdateChunks[chunkId] = true; | ||
|  | 			} else { | ||
|  | 				currentUpdateChunks[chunkId] = false; | ||
|  | 			} | ||
|  | 		}); | ||
|  | 		if ($ensureChunkHandlers$) { | ||
|  | 			$ensureChunkHandlers$.$key$Hmr = function (chunkId, promises) { | ||
|  | 				if ( | ||
|  | 					currentUpdateChunks && | ||
|  | 					$hasOwnProperty$(currentUpdateChunks, chunkId) && | ||
|  | 					!currentUpdateChunks[chunkId] | ||
|  | 				) { | ||
|  | 					promises.push($loadUpdateChunk$(chunkId)); | ||
|  | 					currentUpdateChunks[chunkId] = true; | ||
|  | 				} | ||
|  | 			}; | ||
|  | 		} | ||
|  | 	}; | ||
|  | }; |