<%- var("cssOldTags") %> = [];
<%- var("cssNewTags") %> = [];
<%- var("cssApplyHandler") %> = <%- basicFunction("options") %> {
return {
dispose: <%- basicFunction("") %> { },
apply: <%- basicFunction("") %> {
cssNewTags.forEach(<%- basicFunction("newTag") %> {
newTag.sheet.disabled = false;
});
while (cssOldTags.length) {
var oldTag = cssOldTags.pop();
if (oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);
}
while (cssNewTags.length) {
cssNewTags.pop();
}
}
};
};
<%- var("cssTextKeyOfLink") %> = <%- basicFunction("link") %> {
return Array.from(link.sheet.cssRules, <%- returningFunction("r.cssText", "r") %>).join();
};
<%- HMR_DOWNLOAD_UPDATE_HANDLERS %>.css = <%- basicFunction("chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList") %> {
if (typeof document === 'undefined') return;
applyHandlers.push(cssApplyHandler);
var seen = {};
chunkIds.forEach(<%- basicFunction("chunkId") %> {
var filename = <%- GET_CHUNK_CSS_FILENAME %>(chunkId);
if (!filename) return;
var url = <%- PUBLIC_PATH %> + filename;
if (seen[url]) {
return;
}
seen[url] = true;
var oldTag = cssLoadStylesheet(chunkId, url);
if (!oldTag) return;
promises.push(
new Promise(<%- basicFunction("resolve, reject") %> {
var link = cssLoadStylesheet(
chunkId,
url + (url.indexOf("?") < 0 ? "?" : "&") + "hmr=" + Date.now(),
<%- basicFunction("event") %> {
if (event.type !== "load") {
var error = new Error();
var errorType = event && event.type;
var realSrc = event && event.target && event.target.src;
error.message =
"Loading css hot update chunk " +
chunkId +
" failed.\n(" +
errorType +
": " +
realSrc +
")";
error.name = "ChunkLoadError";
error.type = errorType;
error.request = realSrc;
reject(error);
} else {
try {
if (cssTextKeyOfLink(oldTag) == cssTextKeyOfLink(link)) {
if (link.parentNode) link.parentNode.removeChild(link);
return resolve();
}
} catch (e) {}
cssOldTags.push(oldTag);
cssNewTags.push(link);
link.sheet.disabled = true;
resolve();
}
},
oldTag
);
})
);
});
};