(function() { if (window.WeReadApi) { return; } function bridge() { return window.RDEpubReaderBridge || null; } function sharedThemeCSS(theme) { if (!theme) { return ''; } var backgroundColor = theme.backgroundColor || 'transparent'; var textColor = theme.textColor || 'inherit'; return [ ':root {', ' color-scheme: light;', '}', 'html, body {', ' background: ' + backgroundColor + ' !important;', ' color: ' + textColor + ' !important;', '}', 'a {', ' -webkit-tap-highlight-color: transparent;', '}' ].join('\n'); } window.WeReadApi = { applySharedTheme: function(theme) { var css = sharedThemeCSS(theme); if (window.RDInjectedCSS) { window.RDInjectedCSS.setStyle('ss-reader-theme', css, { includeFrames: !!(theme && theme.includeFrames) }); } return true; }, applyPagination: function(styleText) { return !!(bridge() && bridge().applyPagination(styleText)); }, setPageMetrics: function(pageCount, pageStride) { return !!(bridge() && bridge().setPageMetrics(pageCount, pageStride)); }, scrollToPage: function(pageIndex) { return !!(bridge() && bridge().scrollToPage(pageIndex)); }, scrollToLocation: function(location, fallbackPageIndex) { return !!(bridge() && bridge().scrollToLocation(location, fallbackPageIndex)); }, setHighlights: function(items) { return !!(bridge() && bridge().setHighlights(items)); }, clearHighlights: function() { return !!(bridge() && bridge().clearHighlights()); }, setSearchPresentation: function(payload) { return !!(bridge() && bridge().setSearchPresentation(payload)); }, resolveDecorations: function() { return bridge() ? bridge().resolveDecorations() : { highlights: [], search: [] }; }, reportProgression: function(fragment) { return !!(bridge() && bridge().reportProgression(fragment)); }, selectionPayload: function() { return bridge() ? bridge().selectionPayload() : null; } }; })();