x: ptsToPx()

in frontend/src/js/components/viewer/PageViewer/pageViewerApi.ts [34:91]


                    x: ptsToPx(hls.x),
                    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: {