r2-navigator-js
Version:
Readium 2 'navigator' for NodeJS (TypeScript)
86 lines • 3.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupReadiumCSS = void 0;
var express = require("express");
var transformer_1 = require("r2-shared-js/dist/es5/src/transform/transformer");
var transformer_html_1 = require("r2-shared-js/dist/es5/src/transform/transformer-html");
var readium_css_inject_1 = require("../common/readium-css-inject");
var readium_css_settings_1 = require("../common/readium-css-settings");
var url_params_1 = require("../renderer/common/url-params");
var IS_DEV = (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "dev");
function isFixedLayout(publication, link) {
if (link && link.Properties) {
if (link.Properties.Layout === "fixed") {
return true;
}
if (typeof link.Properties.Layout !== "undefined") {
return false;
}
}
if (publication &&
publication.Metadata &&
publication.Metadata.Rendition) {
return publication.Metadata.Rendition.Layout === "fixed";
}
return false;
}
function setupReadiumCSS(server, folderPath, readiumCssGetter) {
var staticOptions = {
dotfiles: "ignore",
etag: true,
fallthrough: false,
immutable: true,
index: false,
maxAge: "1d",
redirect: false,
setHeaders: function (res, _path, _stat) {
server.setResponseCORS(res);
},
};
server.expressUse("/" + readium_css_settings_1.READIUM_CSS_URL_PATH, express.static(folderPath, staticOptions));
var transformerReadiumCss = function (publication, link, url, str, sessionInfo) {
var isIframe = false;
if (url) {
var url_ = new URL(url);
if (url_.searchParams.has(url_params_1.URL_PARAM_IS_IFRAME)) {
isIframe = true;
}
}
if (isIframe) {
return str;
}
var readiumcssJson = readiumCssGetter(publication, link, sessionInfo);
if (isFixedLayout(publication, link)) {
var readiumcssJson_ = { setCSS: undefined, isFixedLayout: true };
if (readiumcssJson.setCSS) {
if (readiumcssJson.setCSS.mathJax) {
}
if (readiumcssJson.setCSS.reduceMotion) {
}
}
readiumcssJson = readiumcssJson_;
}
if (readiumcssJson) {
if (!readiumcssJson.urlRoot) {
var u = server.serverUrl();
if (u) {
readiumcssJson.urlRoot = u;
}
}
if (IS_DEV) {
console.log("_____ readiumCssJson.urlRoot (setupReadiumCSS() transformer): ", readiumcssJson.urlRoot);
}
var mediaType = "application/xhtml+xml";
if (link && link.TypeLink) {
mediaType = link.TypeLink;
}
return (0, readium_css_inject_1.readiumCssTransformHtml)(str, readiumcssJson, mediaType);
}
else {
return str;
}
};
transformer_1.Transformers.instance().add(new transformer_html_1.TransformerHTML(transformerReadiumCss));
}
exports.setupReadiumCSS = setupReadiumCSS;
//# sourceMappingURL=readium-css.js.map