in frontend/src/js/components/viewer/PageViewer/pageViewerApi.ts [35:91]
y: ptsToPx(hls.y),
width: ptsToPx(hls.width),
height: ptsToPx(hls.height),
rotation: hls.rotation
}))
}
}
}
function scaleSummary(summary: PagedDocumentSummary): PagedDocumentSummary {
return { ...summary, height: ptsToPx(summary.height) };
}
function scalePage(page: Page): Page {
const scaledDimensions = scaleDimensions(page.dimensions);
return {
...page,
dimensions: scaledDimensions,
highlights: page.highlights.map(scaleHighlight)
};
}
export function scaleDocument(doc: PagedDocument): PagedDocument {
const summary = scaleSummary(doc.summary);
const pages = doc.pages.map(scalePage);
return { pages, summary };
}
function getQueryParams(viewportTop: number, viewportBottom: number, q?: string): string {
const params = new URLSearchParams();
params.append("unit", "point");
params.append("top", "" + pxToPts(viewportTop));
params.append("bottom", "" + pxToPts(viewportBottom));
if(q) {
params.append("q", q);
}
return '?' + params.toString();
}
export async function fetchPages(uri: string, viewportTop: number, viewportBottom: number, q?: string): Promise<PagedDocument> {
const documentUrlBase = encodeURI(uri);
const pageUrl = documentUrlBase + getQueryParams(viewportTop, viewportBottom, q);
try {
const response = await authFetch(pageUrl);
const unscaledDoc: PagedDocument = await response.json();
return scaleDocument(unscaledDoc);
} catch (e) {
console.error('Error fetching pages (will return empty PagedDocument): ', e);
return {
summary: {