{"ast":null,"code":"import React, { useEffect, useMemo } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask, isCancelException, makePageCallback } from '../shared/utils.js';\nexport default function PageSVG() {\n  const pageContext = usePageContext();\n  invariant(pageContext, 'Unable to find Page context.');\n  const {\n    _className,\n    onRenderSuccess: onRenderSuccessProps,\n    onRenderError: onRenderErrorProps,\n    page,\n    rotate,\n    scale\n  } = pageContext;\n  invariant(page, 'Attempted to render page SVG, but no page was specified.');\n  const [svgState, svgDispatch] = useResolver();\n  const {\n    value: svg,\n    error: svgError\n  } = svgState;\n  /**\n   * Called when a page is rendered successfully\n   */\n  function onRenderSuccess() {\n    if (!page) {\n      // Impossible, but TypeScript doesn't know that\n      return;\n    }\n    if (onRenderSuccessProps) {\n      onRenderSuccessProps(makePageCallback(page, scale));\n    }\n  }\n  /**\n   * Called when a page fails to render\n   */\n  function onRenderError() {\n    if (!svgError) {\n      // Impossible, but TypeScript doesn't know that\n      return;\n    }\n    if (isCancelException(svgError)) {\n      return;\n    }\n    warning(false, svgError.toString());\n    if (onRenderErrorProps) {\n      onRenderErrorProps(svgError);\n    }\n  }\n  const viewport = useMemo(() => page.getViewport({\n    scale,\n    rotation: rotate\n  }), [page, rotate, scale]);\n  function resetSVG() {\n    svgDispatch({\n      type: 'RESET'\n    });\n  }\n  useEffect(resetSVG, [page, svgDispatch, viewport]);\n  function renderSVG() {\n    if (!page) {\n      return;\n    }\n    const cancellable = makeCancellable(page.getOperatorList());\n    cancellable.promise.then(operatorList => {\n      const svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n      svgGfx.getSVG(operatorList, viewport).then(nextSvg => {\n        // See https://github.com/mozilla/pdf.js/issues/16745\n        if (!(nextSvg instanceof SVGElement)) {\n          throw new Error('getSVG returned unexpected result.');\n        }\n        svgDispatch({\n          type: 'RESOLVE',\n          value: nextSvg\n        });\n      }).catch(error => {\n        svgDispatch({\n          type: 'REJECT',\n          error\n        });\n      });\n    }).catch(error => {\n      svgDispatch({\n        type: 'REJECT',\n        error\n      });\n    });\n    return () => cancelRunningTask(cancellable);\n  }\n  useEffect(renderSVG, [page, svgDispatch, viewport]);\n  useEffect(() => {\n    if (svg === undefined) {\n      return;\n    }\n    if (svg === false) {\n      onRenderError();\n      return;\n    }\n    onRenderSuccess();\n  },\n  // Ommitted callbacks so they are not called every time they change\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  [svg]);\n  function drawPageOnContainer(element) {\n    if (!element || !svg) {\n      return;\n    }\n    // Append SVG element to the main container, if this hasn't been done already\n    if (!element.firstElementChild) {\n      element.appendChild(svg);\n    }\n    const {\n      width,\n      height\n    } = viewport;\n    svg.setAttribute('width', `${width}`);\n    svg.setAttribute('height', `${height}`);\n  }\n  const {\n    width,\n    height\n  } = viewport;\n  return React.createElement(\"div\", {\n    className: `${_className}__svg`,\n    // Note: This cannot be shortened, as we need this function to be called with each render.\n    ref: ref => drawPageOnContainer(ref),\n    style: {\n      display: 'block',\n      backgroundColor: 'white',\n      overflow: 'hidden',\n      width,\n      height,\n      userSelect: 'none'\n    }\n  });\n}","map":{"version":3,"names":["React","useEffect","useMemo","makeCancellable","invariant","warning","pdfjs","usePageContext","useResolver","cancelRunningTask","isCancelException","makePageCallback","PageSVG","pageContext","_className","onRenderSuccess","onRenderSuccessProps","onRenderError","onRenderErrorProps","page","rotate","scale","svgState","svgDispatch","value","svg","error","svgError","toString","viewport","getViewport","rotation","resetSVG","type","renderSVG","cancellable","getOperatorList","promise","then","operatorList","svgGfx","SVGGraphics","commonObjs","objs","getSVG","nextSvg","SVGElement","Error","catch","undefined","drawPageOnContainer","element","firstElementChild","appendChild","width","height","setAttribute","createElement","className","ref","style","display","backgroundColor","overflow","userSelect"],"sources":["/Users/chrishaack/UC_Trains_Voice/react-demo/node_modules/react-pdf/dist/esm/Page/PageSVG.js"],"sourcesContent":["import React, { useEffect, useMemo } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport pdfjs from '../pdfjs.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask, isCancelException, makePageCallback } from '../shared/utils.js';\nexport default function PageSVG() {\n    const pageContext = usePageContext();\n    invariant(pageContext, 'Unable to find Page context.');\n    const { _className, onRenderSuccess: onRenderSuccessProps, onRenderError: onRenderErrorProps, page, rotate, scale, } = pageContext;\n    invariant(page, 'Attempted to render page SVG, but no page was specified.');\n    const [svgState, svgDispatch] = useResolver();\n    const { value: svg, error: svgError } = svgState;\n    /**\n     * Called when a page is rendered successfully\n     */\n    function onRenderSuccess() {\n        if (!page) {\n            // Impossible, but TypeScript doesn't know that\n            return;\n        }\n        if (onRenderSuccessProps) {\n            onRenderSuccessProps(makePageCallback(page, scale));\n        }\n    }\n    /**\n     * Called when a page fails to render\n     */\n    function onRenderError() {\n        if (!svgError) {\n            // Impossible, but TypeScript doesn't know that\n            return;\n        }\n        if (isCancelException(svgError)) {\n            return;\n        }\n        warning(false, svgError.toString());\n        if (onRenderErrorProps) {\n            onRenderErrorProps(svgError);\n        }\n    }\n    const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n    function resetSVG() {\n        svgDispatch({ type: 'RESET' });\n    }\n    useEffect(resetSVG, [page, svgDispatch, viewport]);\n    function renderSVG() {\n        if (!page) {\n            return;\n        }\n        const cancellable = makeCancellable(page.getOperatorList());\n        cancellable.promise\n            .then((operatorList) => {\n            const svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n            svgGfx\n                .getSVG(operatorList, viewport)\n                .then((nextSvg) => {\n                // See https://github.com/mozilla/pdf.js/issues/16745\n                if (!(nextSvg instanceof SVGElement)) {\n                    throw new Error('getSVG returned unexpected result.');\n                }\n                svgDispatch({ type: 'RESOLVE', value: nextSvg });\n            })\n                .catch((error) => {\n                svgDispatch({ type: 'REJECT', error });\n            });\n        })\n            .catch((error) => {\n            svgDispatch({ type: 'REJECT', error });\n        });\n        return () => cancelRunningTask(cancellable);\n    }\n    useEffect(renderSVG, [page, svgDispatch, viewport]);\n    useEffect(() => {\n        if (svg === undefined) {\n            return;\n        }\n        if (svg === false) {\n            onRenderError();\n            return;\n        }\n        onRenderSuccess();\n    }, \n    // Ommitted callbacks so they are not called every time they change\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [svg]);\n    function drawPageOnContainer(element) {\n        if (!element || !svg) {\n            return;\n        }\n        // Append SVG element to the main container, if this hasn't been done already\n        if (!element.firstElementChild) {\n            element.appendChild(svg);\n        }\n        const { width, height } = viewport;\n        svg.setAttribute('width', `${width}`);\n        svg.setAttribute('height', `${height}`);\n    }\n    const { width, height } = viewport;\n    return (React.createElement(\"div\", { className: `${_className}__svg`, \n        // Note: This cannot be shortened, as we need this function to be called with each render.\n        ref: (ref) => drawPageOnContainer(ref), style: {\n            display: 'block',\n            backgroundColor: 'white',\n            overflow: 'hidden',\n            width,\n            height,\n            userSelect: 'none',\n        } }));\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}