@readium/navigator
Version:
Next generation SDK for publications in Web Apps
51 lines (45 loc) • 1.54 kB
text/typescript
import { WebPubSettings } from "../preferences/WebPubSettings";
import { IWebUserProperties, WebRSProperties, WebUserProperties } from "./Properties";
export interface IWebPubCSS {
rsProperties: WebRSProperties;
userProperties: WebUserProperties;
}
export class WebPubCSS {
rsProperties: WebRSProperties;
userProperties: WebUserProperties;
constructor(props: IWebPubCSS) {
this.rsProperties = props.rsProperties;
this.userProperties = props.userProperties;
}
update(settings: WebPubSettings) {
if (settings.experiments) {
this.rsProperties.experiments = settings.experiments;
}
const updated: IWebUserProperties = {
a11yNormalize: settings.textNormalization,
bodyHyphens: typeof settings.hyphens !== "boolean"
? null
: settings.hyphens
? "auto"
: "none",
fontFamily: settings.fontFamily,
fontWeight: settings.fontWeight,
iOSPatch: settings.iOSPatch,
iPadOSPatch: settings.iPadOSPatch,
letterSpacing: settings.letterSpacing,
ligatures: typeof settings.ligatures !== "boolean"
? null
: settings.ligatures
? "common-ligatures"
: "none",
lineHeight: settings.lineHeight,
noRuby: settings.noRuby,
paraIndent: settings.paragraphIndent,
paraSpacing: settings.paragraphSpacing,
textAlign: settings.textAlign,
wordSpacing: settings.wordSpacing,
zoom: settings.zoom
};
this.userProperties = new WebUserProperties(updated);
}
}