const error = function (title, text, links) { if (text == null) { text = ""; } if (links == null) { links = ""; } if (text) { text = `<p class="_error-text">${text}</p>`; } if (links) { links = `<p class="_error-links">${links}</p>`; } return `<div class="_error"><h1 class="_error-title">${title}</h1>${text}${links}</div>`;};const back = '<a href="#" data-behavior="back" class="_error-link">Go back</a>';app.templates.notFoundPage = () => error( " Page not found. ", " It may be missing from the source documentation or this could be a bug. ", back, );app.templates.pageLoadError = () => error( " The page failed to load. ", ` It may be missing from the server (try reloading the app) or you could be offline (try <a href="/offline">installing the documentation for offline usage</a> when online again).<br>If you're online and you keep seeing this, you're likely behind a proxy or firewall that blocks cross-domain requests. `, ` ${back} · <a href="/#${location.pathname}" target="_top" class="_error-link">Reload</a>· <a href="#" class="_error-link" data-retry>Retry</a> `, );app.templates.bootError = () => error( " The app failed to load. ", ` Check your Internet connection and try <a href="#" data-behavior="reload">reloading</a>.<br>If you keep seeing this, you're likely behind a proxy or firewall that blocks cross-domain requests. `, );app.templates.offlineError = function (reason, exception) { if (reason === "cookie_blocked") { return error(" Cookies must be enabled to use offline mode. "); } reason = (() => { switch (reason) { case "not_supported": return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>Unfortunately your browser either doesn't support IndexedDB or doesn't make it available. `; case "buggy": return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>Unfortunately your browser's implementation of IndexedDB contains bugs that prevent DevDocs from using it. `; case "private_mode": return ` Your browser appears to be running in private mode.<br>This prevents DevDocs from caching documentations for offline access.`; case "exception": return ` An error occurred when trying to open the IndexedDB database:<br><code class="_label">${exception.name}: ${exception.message}</code> `; case "cant_open": return ` An error occurred when trying to open the IndexedDB database:<br><code class="_label">${exception.name}: ${exception.message}</code><br>This could be because you're browsing in private mode or have disallowed offline storage on the domain. `; case "version": return ` The IndexedDB database was modified with a newer version of the app.<br><a href="#" data-behavior="reload">Reload the page</a> to use offline mode. `; case "empty": return ' The IndexedDB database appears to be corrupted. Try <a href="#" data-behavior="reset">resetting the app</a>. '; } })(); return error("Offline mode is unavailable.", reason);};app.templates.unsupportedBrowser = `\<div class="_fail"> <h1 class="_fail-title">Your browser is unsupported, sorry.</h1> <p class="_fail-text">DevDocs is an API documentation browser which supports the following browsers: <ul class="_fail-list"> <li>Recent versions of Firefox, Chrome, or Opera <li>Safari 11.1+ <li>Edge 17+ <li>iOS 11.3+ </ul> <p class="_fail-text"> If you're unable to upgrade, we apologize. We decided to prioritize speed and new features over support for older browsers. <p class="_fail-text"> Note: if you're already using one of the browsers above, check your settings and add-ons. The app uses feature detection, not user agent sniffing. <p class="_fail-text"> — <a href="https://twitter.com/DevDocs">@DevDocs</a></div>\`;
const error = function (title, text, links) {
if (text == null) {
text = "";
}
if (links == null) {
links = "";
}
if (text) {
text = `<p class="_error-text">${text}</p>`;
}
if (links) {
links = `<p class="_error-links">${links}</p>`;
}
return `<div class="_error"><h1 class="_error-title">${title}</h1>${text}${links}</div>`;
};
const back = '<a href="#" data-behavior="back" class="_error-link">Go back</a>';
app.templates.notFoundPage = () =>
error(
" Page not found. ",
" It may be missing from the source documentation or this could be a bug. ",
back,
);
app.templates.pageLoadError = () =>
error(
" The page failed to load. ",
` It may be missing from the server (try reloading the app) or you could be offline (try <a href="/offline">installing the documentation for offline usage</a> when online again).<br>
If you're online and you keep seeing this, you're likely behind a proxy or firewall that blocks cross-domain requests. `,
` ${back} · <a href="/#${location.pathname}" target="_top" class="_error-link">Reload</a>
· <a href="#" class="_error-link" data-retry>Retry</a> `,
);
app.templates.bootError = () =>
error(
" The app failed to load. ",
` Check your Internet connection and try <a href="#" data-behavior="reload">reloading</a>.<br>
If you keep seeing this, you're likely behind a proxy or firewall that blocks cross-domain requests. `,
);
app.templates.offlineError = function (reason, exception) {
if (reason === "cookie_blocked") {
return error(" Cookies must be enabled to use offline mode. ");
}
reason = (() => {
switch (reason) {
case "not_supported":
return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>
Unfortunately your browser either doesn't support IndexedDB or doesn't make it available. `;
case "buggy":
return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>
Unfortunately your browser's implementation of IndexedDB contains bugs that prevent DevDocs from using it. `;
case "private_mode":
return ` Your browser appears to be running in private mode.<br>
This prevents DevDocs from caching documentations for offline access.`;
case "exception":
return ` An error occurred when trying to open the IndexedDB database:<br>
<code class="_label">${exception.name}: ${exception.message}</code> `;
case "cant_open":
return ` An error occurred when trying to open the IndexedDB database:<br>
<code class="_label">${exception.name}: ${exception.message}</code><br>
This could be because you're browsing in private mode or have disallowed offline storage on the domain. `;
case "version":
return ` The IndexedDB database was modified with a newer version of the app.<br>
<a href="#" data-behavior="reload">Reload the page</a> to use offline mode. `;
case "empty":
return ' The IndexedDB database appears to be corrupted. Try <a href="#" data-behavior="reset">resetting the app</a>. ';
}
})();
return error("Offline mode is unavailable.", reason);
};
app.templates.unsupportedBrowser = `\
<div class="_fail">
<h1 class="_fail-title">Your browser is unsupported, sorry.</h1>
<p class="_fail-text">DevDocs is an API documentation browser which supports the following browsers:
<ul class="_fail-list">
<li>Recent versions of Firefox, Chrome, or Opera
<li>Safari 11.1+
<li>Edge 17+
<li>iOS 11.3+
</ul>
<p class="_fail-text">
If you're unable to upgrade, we apologize.
We decided to prioritize speed and new features over support for older browsers.
<p class="_fail-text">
Note: if you're already using one of the browsers above, check your settings and add-ons.
The app uses feature detection, not user agent sniffing.
<p class="_fail-text">
— <a href="https://twitter.com/DevDocs">@DevDocs</a>
</div>\
`;